Wat is devops
Alles wat je moet weten over DevOps

Wat is DevOps?

Benieuwd naar wat Devops is? In dit artikel nemen we je mee in de wereld van DevOps en vertellen we je onder andere alles over de verschillende methoden en tools, en waarom het zo belangrijk is .

Betekenis

Wat is DevOps?

Devops is een samenstelling van de woorden development (ontwikkeling) en operations (beheer). Bij DevOps worden mensen, processen en technologieën samengebracht om constant waarde aan klanten te kunnen bieden. Of anders gezegd: DevOps zorgt voor een gestroomlijnde softwareontwikkeling- en implementatie.

Door een goede communicatie, integratie en samenwerking tussen ontwikkelingsteams (Dev) en operationsteams (Ops) is een organisatie in staat om:

  • Snellere en betere applicaties te ontwikkelen

  • Sneller een release of nieuwe/herziene softwarefuncties of -producten te ontwikkelen.

Kernprincipes

Een aantal kernprincipes van DevOps op een rij:

  • Automatisering: DevOps benadrukt het belang van automatisering in softwareontwikkelingsprocessen. Dit omvat automatisering van het testen, de bouw van software en de uitrol daarvan, waardoor de snelheid en consistentie van deze processen verbeteren.
  • Continue Integratie en Levering (CI/CD): deze praktijk omvat het regelmatig integreren van codeveranderingen in een centrale repository, gevolgd door automatische bouw en tests. Het doel is om software snel en betrouwbaar te kunnen leveren.
  • Samenwerking en communicatie: DevOps bevordert een cultuur van open communicatie en samenwerking tussen ontwikkelaars en IT-professionals, wat leidt tot betere teamdynamiek en probleemoplossing.
  • Feedbacklussen: snelle feedback tijdens de ontwikkelingscyclus staat centraal in DevOps, waardoor teams snel kunnen reageren op problemen of behoeften en continue verbetering kunnen doorvoeren.
  • Monitoring en logging: continue monitoring van de prestaties en het gedrag van de applicatie in productie, waardoor problemen snel kunnen worden geïdentificeerd en opgelost.

In essentie draait DevOps om het creëren van een omgeving waarin het plannen, ontwikkelen, testen en uitrollen van software kan gebeuren met grotere snelheid, flexibiliteit en betrouwbaarheid. Allemaal gericht op het leveren van waarde aan de eindgebruiker.

DevOps in de praktijk

Hoe werkt DevOps?

De nauwe samenwerking tussen Dev en Ops zorgt voor een continue terugkoppeling naar de klant voor verbeteringen, ontwikkelingen, testen en implementatie. DevOps doordringt als het ware alle fases: van de softwareplanning tot het schrijven van code, testen, implementatie en monitoring.

Het is een werkwijze waarbij mensen, processen en technologieën worden ingezet voor software ontwikkeling en IT infrastructuur. Teams voor ontwikkeling, IT, kwaliteit en security werken nauw samen om betere producten, snelle leveringen en tevreden klanten te krijgen. Het is een continu proces die bestaat uit in totaal acht stappen.

Acht stappen

De 8 stappen van het DevOps proces

DevOps is een continu proces die ervoor zorgt dat de ontwikkeling van software snel en continu wordt uitgevoerd, wanneer je de daarvoor bestemde hulpmiddelen en procedures hanteert. De acht stappen zien er als volgt uit:

Stap 1: Plan

Het DevOps proces begint altijd met een planningsfase. Het DevOps team ontwikkelt ideeën, en definieert en beschrijft de functies en mogelijkheden van applicaties en software die ze bouwen. Het helpt om de bedrijfswaarde en vereisten inzichtelijk te maken. Zo’n planning wordt bijgehouden in tools zoals Jira, Azure Boards of GitHub Issues.

Stap 2: Code

Dit is de fase waarin de ontwikkeling van de software centraal staat. In deze fase wordt de software ontworpen, geschreven en toegevoegd aan een versiebeheersysteem. Veel voorkomende tools die gebruikt worden voor versiebeheer zijn Azure Repos, GitHub, GitLab, BitBucket en Subversion.

Stap 3: Build

In deze fase wordt de software code omgezet van 'human-readable' code zoals C#, Java, Python en JavaScript, naar computer code, (nulletjes en eenen). Dit noemen wij compileren. Na compileren wordt de computer code verpakt in een soort container of artifact om de software klaar te maken voor een test release. De containers kunnen dan in verschillende omgevingen worden geïmplementeerd. Voorbeelden van build en container tools zijn MSBuild, Docker, Gradle, Maven, JFrog Artifactory, Nexus, en Azure Artifacts. Het automatiseren van het build process kan met tools zoals Jenkins, Gitlab, GitHub Actions en Azure Pipelines.

Stap 4: Testen

Tijdens de testfase worden er continu tests uitgevoerd om voor een optimale codekwaliteit te zorgen. Hiervoor worden verschillende (geautomatiseerde) testen uitgevoerd om snel te kunnen innoveren en om te zorgen voor een stabiel, kwalitatief en productief product. Bekende tools zijn JUnit, Codeception, Selenium, Appium, Jest, Fitnesse en Azure Test Plans.

