|
|
|
|
@ -5,7 +5,7 @@ Dit hoofdstuk documenteert de resultaten van het onderzoek.
|
|
|
|
|
|
|
|
|
|
\subsection*{Visie en wensen}
|
|
|
|
|
|
|
|
|
|
KEMBIT en het Expert Team Networking willen meer werkzaamheden uitvoeren met automatiseringstools, dit blijkt uit de survey afgenomen van het Expert Team Networking en het interview met opdrachtgever.
|
|
|
|
|
Het Expert Team Networking is een zelfsturend team binnen KEMBIT. En bepaald daarom haar eigen visie. Daarom is een survey afgenomen van de medewerkers van dit team.
|
|
|
|
|
|
|
|
|
|
\begin{figure}[h]
|
|
|
|
|
\centering
|
|
|
|
|
@ -23,7 +23,7 @@ In afbeelding \ref{fig:survey_pie_meer_automatisering_mening} is te zien dat het
|
|
|
|
|
\label{fig:survey_waarom_automatiseren}
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
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 automatisering toe kunnen passen. Hier geeft ruim de helft van de werknemers aan dat dit niet gemakkelijk is.
|
|
|
|
|
Uit de surveyvraag in afbeelding \ref{fig:survey_leren_automatiseren} blijkt dat de medewerkers het als moeilijk ervaren om te leren over het toepassen van automatiseringstools.
|
|
|
|
|
|
|
|
|
|
\begin{figure}[h]
|
|
|
|
|
\centering
|
|
|
|
|
@ -37,11 +37,13 @@ In de surveyvraag in afbeelding \ref{fig:survey_leren_automatiseren} is gevraagd
|
|
|
|
|
|
|
|
|
|
Om te evalueren waar het toepassen van automatisering het meest effectief kan zijn is een analyse gemaakt van de tijdsbesteding van het Expert Team Networking. Hier wordt gezocht naar werkzaamheden die veel tijd in beslag nemen en met redelijke regelmaat worden uitgevoerd.
|
|
|
|
|
|
|
|
|
|
Om dit te doen zijn rapportages gemaakt van verschillende statistieken in het IT-servicemanagement systeem van KEMBIT genaamd TOPdesk.
|
|
|
|
|
Om dit te doen zijn rapportages gemaakt van verschillende statistieken in het IT-servicemanagement systeem van KEMBIT genaamd TOPdesk. Dit systeem wordt gebruikt voor het bijhouden van tickets, changes en projecten binnen het bedrijf. Rapportages van gegevens in dit systeem kunnen een indicatie geven van de tijdsbesteding van het team.
|
|
|
|
|
|
|
|
|
|
Dit systeem wordt gebruikt voor het bijhouden van tickets, changes en projecten binnen het bedrijf. Hierdoor kunnen rapportages van gegevens in het systeem een indicatie geven van de tijdsverdeling tussen type incidenten en changes van het Expert Team Networking.
|
|
|
|
|
% weghalen van het omschrijven van plaatjes
|
|
|
|
|
% Toelichten waarom de data wel of niet iets toevoegd aan het project.
|
|
|
|
|
|
|
|
|
|
In afbeelding \ref{fig:changes_tijd_gemiddeld_categorie} is de totale verdeling van gemiddelde gespendeerde tijd te zien per categorie. Uit deze grafiek blijkt dat de meeste tijd wordt besteed aan changes die behoren tot de 'overige' en 'internet' categorieën.
|
|
|
|
|
|
|
|
|
|
Uit de gemiddelde bestede tijd aan changes (figuur \ref{fig:changes_tijd_gemiddeld_categorie}) en het aantal changes per categorie (figuur \ref{fig:changes_aantal_categorie}) blijkt dat de meeste tijd wordt besteed aan changes die behoren tot de 'overige' en 'internet' categorieën.
|
|
|
|
|
|
|
|
|
|
\begin{figure}[h]
|
|
|
|
|
\centering
|
|
|
|
|
@ -50,12 +52,6 @@ In afbeelding \ref{fig:changes_tijd_gemiddeld_categorie} is de totale verdeling
|
|
|
|
|
\label{fig:changes_tijd_gemiddeld_categorie}
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
Afbeelding \ref{fig:changes_aantal_categorie} geeft het aantal changes weer per categorie. De volgende zaken kunnen worden geconcludeerd omtrent de tijdsverdeling van changes:
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item Werkzaamheden met betrekking tot routers en/of modems
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
\begin{figure}[h]
|
|
|
|
|
\centering
|
|
|
|
|
\includegraphics[width=\linewidth]{changes_aantal_categorie.pdf}
|
|
|
|
|
@ -63,7 +59,8 @@ Afbeelding \ref{fig:changes_aantal_categorie} geeft het aantal changes weer per
|
|
|
|
|
\label{fig:changes_aantal_categorie}
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
In figuur \ref{fig:incidenten_tijd_gemiddeld_categorie} is de gemiddelde bestede tijd aan incidenten per categorie weergegeven.
|
|
|
|
|
Uit de gemiddelde bestede tijd aan incidenten (figuur \ref{fig:incidenten_tijd_gemiddeld_categorie}) en het aantal incidenten per categorie (figuur \ref{fig:incidenten_aantal_categorie}) valt op dat incidenten gerelateerd tot 'Uninteruptable Power Supplies' (UPS) het hoogste gemiddelde tijd inneemt maar slechts zeer sporadisch uitgevoerd worden.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\begin{figure}[h]
|
|
|
|
|
\centering
|
|
|
|
|
@ -72,8 +69,6 @@ In figuur \ref{fig:incidenten_tijd_gemiddeld_categorie} is de gemiddelde bestede
|
|
|
|
|
\label{fig:incidenten_tijd_gemiddeld_categorie}
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
Hier valt op dat incidenten gerelateerd tot Uninteruptable Power Supplies ('UPS') gemiddeld de meeste tijd in beslag nemen. Wanneer men achter kijkt naar de hoeveelheid incidenten die zijn afgehandeld onder deze categorie wordt duidelijk dat deze slechts sporadisch moeten worden uitgevoerd.
|
|
|
|
|
|
|
|
|
|
\begin{figure}[h]
|
|
|
|
|
\centering
|
|
|
|
|
\includegraphics[width=\linewidth]{incidenten_aantal_categorie.pdf}
|
|
|
|
|
@ -84,22 +79,28 @@ Hier valt op dat incidenten gerelateerd tot Uninteruptable Power Supplies ('UPS'
|
|
|
|
|
|
|
|
|
|
\subsection*{Ansible}
|
|
|
|
|
|
|
|
|
|
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} \cite{remmen_onderzoeksrapport}.
|
|
|
|
|
% er zijn onderzoeken verricht naar ansible dor kembit waaruit blijkt dat de tool voordelen biedt voor het team.
|
|
|
|
|
% de tool word echter (te) weinig gebruikt
|
|
|
|
|
|
|
|
|
|
% Het onderzoek heeft vastgesteld dat de tool geschikt is en voordelen biedt voor het team.
|
|
|
|
|
% Hoe is dat vastgesteld?
|
|
|
|
|
|
|
|
|
|
Binnen KEMBIT zijn onderzoeken verricht naar Ansible, een tool die gebruikt kan worden om op een geautomatiseerde manier configuraties aan te brengen aan systemen (waaronder netwerkapparatuur). Deze onderzoeken concluderen dat de tool voordelen heeft en geschikt is voor het bedrijf. Dit onderzoek valideert deze tool en of deze geschikt is voor het bedrijf.
|
|
|
|
|
|
|
|
|
|
Ansible heeft de volgende voordelen voor het Expert Team Networking:
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item Een uitgebreid assortiment van modules en plugins specifiek voor het uitvoeren van geautomatiseerd netwerkbeheer.
|
|
|
|
|
\item Een toegankelijke en minder complexe syntax voor het specificeren van gewenste configuraties.
|
|
|
|
|
\item Modulair plugin systeem waarmee de functionaliteiten kunnen worden uitgebreid en koppelingen met andere applicaties in het bedrijf kunnen worden gerealiseerd.
|
|
|
|
|
\item Automatiseringen gemaakt met Ansible kan worden gebruikt in CI/CD toepassingen door bijvoorbeeld AWX. Met deze software kan een bepaald playbook worden gestart op een tijdschema of vanuit een koppeling met een andere applicatie.
|
|
|
|
|
\item Een uitgebreid assortiment van modules en plugins specifiek voor het uitvoeren van geautomatiseerd netwerkbeheer \cite{ansible}.
|
|
|
|
|
\item Een toegankelijke en minder complexe syntax voor het specificeren van gewenste configuraties \cite{ansible}.
|
|
|
|
|
\item Modulair plugin systeem waarmee de functionaliteiten kunnen worden uitgebreid en koppelingen met andere applicaties in het bedrijf kunnen worden gerealiseerd \cite{ansible}.
|
|
|
|
|
\item Automatiseringen gemaakt met Ansible kunnen worden gebruikt in CI/CD toepassingen door bijvoorbeeld AWX. Met deze software kan een bepaald playbook worden gestart op een tijdschema of vanuit een koppeling met een andere applicatie.
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
Het succesvol gebruiken van Ansible in de praktijk heeft ook verschillende uitdagingen voor het team:
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item 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 Het kan lastig zijn om de gemaakte automatisering met Ansible te testen.
|
|
|
|
|
\item 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.
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -138,25 +139,24 @@ Na analyse van de situatie van de opdrachtgever en mogelijkheden met betrekking
|
|
|
|
|
\label{fig:root_cause}
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
\textbf{Ansible niet bruikbaar op de beheerserver.} Het Expert Team Networking voert beheer uit vanuit een centrale server. Deze server maakt gebruik van Windows waardoor Ansible niet zomaar geïnstalleerd kan worden. Dit zorgt ervoor dat het team Ansible niet kan gebruiken in productieomgevingen.
|
|
|
|
|
|
|
|
|
|
\textbf{Geen integraties met TOPdesk (Asset Management).} TOPdesk en TOPdesk Asset Management is een belangrijk onderdeel van de manier waarop het Expert Team Networking te werk gaat. Het ontbreken van bestaande integraties met Ansible maakt het minder gemakkelijk om Ansible in de dagelijkse werkzaamheden toe te passen. Met name het ontbreken van een manier waarop een Ansible inventory kan worden gemaakt op basis van TOPdesk Asset Management zorgt ervoor dat Ansible niet gemakkelijk gebruikt kan worden in de dagelijkse werkzaamheden.
|
|
|
|
|
|
|
|
|
|
\textbf{Lasting om te leren.} Het team ervaart dat het lastig is om te leren over hoe ze Ansible toe kunnen passen in de praktijk. 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.
|
|
|
|
|
\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}
|
|
|
|
|
|
|
|
|
|
\textbf{Geen integraties met TOPdesk (Asset Management).} TOPdesk en TOPdesk Asset Management is een belangrijk onderdeel van de manier waarop het Expert Team Networking te werk gaat. De tool wordt gebruikt om informatie in op te slaan over alle netwerkapparaten. Het ontbreken van bestaande integraties met Ansible maakt het minder gemakkelijk om Ansible in de dagelijkse werkzaamheden toe te passen. Met name het ontbreken van een manier waarop een selectie gemaakt kan worden op basis van TOPdesk Asset Management zorgt ervoor dat Ansible niet gemakkelijk gebruikt kan worden in de dagelijkse werkzaamheden.
|
|
|
|
|
|
|
|
|
|
\textbf{Ansible niet bruikbaar op de beheerserver.} Het Expert Team Networking voert beheer uit vanuit een centrale server. Deze server maakt gebruik van Windows waardoor Ansible niet zomaar geïnstalleerd kan worden. Hierdoor kan geen gebruik gemaakt worden van Ansible op deze server. Dit is nadelig omdat het een stuk minder gemakkelijk is om gebruik te maken van AWX bij het ontwikkelen van automatiseringen.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection*{Ontwerp}
|
|
|
|
|
|
|
|
|
|
Gedurende het onderzoek is vastgesteld dat het niet gemakkelijk is voor het Expert Team Networking om Ansible te kunnen gebruiken in de dagelijkse werkzaamheden. Een van de redenen hiervoor is het ontbreken van integraties tussen Ansible en andere applicaties die worden gebruikt door het team.
|
|
|
|
|
Het ontbreken van een integratie tussen Ansible en Asset Management is een van de grootste problemen bij het eenvoudig gebruikmaken van Ansible.
|
|
|
|
|
|
|
|
|
|
Dit ontwerp beschrijft een integratie tussen Ansible en TOPdesk Asset Management \cite{remmen_ontwerp}. Asset Management wordt door het team gebruikt om informatie over de hardware in op te slaan.
|
|
|
|
|
|
|
|
|
|
De integratie moet het mogelijk maken om automatisch de informatie van Asset Management te verkrijgen en beschikbaar te maken binnen Ansible. Hierdoor hoeft deze informatie niet handmatig te worden ingevoerd. Dit kan namelijk zeer veel tijd in beslag nemen door de grote hoeveelheid aan apparatuur en eigenschappen.
|
|
|
|
|
Dit ontwerp beschrijft een integratie tussen Ansible en TOPdesk Asset Management \cite{remmen_ontwerp}. De integratie moet het mogelijk maken om automatisch de informatie van Asset Management te verkrijgen en beschikbaar te maken binnen Ansible. Hierdoor hoeft deze informatie niet handmatig te worden ingevoerd. Dit kan namelijk zeer veel tijd in beslag nemen door de grote hoeveelheid aan apparatuur en eigenschappen.
|
|
|
|
|
|
|
|
|
|
Het systeem moet voldoen aan de volgende criteria:
|
|
|
|
|
|
|
|
|
|
@ -175,19 +175,26 @@ Deze criteria hebben tot de volgende ontwerpkeuzes geleid:
|
|
|
|
|
\item Maakt gebruik van de TOPdesk Asset Management REST API. Met deze API kunnen actuele gegevens worden opgehaald over de hardware.
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
Het systeem is uitgewerkt tot een Proof of Concept om te testen of het ontwerp functioneel is. Deze moet voldoen aan de ontwerpcriteria die eerder zijn toegelicht. Uiteindelijk heeft het Proof of Concept vastgesteld dat het ontwerp mogelijk is en aan de ontwerpcriteria wordt voldaan.
|
|
|
|
|
Om te bevestigen dat het ontworpen systeem werkt, is een Proof of Concept ontwikkeld in de vorm van een plugin voor Ansible. De plugin kan eenvoudig geïnstalleerd worden op elk systeem met Ansible door de ansible-galaxy tool. De plugin voegt de beschreven integratie toe met Asset Management en stelt de gebruiker in staat om de gewenste apparatuur te selecteren vanuit Asset management. Vervolgens kan deze apparatuur gebruikt worden in een playbook.
|
|
|
|
|
|
|
|
|
|
Het uitgevoerde Proof of Concept heeft bevestigt dat het ontwerp werkt en dat de plugin het mogelijk maakt om de lijst van apparaten op te bouwen op een snellere en makkelijkere manier dan wanneer dit handmatig zou moeten gebeuren.
|
|
|
|
|
|
|
|
|
|
% Ligt doe dat de plugin gemakkelijk geinstalleerd kan worden (Ansible collection)
|
|
|
|
|
% Werking van de plugin in eenvoudige termen
|
|
|
|
|
% Zelf ontwikkeld
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection*{Adviezen}
|
|
|
|
|
|
|
|
|
|
Op basis van het uitgevoerde onderzoek worden diverse adviezen uitgebracht naar de opdrachtgever met betrekking tot de vervolgstappen om netwerkautomatisering te kunnen bevorderen in de dagelijkse werkzaamheden van het Expert Team Networking \cite{remmen_advies}.
|
|
|
|
|
|
|
|
|
|
\textbf{Gebruikmaken van Ansible op de beheerserver.} Doordat de functionaliteiten van Ansible alleen gebruikt kunnen worden met AWX zorgt dit ervoor dat de medewerkers van het team minder snel resultaat kunnen boeken met de tool. Hierdoor maakt het de tool minder aantrekkelijk om te gebruiken. Het advies is om het mogelijk te maken om Ansible te gebruiken op de beheerserver. Op deze manier kan het team direct aan de slag met automatiseren waardoor de adoptie van Ansible een stuk sneller en gemakkelijker gaat voor de medewerkers.
|
|
|
|
|
|
|
|
|
|
\textbf{Installeren van WSL op de beheerserver.} Dit maakt het mogelijk voor het team om Ansible in de dagelijkse werkzaamheden te gebruiken.
|
|
|
|
|
\textbf{Implementeren van integraties en ondersteunende tools.} Om het aantrekkelijker te maken om gebruik te maken van Ansible moet de tool zo gemakkelijk mogelijk zijn om te gebruiken voor het team. De plugin die is ontwikkeld als onderdeel van dit onderzoek is hier een voorbeeld van. Het advies is om deze plugin verder te ontwikkelen en beschikbaar te stellen aan het team. Maar ook om in de toekomst te evalueren welke integraties en/of uitbreidingen van Ansible het gebruik van de tool nog effectiever kunnen maken.
|
|
|
|
|
|
|
|
|
|
\textbf{Ontwikkelen van nieuwe playbooks met Ansible CLI.} Dit maakt het gemakkelijk voor het team om gebruik te maken van Ansible ten opzichte van AWX door de directere manier van het uitvoeren van playbooks.
|
|
|
|
|
\textbf{Rekening houden met de kwaliteiten van Ansible.} Ansible is zeer geschikt voor het automatiseren van configuration management, maar is geen general purpose tool. Wanneer de tool wordt gebruikt voor usecases buiten configuration management moet worden nagedacht of Ansible de meest geschikte tool is. Veel automatie usecases kunnen ook worden gerealiseerd met tools zoals PowerShell en Python. Deze tools zijn general purpose scipttalen die geschikt zijn voor veel overige usecases. Deze zijn beter te testen en kunnen waarschijnlijk gemakkelijker geimplementeerd worden vergeleken met een oplossing met Ansible.
|
|
|
|
|
|
|
|
|
|
\textbf{Investeren in developmentkennis.} Het ontwikkelen en onderhouden van ondersteunende tools vereist ervaring en kennis van software development praktijken en onderwerpen. Daarnaast kan het adopteren van kennis over CI/CD, API's en werkwijzes het team helpen om haar eigen werkwijzes te innoveren.
|
|
|
|
|
|
|
|
|
|
\textbf{Investeren in developmentkennis.} Dit stelt het team in staat om nieuwe werkwijzes en technieken te ontwikkelen en gebruiken die automatisering stimuleren en de huidige werkwijze innoveren.
|
|
|
|
|
|
|
|
|
|
\textbf{Rekening houden met de kwaliteiten van Ansible.} Ansible is niet geschikt als general purpose scripttaal maar specifiek voor het automatiseren van configuration management. Bij het overwegen van het gebruik van Ansible moet worden nagedacht of het de juiste tool is voor de gewenste usecase.
|
|
|
|
|
|
|
|
|
|
|