\section*{Resultaten}

Dit hoofdstuk documenteert de resultaten van het onderzoek.


\subsection*{Visie en wensen}

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
    \includegraphics[width=\linewidth]{survey_pie_meer_automatisering_mening.pdf}
    \caption{Antwoord op de vraag over het meer gebruikmaken van automatisering in de dagelijkse werkzaamheden.}
    \label{fig:survey_pie_meer_automatisering_mening}
\end{figure}

In afbeelding \ref{fig:survey_pie_meer_automatisering_mening} is te zien dat het Expert Team Networking gelooft dat automatisering een positief effect heeft op de kwaliteit en tijdigheid van hun dagelijkse werkzaamheden. Daarnaast blijkt uit het antwoord dat medewerkers graag meer gebruik willen maken van automatiseringstools. Als reden wordt voornamelijk voor tijdsbesparing gekozen (afbeelding \ref{fig:survey_waarom_automatiseren}).

\begin{figure}[h]
    \centering
    \includegraphics[width=\linewidth]{survey_waarom_automatiseren.pdf}
    \caption{Waarom medewerkers meer gebruik willen maken van automatiseringstools}
    \label{fig:survey_waarom_automatiseren}
\end{figure}

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
    \includegraphics[width=\linewidth]{survey_leren_automatiseren.pdf}
    \caption{Is het gemakkelijk om te leren over automatiseren?}
    \label{fig:survey_leren_automatiseren}
\end{figure}


\subsection*{Analyse tijdsbesteding}

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. 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.

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
    \includegraphics[width=\linewidth]{changes_tijd_gemiddeld_categorie.pdf}
    \caption{Gemiddelde bestede tijd aan changes per categorie (percentage)}
    \label{fig:changes_tijd_gemiddeld_categorie}
\end{figure}

\begin{figure}[h]
    \centering
    \includegraphics[width=\linewidth]{changes_aantal_categorie.pdf}
    \caption{Aantal changes per categorie (percentage)}
    \label{fig:changes_aantal_categorie}
\end{figure}

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
    \includegraphics[width=\linewidth]{incidenten_tijd_gemiddeld_categorie.pdf}
    \caption{Gemiddelde bestede tijd aan incidenten per categorie (percentage)}
    \label{fig:incidenten_tijd_gemiddeld_categorie}
\end{figure}

\begin{figure}[h]
    \centering
    \includegraphics[width=\linewidth]{incidenten_aantal_categorie.pdf}
    \caption{Aantal incidenten per categorie (percentage)}
    \label{fig:incidenten_aantal_categorie}
\end{figure}


\subsection*{Analyse huidige tools}

Binnen KEMBIT worden automatietools gebruikt waaronder met name PowerShell en Ansible. Ansible is een tool waarmee op een automatische manier configuraties kunnen worden aangebracht aan diverse soorten systemen waaronder netwerkapparatuur. Terwijl adoptie door het Expert Team Networking laag blijft, heeft de tool voordelen die het zeer geschikt maken voor het gebruik door het team. Dit zijn met name de volgende:

\begin{itemize}
    \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. 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}


\subsection*{Bevindingen}

Na analyse van de situatie van de opdrachtgever en mogelijkheden met betrekking tot het implementeren van netwerkautomatisering in de praktijk zijn verschillende zaken vastgesteld.

\begin{figure}[h]
    \centering
    \includegraphics[width=\linewidth]{root_cause.pdf}
    \caption{Analyse van de situatie van de opdrachtgever met betrekking tot het implementeren van netwerkautomatisering.}
    \label{fig:root_cause}
\end{figure}

\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.
\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}

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. 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:

\begin{itemize}
    \item De informatie over de apparatuur is afkomstig uit de centrale bron van alle informatie met betrekking tot hardware binnen KEMBIT.
    \item De informatie moet actueel zijn.
    \item Configureerbare velden. De werknemer kan opgeven welke velden moeten worden meegenomen.
    \item Gebruikers moeten binnen één werkdag kunnen leren werken met het systeem
    \item De implementatie van het systeem is zo eenvoudig mogelijk om het team niet te belasten met het onderhouden van een zeer complexe codebase.
\end{itemize}

Deze criteria hebben tot de volgende ontwerpkeuzes geleid:

\begin{itemize}
    \item Het systeem wordt ontwikkeld als een Ansible Inventory Plugin. Dit zorgt ervoor dat er geen additionele software nodig is om gebruik te kunnen maken van het systeem.
    \item Maakt gebruik van de TOPdesk Asset Management REST API. Met deze API kunnen actuele gegevens worden opgehaald over de hardware.
\end{itemize}

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.


\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.

\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{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{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 kan beter gebruik worden gemaakt van een andere oplossing. 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. Oplossingen gerealiseerd in deze talen zijn beter te testen, onderhouden en te realiseren in vergelijking met een oplossing gerealiseerd 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.
