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 .
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 .
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.
Een aantal kernprincipes van DevOps op een rij:
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.
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.
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.
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.
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
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).