Compare commits

...

2 Commits

Author SHA1 Message Date
54bf25221d diverse changes 2022-06-11 23:26:37 +02:00
0e30a781e6 stuk toegevoegd over devops 2022-06-11 23:24:01 +02:00
5 changed files with 206 additions and 130 deletions

View File

@ -103,4 +103,40 @@
year = 2022,
url = {https://github.com/ansible/awx},
urldate = {2022-06-08}
}
@article{khan_critical_2022,
title = {Critical {Challenges} to {Adopt} {DevOps} {Culture} in {Software} {Organizations}: {A} {Systematic} {Review}},
volume = {10},
issn = {2169-3536},
shorttitle = {Critical {Challenges} to {Adopt} {DevOps} {Culture} in {Software} {Organizations}},
url = {https://ieeexplore.ieee.org/document/9690862/},
doi = {10.1109/ACCESS.2022.3145970},
abstract = {DevOps is a set of practices and a cultural movement that aims to break down barriers between development and operation teams to improve collaboration and communication. Different organizations have embraced DevOps principles due to the massive potential, such as a much shorter time to production, increased reliability and stability. However, despite the widespread adoption of DevOps and its infrastructure, there is a lack of understanding and literature on the key concepts, practices, tools, and challenges associated with implementing DevOps strategies. The main goal of this research paper is to explore and discuss challenges related to DevOps culture and practices. Moreover, it describes how DevOps works in an organization, provides a detailed explanation of DevOps, and investigates the cultural challenges that organizations face when implementing DevOps. The proposed paper reveals ten critical challenges that need to be addressed in adopting the DevOps culture. The challenges are further analyzed on the basis of the various continents. According to the findings, the following critical challenges are considered during the implementation of a DevOps culture: lack of collaboration and communication, Lack of skill and knowledge, complicated infrastructure, Lack of management, Lack of DevOps approach, and trust confidence problems.},
language = {en},
urldate = {2022-05-13},
journal = {IEEE Access},
author = {Khan, Muhammad Shoaib and Khan, Abudul Wahid and Khan, Faheem and Khan, Muhammad Adnan and Whangbo, Taeg Keun},
year = {2022},
pages = {14339--14349},
}
@inproceedings{jabbari_what_2016,
address = {Edinburgh Scotland UK},
title = {What is {DevOps}?: {A} {Systematic} {Mapping} {Study} on {Definitions} and {Practices}},
isbn = {978-1-4503-4134-9},
shorttitle = {What is {DevOps}?},
url = {https://dl.acm.org/doi/10.1145/2962695.2962707},
doi = {10.1145/2962695.2962707},
abstract = {Objective:This study aims to characterize DevOps by exploring central components of DevOps definitions reported in the literature, specifying practices explicitly proposed for DevOps and investigating the similarities and differences between DevOps and other existing methods in software engineering.
Method: A systematic mapping study was conducted that used six electronic databases: IEEE, ACM, Inspec, Scopus, Wiley Online Library and Web of Science.
Result: 44 studies have been selected that report a definition of DevOps, 15 studies explicitly stating DevOps practices, and 15 studies stating how DevOps is related to other existing methods. Papers in some cases stated a combination of a definition, practices, and relations to other methods, the total number of primary studies was 49.
Conclusion: We proposed a definition for DevOps which may overcome inconsistencies over the various existing definitions of individual research studies. In addition, the practices explicitly proposed for DevOps have been presented as well as the relation to other software development methods.},
language = {en},
urldate = {2022-06-11},
publisher = {ACM},
author = {Jabbari, Ramtin and bin Ali, Nauman and Petersen, Kai and Tanveer, Binish},
month = may,
year = {2016},
pages = {1--11},
}

View File

@ -10,6 +10,7 @@
\item Adviezen in hoofdstuk onder de conclusie
\item Inleiding voor \ref{section:huidige_situatie}
\item Kort stuk over Ansible AWX toegevoegd
\item Stuk over DevOps
\changed
\item \textit{jvdb feedback} - Onzekere verwoording 'lijkt' anders verwoord in \ref{bevinding:suboptimale_inrichting_van_topdesk_asset_management}

View File

@ -135,7 +135,7 @@ Er zijn vele tools welke automatisering bevorderen of volledig zijn geoptimalise
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.
Ansible is door KEMBIT als automatiseringstool naar keuze verkozen dankzij de flexibiliteit, uitbreidbaar, gebruiksvriendelijkheid en inzetbaarheid in haar huidige productieomgevingen. De tool is initieel 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.
@ -182,7 +182,18 @@ Om netwerkapparaten aan te sturen zijn verschillende andere mogelijkheden. Ansib
\subsubsection*{Uitbreidbaarheid}
Ansible is zeer uitbreidbaar door het creëren van in Python geschreven modules waarmee bijna alle gewenste additionele koppelingen en/of functionaliteiten kunnen worden toegevoegd aan de automatiseringstools. Ansible kent vele vormen van uitbreiding. Hiermee kunnen verschillende aspecten van de tool worden uitgebreid. Met name modules en inventory plugins
Ansible is zeer uitbreidbaar door het creëren van in Python geschreven modules waarmee bijna alle gewenste additionele koppelingen en/of functionaliteiten kunnen worden toegevoegd aan de automatiseringstools. Ansible kent vele vormen van uitbreiding. Hiermee kunnen verschillende aspecten van de tool worden uitgebreid. Met name modules en inventory plugins.
\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.
Het woord 'DevOps' is een combinatie van de woorden 'development' en 'operations'. Met development wordt het ontwikkelen, testen en onderhouden van software bedoelt door een team die hierin is gespecialiseerd. Het beheren van servers, applicaties en netwerken zijn daarentegen voorbeelden van taken die behoren tot teams of afdelingen die hierin gespecialiseerd zijn, naar deze teams wordt ook wel verwezen met 'operations'.
Beide teams zijn gespecialiseerd in hun eigen domein. Bij het implementeren van praktijken zoals CI/CD of de wens voor automatisering in het beheren van servers, applicaties of netwerken komt echter overlap in de vereiste vaardigheden, kennis en tooling.
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}
@ -246,13 +257,6 @@ Zo zijn verschillende PowerShell tools gemaakt om bepaalde functionaliteiten te
Gezien het belang van data is voor het mogelijk maken van automatiseren wordt ten eerste inzichtelijk gemaakt welke data er al opgeslagen wordt, in welk systeem en welke koppelingen deze systemen beschikbaar stellen.
\begin{itemize}
\item TOPDesk
\item TOPDesk Asset Management
\item PRTG \cite{prtg}
\end{itemize}
\subsubsection{Topdesk}
@ -346,49 +350,53 @@ Om inzicht te krijgen in de huidige verdeling van tijd per werkzaamheden is een
Incidenten en Changes in TOPDesk kennen een hoofd- en subcategorie. Deze categorieën kunnen zelf worden aangemaakt door de beheerder aan de hand van de context waarin het systeem wordt gebruikt. Vervolgens kan per incident en/of wijziging een categorie worden geselecteerd. De analyses zijn gemaakt op basis van de ingevulde categorie en gespendeerde tijd per incident en wijziging. Houd rekening met het discussiepunt omtrent het gebruik van de TOPdesk categorieën toegelicht in hoofdstuk \ref{discussie_topdesk_categorie}.
Binnen KEMBIT zijn de categorieën aangemaakt zoals te zien in de volgende tabel:
Binnen KEMBIT zijn de categorieën aangemaakt zoals te zien in tabel \ref{tbl:categorieen_topdesk}.
\begin{tabular}{p{0.2\linewidth} p{0.6\linewidth}}
\toprule
\textbf{Categorie} & \textbf{Omschrijving}\\
\midrule
\begin{table}[h]
\caption{Categorieën die gebruikt worden door KEMBIT in TOPdesk}
\label{tbl:categorieen_topdesk}
\begin{tabular}{p{0.2\linewidth} p{0.6\linewidth}}
\toprule
\textbf{Categorie} & \textbf{Omschrijving}\\
\midrule
Internet&
Het ticket of wijziging heeft betrekking tot internet biedende functionaliteiten.\\
Internet&
Het ticket of wijziging heeft betrekking tot internet biedende functionaliteiten.\\
Router / Modem&
Het incident of wijziging heeft betrekking tot router(s) en/of modem(s).\\
Router / Modem&
Het incident of wijziging heeft betrekking tot router(s) en/of modem(s).\\
Firewall&
Het incident of wijziging heeft betrekking tot firewall(s).\\
Firewall&
Het incident of wijziging heeft betrekking tot firewall(s).\\
Wifi&
Het incident of wijziging heeft betrekking tot de werking of apparatuur gerelateerd aan het WiFi.\\
Wifi&
Het incident of wijziging heeft betrekking tot de werking of apparatuur gerelateerd aan het WiFi.\\
Switch&
Het incident of wijziging heeft betrekking tot het apparaat type switch.\\
Switch&
Het incident of wijziging heeft betrekking tot het apparaat type switch.\\
VPN&
Het incident of wijziging heeft betrekking tot bepaalde netwerktunnels.\\
VPN&
Het incident of wijziging heeft betrekking tot bepaalde netwerktunnels.\\
Bekabeling&
Het incident of wijziging heeft betrekking tot netwerkbekabeling.\\
Bekabeling&
Het incident of wijziging heeft betrekking tot netwerkbekabeling.\\
SAN / NAS&
Het incident of wijziging heeft betrekking tot opslagapparatuur op een netwerk.\\
SAN / NAS&
Het incident of wijziging heeft betrekking tot opslagapparatuur op een netwerk.\\
Appliance&
Het incident of wijziging heeft betrekking tot een appliance (meestal een virtuele machine)\\
Appliance&
Het incident of wijziging heeft betrekking tot een appliance (meestal een virtuele machine)\\
UPS&
Het incident of wijziging heeft betrekking tot Uninteruptable Power Supply. Een apparaat welke andere netwerkapparatuur voorziet van energie in het geval van een stroomstoring.\\
UPS&
Het incident of wijziging heeft betrekking tot Uninteruptable Power Supply. Een apparaat welke andere netwerkapparatuur voorziet van energie in het geval van een stroomstoring.\\
Overig&
Alle overige incident(en) en/of wijziging(en).\\
Overig&
Alle overige incident(en) en/of wijziging(en).\\
\bottomrule
\end{tabular}
\bottomrule
\end{tabular}
\end{table}
In de context van dit project is het met name relevant om het type changes/incidenten te analyseren waar potentieel automatisering bij kan worden toegepast om een beeld te krijgen van de hoeveelheid tijd die kan worden bespaard. Automatisering is met name interessant om toe te passen bij werkzaamheden wanneer een groter aantal apparaten moet worden geconfigureerd of bepaalde informatie van moet worden verkregen.

View File

@ -1,5 +1,11 @@
\chapter{Conclusie}
Het is duidelijk dat de medewerkers van het Expert Team Networking meer gebruik willen maken van automatisering en dat automatisering verschillende voordelen heeft. Deze voordelen zijn tijdsbesparing, foutpreventie en innovatie mogelijkheden zoals het bieden van een Self Service Portal waarmee klanten snel eenvoudige wijzigingen zelf aan kunnen brengen en het toepassen van CI/CD waarbij fouten in een configuratie kunnen worden vastgesteld nog voordat deze in een productieomgeving in gebruik worden genomen.
Het Expert Team Networking kijkt naar Ansible voor het benutten en realiseren van deze mogelijkheden gebaseerd op ervaringen van andere teams binnen het bedrijf en uitgevoerde tests met de automatiseringstool. In dit onderzoek is vastgesteld dat Ansible zeer geschikt is voor het automatiseren van configuration management in netwerkbeheer. Dit is dankzij het uitgebreide assortiment van netwerkmodules en de Domain Specific Language (DSL) voor het toepassen van deze modules. Dit maakt geavanceerde functionaliteiten toegankelijk zonder te hoeven beschikken over uitgebreide kennis van het ontwikkelen van software.
Gedurende dit onderzoek zijn verschillende zaken vastgesteld waardoor de visie voor innovatie en het toepassen van automatisering in netwerkbeheer kan worden bevorderd.
\section{Bevindingen}
@ -7,9 +13,29 @@
In dit hoofdstuk worden een aantal bevindingen beschreven die zijn getrokken uit het onderzoek. De bevindingen hebben te maken met het (succesvol) toepassen van netwerkautomatisering in de dagelijkse werkzaamheden van het Expert Team Network en probeert inzicht te geven in de huidige situatie.
\subsection{Suboptimale inrichting van TOPdesk Asset Management}
\subsection{Ansible is AWX}
Asset Management lijkt nog niet volledig optimaal te worden ingezet aan de hand van de templates die grotendeels hetzelfde zijn. Hierdoor is er een grote kans dat eventuele tooling die gebruik maakt van de Asset Management API moet worden aangepast wanneer de configuratie van de templates van Asset Management veranderd worden.
KEMBIT heeft een server gemaakt met AWX met als primaire doelstelling om Ansible toegankelijker te maken voor de teams. Wanneer de teams iets met Ansible willen doen, bedoelt men AWX. Helaas is het ontwikkelen van nieuwe playbooks niet gemakkelijk door uitsluitend gebruik te maken van AWX. Dit komt met name door de volgende redenen:
\begin{itemize}
\item Om AWX te gebruiken moet de gebruiker bekend zijn met git, een versiebeheer systeem. De meeste network engineers hebben hier geen ervaring mee en maakt het lastiger om met AWX te werken.
\item AWX is niet gebruikersvriendelijk voor het ontwikkelen van een nieuw playbook. Dit komt omdat de gebruiker aanpassingen aan het playbook moet doen, vervolgens deze aanpassing moet pushen naar git, refreshen in AWX en het aangepaste playbook opnieuw moet uitvoeren. Dit maakt het een stuk lastiger om een nieuw playbook te maken.
\item AWX biedt geen debugging mogelijkheden zoals het inzien van bepaalde variabelen. Dit zorgt ervoor dat de engineer niet duidelijk weet wat er fout is gegaan indien het playbook faalt.
\end{itemize}
Dit resulteert erin dat de engineers van het team niet snel een playbook kunnen maken of een eenvoudige kleine taak automatiseren met Ansible.
\subsection{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.
Doordat Ansible niet geïnstalleerd is het niet toegankelijk voor het team om gebruik te maken van Ansible in de dagelijkse werkzaamheden en hierdoor effectieve netwerkautomatisering toe te kunnen passen.
\subsection{Suboptimale inrichting van TOPdesk Asset Management}\label{bevinding:suboptimale_inrichting_van_topdesk_asset_management}
Asset Management wordt niet optimaal ingezet door een suboptimale inrichting van de tool. Dit blijkt door de vele templates die grotendeels hetzelfde zijn. Hierdoor is er een grote kans dat eventuele tooling die gebruik maakt van de Asset Management API moet worden aangepast wanneer de configuratie van de templates van Asset Management veranderd worden.
\subsection{Geen bestaande integraties met TOPdesk (Asset Management)}
@ -21,6 +47,8 @@ Met name het ontbreken van een manier waarop een Ansible inventory kan worden ge
\subsection{Gebruikersvriendelijkheid TOPdesk Asset Management}\label{knelpunt:am_useability}
Een relatief complexe API van Asset Management (voornamelijk veroorzaakt door de meta-modeleer functionaliteit). Dit verhoogd de vereiste tijdsinvestering en minimale complexiteit om tools te maken die integreren met deze API.
@ -28,90 +56,5 @@ Een relatief complexe API van Asset Management (voornamelijk veroorzaakt door de
De reeds bestaande kennis over PowerShell in het netwerking team is niet of minder relevant bij het in gebruik nemen van Ansible. Dit presenteert een drempel voor het in gebruik nemen van Ansible omdat het meer tijd kost om even effectief te zijn met de bestaande PowerShell tools en/of kennis.
Reeds gerealiseerde en op Powershell gebaseerde automatiseringen die niet volledig overdragen naar het implementeren van Ansible in de praktijk. Dit maakt investeringen in het realiseren van Ansible op de kortere termijn minder waardevol omdat deze functionaliteiten al mogelijk waren met de oude tools. Hiernaast zijn deze investeringen hoger omdat het nu in een nog relatief onbekende manier moet worden geimplementeerd.
Reeds gerealiseerde en op Powershell gebaseerde automatiseringen die niet volledig overdragen naar het implementeren van Ansible in de praktijk. Dit maakt investeringen in het realiseren van Ansible op de kortere termijn minder waardevol omdat deze functionaliteiten al mogelijk waren met de oude tools. Hiernaast zijn deze investeringen hoger omdat het nu in een nog relatief onbekende manier moet worden geïmplementeerd.
\section{Wensen en eisen}
Dit hoofdstuk documenteert de wensen en eisen die volgen uit het onderzoek en worden direct of indirect gesteld door de opdrachtgever aan het implementeren van automatisering. Die eisen zijn opgedeeld in functionele- (tabel \ref{tbl:requirements_functioneel}) en niet functionele eisen (tabel \ref{tbl:requirements_nietfunctioneel}).
\newcounter{magicrownumbers}
\newcommand\rownumber{\stepcounter{magicrownumbers}\arabic{magicrownumbers}}
\begin{table}[ht]
\caption{Functionele eisen}
\label{tbl:requirements_functioneel}
\centering
\begin{tabular}{l p{0.2\linewidth} p{0.5\linewidth} l }
\toprule
& \textbf{Naam}& \textbf{Omschrijving}& \textbf{Prioriteit}\\
\midrule
\rownumber&
Asset Management koppeling&
De automatiseringstool moet de apparaten kunnen verkrijgen uit het TOPdesk Asset Management systeem.&
Must\\
\rownumber&
Toepassing beheer&
De automatiseringstool kan worden gebruikt in beheerwerkzaamheden.&
Must\\
\rownumber&
TOPdesk incidenten koppeling&
Het is mogelijk om via TOPdesk incidenten aan te maken en/of te wijzingen.&
Could\\
\rownumber&
TOPdesk changes koppeling&
Het is mogelijk om via TOPdesk changes aan te maken en/of te wijzigen.&
Could\\
\bottomrule
\end{tabular}
\end{table}
\begin{table}[ht]
\caption{Niet-functionele eisen}
\label{tbl:requirements_nietfunctioneel}
\centering
\begin{tabular}{l l p{0.5\linewidth} l }
\toprule
& \textbf{Naam}& \textbf{Omschrijving}& \textbf{Prioriteit}\\
\midrule
\rownumber&
Compatability&
De automatiseringstool kan worden ingezet in de huidige beheeromgeving en kan werken met de apparatuur die wordt beheerd door het Expert Team Networking.&
Must\\
\rownumber&
Extensibility&
De automatiseringstools kunnen worden uitgebreid met additionele functionaliteit.&
Must\\
\rownumber&
Usability&
De automatiseringstools kunnen met minimale training en/of kennis gebruikt worden zodanig dat de doelstelling bereikt kan worden zoals gesteld door de eindgebruiker.&
Must\\
\rownumber&
Scalability&
Het automatiseringssysteem kan worden ingezet op een grote hoeveelheid netwerkapparaten&
Should\\
\rownumber&
Maintainability&
De automatiseringstools kunnen worden onderhouden door het Networking Team.&
Could\\
\bottomrule
\end{tabular}
\end{table}

File diff suppressed because one or more lines are too long