201 lines
16 KiB
TeX
201 lines
16 KiB
TeX
\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 \cite{remmen_onderzoeksrapport}.}
|
|
\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 \cite{remmen_onderzoeksrapport}}
|
|
\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? \cite{remmen_onderzoeksrapport}}
|
|
\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.
|
|
|
|
% weghalen van het omschrijven van plaatjes
|
|
% Toelichten waarom de data wel of niet iets toevoegd aan het project.
|
|
|
|
|
|
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) \cite{remmen_onderzoeksrapport}}
|
|
\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) \cite{remmen_onderzoeksrapport}}
|
|
\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) \cite{remmen_onderzoeksrapport}}
|
|
\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) \cite{remmen_onderzoeksrapport}}
|
|
\label{fig:incidenten_aantal_categorie}
|
|
\end{figure}
|
|
|
|
|
|
\subsection*{Ansible}
|
|
|
|
% 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 \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*{DevOps}
|
|
|
|
% DevOps is een term in de ICT waarmee verwezen wordt naar het hanteren van bepaalde werkwijzes bij het ontwikkelen en beheren van infrastructuur \cite{remmen_onderzoeksrapport}.
|
|
|
|
% 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.
|
|
|
|
|
|
% \subsection*{Continuous Practices}\label{subsec: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} \cite{remmen_onderzoeksrapport}. Deze praktijken kunnen ook door de opdrachtgever gebruikt worden. Hierdoor kan de gemaakte automatisering getest en automatisch ingezet worden. Dit maakt het gemakkelijk voor het team om wijzigingen aan te brengen en toe te passen in productie.
|
|
|
|
% \begin{figure}[h]
|
|
% \centering
|
|
% \includegraphics[width=\linewidth]{continuous_practices.pdf}
|
|
% \caption{Relatie tussen continuous integration, delivery en deployment \cite{shahin_continuous_2017}}
|
|
% \end{figure}
|
|
|
|
% \textbf{Continuous Integration (CI)} betekent het geautomatiseerd uitvoeren van tests op een codebase nadat hier een wijziging heeft plaatsgevonden. Dit motiveert om regelmatig aanpassingen te maken en publiceren \cite{shahin_continuous_2017}.
|
|
|
|
% \textbf{Continuous DElivery (CDE)} betekent om op een geautomatiseerde manier nadat de continuous integration tests volledig zijn doorstaan de nieuwe release naar een testomgeving wordt gepubliceerd en vervolgens handmatig naar een productieomgeving. \cite{shahin_continuous_2017}
|
|
|
|
% \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}
|
|
|
|
|
|
\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 \cite{remmen_onderzoeksrapport}.
|
|
|
|
\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 \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:
|
|
|
|
\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.
|
|
|
|
% 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{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 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.
|
|
|
|
|
|
|