diff --git a/chapters/1 - introductie.tex b/chapters/1 - introductie.tex index 630078b..464a9d2 100644 --- a/chapters/1 - introductie.tex +++ b/chapters/1 - introductie.tex @@ -2,13 +2,23 @@ Het Expert Team Networking van KEMBIT Services verleent netwerkdiensten aan haar klanten waaronder ontwerp, beheer en onderhoud. De netwerken die worden beheerd zijn zeer divers en kunnen sterk verschillen in complexiteit en schaal. -Het uitvoeren van beheerwerkzaamheden op een groot aantal netwerkapparaten kan veel tijd kosten door het uitvoeren van repetitieve taken. Met name wanneer deze handmatig worden uitgevoerd. +Het uitvoeren van beheerwerkzaamheden op een groot aantal netwerkapparaten kan onnodig veel tijd kosten door het uitvoeren van repetitieve taken. Het uitvoeren van dit soort taken is foutgevoelig en inefficiënt. -Binnen het Expert Team Networking en KEMBIT bestaat de visie om klanten te voorzien van een selfservice portal. Dit is een applicatie waarmee de werking van bijvoorbeeld het netwerk kan worden aangepast door de klant zelf en de actuele statussen van incidenten en changes kan worden ingezien die door een klant zijn ingelegd. +Deze bevindingen zijn de drijfveer van het Expert Team Networking om meer automatisering toe te passen in de dagelijkse werkzaamheden. Dit heeft in het verleden ertoe geleid om verschillende powershell scripts te maken die engineers ondersteunen in het (semi-) automatisch uitvoeren van beheerwerkzaamheden. -De wens om een selfservice portal te bieden, het terugdringen van de tijdsinvestering voor beheertaken en het voorkomen van menselijke fouten zorgen ervoor dat het Expert Team Networking meer gebruik zou willen maken van automatiseringstools in hun dagelijkse werkzaamheden. +Deze bestaande automatisering is veel werk om te onderhouden en naarmate gewenste functionaliteiten toenemen en visie voor een selfservice portal ontstaat, wordt gezocht naar een nieuwe, efficiëntere manier om netwerkautomatisering te realiseren. + +Om deze nieuwe manier van netwerkautomatisering mogelijk te maken wordt naar Ansible gekeken door het Expert Team Networking. Zo zijn diverse Proof of Concepts gerealiseerd die bepaalde functionaliteiten demonstreren. Ondanks de veelbelovende aard van Ansible wordt tot op vandaag nogsteeds geen gebruik gemaakt van Ansible door engineers van het Expert Team Networking. + +De doelstelling van dit onderzoek is om KEMBIT te adviseren in de beste manier om netwerkautomatisering effectief toe te passen in de dagelijkse werkzaamheden. En eventuele zaken die het effectief toepassen van tools verhinderen. + +\begin{enumerate} + \item Onderzoeken van mogelijkheden met betrekking tot netwerkautomatisering die relevant zijn voor het Expert Team Networking. + \item Adviezen uitbrengen over de vervolgstappen voor het effectief in gebruik nemen van netwerkautomatisering in de dagelijkse werkzaamheden. + \item Bevindingen met betrekking tot zaken die het effectief toepassen van tools verhinderen in de huidige situatie. + \item Adviezen uitbrengen over het stimuleren van adoptie van automatiseringstools in het Expert Team Networking. +\end{enumerate} -De doelstelling van dit onderzoek is om het Expert Team Networking te adviseren in vervolgstappen die ondernomen kunnen worden om netwerkautomatisering te implementeren in de dagelijkse werkzaamheden en het identificeren van knelpunten die dit belemmeren specifiek voor de situatie van het Expert Team Networking en KEMBIT. % Wat doet KEMBIT? % Wat doet ETN? diff --git a/chapters/2 - theoretisch kader.tex b/chapters/2 - theoretisch kader.tex index 1d4f645..80067e7 100644 --- a/chapters/2 - theoretisch kader.tex +++ b/chapters/2 - theoretisch kader.tex @@ -1,8 +1,16 @@ \section*{Theoretisch kader} -\begin{itemize} - \item data types - \item APIs - \item declaratief / imperatief - \item Ansible -\end{itemize} \ No newline at end of file + + +Het doel van dit onderzoek is om KEMBIT te voorzien van adviezen en inzichten waarmee automatisering in de werkwijze van het team kan worden opgenomen. + +Het onderzoek heeft betrekking tot diverse tools en werkwijzes. + +% Het theoretisch kader beschrijft de resultaten van een (quick) literatuurscan waarmee de uit te +% voeren opdracht wordt geclassificeerd op basis van: +% a) het probleem, de kans of behoefte in het toepassingsdomein, +% b) de (mogelijke) oplossing(en) +% c) het innovatieve karakter +% De resultaten van de literatuurscan tonen enerzijds aan tot welke categorie het probleem behoort en +% anderzijds welke (vanuit bestaand werk, dus breed gedragen) onzekerheden (t.a.v. aanpak en/of +% eindresultaat) binnen de opdracht bestaan. \ No newline at end of file diff --git a/chapters/3 - methode.tex b/chapters/3 - methode.tex index 585000e..6722b40 100644 --- a/chapters/3 - methode.tex +++ b/chapters/3 - methode.tex @@ -1,6 +1,6 @@ \section*{Methode} -Ten eerste is in dit onderzoek is een survey, interview en data-analyse uitgevoerd. Deze informatie wordt verwerkt en geanalyseerd, dit leidt tot inzichten in de situatie van het Expert Team Networking en hun eisen en wensen. +In dit onderzoek is een survey, interview en data-analyse uitgevoerd. De resultaten van deze methodes worden verwerkt en geanalyseerd middels een root cause analysis. Bevindingen van de root cause analysis leiden tot inzichten in de situatie van het Expert Team Networking en hun eisen en wensen. \begin{figure}[h] \centering @@ -14,6 +14,37 @@ Door het uitvoeren van een literatuurstudie worden bestaande praktijken, oplossi De samenhang van de onderzoeksmethodes is te zien in figuur \ref{fig:onderzoeksmethodes} +\subsection*{Hevner Design Science Research} + +Design Science research (afgekort \textit{'DSR'}) is een framework waarmee iteratief onderzoek kan worden uitgevoerd met als doel om een nieuwe dienst of product te creëren \cite{hevner2004dsr}. De doelstelling van het gebruiken van deze methode is een basis werkstructuur aan te houden die de combinatie tussen onderzoek en het produceren van producten en/of diensten benadrukt. Hierdoor wordt de uiteindelijke kwaliteit van het artifact verhoogd. + +\begin{figure}[h] + \centering + \includegraphics[width=\linewidth]{plan-van-aanpak/figures/hevner-dsr-cycle.pdf} + \caption{Design Science Research Cycles \cite{hevner2007three}} +\end{figure} + +\subsubsection*{The Relevance Cycle} + +De Relevance Cycle zet design research in gang met de omgeving van het probleem en/of vraagstelling. Deze omgeving geeft niet alleen requirements als input aan het project, maar ook acceptatie criteria voor de uiteindelijke resultaten. De output van de Relevance Cycle (artifacts) worden weer terug in deze omgeving geëvalueerd. Uit het resultaat van deze Cyclus moet blijken hoeveel verdere iteraties nodig zijn. Middels deze cyclus wordt gerarandeerd dat het geproduceerde artifact past bij de omgeving (probleemstelling/requirements). + +\subsubsection*{The Rigor Cycle} + +In de Rigor Cycle wordt informatie van een uitgebreid kennisnetwerk verzameld om te garanderen dat het project innovatief is (in tegenstelling tot routine). Deze informatie kan bestaan uit: + +\begin{itemize} + \item Reeds uitgevoerd onderzoek + \item Ervaringen en expertise die de 'state of the art' definiëren in het toepassingsdomein van het onderzoek. +\end{itemize} + +Deze cyclus zorgt ervoor dat kennis, afkomstig van buiten het project, kan worden ingezet \textit{in} het project. Op deze manier wordt voorkomen dat gedurende het project het wiel opnieuw wordt uitgevonden + +\subsubsection*{The Design Cycle} + +De interne design cyclus is het hart van elk design science research project. Deze cyclus van onderzoeksactiviteiten itereert snel tussen het realiseren en evalueren van een artifact. + + + \subsection*{Survey} De survey is afgenomen op de medewerkers van het Expert Team Networking met als doelstelling om een beeld te krijgen van de mening, ervaring, wensen en eisen over het toepassen van automatisering in hun dagelijkse werkzaamheden. @@ -21,11 +52,13 @@ De survey is afgenomen op de medewerkers van het Expert Team Networking met als \subsection*{Data-analyse} -Er zijn rapportages gemaakt van verschillende statistieken in het IT-servicemanagement systeem van KEMBIT genaamd TOPdesk. +Er is een data-analyse uitvoerd om inzichten te krijgen in de tijdsverdeling van het uitvoeren van de netwerkwerkzaamheden. Dit soort rapportages waren nog niet beschikbaar in het bedrijf. De inzichten die de data-analyse produceert wordt gebruikt om te bepalen waar het toepassen van automatisering het meest effectief is. -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 om een idee te krijgen bij de potentie van het toepasen van automatisering in de praktijk. +Om dit te doen zijn rapportages gemaakt van verschillende statistieken in het IT-servicemanagement systeem van KEMBIT genaamd TOPdesk. -De analyses zijn gemaakt met een interactief Python Notebook die informatie uit TOPdesk verkrijgt middels de API en deze data verwerkt tot grafieken en inzichten. +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. + +De analyses zijn uitgevoerd op changes en incidenten die zijn aangemaakt in een periode van twee jaar. Hierin worden items meegenomen van alle klanten en type werkzaamheden, zolang deze zijn afgehandeld door het Expert Team Networking. \subsection*{Interview} @@ -33,5 +66,21 @@ De analyses zijn gemaakt met een interactief Python Notebook die informatie uit De opdrachtgever is geïnterviewd om een beeld te krijgen van reeds bestaande automatisering, bevindingen omtrent reeds bestaande automatisering, visie omtrent automatisering, eisen, wensen en situatie van het Expert Team Networking. Het interview is semi-gestructureerd uitgevoerd, dit betekent dat er doorgevraagd is op basis van de antwoorden. +\subsection*{Literatuurstudie} + +In de literatuurstudie is gezocht naar bestaande kennis en ervaringen gerelateerd aan automatisering, werkwijzes en technieken. Op deze manier wordt de innovatie van het onderzoek gewaarborgd door het gebruik van bestaande kennis en ervaringen. + +Gedurende de literatuurstudie worden verschillende zoekmethodes gehanteerd, namelijk: + +\begin{itemize} + \item \textit{Sneeuwbalmethode} - Het doorzoeken op inhoudelijke resultaten van vorige zoekopdrachten. + \item \textit{Parelgroeimethode} - Het doorzoeken op zoekresultaten (niet inhoudelijk, maar het gebruiken van nieuwe zoektermen op basis van zoekresultaten) + \item \textit{Citatiezoeken} - Zoeken naar publicaties welke de gevonden publicatie citeert. Op deze manier kunnen nieuwe publicaties over een vergelijkbaar onderwerp worden gevonden. +\end{itemize} + + \subsection*{Root Cause Analyse} +Het doel van een Root Cause Analyses is om het de oorzaak of oorzaken van een bepaald probleem te vinden. Deze methode wordt gebruikt in dit onderzoek om inzicht te krijgen in de oorzaken voor de lage adoptie van automatiseringstools door het Expert Team Networking. + +Op de bevindingen van deze methode worden adviezen gegeven voor het adresseren van deze oorzaken en uiteindelijk het probleem (grotendeels) verhelpen. \ No newline at end of file diff --git a/chapters/4 - resultaten.tex b/chapters/4 - resultaten.tex index 74304c1..cb2b8df 100644 --- a/chapters/4 - resultaten.tex +++ b/chapters/4 - resultaten.tex @@ -1,9 +1,206 @@ \section*{Resultaten} +Automatiseren is het (gedeeltelijk) vervangen van menselijke handelingen door een programma. Dit programma verricht dezelfde handelingen (of komt in ieder geval tot hetzelfde resultaat) door gebruik te maken van diverse koppelingen (APIs) met andere systemen. + + +\subsection*{Declaratief en imperatief} + +Imperatief en declaratief zijn programmeerconcepten die een bepaalde programmeerstijl (of 'schrijfstijl') inhouden. Bij het imperatief programmeren wordt beschreven \textit{hoe} tot een bepaald eindresultaat moet worden gekomen. Dit houd dus in het een voor een beschrijven van stappen en instructies om bijvoorbeeld een gebruikersaccount aan te maken. In afbeelding \ref{fig:imperatief_voorbeeld} wordt een voorbeeld gegeven van een imperatief geschreven routine voor het aanmaken van nieuwe gebruikers. + +\begin{figure}[h] +\begin{lstlisting}[language=python] + username = 'jdoe' + password = 'hunter02' + + if userExists(username): + user := getUser(username) + else: + user := createUser(username, password) + + if length(password) > 7 and + contains(password, "!@#$%^&*()"): + setUserPassword(user, password) + else: + print("Password not valid") +\end{lstlisting} +\caption{Voorbeeld imperatieve schrijfstijl} +\label{fig:imperatief_voorbeeld} +\end{figure} + +Bij een declaratieve schrijfstijl wordt het eindresultaat beschreven (wat) in plaats van de manier om die te bereiken (hoe). Een declaratieve versie van het voorbeeld in figuur \ref{fig:imperatief_voorbeeld} zou simpelweg een lijst zijn met gebruikers en wachtwoorden, zoals in \ref{fig:declaratief_voorbeeld}. + +\begin{figure}[h] +\begin{lstlisting} + users: + - username: jdoe + password: hunter02 + - username: foo + password: bar +\end{lstlisting} +\caption{Voorbeeld declaratieve schrijfstijl} +\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 onderhouden van code is een abstractere programmeertaal een voordeel. + +\subsection*{Eigenschappen van 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 automatiseringstools de volgende karakteristieken: + +\begin{enumerate} + \item \textbf{Data-extractie en -injectie functionaliteit}\\ + 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 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} + + +\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}. + +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. + +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. + + +\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}. + +\begin{figure}[h] + \centering + \includegraphics[scale=0.5]{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} + +De voornaamste redenen voor het toepassen van continuous integration zijn als volgt: + \begin{itemize} - \item Bevindingen huidige situatie - \item Root cause -> integratie (lack thereof) - \item CMDB - \item Uitbreidingsmogelijkheden Ansible - \item wens self service -\end{itemize} \ No newline at end of file + \item Verminderen van \textit{build en test tijden} bij het ontwikkelen en onderhouden van een actieve codebase \cite{shahin_continuous_2017}. + \item Vergroten van de \textit{zichtbaarheid en bekendheid} van testresultaten door deze centraal inzichtelijk te maken \cite{shahin_continuous_2017}. +\end{itemize} + +In de context van netwerkbeheer kan dat betekenen om netwerkconfiguraties te controleren op bijvoorbeeld security of correctheid wanneer deze worden aangepast in een gecentraliseerde repository. + +\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} + + +De voornaamste redenen voor het toepassen van continuous integration zijn als volgt: + +\begin{itemize} + \item Verminderen van \textit{build en test tijden} bij het ontwikkelen en onderhouden van een actieve codebase \cite{shahin_continuous_2017}. + \item Vergroten van de \textit{zichtbaarheid en bekendheid} van testresultaten door deze centraal inzichtelijk te maken \cite{shahin_continuous_2017}. +\end{itemize} + +In de context van netwerkbeheer kan dat betekenen om netwerkconfiguraties te controleren op bijvoorbeeld security of correctheid wanneer deze worden aangepast in een gecentraliseerde repository. + + +\subsection*{Huidige situatie} + +Het Expert Team Networking beheert een groot aantal netwerkapparaten verspreid over verschillende fysieke locaties en klanten. Om deze apparaten gecentraliseerd te kunnen beheren wordt gebruik gemaakt van virtuele machine die verbonden is met alle locaties door tunnels. Door in te loggen op deze server kan alle apparatuur worden bereikt ondanks deze verschillende fysieke locaties staan en zonder daar naartoe te hoeven gaan om toegang te krijgen tot deze apparatuur. + +Onder 'beheerverbinding' is in dit geval sprake van SSH (secure shell). Dit is een veelzijdig protocol voor het uitwisselen van versleutelde gegevens. In het geval van beheerwerkzaamheden wordt het gebruikt voor het overzetten van commando's en de output van deze commando's. SSH is de primaire manier om verbinding te maken met een netwerkapparaat en deze te configureren of commando's uit te voeren voor bijvoorbeeld troubleshooting. + + +\subsection*{Analyse tijdsbesteding} + +Om te evalueren waar potentiele automatiseringen het meest effectief kunnen 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. + +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. + +\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} + +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} + \caption{Aantal changes per categorie (percentage)} + \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. + +\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} + +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} + \caption{Aantal incidenten per categorie (percentage)} + \label{fig:incidenten_aantal_categorie} +\end{figure} + + +\subsection*{Visie en wensen} + +KEMBIT en het Expert Team Networking willen in de toekomst meer werkzaamheden uitvoeren met automatiseringstools, dit blijkt uit de survey afgenomen van het Expert Team Networking en het interview met opdrachtgever. + +\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 (afbeedling \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} + +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 + \includegraphics[width=\linewidth]{survey_leren_automatiseren.pdf} + \caption{Is het gemakkelijk om te leren over automatiseren?} + \label{fig:survey_leren_automatiseren} +\end{figure} + + +\section*{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. + +Dit ontwerp beschrijft een integratie tussen Ansible en TOPdesk Asset Management. 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. + +Het systeem moet voldoen aan de volgende criteria: + +\begin{itemize} + \item De informatie over de apparatuur is afkomstig uit TOPdesk Asset Management. Dit is de centrale bron van alle informatie met betrekking tot hardware binnen KEMBIT. + \item Actuele informatie. De gegevens die het systeem produceert moet gebaseerd zijn op de actuele informatie zoals beschikbaar is in Asset Management. + \item Configureerbare velden. Het moet mogelijk zijn om de namen van velden op te geven die de werknemer nodig heeft voor gebruik in Ansible. Deze velden moeten dan ook worden opgehaald en verwerkt vanuit Asset Management. + \item Het systeem moet met minimale training en uitleg zelfstandig gebruikt kunnen worden en dus zo eenvoudig mogelijk zijn om te gebruiken. + \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} + diff --git a/chapters/5 - discussie.tex b/chapters/5 - discussie.tex index ac4e79e..0debd1a 100644 --- a/chapters/5 - discussie.tex +++ b/chapters/5 - discussie.tex @@ -1 +1,3 @@ -\section*{Discussie} \ No newline at end of file +\section*{Discussie} + +Het onderzoek en de vraag naar wat de beste manier is om netwerkautomatisering effectief toe te passen is lastig om te beantwoorden. Vooral wanneer alle \ No newline at end of file diff --git a/chapters/6 - conclusie.tex b/chapters/6 - conclusie.tex index c04f43c..37e22aa 100644 --- a/chapters/6 - conclusie.tex +++ b/chapters/6 - conclusie.tex @@ -1,5 +1,17 @@ \section*{Conclusie} -\begin{itemize} - \item Aansluiting self service portal -\end{itemize} \ No newline at end of file +Het Expert Team Networking en KEMBIT hebben een visie voor een nieuwe manier om (netwerk)beheer uit te voeren die meer gecentreerd is rond automatie. Door deze visie zijn investeringen gemaakt in het realiseren van tooling en een selfservice portal voor klanten. + +Op dit moment bevind KEMBIT zich in een lastige positie waarin de visie om te innoveren bestaat maar nog geen concrete vervolgstappen om dit te bereiekn. De bestaande tooling en portal functioneren, maar hebben gelimiteerde impact op de werkwijze van het team. + +Tools zoals Ansible bieden uitgebreide configuration management functionaliteiten voor het beheer van netwerkapparaten. En zijn daarnaast geoptimaliseerd voor gebruikersvriendelijkheid door het bieden van een minder complexe configuratie taal. Hierdoor zijn de tools geschikt voor de netwerkengineers van het Expert Team Networking. + +Gedurende het onderzoek is vastgesteld dat het nog niet mogelijk is om Ansible te gebruiken in de huidige beheeromgeving. Hierop wordt aan de opdrachtgever geadviseerd om WSL te installeren op de beheerserver. Hierdoor wordt het mogelijk om Ansible te installeren en hier gebruik van te maken door het team. + +Daarnaast is vastgesteld dat de tool niet voldoende is geïntegreerd met andere software die wordt gebruikt door het team. Met name een manier om automatisch informatie over alle apparatuur te verzamelen en te verwerken tot een lijst die ingelezen kan worden door Ansible bestaat nog niet. Dit veroorzaakt dat het gebruik van de tool nog niet toegankelijk is voor het team en lastig toe te passen in de praktijk. + +In dit project is een ontwerp gemaakt voor een Ansible Inventory Plugin waarmee op een geautomatiseerde manier de informatie kan worden opgehaald en verwerkt tot een inventory. De plugin geeft het team een gebruiksvriendelijke manier om informatie in TOPdesk Asset Management te gebruiker in Ansible als een inventory. + +Bij het adopteren van dit soort tools is de tool zelf niet voldoende. Het komt ook neer op het aannemen van een andere werkwijze, een meer gecentreerd rond devops principes. Devops is een set aan principes waarbij developers en operators samenwerken (of dezelfde personen zijn) om een product of service te realiseren door het gebruik van automatisering. + +Development praktijken, tools en mindsets zijn relevant bij het succesvol toepassen van automatisering. Dit onderzoek adviseert de opdrachtgever om hierin te investeren. Bijvoorbeeld door samen te werken en kennis te delen samen met het software development team van KEMBIT. \ No newline at end of file diff --git a/figures/src/continuous_practices.dot b/figures/src/continuous_practices.dot new file mode 100644 index 0000000..3b2fe74 --- /dev/null +++ b/figures/src/continuous_practices.dot @@ -0,0 +1,37 @@ +digraph G { + + node [shape=box] + rankdir="TB" + compound=true + + "Developers" -> "Repository" [label="Commit"] + + subgraph cluster_0 { + rankdir="LR" + label = "Continuous Integration" + "Build" -> "Test" + } + + subgraph cluster_1 { + rankdir="LR" + label = "Continuous Delivery" + cd_at [label="Acceptance Test"] + cd_prod [label="Production"] + cd_at -> cd_prod [label="Manual"] + } + + subgraph cluster_2 { + rankdir="LR" + label = "Continuous Deployment" + cde_at [label="Acceptance Test"] + cde_prod [label="Production"] + + cde_at -> cde_prod [label="Auto"] + } + + "Repository" -> "Build" [lhead=cluster_0] + + "Test" -> cde_at [lhead=cluster_2 ltail=cluster_0] + "Test" -> cd_at [lhead=cluster_1 ltail=cluster_0] + +} \ No newline at end of file diff --git a/main.tex b/main.tex index 44be0f9..24b732d 100644 --- a/main.tex +++ b/main.tex @@ -10,7 +10,8 @@ \usepackage[hybrid]{markdown} \usepackage{biblatex} -\addbibresource{bibliography.bib} +\addbibresource{onderzoeksrapport/bibliography.bib} +\addbibresource{plan-van-aanpak/bibliography.bib} \usepackage{FiraMono} \usepackage{FiraSans} @@ -33,6 +34,9 @@ \usepackage{multicol} +\usepackage{graphicx} +\graphicspath{ {./figures/} } + %% Geef tabellen wat extra padding \renewcommand{\arraystretch}{1.5}