|
|
|
|
@ -28,9 +28,9 @@ Tenslotte is er sprake van bepaalde \textbf{acties} die worden uitgevoerd. Afhan
|
|
|
|
|
|
|
|
|
|
\subsection{Data en Data Management}
|
|
|
|
|
|
|
|
|
|
Data zijn vastgelegde feiten en kunnen betrekking hebben tot elk aspect binnen een business; Een IT-servicemanagent tool om incidenten in bij te houden, een centraal 'directory' systeem om accounts en contactgegevens bij te houden enzovoorts. Al deze data staat verspreid in meerdere verschillende software en formaten elk gespecialiseerd om deze te verwerken en/of op te slaan.
|
|
|
|
|
Data zijn vastgelegde feiten en kunnen betrekking hebben tot elk aspect binnen een business; Een IT-servicemanagement tool om incidenten in bij te houden, een centraal 'directory' systeem om accounts en contactgegevens bij te houden enzovoorts. Al deze data staat verspreid in meerdere verschillende software en formaten elk gespecialiseerd om deze te verwerken en/of op te slaan.
|
|
|
|
|
|
|
|
|
|
In elk domein zijn andere data relevant. Voor netwerkbeheer kunnen hoofdzakelijk de volgende categorieen worden gedefinieerd:
|
|
|
|
|
In elk domein zijn andere data relevant. Voor netwerkbeheer kunnen hoofdzakelijk de volgende categorieën worden gedefinieerd:
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item Apparatuur (CMDB)\\
|
|
|
|
|
@ -40,16 +40,16 @@ In elk domein zijn andere data relevant. Voor netwerkbeheer kunnen hoofdzakelijk
|
|
|
|
|
\item Klanten (CRM)\\
|
|
|
|
|
Gegevens over klanten en locaties zoals contactgegevens en fysieke adressen.
|
|
|
|
|
\item Service Management (ITSM)\\
|
|
|
|
|
Een systeem waarin het proces met betrekking tot de dienstverling in wordt bijgehouden (bijvoorbeeld incidenten en changes).
|
|
|
|
|
Een systeem waarin het proces met betrekking tot de dienstverlening in wordt bijgehouden (bijvoorbeeld incidenten en changes).
|
|
|
|
|
\item Monitoring\\
|
|
|
|
|
Gegevens over de operationele status van netwerken en de apparatuur die zich hierin bevind.
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
\subsection{Application Programming Interfaces}\label{subsection:api}
|
|
|
|
|
|
|
|
|
|
Een API kan vele vormen hebben en kenmerkt zich altijd als een manier om gebruik te maken van bestaande functionaliteit (waaronder het ophalen van gegevens). Er bestaan meerdere vormen van API's. Bijvoorbeeld softwarelibraries en Web APIs. Softwarelibaries zijn meestal kant-en-klare paketten die te downloaden zijn om bepaalde (gespecialiseerde) functionaliteit te bieden voor een softwareontwikkelaar. Op deze manier hoeft een softwareontwikkelaar niet alles zelf te schrijven maar kan gebruik worden gemaakt van bestaande en geteste code.
|
|
|
|
|
Een API kan vele vormen hebben en kenmerkt zich altijd als een manier om gebruik te maken van bestaande functionaliteit (waaronder het ophalen van gegevens). Er bestaan meerdere vormen van API's. Bijvoorbeeld softwarelibraries en Web APIs. Softwarelibaries zijn meestal kant-en-klare pakketten die te downloaden zijn om bepaalde (gespecialiseerde) functionaliteit te bieden voor een softwareontwikkelaar. Op deze manier hoeft een softwareontwikkelaar niet alles zelf te schrijven maar kan gebruik worden gemaakt van bestaande en geteste code.
|
|
|
|
|
|
|
|
|
|
Een Web API is een koppeling die gebruikt kan worden over een netwerk en data formaten zoals JSON of XML hanteerd. Populaire Web API-standaarden zijn bijvoorbeeld REST en GraphQL. De voornaamste eigenschap van een web api is dat deze communicatie mogelijk maakt tussen verschillende programmeertalen, frameworks en externe systemen.
|
|
|
|
|
Een Web API is een koppeling die gebruikt kan worden over een netwerk en data formaten zoals JSON of XML hanteert. Populaire Web API-standaarden zijn bijvoorbeeld REST en GraphQL. De voornaamste eigenschap van een web api is dat deze communicatie mogelijk maakt tussen verschillende programmeertalen, frameworks en externe systemen.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{Event-Driven}
|
|
|
|
|
@ -95,12 +95,12 @@ Bij een declaratieve schrijfstijl wordt het eindresultaat beschreven (wat) in pl
|
|
|
|
|
\label{fig:declaratief_voorbeeld}
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
Een voordeel van een declaratieve schrijfstijl is dat deze beter te begrijpen is. Er hoeft alleen nagedacht te worden over wat het gewenste resultaat is en niet hoe deze bereikt kan worden. Wanneer automatisering wordt toegepast in een afdeling die niet gespecialiseerd is in het ontwikkelen en onderouden van code is een abstractere programmeertaal een voordeel.
|
|
|
|
|
Een voordeel van een declaratieve schrijfstijl is dat deze beter te begrijpen is. Er hoeft alleen nagedacht te worden over wat het gewenste resultaat is en niet hoe deze bereikt kan worden. Wanneer automatisering wordt toegepast in een afdeling die niet gespecialiseerd is in het ontwikkelen en onderhouden van code is een abstractere programmeertaal een voordeel.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{Use cases}
|
|
|
|
|
|
|
|
|
|
Er zijn vele usecases voor automatisering. Enkele veelvoorkomende categorieen zijn bijvoorbeeld configuratie management en event processing.
|
|
|
|
|
Er zijn vele usecases voor automatisering. Enkele veelvoorkomende categorieën zijn bijvoorbeeld configuratie management en event processing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection*{Configuratie management}
|
|
|
|
|
@ -115,19 +115,19 @@ Bij een semigestructureerde syntax wordt geen gebruik gemaakt van een bepaald ge
|
|
|
|
|
Bij event processing is het doel om bepaalde acties uit te voeren als reactie op een bepaalde gebeurtenis. Bijvoorbeeld een welkomstmail sturen op het moment dat een nieuwe gebruiker wordt aangemaakt in een CRM. Het realiseren van dit soort automatiseringen is grotendeels afhankelijk van de functionaliteiten van de applicatie waarin de gebeurtenis optreed. Deze applicatie zal in staat moeten zijn om een signaal af te geven op het moment dat een opgegeven gebeurtenis optreed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{Tools}
|
|
|
|
|
\subsection{Eigenschappen van automatiseringstools}\label{subsec:eigenschappen_automatiseringstools}
|
|
|
|
|
|
|
|
|
|
Er zijn vele tools welke automatisering bevorderen of volledig zijn geoptimaliseerd voor een 'automatisering'-usecase. Dit houdt onder andere in dat de tools veel functionaliteiten bevatten voor het verwerken van data en het communiceren met systemen. Over het algemeen hebben automatietools de volgende karakteristieken:
|
|
|
|
|
Er zijn vele tools welke automatisering bevorderen of volledig zijn geoptimaliseerd voor een 'automatisering'-usecase. Dit houdt onder andere in dat de tools veel functionaliteiten bevatten voor het verwerken van data en het communiceren met systemen. Over het algemeen hebben automatiseringstools de volgende karakteristieken:
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
\item \textbf{Data-extractie en -injectie functionaliteit}\\
|
|
|
|
|
Bevatten een uitgebreid assortiment aan functies waarmee gecomuniceerd kan worden met verschillende systemen en in verschillende datastructuren en protocollen.
|
|
|
|
|
Bevatten een uitgebreid assortiment aan functies waarmee gecommuniceerd kan worden met verschillende systemen en in verschillende datastructuren en protocollen.
|
|
|
|
|
\item \textbf{Data transformatie functionaliteit}\\
|
|
|
|
|
Bevatten een uitgebreid assortiment aan functies waarmee veelvoorkomende operaties kunnen worden uitgevoerd op data. Zoals filteren, sorteren en omzetten van datastructuren.
|
|
|
|
|
\item \textbf{Declaratieve syntax}\\
|
|
|
|
|
Hebben een manier om op een declaratieve manier de taak vast te leggen.
|
|
|
|
|
\item \textbf{Uitbreidbaar}\\
|
|
|
|
|
Kan worden uitgebreid wanneer er geen bestaande functionaliteit zijn om het gewenste resultaat te bereiken. Dit is belangrijk omdat elke business een andere omgeving heeft. Om een automatietool tot volledige potentie te kunnen gebruiken moet deze maximaal geintegreerd zijn in de omgeving van een business en het mogelijk maken om seamless met alle software en apparaten te kunnen integreren.
|
|
|
|
|
Kan worden uitgebreid wanneer er geen bestaande functionaliteit zijn om het gewenste resultaat te bereiken. Dit is belangrijk omdat elke business een andere omgeving heeft. Om een automatiseringstool tot volledige potentie te kunnen gebruiken moet deze maximaal geïntegreerd zijn in de omgeving van een business en het mogelijk maken om seamless met alle software en apparaten te kunnen integreren.
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -135,9 +135,9 @@ Er zijn vele tools welke automatisering bevorderen of volledig zijn geoptimalise
|
|
|
|
|
|
|
|
|
|
Ansible is een op Python gebaseerde tool waarmee zeer diverse soorten automatiseringen kunnen worden gerealiseerd dankzij een uitgebreid assortiment aan eenvoudig te gebruiken modules en een YAML gebaseerde "Domain Specific Language" \cite{ansible}.
|
|
|
|
|
|
|
|
|
|
Ansible is door KEMBIT als automatiseringstool naar keuze verkozen dankzij de flexibiliteit, uitbreidbaar, gebruiksvriendelijkheid en inzetbaarheid in haar huidige productieomgevingen. De tool is initïeel in gebruik genomen door het Expert Team Infrastructure, een ander team binnen KEMBIT gespecialiseerd in het beheren van servers.
|
|
|
|
|
Ansible is door KEMBIT als automatiseringstool naar keuze verkozen dankzij de flexibiliteit, uitbreidbaar, gebruiksvriendelijkheid en inzetbaarheid in haar huidige productieomgevingen. De tool is initieel in gebruik genomen door het Expert Team Infrastructure, een ander team binnen KEMBIT gespecialiseerd in het beheren van servers.
|
|
|
|
|
|
|
|
|
|
Na evaluatie door het networking team wordt de tool als zeer potentieel beschouwd dankzij het uitgebreide assortiment aan netwerkmodules en officiele ondersteuning voor het automatiseren van netwerk gerelateerde taken waaronder configureren.
|
|
|
|
|
Na evaluatie door het networking team wordt de tool als zeer potentieel beschouwd dankzij het uitgebreide assortiment aan netwerkmodules en officiële ondersteuning voor het automatiseren van netwerk gerelateerde taken waaronder configureren.
|
|
|
|
|
|
|
|
|
|
\subsubsection*{Declaratieve Domain Specific Language}
|
|
|
|
|
|
|
|
|
|
@ -166,9 +166,9 @@ Ansibles DSL is gebaseerd op YAML in combinatie met text templating door Jinja2.
|
|
|
|
|
|
|
|
|
|
Ansible werkt op basis van een 'agentless' architectuur. Dit betekent dat er geen software nodig is op de apparatuur die beheerd wordt met Ansible. In het geval van het beheren van netwerkapparatuur is dit een vereiste. Dit komt doordat geen conventionele besturingssystemen worden uitgevoerd op deze apparaten maar een vrij minimalistisch besturingssysteem zonder de mogelijkheid om externe applicaties uit te voeren.
|
|
|
|
|
|
|
|
|
|
Bij het aansturen van een traditionele server met bijvoorbeeld Linux werkt Ansible door het overzetten van een Python script. Dit Python script wordt door Ansible zelf gegenereerd op basis van het playbook. Vervolgens wordt dit Python script uitgevoerd op het doelsysteem. Dit betekent wel dat Python hierop geinstalleerd moet zijn.
|
|
|
|
|
Bij het aansturen van een traditionele server met bijvoorbeeld Linux werkt Ansible door het overzetten van een Python script. Dit Python script wordt door Ansible zelf gegenereerd op basis van het playbook. Vervolgens wordt dit Python script uitgevoerd op het doelsysteem. Dit betekent wel dat Python hierop geïnstalleerd moet zijn.
|
|
|
|
|
|
|
|
|
|
Ansible heeft ook ondersteuning voor verschillende andere soorten van verbindingen in plaats van het overzetten van een script en het uitvoeren hiervan op het doelsysteem. Deze andere soorten verbindingen worden mogelijk gemaakt door 'connection plugins'. Dit zijn plugins die definieren hoe Ansible kan communiceren met apparatuur en/of systemen. Omdat de meeste netwerkapparatuur in beheer door het Expert Team Networking (en netwerkapparatuur in het algemeen) geen ondersteuning biedt voor het uitvoeren van applicaties zoals Python zullen deze apparaten op een andere manier aangestuurd dienen te worden.
|
|
|
|
|
Ansible heeft ook ondersteuning voor verschillende andere soorten van verbindingen in plaats van het overzetten van een script en het uitvoeren hiervan op het doelsysteem. Deze andere soorten verbindingen worden mogelijk gemaakt door 'connection plugins'. Dit zijn plugins die definiëren hoe Ansible kan communiceren met apparatuur en/of systemen. Omdat de meeste netwerkapparatuur in beheer door het Expert Team Networking (en netwerkapparatuur in het algemeen) geen ondersteuning biedt voor het uitvoeren van applicaties zoals Python zullen deze apparaten op een andere manier aangestuurd dienen te worden.
|
|
|
|
|
|
|
|
|
|
Om netwerkapparaten aan te sturen zijn verschillende andere mogelijkheden. Ansible biedt de volgende connection plugins voor netwerkapparatuur:
|
|
|
|
|
|
|
|
|
|
@ -182,12 +182,37 @@ Om netwerkapparaten aan te sturen zijn verschillende andere mogelijkheden. Ansib
|
|
|
|
|
|
|
|
|
|
\subsubsection*{Uitbreidbaarheid}
|
|
|
|
|
|
|
|
|
|
Ansible is zeer uitbreidbaar door het creeren van in Python geschreven modules waarmee bijna alle gewenste additionele koppelingen en/of functionaliteiten kunnen worden toegevoegd aan de automatietool. Ansible kent vele vormen van uitbreiding. Hiermee kunnen verschillende aspecten van de tool worden uitgebreid. Met name modules en inventory plugins
|
|
|
|
|
Ansible is zeer uitbreidbaar door het creëren van in Python geschreven modules waarmee bijna alle gewenste additionele koppelingen en/of functionaliteiten kunnen worden toegevoegd aan de automatiseringstools. Ansible kent vele vormen van uitbreiding. Hiermee kunnen verschillende aspecten van de tool worden uitgebreid. Met name modules en inventory plugins.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection*{Nadelen}
|
|
|
|
|
|
|
|
|
|
Het gebruikmaken van tools zoals Ansible heeft ook enkele nadelen of zaken om rekening mee te houden. Deze zijn als volgt:
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item \textbf{Geen general purpose tool.} Ondanks de flexibiliteit die Ansible biedt is de tool niet geoptimaliseerd voor usecases anders dan configuration management. Het gebruiken van Ansible voor andere usecases kan limitaties van de syntax van de tool opzoeken. Dit kan de gemaakte automatisering moeilijk onderhoudbaar maken door de complexiteiten in de implementatie.
|
|
|
|
|
\item \textbf{Lastig testen.} Het kan lastig zijn om de gemaakte automatisering met Ansible te testen. Dit komt doordat Ansible gemaakt is om acties uit te voeren op productiesystemen en dat de uitgevoerde acties ook afhankelijk zijn van de configuraties van deze systemen. Zonder een testomgeving die een accurate nabootsing is van de productieomgeving is de enige optie om een playbook te testen door de \lstinline{-k} parameter te gebruiker. Deze parameter zorgt ervoor dat Ansible alle veranderingen die de tool zou maken weergeeft aan de gebruiker zonder deze daadwerkelijk te maken.
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{DevOps}
|
|
|
|
|
|
|
|
|
|
DevOps is een term in de ICT waarmee verwezen wordt naar het hanteren van bepaalde werkwijzes bij het ontwikkelen en beheren van infrastructuur en code.
|
|
|
|
|
|
|
|
|
|
Het woord 'DevOps' is een combinatie van de woorden 'development' en 'operations'. Met development wordt het ontwikkelen, testen en onderhouden van software bedoelt door een team die hierin is gespecialiseerd. Het beheren van servers, applicaties en netwerken zijn daarentegen voorbeelden van taken die behoren tot teams of afdelingen die hierin gespecialiseerd zijn, naar deze teams wordt ook wel verwezen met 'operations'.
|
|
|
|
|
|
|
|
|
|
Beide teams zijn gespecialiseerd in hun eigen domein. Bij het implementeren van praktijken zoals CI/CD of de wens voor automatisering in het beheren van servers, applicaties of netwerken komt echter overlap in de vereiste vaardigheden, kennis en tooling.
|
|
|
|
|
|
|
|
|
|
Een van de belangrijkste principes van DevOps is de samenwerking en communicatie tussen software development en operationele teams \cite{jabbari_what_2016}. Het doel van deze samenwerking is een beroep te doen op elkaars ervaring en kennis over hun domein. Hiermee kunnen de teams elkaar helpen met het bereiken van hun doelen.
|
|
|
|
|
|
|
|
|
|
Het succesvol automatiseren van taken betekent gebruik kunnen maken van tools, werkwijzes en technieken uit de software development sector. De kennis om dit te doen is over het algemeen niet aanwezig in het team. Dit komt doordat het team gespecialiseerd is in het beheren van netwerkinfrastructuur, niet het ontwikkelen van software. Door het opzetten van een samenwerking met het interne software development team van KEMBIT kan deze benodigde kennis worden binnengehaald in het team.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{Continuous Practices}
|
|
|
|
|
|
|
|
|
|
Continuous practices zoals continuous integration, delivery en deployment zijn praktijken in de software development sector die ervoor zorgen dat met hoge kwaliteit, regelmaat en betrouwbaarheid nieuwe features en producten kunnen worden uitgebracht \cite{shahin_continuous_2017}.
|
|
|
|
|
Continuous practices zoals continuous integration, delivery en deployment zijn praktijken in de software development sector die ervoor zorgen dat met hoge kwaliteit, regelmaat en betrouwbaarheid nieuwe features en producten kunnen worden uitgebracht \cite{shahin_continuous_2017}. Deze praktijken worden regelmatig geassocieerd met DevOps doordat deze praktijken vergelijkbare doelstellingen hebben, het versnellen en automatiseren van ontwikkelcyclus.
|
|
|
|
|
|
|
|
|
|
KEMBIT kan deze praktijken ook gebruiken bij het ontwikkelen van automatiseringen en tools. Dit zorgt ervoor dat de ontwikkeling van deze tools sneller en betrouwbaarder wordt.
|
|
|
|
|
|
|
|
|
|
\begin{figure}[h]
|
|
|
|
|
\centering
|
|
|
|
|
@ -212,7 +237,18 @@ In de context van netwerkbeheer kan dat betekenen om netwerkconfiguraties te con
|
|
|
|
|
\textbf{Continuous Deployment (CD)} gaat een stap verder en publiceert changes structureel en geautomatiseerd naar een productieomgeving. Het gebruik van CD impliceert ook het gebruik van CDE. Alleen is de finale stap van het publiceren naar een productieomgeving niet meer handmatig maar automatisch. \cite{shahin_continuous_2017}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\section{Huidige situatie}
|
|
|
|
|
\subsection{Ansible AWX}
|
|
|
|
|
|
|
|
|
|
Ansible AWX is een applicatie die op een server geïnstalleerd moet worden en een webinterface biedt waarmee Ansible taken kunnen worden gestart en gepland. AWX biedt ook een API waarmee onder andere taken kunnen worden gestart, de status kan worden gecontroleerd en de resultaten kunnen worden opgehaald. Op deze manier biedt AWX een centraal automatieplatform gebaseerd op Ansible \cite{ansible_awx}.
|
|
|
|
|
|
|
|
|
|
AWX is met name interessant omdat dit CI/CD mogelijk maakt omdat het een API beschikbaar stelt. Hierdoor kunnen andere applicaties bepaalde taken starten door een API call te doen.
|
|
|
|
|
|
|
|
|
|
KEMBIT heeft zelf een server geïnstalleerd met AWX en beschikbaar gesteld voor de teams binnen het bedrijf. Op deze manier kan de functionaliteit die de applicatie biedt worden benut voor het (grootschalig) automatiseren van diverse taken met Ansible.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\section{Huidige situatie}\label{section:huidige_situatie}
|
|
|
|
|
|
|
|
|
|
Dit hoofdstuk beschrijft de huidige manier van netwerkbeheer, werkwijze en omgeving waarin het Expert Team Networking zich bevind om te identificeren waar de mogelijkheden en potentiele verbeteringen zijn ten opzichte van netwerkautomatisering.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{Beheeromgeving}
|
|
|
|
|
@ -230,26 +266,21 @@ Naast het bieden van toegang tot een shell maakt SSH nog veel meer mogelijk zoal
|
|
|
|
|
|
|
|
|
|
Het Expert Team Networking heeft al enkele tools in gebruik die gedeeltelijke automatisering mogelijk maken. Zoals vernoemd in het vorige hoofdstuk is de koppeling tussen TOPDesk Asset Management en SuperPuTTY een voorbeeld van een relatief kleine maar waardevolle automatisering.
|
|
|
|
|
|
|
|
|
|
Zo zijn verschillende PowerShell tools gemaakt om bepaalde functionaliteiten te bieden zoals het uitvoeren van een commando op een groter aantal netwerkapparaten tegelijkertijd. Hiernaast wordt gebruik gemaakt van Kiwi CatTools \cite{cattools}, een tool die wordt gebruikt om backups te maken van productie netwerkapparatuur op een tijdschema.
|
|
|
|
|
Zo zijn verschillende PowerShell tools gemaakt om bepaalde functionaliteiten te bieden zoals het uitvoeren van een commando op een groter aantal netwerkapparaten tegelijkertijd. Ook wordt PowerShell gebruikt voor het automatiseren van diverse kleine taken in het team.
|
|
|
|
|
|
|
|
|
|
Ook wordt gebruik gemaakt van Kiwi CatTools \cite{cattools}, een tool die wordt gebruikt om back-ups te maken van productie netwerkapparatuur op een tijdschema. Deze tool biedt echter een zeer gelimiteerd aantal mogelijkheden en moet alsnog handmatig geconfigureerd worden.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{Data management}
|
|
|
|
|
|
|
|
|
|
Gezien het belang van data is voor het mogelijk maken van automatiseren wordt ten eerste inzichtelijk gemaakt welke data er al opgeslagen wordt, in welk systeem en welke koppelingen deze systemen beschikbaar stellen.
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item TOPDesk
|
|
|
|
|
\item TOPDesk Asset Management
|
|
|
|
|
\item PRTG \cite{prtg}
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{Topdesk}
|
|
|
|
|
|
|
|
|
|
Topdesk is een IT-servicemanagent tool die wordt gebruikt door KEMBIT in het uitvoeren van hun werkzaamheden. TOPDesk faciliteerd in het beheren van het ITIL proces door het bieden van een centraal systeem voor incidenten, changes en projecten \cite{topdesk_itsm}.
|
|
|
|
|
Topdesk is een IT-servicemanagent tool die wordt gebruikt door KEMBIT in het uitvoeren van hun werkzaamheden. TOPDesk faciliteert in het beheren van het ITIL proces door het bieden van een centraal systeem voor incidenten, changes en projecten \cite{topdesk_itsm}.
|
|
|
|
|
|
|
|
|
|
Omdat TOPDesk als centraal punt dient in de dienstverling van KEMBIT kan het integreren hiermee mogelijkheden bieden voor automatisering waaronder:
|
|
|
|
|
Omdat TOPDesk als centraal punt dient in de dienstverlening van KEMBIT kan het integreren hiermee mogelijkheden bieden voor automatisering waaronder:
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item Automatisch bijwerken van incidenten.
|
|
|
|
|
@ -335,53 +366,55 @@ Onderling zijn er relatief weinig verschillen in deze templates behalve de naam,
|
|
|
|
|
|
|
|
|
|
Om inzicht te krijgen in de huidige verdeling van tijd per werkzaamheden is een analyse gemaakt van afgeronde tickets en changes door het Expert Team Networking in de periode 2020 tot 2022. Alle grafieken presenteren genormaliseerde waardes (percentages) in plaats van daadwerkelijke tijdseenheden.
|
|
|
|
|
|
|
|
|
|
Incidenten en Changes in TOPDesk kennen een hoofd- en subcategorie. Deze categorieën kunnen zelf worden aangemaakt door de beheerder aan de hand van de context waarin het systeem wordt gebruikt. Vervolgens kan per incident en/of wijziging een categorie worden geselecteerd. De analyses zijn gemaakt op basis van de ingevulde categorie en gespendeerde tijd per incident en wijziging. Houd rekening met het discussiepunt omtrent het gebruik van de TOPdesk categorieën toegelicht in hoofdstuk \ref{discussie_topdesk_categorie}.
|
|
|
|
|
Incidenten en Changes in TOPDesk kennen een hoofd- en subcategorie. Deze categorieën kunnen zelf worden aangemaakt door de beheerder aan de hand van de context waarin het systeem wordt gebruikt. Vervolgens kan per incident en/of wijziging een categorie worden geselecteerd. De analyses zijn gemaakt op basis van de ingevulde categorie en gespendeerde tijd per incident en wijziging. Deze gespendeerde tijd wordt in het bedrijf zorgvuldig bijgehouden. De categorieën die in TOPdesk aangemaakt zijn zijn te zien in \ref{tbl:categorieen_topdesk}
|
|
|
|
|
|
|
|
|
|
Binnen KEMBIT zijn de categorieën aangemaakt zoals te zien in de volgende tabel:
|
|
|
|
|
\begin{table}[h]
|
|
|
|
|
\caption{Categorieën die gebruikt worden door KEMBIT in TOPdesk}
|
|
|
|
|
\label{tbl:categorieen_topdesk}
|
|
|
|
|
\begin{tabular}{p{0.2\linewidth} p{0.6\linewidth}}
|
|
|
|
|
\toprule
|
|
|
|
|
\textbf{Categorie} & \textbf{Omschrijving}\\
|
|
|
|
|
\midrule
|
|
|
|
|
|
|
|
|
|
\begin{tabular}{p{0.2\linewidth} p{0.6\linewidth}}
|
|
|
|
|
\toprule
|
|
|
|
|
\textbf{Categorie} & \textbf{Omschrijving}\\
|
|
|
|
|
\midrule
|
|
|
|
|
Internet&
|
|
|
|
|
Het ticket of wijziging heeft betrekking tot internet biedende functionaliteiten.\\
|
|
|
|
|
|
|
|
|
|
Internet&
|
|
|
|
|
Het ticket of wijziging heeft betrekking tot internet biedende functionaliteiten.\\
|
|
|
|
|
Router / Modem&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot router(s) en/of modem(s).\\
|
|
|
|
|
|
|
|
|
|
Router / Modem&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot router(s) en/of modem(s).\\
|
|
|
|
|
Firewall&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot firewall(s).\\
|
|
|
|
|
|
|
|
|
|
Firewall&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot firewall(s).\\
|
|
|
|
|
Wifi&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot de werking of apparatuur gerelateerd aan het WiFi.\\
|
|
|
|
|
|
|
|
|
|
Wifi&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot de werking of apparatuur gerelateerd aan het WiFi.\\
|
|
|
|
|
Switch&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot het apparaat type switch.\\
|
|
|
|
|
|
|
|
|
|
Switch&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot het apparaat type switch.\\
|
|
|
|
|
VPN&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot bepaalde netwerktunnels.\\
|
|
|
|
|
|
|
|
|
|
VPN&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot bepaalde netwerktunnels.\\
|
|
|
|
|
Bekabeling&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot netwerkbekabeling.\\
|
|
|
|
|
|
|
|
|
|
Bekabeling&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot netwerkbekabeling.\\
|
|
|
|
|
SAN / NAS&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot opslagapparatuur op een netwerk.\\
|
|
|
|
|
|
|
|
|
|
SAN / NAS&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot opslagapparatuur op een netwerk.\\
|
|
|
|
|
Appliance&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot een appliance (meestal een virtuele machine)\\
|
|
|
|
|
|
|
|
|
|
Appliance&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot een appliance (meestal een virtuele machine)\\
|
|
|
|
|
UPS&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot Uninteruptable Power Supply. Een apparaat welke andere netwerkapparatuur voorziet van energie in het geval van een stroomstoring.\\
|
|
|
|
|
|
|
|
|
|
UPS&
|
|
|
|
|
Het incident of wijziging heeft betrekking tot Uninteruptable Power Supply. Een apparaat welke andere netwerkapparatuur voorziet van energie in het geval van een stroomstoring.\\
|
|
|
|
|
Overig&
|
|
|
|
|
Alle overige incident(en) en/of wijziging(en).\\
|
|
|
|
|
|
|
|
|
|
Overig&
|
|
|
|
|
Alle overige incident(en) en/of wijziging(en).\\
|
|
|
|
|
\bottomrule
|
|
|
|
|
|
|
|
|
|
\end{tabular}
|
|
|
|
|
\end{table}
|
|
|
|
|
|
|
|
|
|
\bottomrule
|
|
|
|
|
|
|
|
|
|
\end{tabular}
|
|
|
|
|
|
|
|
|
|
In de context van dit project is het met name relevant om het type changes/incidenten te analyseren waar potentieel automatisering bij kan worden toegepast om een beeld te krijgen van de hoeveelheid tijd die kan worden bespaard. Automatisering is met name interessant om toe te passen bij werkzaamheden wanneer een groter aantal apparaten moet worden geconfigureerd of bepaalde informatie van moet worden verkregen.
|
|
|
|
|
In de context van dit project is het met name relevant om het type changes/incidenten te analyseren waar potentieel automatisering bij kan worden toegepast om een beeld te krijgen van de hoeveelheid tijd die kan worden bespaard. Helaas bieden de categorieën van de geanalyseerde tickets en incidenten weinig inzicht in de exacte taak die is uitgevoerd. Hierdoor is het lastig vast te stellen of het toepassen van automatisering op binnen een bepaalde categorie een aanzienlijke tijdsbesparing.
|
|
|
|
|
|
|
|
|
|
In afbeelding \ref{fig:changes_tijd_categorie} is de totale verdeling van gespendeerde tijd te zien per categorie. Uit deze grafiek blijkt dat de meeste tijd wordt besteed aan de 'overige' en 'internet' categorieën.
|
|
|
|
|
|
|
|
|
|
@ -405,14 +438,14 @@ In figuur \ref{fig:changes_aantal_categorie} is het aantal changes per categorie
|
|
|
|
|
\begin{figure}[h]
|
|
|
|
|
\centering
|
|
|
|
|
\includegraphics[scale=0.6]{changes_tijd_gemiddeld_categorie.pdf}
|
|
|
|
|
\caption{Gemiddelde bestede tijd aan changes per categorie (genormaliseerd)}
|
|
|
|
|
\caption{Gemiddelde bestede tijd aan changes per categorie (percentage)}
|
|
|
|
|
\label{fig:changes_tijd_gemiddeld_categorie}
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
\begin{figure}[h]
|
|
|
|
|
\centering
|
|
|
|
|
\includegraphics[scale=0.6]{incidenten_tijd_categorie.pdf}
|
|
|
|
|
\caption{Gemiddelde bestede tijd per categorie (genormaliseerd)}
|
|
|
|
|
\caption{Gemiddelde bestede tijd per categorie (percentage)}
|
|
|
|
|
\label{fig:incidenten_tijd_gemiddeld_categorie}
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
@ -454,7 +487,7 @@ Het Expert Team Networking maakt gebruik van de monitoringsoftware PRTG \cite{pr
|
|
|
|
|
|
|
|
|
|
Het Expert Team Networking zorgt ervoor dat alle apparaten voorzien zijn van software-updates. Dit is van belang omdat oudere softwareversies kwetsbaarheden kunnen bevatten die mogelijk het netwerk minder veilig kunnen maken.
|
|
|
|
|
|
|
|
|
|
Het uitvoeren van dit proces begint bij het selecteren van welke apparaten worden meegenomen en naar welke softwareversie deze apparaten geupgraded worden. Met het selecteren van een nieuwe softwareversie moet ook rekening gehouden worden met eventuele bekende bugs in deze nieuwe softwareversie. Indien een nieuwere softwareversie wordt gevonden met reeds bekende bugs die geen of weinig invloed hebben op de manier waarop de apparatuur gebruikt wordt kan het onderhoud voorbereid worden.
|
|
|
|
|
Het uitvoeren van dit proces begint bij het selecteren van welke apparaten worden meegenomen en naar welke softwareversie deze apparaten geüpgraded worden. Met het selecteren van een nieuwe softwareversie moet ook rekening gehouden worden met eventuele bekende bugs in deze nieuwe softwareversie. Indien een nieuwere softwareversie wordt gevonden met reeds bekende bugs die geen of weinig invloed hebben op de manier waarop de apparatuur gebruikt wordt kan het onderhoud voorbereid worden.
|
|
|
|
|
|
|
|
|
|
Het onderhoud voorbereiden betekent het overzetten van de nieuwe software naar de apparatuur. Vervolgens kan het onderhoud uitgevoerd worden in het geplande onderhoudsvenster door de apparatuur te rebooten en de nieuwe softwareversie actief te maken.
|
|
|
|
|
|
|
|
|
|
@ -495,7 +528,7 @@ Wanneer gevraagd wordt waar de hoogste behoefte ligt aan automatisering wordt he
|
|
|
|
|
\label{fig:suvey_mening_toepassingsgebied_automatisering}
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
In de surveyvraag in afbeelding \ref{fig:survey_leren_automatiseren} is gevraagd of werknemeners van het Expert Team Networking het gemakkelijk vinden om te leren over hoe ze automatiseringen toe kunnen passen. Hier geeft ruim de helft van de werknemers aan dat dit niet gemakkelijk is.
|
|
|
|
|
In de surveyvraag in afbeelding \ref{fig:survey_leren_automatiseren} is gevraagd of werknemers van het Expert Team Networking het gemakkelijk vinden om te leren over hoe ze automatiseringen toe kunnen passen. Hier geeft ruim de helft van de werknemers aan dat dit niet gemakkelijk is.
|
|
|
|
|
|
|
|
|
|
\begin{figure}[h!]
|
|
|
|
|
\centering
|
|
|
|
|
@ -536,15 +569,20 @@ In dit hoofdstuk wordt een analyse toegepast op de resultaten om vast te stellen
|
|
|
|
|
|
|
|
|
|
\subsection{Lastig om te leren}
|
|
|
|
|
|
|
|
|
|
Zoals vastgesteld in afbeelding \ref{fig:survey_leren_automatiseren} vinden de meeste werknemers van het Expert Team Networking het lastig om te leren over het toepassen van netwerkautomatisering in hun dagelijkse werkzaamheden.
|
|
|
|
|
Zoals vastgesteld in afbeelding \ref{fig:survey_leren_automatiseren} vinden de meeste werknemers van het Expert Team Networking het lastig om te leren over het toepassen van netwerkautomatisering in hun dagelijkse werkzaamheden. De oorzaak hiervan is met name dat het team nog niet weet hoe de tool impact heeft op hun dagelijkse werkzaamheden. Daarnaast is het nog niet gemakkelijk genoeg om de tool simpelweg uit te proberen in de praktijk. Dit komt omdat binnen het bedrijf uitsluitend met AWX gewerkt wordt in plaats van de CLI tool. Dit maakt het lastiger voor het team om gebruik te maken van Ansible omdat he minder gemakkelijk is om nieuwe een nieuwe automatisering te ontwikkelen met AWX. Dit komt door de volgende redenen:
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item AWX voegt meer nieuwe concepten toe bovenop het gebruiken van Ansible. De gebruikers moeten leren over versiebeheer en moeten daarnaast de taak aanmaken en configureren in AWX. Dit vraagt om een hoge voorafgaande tijdsinvestering.
|
|
|
|
|
\item Het is minder gemakkelijk om automatisering te ontwikkelen bij het gebruikmaken van AWX omdat de 'feedback loop' een stuk minder direct is (commit maken > pushen > syncen in AWX > taak aanmaken in AWX > taak starten > output uitlezen) dan wanneer deze wordt ontwikkeld en uitgevoerd op de beheerserver.
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{Niet mogelijk in de huidige beheeromgeving}
|
|
|
|
|
|
|
|
|
|
Het is niet mogelijk om gebruik te maken van Ansible in de huidige beheeromgeving. Dit komt doordat Ansible alleen geïnstalleerd kan worden op unix-achtige besturingssystemen \cite{ansible_install_requirements} en een op Windows-gebaseerde beheerserver wordt gebruikt.
|
|
|
|
|
Het is niet mogelijk om gebruik te maken van Ansible in de huidige beheeromgeving. Dit komt doordat Ansible alleen geïnstalleerd kan worden op unix-achtige besturingssystemen \cite{ansible_install_requirements} en een op Windows-gebaseerde beheerserver wordt gebruikt. Geen gebruik kunnen maken van Ansible op de beheerserver zorgt ervoor dat de tool zeer lastig te gebruiken is voor het team. De reden dat dit nog niet gerealiseerd is is dat het team naar uitsluitend naar AWX kijkt voor het gebruikmaken van Ansible.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{Geen integratie met gebruikte applicaties}
|
|
|
|
|
|
|
|
|
|
Ansible heeft geen bestaande modules en/of plugins om gebruik te kunnen maken van TOPdesk en TOPdesk Asset Management. Dit maakt het minder makkelijk om Ansible te gebruiken, zeker in de dagelijkse werzaamheden.
|
|
|
|
|
Ansible heeft geen bestaande modules en/of plugins om gebruik te kunnen maken van TOPdesk en TOPdesk Asset Management. Dit maakt het minder makkelijk om Ansible te gebruiken, zeker in de dagelijkse werkzaamheden. Met name het handmatig moeten samenstellen van een inventory voordat de tool gebruikt kan worden is een taak die veel tijd in beslag neemt en hierdoor een grote reden is dat de tool nog niet gebruikt wordt in de praktijk.
|
|
|
|
|
|
|
|
|
|
|