meerdere wijziginen
This commit is contained in:
@ -1,126 +1,52 @@
|
||||
\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.
|
||||
Dit hoofdstuk documenteert de resultaten van het onderzoek.
|
||||
|
||||
|
||||
\subsection*{Declaratief en imperatief}
|
||||
\subsection*{Visie en wensen}
|
||||
|
||||
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}.
|
||||
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.
|
||||
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\includegraphics[scale=0.5]{continuous_practices.pdf}
|
||||
\caption{Relatie tussen continuous integration, delivery en deployment \cite{shahin_continuous_2017}}
|
||||
\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}
|
||||
|
||||
\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}
|
||||
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}).
|
||||
|
||||
De voornaamste redenen voor het toepassen van continuous integration zijn als volgt:
|
||||
\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}
|
||||
|
||||
\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 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.
|
||||
|
||||
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.
|
||||
\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 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.
|
||||
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. Hierdoor kunnen rapportages van gegevens in het systeem een indicatie geven van de tijdsverdeling tussen type incidenten en changes van het Expert Team Networking.
|
||||
|
||||
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)}
|
||||
\caption{Gemiddelde bestede tijd aan changes per categorie (percentage) \cite{remmen_onderzoeksrapport}}
|
||||
\label{fig:changes_tijd_gemiddeld_categorie}
|
||||
\end{figure}
|
||||
|
||||
@ -133,7 +59,7 @@ Afbeelding \ref{fig:changes_aantal_categorie} geeft het aantal changes weer per
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{changes_aantal_categorie.pdf}
|
||||
\caption{Aantal changes per categorie (percentage)}
|
||||
\caption{Aantal changes per categorie (percentage) \cite{remmen_onderzoeksrapport}}
|
||||
\label{fig:changes_aantal_categorie}
|
||||
\end{figure}
|
||||
|
||||
@ -142,7 +68,7 @@ In figuur \ref{fig:incidenten_tijd_gemiddeld_categorie} is de gemiddelde bestede
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{incidenten_tijd_gemiddeld_categorie.pdf}
|
||||
\caption{Gemiddelde bestede tijd aan incidenten per categorie (percentage)}
|
||||
\caption{Gemiddelde bestede tijd aan incidenten per categorie (percentage) \cite{remmen_onderzoeksrapport}}
|
||||
\label{fig:incidenten_tijd_gemiddeld_categorie}
|
||||
\end{figure}
|
||||
|
||||
@ -151,56 +77,117 @@ Hier valt op dat incidenten gerelateerd tot Uninteruptable Power Supplies ('UPS'
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{incidenten_aantal_categorie.pdf}
|
||||
\caption{Aantal incidenten per categorie (percentage)}
|
||||
\caption{Aantal incidenten per categorie (percentage) \cite{remmen_onderzoeksrapport}}
|
||||
\label{fig:incidenten_aantal_categorie}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\subsection*{Visie en wensen}
|
||||
\subsection*{Ansible}
|
||||
|
||||
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.
|
||||
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}.
|
||||
|
||||
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.
|
||||
\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.
|
||||
\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]{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}
|
||||
\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}
|
||||
|
||||
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}).
|
||||
\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.
|
||||
|
||||
\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}
|
||||
\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.
|
||||
|
||||
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.
|
||||
\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{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}
|
||||
\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}
|
||||
|
||||
|
||||
\section*{Ontwerp}
|
||||
\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.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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 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}
|
||||
|
||||
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.
|
||||
|
||||
|
||||
\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{Installeren van WSL op de beheerserver.} Dit maakt het mogelijk voor het team om Ansible in de dagelijkse werkzaamheden te gebruiken.
|
||||
|
||||
\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{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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user