Stap 5: Release

Het moment waarop het product beschikbaar wordt gesteld voor de gebruikers. Dit bestaat uit een releasebeheerproces met duidelijke, handmatige en geautomatiseerde taken, zodat de processen schaalbaar, herhaalbaar en gecontroleerd zijn. Vaak worden de containers en artifacts uit stap 3 gepromoveerd naar 'stable'. Stappen 1 t/m 3 hoeven dan niet opnieuw te worden uitgevoerd. Releases kunnen worden geautomatiseerd met tools zoals Gitlab, Azure Pipelines, Jenkins en Bamboo.

Stap 6: Implementeren

Tijdens deze fase worden de stable artifacts en containers geupload en geinstalleerd naar een productie omgeving. De software wordt op een consistente en betrouwbare manier in de productieomgeving geïmplementeerd. Tools die hiervoor gebruikt kunnen worden zijn Puppet, Chef, Ansible, Octopus, XLDeploy, Kubernetes, OpenShift, OpenStack, of Docker.

Stap 7: Beheren

Het beheren en onderhouden van de productieomgeving wordt vaak gedaan in tools als Ansible, Puppet, PowerShell, Chef of Salt Een DevOps team streeft altijd naar een hoge systeembetrouwbaarheid en goede beschikbaarheid van het systeem.

Stap 8: Bewaken

In de laatste fase staat het identificeren en verzamelen van informatie over problemen centraal. DevOps teams proberen problemen te identificeren en op te lossen, voordat een klant hier ook maar iets van merkt. Hiervoor maken ze gebruik van tools als New Relic, Datadog, Grafana, Wireshark, Splunk, Nagios of Azure Monitor.

Agile werkwijze

DevOps methoden

Er zijn verschillende DevOps methoden waar organisaties gebruik van kunnen maken. Deze methoden zijn allemaal softwareontwikkelingmethoden die helpen om de ontwikkeling en productreleases te versnellen én te verbeteren.

De drie meest gebruikte methoden zijn allemaal gebaseerd op een Agile-werkwijze:

1. Scrum

Scrum is een methodiek die voor een snelle werkwijze zorgt door goed samen te werken. Deze hele methode is erop gefocust om zo snel mogelijk waarde toe te voegen voor de klant. Een Scrum team bestaat uit een ontwikkelteam, product owner en scrum master, die in korte cycli - ook wel sprints genoemd - werken. Ze zetten bepaalde workflows op, sprints, tijdvakken en dagelijkse scrums (vergaderingen).

2. Kanban

Een methode die zich goed leent voor productiewerk, werk met een redelijke mate van voorspelbaarheid of zeer korte deadlines. Bij deze werkwijze staat het kanbanbord centraal - een visueel bord waarop het werk als het ware doorstroomt in een aantal vooraf gedefinieerde stappen. Dit zorgt voor overzicht en transparantie.

3. SAFe

SAFe staat voor Scaled Agile Framework en gaat uit van drie organisatieniveaus: portfolio, program en team. Op elk niveau worden de rollen en processen beschreven. Deze methode is geschikt voor wanneer de inhoud van nieuwe releases voorspelbaarder moet zijn. Het is momenteel één van de populairste modellen voor het grootschalig agile werken.

Voordelen van DevOps

Waarom DevOps belangrijk is

Naast dat DevOps voor een gestroomlijnde samenwerking tussen ontwikkelingsteams (Dev) en operationteams (Ops) zorgt, is het ook een belangrijk voor de klanttevredenheid en een snelle levering. Het stimuleert bedrijfsinnovatie en zorgt ervoor dat processen continu worden verbetert.

DevOps brengt een aantal belangrijke voordelen met zich mee:

  • Sneller en beter inspelen op de veranderende markt

  • Sneller en beter inspelen op problemen en het doorvoeren van wijzigingen

  • Risico’s van het releasen worden veel minder door de snelle werkwijze en geautomatiseerde testen

  • Meer inzicht in systeemresultaten, waardoor het gelijk duidelijk wordt hoe de eindgebruiker de software gebruikt en welke functionaliteiten er echt toe doen.

  • Grotere schaalbaarheid en hogere beschikbaarheid

  • Meer automatisering en ruimte voor innovatie

Traineeship volgen

DevOps Engineer worden

Wil je graag organisaties helpen met een snelle en gestroomlijnde ontwikkeling van software? Dan is een functie als DevOps Engineer net wat voor jou. In een ander artikel vertellen we je alles over hoe je een DevOps Engineer kunt worden.

Bij Working Talent bieden we je de mogelijkheid om met ons IT traineeship door te groeien binnen vakgebieden als Data, Software Development, DevOps en Business & IT. Je krijgt de kans om jezelf te ontwikkelen tot professionele IT'er én om ervaring op te doen bij super toffe opdrachtgevers (al zeggen we het zelf).