Goede samenwerking tijdens het hele proces van software development helpt teams om projecten soepel en succesvol te voltooien, en om de klanttevredenheid zo hoog mogelijk te houden. Niet alleen levert betere samenwerking een snellere ontwikkeling en implementatie op, maar het zorgt ook voor minder frictie tussen teamleden. DevOps tools helpen bij al deze aspecten, wat dan ook de logische reden is dat DevOps zo veel populairder aan het worden is in de afgelopen jaren.

Een rapport dat in november 2019 door DZone werd gepubliceerd, geeft aan dat de DevOps markt in 2017 al $2,9 miljard aan omzet genereerde, en de verwachting is dat dit in 2022 al $6,6 miljard is geworden. Ondanks dit toenemende gebruik in organisaties van allerlei soorten en maten, is het voor veel mensen toch nog onduidelijk wat DevOps nou echt betekent.

Eén van de vele misvattingen over DevOps is bijvoorbeeld dat mensen het puur als één tool zien, terwijl anderen de aanpak, filosofie, cultuur en doelen niet begrijpen. Er is niet maar één specifieke DevOps tool, maar eerder een set aan DevOps tools en toolkits, die essentieel zijn voor DevOps engineers, developers, operators en andere mensen binnen het team.

Dit artikel legt de basis over DevOps uit, wat gebruikelijk is binnen DevOps, de cultuur, en nog veel meer. Daarnaast hebben we ook nog speciaal de 30 beste DevOps tool uitgekozen voor verschillende momenten in de cyclus voor software-development.

Aan de slag dus!

Wat is DevOps?

DevOps is de verzameling aan gewoonten, culturele filosofieën en tools, die samen de mogelijkheden van een organisatie vormen om IT diensten en toepassingen sneller af te leveren dan traditionele development-processen.

Door DevOps te gebruiken, kunnen organisaties daarom hun producten verbeteren, hun klanten bedienen met snelle feedback en oplossingen, een concurrentievoordeel krijgen, en sneller hun zakelijke doelstellingen behalen.

DevOps = Development + Operations
DevOps = Development + Operations

Eenvoudig gezegd is DevOps een mindset die je helpt bij het verwijderen van obstakels die je in traditionele development-processen en dagelijks gebruik ziet en die daardoor zorgt voor een kortere software developmentcyclus.

Dit model maakt het de development en operations teams mogelijk om effectief samen te werken gedurende de complete levenscyclus van de software, van de developmentfase tot de implementatie en dagelijks gebruik.

Het gebruik van technologie in de implementatie van DevOps is een essentieel aspect. Er zijn verschillende DevOps tools die dynamische en programmeerbare infrastructuur gebruiken en daardoor ruimte bieden voor automatisering, testen, configuratie, integratie, implementatie en andere processen.

Het begin van DevOps

Patrick Debois is in 2009 begonnen met de term “DevOps”. Patrick is een Belgische consultant, Agile practitioner en projectmanager, die één van de toonaangevende mensen binnen DevOps werd, en dit woord bedacht op basis van “Dev” van development, en “Ops” van operations.

“Dev” staat dus niet alleen voor developers, maar voor iedereen die betrokken is bij het ontwikkelen van een softwareproduct, van disciplines als Q&A, development, testing, planning, de hele keten.

Op dezelfde manier is “Ops” een containerbegrip voor iedereen die met operations te maken heeft, van system engineers, database beheerders, systeembeheerders, beveiligingsexperts, netwerk engineers, release engineers, uitvoeringsmedewerkers, en nog allerlei anderen.

Zoals al uitgelegd in het vorige deel, is DevOps vooral een mindset, of organisatiecultuur. En deze mindset is dus ook geen wet die door één persoon opgesteld is.

Het is ooit door enkele slimme mensen bedacht, en sindsdien verder ontwikkeld door vooruitziende experts uit verschillende IT-disciplines.

Veel fundamentele DevOps ideeën zijn geïnspireerd op concepten rondom Lean, Agile, enterprise systeemmanagement, The Toyota Way en de Plan-Do-Check-Act methode van Deming.

In 1993 definieerde het Telecommunications Information Networking Architecture Consortium een Model of Service Lifecycle. Dit model combineert telecom operaties met software development.

Sommige professionals zeggen dat DevOps als methode gegroeid is, in plaats van de “top-down” ITIL opgelegde aanpak. Zij zien DevOps meer als “bottom-up” aanpak die populair werd omdat het flexibele software-ontwikkeling biedt in plaats van een star framework.

In 2009 werden de eerst “Devopsdays” georganiseerd, een conferentie over DevOps, in België. Patrick Debois heeft de basis voor deze conferentie gelegd, die zich vervolgens als een beweging over de hele wereld heeft verspreid.

Tijd om de twee methoden te bespreken die voorlopers waren van DevOps:

1. Enterprise Systems Management (ESM)

ESM werd populair rond 2000, toen het beheren van meerdere systemen nog in een vrij primitieve staat was. Daarom werd er moeite ingestopt om dit verder te ontwikkelen. Deze fase kende ook de ontwikkeling van ITIL Lite en Visible Ops. Vervolgens kwamen er steeds meer open source oplossingen voor end-to-end systeembeheer omhoog, zoals Zenoss, Hyperic, Spiceworks, en nog veel meer.

Onder de mensen die aan het begin betrokken waren bij de ontwikkeling van DevOps zaten veel systeembeheerders, die de best practices van ESM toevoegden aan DevOps. Dit zijn gewoonten over bijvoorbeeld configuratiebeheer, geautomatiseerde provisioning, toolchain aanpak, en systeemmonitoring.

Er werden nog meer conferenties gehouden in 2008 en 2009, die zich vooral focusten op de uitvoering en webprestaties, en die best practices daarvoor deelden. Langzaam werden er provisioning tools zoals Chef en Puppet gepubliceerd, waardoor mensen daarover na gingen denken en hoe ze die het beste konden implementeren.

2. Agile Development

Tegelijkertijd was Agile-development hard aan het groeien binnen de wereld van de software development. Agile maakt nauwe samenwerking mogelijk tussen developers, productmanagers, QA, en zelfs de eindklant, om gaten te voorkomen en sneller een beter product te kunnen leveren.

De belangrijkste focus van deze beweging waren processen en dergelijke, zoals lean productie, kanban processen, en systeembeheerders.

Veel organisaties en bedrijven gebruiken DevOps binnen hun software development om het proces te versnellen en betere resultaten te behalen.

Waarom werd DevOps bedacht?

Systeembeheerders en developers konden het over allerlei dingen oneens zijn, maar iedereen was het erover eens dat ze moeten voldoen aan de steeds verder groeiende eisen van hun klanten.

Deze behoefte omvat de wens voor nieuwe features, inkomstenstromen, diensten en betere producten, binnen een systeem dat stabieler en veiliger is, met hogere prestaties en zonder onderbrekingen of storingen.

Dit vereist allemaal de betrokkenheid van zowel admins als developers om een betere dienstverlening en betere product aan de klanten te kunnen bieden.

Het probleem is nu dat bedrijven overweldigd kunnen worden door deze snel veranderende vraag van hun klanten. Ze kunnen daardoor de neiging krijgen om te kiezen tussen:

  • Omgaan met een onstabiele omgeving, maar daardoor snel op veranderingen kunnen inspelen
  • Een stabiele productieomgeving, maar die snel veroudert.

Het moge duidelijk zijn dat beide opties onaantrekkelijk zijn, aangezien een bedrijf daarmee niet de best mogelijke oplossingen aan hun klanten kan bieden.

Daardoor ontstond een sterke behoefte aan een systeem of proces dat een balans vond tussen een stabiele productieomgeving, snelle development en goede uitvoering.

De oplossing voor dit probleem heet DevOps.

Het vindt een balans tussen alles, zodat zelfs als de developers heel snel een product in elkaar weten te zetten, de uitvoering alsnog een manier kan vinden om het systeem stabiel te houden.

DevOps is een manier om alle mensen samen te laten werken die zich bezighouden met software development en implementatie, inclusief de zakelijke gebruikers, veiligheidsengineer, developers, systeembeheerders, test engineers, QA, en alle anderen.

Ze worden allemaal geïntegreerd in één sterk geautomatiseerde workflow met één gedeelde doelstelling: het snel afleveren van kwalitatieve software die voldoet aan de wens van de gebruiker, terwijl tegelijkertijd de stabiliteit en integriteit van het systeem bewaard blijven.

En dat is hoe DevOps tot stand kwam.

Nu vraag je je wellicht af waarom je DevOps zou gebruiken, als er ook allerlei andere opties zijn.

Maak je geen zorgen. Het antwoord staat hier meteen onder.

Wat zijn de voordelen van DevOps?

De voordelen van DevOps
De voordelen van DevOps

Teams die de DevOps cultuur, tools en gewoonten overnemen, zullen effectiever gaan samenwerken, productiever worden, en sneller betere producten kunnen afleveren, wat een hogere klanttevredenheid oplevert.

DevOps verbetert de wendbaarheid van het bedrijf door een productieve omgeving te bieden die samenwerking, goede communicatie en naadloze integratie stimuleert, tussen teams en binnen teams, waar ter wereld de teamleden zich ook bevinden.

Volgens een rapport van UpGuard, merkte 63% van de organisaties die DevOps is gaan gebruiken een verbetering in de software deployment en konden ze vaker producten releasen.

Tijd om helder te krijgen wat DevOps jou en je team precies te bieden heeft.

1. Hoge developmentsnelheid

DevOps helpt developers en uitvoerende teams alles te automatiseren, zodat ze sneller kunnen innoveren, waarbij ze op hoge snelheid kwalitatieve software kunnen bouwen en zich snel aan veranderingen kunnen aanpassen, waardoor het bedrijf efficiënt kan groeien.

2. Snelle aflevering

Je kan de snelheid en frequentie van releases verhogen en korte release cycles gaan gebruiken, waardoor je producten sneller op de markt kan helpen, dankzij DevOps. Wanneer je een product en bijbehorende features snel publiceert, kan je ook snel bugfixes implementeren en sneller reageren op de behoefte van de klant, waardoor je een concurrentievoordeel krijgt én betere producten.

3. Betrouwbaarheid en stabiliteit van systemen

DevOps gewoonten en tools zorgen voor een betere stabiliteit en kwaliteit van software tijdens het introduceren van veranderingen in de infrastructuur. Gewoonten zoals CI/CD en realtime monitoring zijn erg handig voor het behouden van de stabiliteit van systemen. En dit zorgt er weer voor dat je gebruikers je software als betrouwbaarder ervaren.

4. Schaalbaarheid

Het beheren en besturen van developmentprocessen en grootschalige infrastructuur wordt makkelijker met DevOps. De combinatie van automatisering en consistentie zorgen ervoor dat je veranderende, complexe systemen efficiënt kan beheren, met minder risico’s.

5. Veiligheid

DevSecOps wordt geïntroduceerd binnen de pijplijn, waarbij iedereen in het team mede-verantwoordelijk is voor de beveiliging, niet alleen het beveiligingsteam. Hierdoor kan je beveiligingsproblemen volgen, detecteren en oplossen, voordat er schade ontstaat.

Daardoor kan je beter voldoen aan regelgeving en je beveiliging beheren via configuratiemanagement, geautomatiseerd beleid voor regelgeving, en fijnmazig beheer.

6. Hogere klanttevredenheid

Dankzij de snelle aflevering van software, heb je genoeg tijd om de feedback van klanten op te vragen, de voortgang van je software te volgen en meteen potentiële verbeteringen meenemen.

Doordat je op basis van gebruikersvragen werkt aan ontwerpfouten en betere functionaliteit, worden je eindgebruikers een stuk blijer. Ze vertrouwen je producten meer, en worden trouwe klanten.

7. Concurrentievoordeel

Door je snel aan te kunnen passen aan de marktbehoefte heb je een groot voordeel.

DevOps implementatie helpt je bij het snel releasen van software, snel leveren, goede functionaliteit, betere beveiliging en hogere klanttevredenheid. Je krijgt daarmee een krachtig concurrentievoordeel ten opzichte van concurrenten die nog op de traditionele manier werken.

Daarnaast helpt het je ook om de kosten over de hele cyclus te verlagen, waardoor je de ROI en winstmarges kan maximaliseren.

Hoe werkt DevOps?

Zoals we al hebben genoemd, werken de uitvoerings- en developmentteam samen binnen het DevOps ecosysteem gedurende de hele levenscyclus van je software, waarbij ze allemaal bredere vaardigheden ontwikkelen.

Soms worden ook beveiligingsteams en QA teams geïntegreerd met DevOps, waarbij dit DevSecOps wordt genoemd als er een sterke focus ligt op de beveiligingskant.

Daarbij worden manieren gebruikt om alle trage en handmatige processen te automatiseren. Hiervoor wordt een technologie stack en juiste tools gebruikt om toepassingen sneller en betrouwbaarder te kunnen ontwikkelen en gebruiken.

Laten we kijken hoe DevOps werkt gedurende de software levenscyclus.

1. Planning

DevOps team bedenken en definiëren de software die ze bouwen met de pijnpunten van de klant in het achterhoofd, en bedenken meteen hoe hun product het probleem van de klant gaat oplossen. Ze beschrijven daarbij de capaciteit en functionaliteit van de software.

Ook plannen ze welke tools te gaan gebruiken om ervoor te zorgen dat het hele team weet wat er moet gebeuren, hoeveel taken al zijn afgerond, en of alles nog op schema ligt.

2. Development

In de developmentfase, zijn de DevOps teams vooral bezig met programmeren, reviewen, integreren en implementeren in verschillende omgevingen. De teams zijn toegewijd aan het snel innoveren met goede producten, terwijl de productiviteit en stabiliteit behouden blijft.

Daarbij gebruiken ze DevOps tools zoals Chef, Terraform, Ansible, Kubernetes, en meer, om herhalende taken zoveel mogelijk te automatiseren. Ze draaien de taken af in korte cyclussen via continuous integration.

3. Testing

Testing wordt uitgevoerd voor alle code om te controleren op bugs of fouten, die de effectiviteit en prestaties van het eindproduct zouden kunnen verminderen. Ook wordt hierdoor de klantervaring verbeterd.

Daarbij worden onder meer DevOps tools zoals Selenium en Sentry gebruikt.

4. Implementatie

Vervolgens gaan DevOps teams bezig om de software op een betrouwbare en consistente manier te implementeren in een productieomgeving. Deze fase behelst ook het configureren en implementeren van de volledig gecontroleerde basisinfrastructuur van de gebruikte omgevingen.

Daarnaast moeten DevOps teams een goed doordacht release proces definiëren, en geautomatiseerde “hekken” plaatsen om software tussen fasen te begeleiden voordat ze beschikbaar komen voor de eindgebruiker. Op die manier kan automatisering ze helpen om met meer vertrouwen en gemak een product te produceren.

DevOps tools voor deployment zijn bijvoorbeeld CircleCI en Bamboo.

5. Gebruik

De gebruiksfase betekent het monitoren, onderhouden, loggen en oplossen van problemen van de software binnen de productieomgeving.

DevOps teams proberen de stabiliteit, betrouwbaarheid en beschikbaarheid van de systemen zo hoog mogelijk te hebben, naast nul downtime van de software, terwijl ook de beveiliging zo goed mogelijk geregeld moet blijven.

Daarom moeten ze alles binnen de software en basissystemen kunnen zien, naast allerlei prestaties kunnen meten en zaken kunnen veranderen, en natuurlijk feedback van gebruikers kunnen verzamelen.

DevOps tools die je veel in deze fase ziet zijn bijvoorbeeld Prometheus, Nagios, New Relic, etc.

Wat is de DevOps cultuur?

DevOps cultuur is een belangrijk onderdeel bij het implementeren van DevOps. Deze cultuur bestaat uit een verzameling gezamenlijke waarden die mensen nastreven bij het samenwerken. Door je te verbinden aan de DevOps cultuur ontstaat er een productieve omgeving voor iedereen binnen het team.

Deze DevOps cultuur omvat onder meer:

1. Kortere productrelease-cyclus

DevOps teams moeten agile blijven tijdens de hele levenscyclus van de software, zodat releases korter achter elkaar kunnen plaatsvinden. Door kortere cyclussen voor productiereleases te gebruiken, wordt het plannen sneller en het risicobeheer makkelijker, doordat de veranderingen bestaan uit kleinere stapjes, met minder impact op de stabiliteit van het systeem.

Tegelijker kan je hiermee sneller reageren op veranderende vragen van de gebruiker.

2. Zichtbaarheid, samenwerking en één richting

Zichtbaarheid is het eerste dat nodig is binnen DevOps teams. Elke team moet hun prioriteiten, zorgen, processen en ontwikkelingen delen zodat iedereen overal van op de hoogte is.

Nadat ze alles binnen het project kunnen zien, kunnen de development en onderhoudsteams effectiever samenwerken, zonder communicatiefouten.

Tijdens de samenwerking moeten DevOps teams ook allemaal dezelfde richting op gaan, die overeenkomen met de bedrijfsdoelstellingen, waarbij ook aandacht is voor de tijdsplanning, kwaliteit en ethische overwegingen.

3. Verantwoordelijkheid

Wanneer in de teams alle neuzen dezelfde kant op staan, is elk teamlid verantwoordelijk voor hun eigen werk, project en succesvolle aflevering van hun werk. Developers moeten verantwoording afleggen over de kwaliteit en innovatie tijdens de ontwikkeling, en voor de stabiliteit en prestaties die hun code kan leveren tijdens de operationele fase.

Op dezelfde manier moeten IT operators beveiliging, compliance en governance in hun software opnemen tijdens de ontwikkeling, terwijl ze ook hoge monitoringsstandaarden, kwaliteitscontroles, prestatiemetingen, tests en probleemoplossing onderhouden.

4. Groeimentaliteit

DevOps cultuur versterkt een groeimentaliteit bij alle teamleden en het team als geheel. Zelfs bij mislukkingen gaan ze daarbij op zoek naar de reden voor de mislukking, waarbij de lering trekken uit hun fouten en ze deze niet herhalen.

Daardoor kunnen ze sneller innoveren, feedback serieus nemen, klanttevredenheid verhogen en zichzelf ontwikkelen al naargelang de markt wenst.

7 essentiële DevOps gewoonten

Bij het overnemen van de DevOps cultuur, hoort de implementatie van bepaalde gewoonten tijdens de gehele softwarecyclus om het DevOps concept ook echt in de praktijk te brengen.

Deze gewoonten helpen bij het automatisering, verbeteren en versnellen van verschillende fasen in de cyclus, van development tot implementatie en dagelijks gebruik.

1. Agile Software Development

Agile is één van de methoden voor software development met een sterke focus op samenwerking, aanpassingsvermogen, feedback van gebruikers en kortere release cyclussen.

Dit is anders dan traditionele frameworks zoals de waterval-methode, met langere release cyclussen met elkaar opvolgende fasen.

Agile gebruikt hiervoor twee bekende frameworks, namelijk Scrum en Kanban.

2. Continuous Integration (CI) & Continuous Delivery (CD)

Continuous integration is een methode voor software development waarbij developers regelmatig nieuwe code integreren of samenvoegen met de primaire ‘branch’. Dat omvat onder meer geautomatiseerd testen, die elke keer uitgevoerd worden wanneer er nieuwe code toegevoegd wordt, om te controleren dat de hoofdcode stabiel is.

Continuous delivery betekent vervolgens het geautomatiseerd implementeren van softwareversie in de gewenste productieomgeving. DevOps teams kunnen vaker updates installeren via geautomatiseerde implementatie, waardoor er minder problemen tijdens de implementatie ontstaan.

Deze twee gewoonten samen worden continuous integration en continuous delivery (CI/CD) genoemd. Dit omvat de complete automatisering van alle processen, van het programmeren zelf tot de implementatie, en maakt het mogelijk voor teams om de operationele overhead, menselijke fouten en herhalend werk te verminderen.

Daardoor kunnen DevOps teams zich focussen op het bouwen van nieuwe code en die sneller implementeren. Daarnaast kan je vaker implementeren in kleinere stappen, waardoor je agile wordt en je met meer vertrouwen je code kan uitvoeren.

3. Infrastructure as Code (IaC)

IaC definieert topologieën en resources binnen het systeem, waardoor je team op een gecontroleerde manier de resources kan beheren tijdens de programmeerfase. Je kan die definities opslaan en in versies indelen via een versiebeheersysteem, zodat je team altijd makkelijk terug kan gaan. Dit vermindert ook de kans op menselijke fouten in complexe productieomgevingen.

4. Versiebeheer

Versiebeheer gaat over het beheren van de verschillende versies van code van een programma, via revisies en bewerkingsgeschiedenis, zodat het makkelijk wordt om de code te beoordelen en indien nodig te herstellen.

Het is een essentiële DevOps gewoonte, net als CI/CD en IaC, waarmee jouw development teams beter kunnen samenwerken, hun code veilig op kunnen slaan, werk makkelijker verdelen tussen teamleden, veranderingen kunnen samenvoegen, conflicterende code kunnen oplossen, en wijzigingen kunnen terugdraaien wanneer dat nodig is.

Versiebeheer is te implementeren via systemen zoals Git.

5. Configuratiebeheer

Het beheren van systeem resources, zoals servers, databases en virtual machines, heet configuratiebeheer. Je kan hier allerlei DevOps tools voor gebruiken, zoals Chef of Ansible.

Deze tools helpen je om aanpassingen systematisch uit te rollen, op een gecontroleerde manier, zodat er geen risico’s ontstaan bij het wijzigingen van de systeemconfiguratie. DevOps tools helpen je ook bij het volgen van je systeemstatus, naast het voorkomen van “configuration drift”, wat kan leiden tot instabiliteit.

DevOps teams gebruiken configuratiebeheer meestal samen met IaC zodat zowel de configuratie als systeemdefinities eenvoudig te automatiseren zijn, waardoor teams complexe productieomgevingen kunnen beheren, en eenvoudig op kunnen schalen.

6. Continuous Monitoring

Continuous monitoring is handig voor het verkrijgen van volledig zicht op de gezondheid en prestatie van je gehele toepassingen stack in realtime, van de infrastructuur tot de meest geavanceerde software componenten.

Monitoring behelst het gebruiken van metadata, telemetrie (event logs en data) en meldingen bij bepaalde voorwaarden. DevOps teams kunnen hier belangrijke inzichten uit halen waarmee ze problemen sneller kunnen voorkomen of oplossen. Ze kunnen manieren vinden om de kwaliteit van de software in de volgende cyclus te verbeteren, door de verzamelde informatie te gebruiken.

7. Microservices

Microservices gaat over een effectieve ontwerpmethode of architectuur om een toepassing op te bouwen uit meerdere kleine services. Deze services hebben allemaal aparte processen, en kunnen met elkaar communiceren via een specifieke interface, zoals een HTTP gebaseerde API.

Microservices worden ontworpen op basis van zakelijke doelen, en elke service heeft een specifiek doel. Ze worden gebouwd met verschillende programmeertalen of web frameworks, en je kan ze apart als individuele diensten gebruiken of allemaal samen als cluster.

Wie gebruikt DevOps en waarvoor?

Van grote ondernemingen tot jonge startups, DevOps wordt gebruikt door ICT-bedrijven wereldwijd. Enkele organisaties die DevOps hebben geïmplementeerd:

  • Web-native bedrijven zoals Amazon, Facebook, Netflix, etc.
  • Financiële dienstverleners, zoals Barclays Bank
  • Mediabedrijven zoals Sony Pictures
  • Producenten van bouwproducten, zoals USG
  • Overheden en semi-overheden, zoals het Amerikaanse Patentbureau
  • Midden- en kleinbedrijf

Naast grote bedrijven is DevOps ook een ideale aanpak voor individuen, denk aan:

  • Developers en programmeurs die niet het gedoe willen van langdradig papierwerk, goedkeuringscyclussen en server provisions. Op deze manier kunnen developers snel voorzieningen aanmaken voor een werkomgeving en de juiste resources, om innovatiever en creatiever te kunnen werken.
  • Operationeel personeel kan hiermee nauw samenwerken met developers en meer stabiliteit bij de implementatie bewerkstelligen.
  • Productmanagers en marketingmanagers kunnen ook voordeel halen uit DevOps, omdat ze sneller feedback richting klanten kunnen geven, de responsiveness van het systeem verbeterd wordt, en er minder risico en verspilling is.
  • Leidinggevenden hoeven niet meer in elk wissewasje tussen afdelingen betrokken te worden, zodat ze hun tijd kunnen investeren in kritieke zakelijke doelen. Daarnaast is de DevOps cultuur ook aantrekkelijk voor getalenteerde developers, testers, systeembeheerders en andere professionals, dankzij de ultramoderne aanpak van softwareontwikkeling met veel flexibiliteit en automatisering.

Wat zijn DevOps tools?

DevOps werkt met allerlei tools van verschillende soorten en met verschillende doelen, in plaats van met één specifieke tool. Deze tools worden vaak toolchains genoemd binnen DevOps, en we hebben hierboven al een paar genoemd.

De tools helpen gedurende de hele productietijd van software, van de development, beheer tot levering.

De organisatie die DevOps gebruikt coördineert de tools en gebruikt elke tool voor de optimale productieactiviteit, zoals planning, creatie, verificatie, verpakking, releasen, configureren, monitoren of versiebeheer.

We hebben de verschillende DevOps tools onderverdeeld op basis van de productieactiviteit waarvoor ze gebruikt kunnen worden.

DevOps automatiseringstools

Enkele populaire DevOps automatiseringstools:

1. Jenkins

Jenkins
Jenkins

Jenkins is een open source en gratis automatiseringsserver waarmee software developmentprocessen geautomatiseerd kunnen worden, zoals het bouwen, faciliteren van CI/CD, implementeren en testen.

Deze DevOps tool maakt het makkelijker voor teams om herhalende taken te monitoren, eenvoudig veranderingen te integreren, en problemen snel te identificeren.

Features en voordelen:

  • Jenkins ondersteunt meer dan 100 plugins die kunnen integreren met nagenoeg elke tool binnen de CI/CD toolchain, zoals Git, Amazon EC2, Maven, en nog veel meer.
  • Het is een zelfstandig programma dat in Java geschreven is en op alle grote besturingssystemen werkt, waaronder Windows, macOS, Linux en Unix.
  • Je kan Jenkins eenvoudig instellen en configureren via de eenvoudig web interface, die ingebouwde foutcontroles en hulpfuncties biedt.
  • Jenkins is er makkelijk uit te breiden via plugins, waarmee je allerlei extra functionaliteit kan toevoegen.
  • Aangezien het zo uitbreidbaar is, kan Jenkins eenvoudig gebruikt worden als een CI/CD tool voor elk software development project.
  • Doordat Jenkins op Java gebouwd is, kan je het makkelijk op andere machines zetten voor het versnellen van het bouwen, testen en implementeren van software.

2. Docker

Docker
Docker

Als marktleider binnen software containerization wordt Docker gebruikt door meer dan 11 miljoen developers wereldwijd. Solomon Hykes is de originele auteur, en het werd in 2013 gepubliceerd door Docker, Inc.

Als DevOps tool helpt Docker developers bij het eenvoudig bouwen, verpakken, en implementeren van code via containers die al de benodigde afhankelijkheden bevatten, in plaats van het gebruiken van virtual machines. Hierdoor worden simpele maar tijdrovende configuratie-activiteiten overbodig, en kunnen teams beter samenwerken.

Docker zorgt ervoor dat binnen elke fase tijdens de DevOps cyclus dezelfde software development-omgeving aanwezig is, van de development tot het testen tot de daadwerkelijke productie. Developers kunnen Docker images maken die ze in een development omgeving kunnen uitvoeren en waarmee de implementatie teams kunnen testen en deployments mee kunnen uitvoeren.

Features en voordelen:

  • Docker gebruikt virtualization op het niveau van het besturingssysteem om toepassingen in pakketten af te leveren, die een container worden genoemd. Deze containers worden van elkaar geïsoleerd en de software, configuratiebestanden en libraries worden gebundeld, wat de veiligheid en overdraagbaarheid flink vergroot.
  • Docker werkt goed samen met GCP en AWS en maakt cloudmigraties veel makkelijker
  • Docker faciliteert distributed development
  • De tool maakt het makkelijk om functies toe te voegen en reparaties uit te voeren
  • Docker draait in Windows, macOS, en Linux
  • Het integreert ook goed met deployment pipeline tools zoals CircleCI, GitHub en meer
  • Het biedt zowel open source als commerciële oplossingen
  • Docker wordt gebruikt door bedrijven als Netflix, Adobe, AT&T, PayPal, etc.

3. Puppet

Puppet
Puppet

Puppet is een open source tool voor software configuratiebeheer en ontwikkeld door Puppet, Inc., dat in 2005 werd opgericht door Luke Kanies.

Deze DevOps automatiseringstools helpen je bij het beheren van de verschillende fasen in de softwarecyclus zoals de provisions voor ICT-infrastructuur, patching, en het beheren en configureren van software componenten en besturingssystemen binnen verschillende datacenters en cloud infrastructuren.

Features en voordelen:

  • Puppet is geschreven in C++, Ruby en Clojure en werkt met Windows, Linux en Unix-achtige besturingssystemen.
  • Puppet is een modelgedreven tool waarbij je maar weinig hoeft te kunnen programmeren.
  • Het gebruikt een eigen declaratieve taal om de systeemconfiguratie te definiëren.
  • Het vermindert het risico op handmatige fouten en ondersteunt je team bij het opschalen met infrastructuur zoals Code en agentless automatisering
  • Puppet’s commerciële software biedt ingebouwde rapportages, node-beheer, orchestration, productondersteuning en toegangscontrole

4. Apache Maven

Apache Maven
Apache Maven

Maven is een efficiënte automatiseringstool voor het bouwen van software, ontwikkeld door de Apache Software Foundation en gepubliceerd in 2004  Het is geschreven in Java en wordt vooral gebruikt voor Java-gebaseerde projecten, waarbij het als een tool voor projectmanagement wordt gebruikt.

Als DevOps tool helpt het je bij het beheren van het bouwen, documenteren en rapporteren over een project. Naast Java-gebaseerde projecten kan je Maven ook gebruiken om softwareprojecten in Ruby, C#, Scala of andere talen te ontwikkelen en beheren.

Features en voordelen:

  • Maven heeft vooraf gedefinieerde doelen om heldere taken uit te voeren, zoals compilatie of packaging van code.
  • Het downloadt Maven plugins en Java libraries vanuit eigen verzamelingen om het ontwikkelingsproces te versnellen.
  • Maven heeft de Apache License 2.0
  • Maven biedt uitstekend beheer van dependencies, door middel van automatische updates, transitive dependencies en het afsluiten van dependencies.

5. Gradle

Gradle
Gradle

Met Gradle kan je productiever worden bij het ontwikkelen van je software. Ook deze wordt gebruikt als DevOps tool voor het automatiseren van het bouwproces, vooral bij meertalige toepassingen of software development.

Gradle is geschreven in Java, Kotlin en Groovy, en werd gepubliceerd in 2007. Het wordt gebruikt om development, testing en implementatie te automatisering en versnellen.

Features en voordelen:

  • Gradle biedt een rijke API, naast een geavanceerde ecosysteem van integraties en plugins die je helpen bij de automatisering, zodat je software kan ontwikkelen, integreren en systematiseren.
  • Het heeft de Apache License 2.0
  • Gradle introduceert een DSL gebaseerd op Kotlin en Groovy
  • Het gebruikt gestuurde acyclische grafieken om taken te prioriteren via dependency beheer.
  • Het helpt je bij het eenvoudig opschalen van je development, door supersnel te kunnen bouwen.
  • Erg handig voor het ontwikkelen van mobiele applicaties en microservices
  • Het is veelzijdig en kan door zowel startups als grote ondernemingen gebruikt worden

Andere DevOps automatiseringstools: Gulp, Graphite, CA Release Automation, Digital.ai, UrbanCode Deploy, etc.

DevOps Pipeline (CI/CD) Tools

Enkele van de beste CI/CD DevOps tools zijn:

6. CircleCI

CircleCI
CircleCI

Hoe groot je DevOps team ook is, deze cloud native CI/CD tool, CircleCI, biedt betrouwbaarheid en snelheid voor het hele developmentproces.

Je kan software met hoge prestaties ontwikkelen en implementeren op je infrastructuur, of in de cloud, en vervolgens snel opschalen.

CircleCI is in 2011 opgericht en voert nu elke maand zo’n 35 miljoen builds uit. Het wordt door allerlei toonaangevende bedrijven gebruikt, zoals Spotify, PagerDuty, Ford Motor Company, Samsung, en meer.

Features en voordelen:

  • CircleCI voert je CI/CD pipeline automatisch uit binnen een virtual machine of lege container, zodat je makkelijker kan testen.
  • Wanneer er een fout in de pipeline ontstaat, krijgt je team meteen een melding. Je kan meldingen ook automatiseren via bijvoorbeeld de Slack integratie.
  • CircleCI voert automatische deployment van code uit naar verschillende omgevingen, zodat je sneller je product op de markt kan zetten.
  • Er zijn integraties met Bitbucket en GitHub om pipelines te kunnen maken voor je code commits.
  • Het draait op Windows, macOS, Linux en ondersteunt Docker.
  • Je kan de uitvoering van taken beter definiëren en inplannen, voor een betere controle van de workflow.
  • Ondersteunt allerlei talen, zoals Javascript, C++, PHP, Python, .NET, Ruby, etc. naast ontelbaar veel frameworks, toolchains en versies.
  • Biedt krachtige caching opties zoals broncode, images, klant caches, en dependencies, zodat je pipelines kan versnellen en maximale prestaties kan bereiken.
  • Met CircleCI kan je problemen via SSH opsporen en oplossen.
  • Biedt uitzonderlijke beveiliging via volledige VM isolatie, LDAP gebruikersbeheer, en meer.
  • Biedt een krachtig dashboard voor inzichten waarmee je de status en duur kan zien, en je pipelines kan optimaliseren.

7. Bamboo

Bamboo
Bamboo

Het DevOps team gebruikt Bamboo van Atlassian voor continuous integration/continuous deployment en het afleveren van software toepassingen. Hiermee kan je geautomatiseerde builds, releases en tests samenvoegen tot één workflow.

Als DevOps tool helpt het je bij het maken van planningen voor verschillende fasen, het instellen van triggers, en het toewijzen van agents aan kritieke builds en deployments.

Het is beschikbaar als betaalde en als gratis versie. Voor het ontwikkelen van een open source softwareproject, is Bamboo gratis, terwijl het commerciële organisaties een prijs rekent op basis van het vereiste aantal build agents.

Features en voordelen:

  • Ondersteunt meerdere builds
  • Heeft een intuïtieve en prettige gebruikersinterface
  • Biedt tips, tools en auto-aanvullen
  • Met vooraf gebouwde functionaliteiten heeft de geautomatiseerde pipeline van Bamboo minder tijd voor instellen nodig dan Jenkins
  • Je kan parallel geautomatiseerde tests uitvoeren om producten uitvoerig te testen op basis van elke wijziging, waardoor het opsporen bugs sneller en makkelijker wordt
  • Integreert met allerlei build tools en code verzamelingen, zoals Git, Mercurial, JIRA, Bitbucket, Crucible, Fisheye, etc.

8. TeamCity

Teamcity
Teamcity

TeamCity is in 2006 door JetBrains gepubliceerd als robuuste tool voor continuous integration door DevOps teams. Het is een breed inzetbare CI/CD DevOps tool met meer flexibiliteit voor verschillende soorten development en verschillende workflows.

Van developers tot DevOps engineers en managers tot beheerders, iedereen vindt TeamCity handig. Je kan toepassingen, containers en verschillende pakketten bouwen, implementeren en testen, of het nou uit verschillende clouds, talen of platforms bestaat.

Het is in Java geschreven, en beschikbaar via zowel een gratis als betaald pakket. De gratis licentie biedt een maximum van 3 build agents en 100 configuraties.

Features en voordelen:

  • Honderden plugins beschikbaar die je gratis kan installeren
  • Gated commits zodat developers de broncode in een versiebeheersysteem nooit kunnen breken
  • Realtime rapportages voor het sneller oplossen van problemen
  • Geïntegreerde inspecties, code coverage en zoeken op dubbelingen.
  • Build Grid waarmee je tegelijkertijd meerdere tests en builds kan uitvoeren voor verschillende omgevingen en platforms
  • Ondersteunt Java, Ruby en .NET
  • Ondersteunt versiebeheersystemen zoals Git, Subversion en Mercurial
  • Integreert met IDE’s zoals Visual Studio, Eclipse, en IntelliJ IDEA

9. Travis CI

Travis CI
Travis CI

Travis CI is ideaal voor open source projecten, als efficiënte Continuous Integration (CI) tol voor het ontwikkelen en testen van toepassingen die op GitHub of Bitbucket zijn gebouwd. Het is geschreven in Ruby en heeft een MIT licentie.

Deze cloudhosted dienst detecteert automatisch alle nieuwe code commits en hoeveel codes naar je GitHub repository zijn gestuurd, om zo je software te helpen bouwen en testen.

Features en voordelen:

  • Eenvoudig in te stellen en compatibel met Linux, Mac en iOS
  • Ondersteunt Java, Python, PHP, Perl, etc.
  • Biedt automatische deployment
  • Biedt schone VM’s voor elke build
  • Bevat een geïnstalleerde database, live-build statistieken en parallel testen
  • Biedt toegangscontrole voor grotere organisaties voor betere beveiliging
  • Biedt on-demand scaling

10. Buddy

Buddy
Buddy

Als je een effectieve DevOps tool voor CI/CD zoekt om sneller software te kunnen bouwen, is Buddy een goede optie. Deze tool helpt bij continuous integration en deployment naast het bieden van betere feedback.

Het is handig voor projecten met code van GitHub of Bitbucket. Je kan hiermee Docker containers gebruiken, naast vooraf geïnstalleerde frameworks en talen om de software mee te bouwen, en meldingen te monitoren en versturen.

Features en voordelen:

  • Heeft een prettige en eenvoudige gebruikersinterface
  • Biedt snellere deployment met detectie van veranderingen, parallel werken, geavanceerde caching, 360 graden optimalisaties, RAM en vCPU scaling en meer.
  • Maakt het mogelijk om meer dan 100 acties uit te voeren, zoals het gebruiken van SSH opdrachten, Docker images, genereren van statische sites, gebruiken van Kubernetes clusters en RPM tools, en nog meer, naast het bouwen en implementeren
  • Integreert met Selenium, MariaDB, Redis, Memcached, Firefox, Chrome, en meer
  • Biedt workflowmanagement met sjablonen om pipelines te importeren en exporteren en te klonen

Andere DevOps CI/CD tools: GoCD, Mercurial, Azure DevOps Pipelines, Chrome DevTools, Sublime Text, etc.

DevOps versiebeheertools

Versiebeheertools binnen DevOps zijn:

11. Git

Git
Git

Git is één van de bekendste DevOps tools, en is open source en gratis versiebeheersoftware. Het is geschreven in C, Perl, Shell en Tcl door Linus Torvalds, en gepubliceerd in 2005.

Deze distributed source code management (SCM) tool kan gebruikt worden om wijzigingen in bestanden of code te volgen en werk effectief te verdelen onder de beschikbare programmeurs. Het is gericht op het versnellen en ondersteunen van niet-lineaire, gedistribueerde workflows.

Elke Git-map is compleet, met volledige mogelijkheden voor versiebeheer en versiegeschiedenis.

Features en voordelen:

  • Werkt op Windows, macOS, Linux, Solaris, en AIX
  • Heeft een GPL v2 licentie
  • Kan projecten van elke schaal aan met behoud van efficiënte en snelheid
  • Eenvoudig te leren en gebruiken door zowel beginners als experts
  • Biedt een duidelijk voordeel met features zoals handige staging omgevingen, meerdere workflows, commits, check-in en meervoudige lokale branches.
  • Om het met je workflow te integreren, kan je repositories hosten van GitHub of Bitbucket, zodat je team eenvoudig taken kan pushen

12. GitHub

GitHub
GitHub

Miljoenen bedrijven en developers vertrouwen op GitHub om hun software mee te bouwen, beheren en versturen. Het is dan ook het grootste en meest geavanceerde developmentplatform ter wereld. Het biedt webhosting voor je software development, naast versiebeheer via Git.

Het is geschreven in Ruby, C, Go en ECMAScript en gepubliceerd in 2008. Het wordt momenteel gebruikt door 56 miljoen gebruikers en meer dan 3 miljoen organisaties.

GitHub biedt beheer van broncode en distributed versiebeheerfeatures van Git, naast de andere functies. Alle basisdiensten zijn gratis, en daarom wordt het ook veel gebruikt voor open source projecten.

Features en voordelen:

  • Biedt beter toegangsbeheer
  • Maakt samenwerken makkelijker via taakbeheer, bug tracking, continuous integration, feature verzoeken en wiki’s
  • Biedt onbeperkte privé en publieke repositories
  • Maakt het mogelijk om je projecten te delen via GitHub packages en npm
  • Met de mobiele app kan je eenvoudig code samenvoegen en beoordelen, browser repositories bekijken en meldingen beheren
  • Beschikbaar voor Windows, macOS en Linux, en je kan ook de GitHub CLI of desktop gebruiken

Andere DevOps tool voor versiebeheer zijn onder meer Bitbucket, GitLab, Subversion, Mercurial, Gerrit, en Kallithea.

DevOps tools voor configuratiebeheer

Tijd om naar enkele van de beste DevOps tools voor configuratiebeheer te kijken:

13. Chef

Chef
Chef

Chef is één van de oudste DevOps tool, en is een open source configuratiebeheer oplossing gepubliceerd in 2009.

Je kan Chef gebruiken om de configuratie en onderhoud van je servers te vereenvoudigen. Het is ook te integreren met verschillende cloud oplossingen, zoals Amazon EC2, Microsoft Azure, Google Cloud Platform en meer, om nieuwe machines automatisch te configureren.

Het zorgt ervoor dat alle nodes binnen een IT-infrastructuur verbonden zijn en maakt het eenvoudig om meer nodes toe te voegen, zonder handmatige updates.

Features en voordelen:

  • Chef is geschreven in Erlang en Ruby, en gebruikt een Domain Specific Language (DSL) van pure Ruby voor systeemconfiguratie
  • Gebruikers kunnen zich makkelijker aanpassen aan snel veranderende eisen met snelheid, consistentie en schaal
  • Beheert verschillende cloudomgevingen en datacenters
  • Zorgt voor hoge beschikbaarheid van servers
  • Chef draait in server/client modus, of als zelfstandige configuratietool
  • Ondersteunt verschillende platforms, waaronder Windows, macOS, Ubuntu, Solaris, FreeBSD, RHEL/CentOS, AIX, Fedora, en Debian.

14. Kubernetes

Kubernetes
Kubernetes

Kubernetes wordt soms ook wel K8s genoemd, en is een open source productie container orchestration systeem voor het automatiseren van de implementatie, beheer en opschalen van container gebaseerde software.

Het is geschreven in Go en origineel ontwikkeld door Google, met de release in 2014, maar inmiddels onderhouden door de Cloud Native Computing Foundation.

Als één van de beste DevOps automatiseringstools is Kubernetes vooral erg handig voor toepassingen met veel containers. Het maakt het mogelijk voor developers om container cluster logisch te isoleren en te clusteren voor makkelijkere implementatie om meerdere machines.

Je kan een master-slave node arrangement gebruiken om het plannen en implementeren van containers te automatiseren en de verbinding van nodes te analyseren en onderhouden. Met Kubernetes kan je Docker containers automatisch aanmaken en toewijzen waar ze nodig zijn.

Features en voordelen:

  • Met Kubernetes kan je veranderingen eenvoudig uitrollen of terugdraaien naar software, en houdt de gezondheid van de software in de gaten
  • Het biedt een IP adres voor Pods en één DNS naam voor meerdere Pods, naast loadbalancing tussen de Pods.
  • Maakt het mogelijk om verkeer te routen op basis van cluster topologie.
  • Biedt meerdere opties voor opslag, van lokaal tot publieke clouds zoals AWS of GCP, of netwerkopslag zoals NFS, Gluster of anderen.
  • Plaatst automatisch containers op basis van de gebruikseisen, zonder beschikbaarheid te verminderen
  • Beheert batch CI en workloads
  • Wijst IPv6 en IPv4 adressen toe aan diensten en Pods
  • Biedt horizontaal schalen via een UI, opdracht, of op basis van processorgebruik
  • Bevat zelfherstellende functionaliteit waarmee containers kunnen worden herstart bij falen, en ze ingepland of vervangen kunnen worden wanneer een node wegvalt, en sluit containers die niet reageren op health checks

15. Ansible

Ansible
Ansible

Ansible is toonaangevende open source tool voor software provisioning, deployment en configuratiebeheer dat Infrastructure as Code mogelijk maakt.

Het is geschreven in Python, Shell, Ruby en PowerShell, en de originele auteur is Michael DeHaan, die het in 2012 publiceerde. Inmiddels is Ansible overgenomen door Red Hat.

Als één van de bekendere DevOps tools, maakt het de automatisering van ontwikkeling mogelijk tijdens alle fasen van de software ontwikkeling.

Features en voordelen:

  • Het werkt zonder agents en je kan verbinden via SSH of remote PowerShell om er mee te werken.
  • Draait op Windows, macOS, Linux en Unix
  • Biedt eenvoudige schaalbaarheid en snellere productiviteit
  • Je kan eenvoudig ingewikkelde deployments beheren
  • Het is een lichter alternatief voor Puppet, ideaal voor kleinere teams
  • Integreert perfect met tools als Jenkins
  • Verwijdert herhalende taken via YAML sjablonen

16. Vagrant

Vagrant
Vagrant

Wat je rol ook is, of het nou developer, ontwerper of operator is, Vagrant van HashiCorp biedt iedereen binnen je DevOps team dezelfde prettige workflow.

Vagrant is in Ruby geschreven door Mitchel Hashimoto, met de release in 2010. Het is open source software voor het bouwen en ontwikkelen van overdraagbare, lichtgewicht en reproduceerbare virtuele omgevingen voor software development, zoals Docker Containers, AWS, VMware en meer.

Binnen DevOps maakt Vagrant configuratiebeheer van software makkelijker, waardoor het team beter kan werken.

Features en voordelen:

  • Compatibel met Windows, macOS, Linux, FreeBSD, Arch Linux, CentOS, en Debian
  • Bevat een MIT licentie
  • Gebruikt declaratieve configuratiebestanden voor software eisen, OS-configuratie, gebruikers, packages en meer
  • Biedt flexibiliteit qua editor, browser, debugger en IDE
  • Integreert met andere configuratiebeheertools zoals Docker, Ansible, Puppet, Chef, en Salt zodat je hetzelfde configuratiescript kan gebruiken als in de productie

17. Consul

Consul
Consul

Eén van de beste DevOps tools voor configuratiebeheer is Consul, ook van HashiCorp. Hiermee kan je netwerkconfiguratie automatiseren, beveiligde verbindingen gebruiken, en services ontdekken via de runtime of in de cloud. Deze tool is dan ook ideaal voor moderne infrastructuren.

Features en voordelen:

  • Je kan de functionaliteit uitbreiden via Kubernetes
  • Maakt een service mesh mogelijk binnen een infrastructuur of runtime
  • Biedt dynamische loadbalancing via externe tools zoals Nginx, HAProxy, of F5
  • Beveiligt je diensten via mTLS versleuteling en intentie-gebaseerde regels
  • Detecteert en implementeert nieuwe services, en biedt realtime health checks van agents om downtime te minimaliseren

18. Terraform

Terraform
Terraform

Eén van de meest opmerkelijke Infrastructuur as Code tools voor DevOps is Terraform, en ja, ook deze is weer van HashiCorp. Het is een open source IaC tool met een consistente Command Line Interface (CLI) workflow waarmee je verschillende cloudservices kan beheren.

Terraform is in Go geschreven door Mitchel Hashimoto en werd in 2014 gereleaset. Het gebruikt de HashiCorp Configuration Language (HCL), een declaratieve taal waarmee je datacenter infrastructuur kan definiëren en aanbieden. Maar je kan in plaats daarvan ook JSON gebruiken.

Features en voordelen:

  • Werkt op Windows, macOS, Linux, FreeBSD, OpenBSD, en Solaris
  • Heeft een Mozilla Public License v2
  • Ondersteunt HCL taal waarmee je exacte omschrijvingen van resources kan maken via argumenten, uitdrukkingen en blocks
  • Je kan IaC zo definiëren dat processen binnen de software levenscyclus beheerd worden, zoals het maken van nieuwe resources en verwijderen van oude
  • Automatiseert resource provisioning en beperkt menselijke fouten
  • Provisions voor infrastructuur in meer dan 300 services en publieke clouds via één workflow

Andere DevOps configuratiebeheertools zijn Vault, Etcd, CFEngine, SaltStack, JUJU, Cobbler, Octopus, en nog meer.

DevOps testtools

Enkele DevOps tools voor testing:

19. Selenium

Selenium
Selenium

Als je een veelzijdige DevOps tool zoekt voor het automatiseren van je software testing, dan is Selenium een goede optie. Je kan het ook goed gebruiken om saaie webbeheer taken te automatiseren.

Selenium is open source software dat gepubliceerd werd in 2018. Het biedt een overdraagbaar framework waarmee je tests kan uitvoeren, naast het maken van functionele tests, zonder dat je een scripttaal moet leren.

Het biedt een test DSL, Selenese geheten, dat je kan gebruiken om tests in verschillende talen te maken, zoals Java, PHP, Python, C, Perl, Ruby en meer.

Features en voordelen:

  • Het is compatibel met de meeste webbrowsers, naast besturingssystemen als Windows, macOS en Linux.
  • Het heeft de Apache License 2.0
  • Selenium is goed uit te breiden en erg flexibel, en dus ideaal voor DevOps
  • Ondersteunt het uitvoeren van parallelle tests
  • Integreert met externe tools zoals Docker, Jenkins, Maven en meer.
  • Het wordt gebruikt door toonaangevende tech bedrijven, denk aan Google, IBM, Salesforce, Cognizant, en anderen

20. Tricentis Tosca

Tricentis Tosca
Tricentis Tosca

Je kan het testen van je software flink sneller maken door het gebruiken van de AI-gebaseerde, scriptloze tool die Tricentis Tosca heet, en die een no-code methode gebruikt voor het automatiseren van end-to-end tests. Het combineert verschillende aspecten van testen, zoals testautomatisering, case design, data generation en design, en analytics.

Features en voordelen:

  • Tricentis Tosca gebruikt technologieën die aan Risk-based testing en Model-based testing raken om een hoger niveau van automatisering te bereiken, met weinig onderhoud
  • Biedt automatiseringsmogelijkheden voor testfuncties, zoals functionele tests, load testing, BI/DWH testing, verkennend testen, packaged application testing, en faciliteert het databeheer van testdata, test impactanalyse, service virtualization, en distributed execution
  • Ondersteunt meer dan 160 enterprise toepassingen en technologieën, waaronder Salesforce, Adobe, Oracle, SAP, Java, .NET, HTML 5 en nog veel meer.

21. TestSigma

TestSigma
TestSigma

Alhoewel ze nog nieuw zijn op het gebied van testautomatisering, wordt TestSigma al snel populair vanwege hun indrukwekkende aanbod. Het is een cloudbased test automatiserings DevOps tool voor web, API en mobiele apps. Het gebruikt AI voor snellere uitvoering van tests en onderhoud.

Features en voordelen:

  • Gebruikt gewoon Engels voor geautomatiseerde tests, waardoor het met name voor beginnende functionele testers een stuk makkelijker wordt
  • Biedt een verenigd platform voor DevOps en Agile teams om iedereen in het team samen te hebben
  • Verschillende mogelijkheden voor testing, zoals continu testen, testen van mobiele en web apps, data-driven testing, cross-browser testng, en regression testing
  • Maakt het mogelijk om de functionaliteit verder uit te breiden door functies in JavaScript of Selenium te schrijven
  • Biedt parallel testen om tijd en geld te besparen

22. IBM Rational Functional Tester

IBM Rational Functional Tester
IBM Rational Functional Tester

IBM RFT biedt geautomatiseerde functionele en regressie tests naast data-driven en GUI testing. Het maakt het bewerken en visualiseren van tests eenvoudiger met de natuurlijke taal, plus mooie screenshots.

Features en voordelen:

  • RFT ondersteunt diverse webbased toepassingen zoals Java, .NET, SAP, en Siebel
  • Ondersteunt terminal emulator-gebaseerde apps zoals Ajax, PowerBuilder, Adobe Flex, Adobe PDF documenten, Dojo Toolkit, etc.
  • Gebruikt ScriptAssure technologie om tests te automatiseren en testscripting mogelijk te maken

23. SoapUI

SoapUI
SoapUI

Of je nou commerciële of open source software aan het bouwen bent, SoapUI van Smartbear is een uitstekende optie. Het is open source DevOps tool voor het testen van software, speciaal voor Representational State Transfers (REST) en Simple Object Access Protocol (SOAP).

De release was al in 2005 en het is de enige open source tool met een ruim aanbod van testfuncties, zoals functionele en load testing en security testing.

Features en voordelen:

  • Biedt een gebruiksvriendelijke grafische interface
  • Scriptless functionele tests via de testtool met sleepfunctie
  • Biedt API mocking voor je software, ook als het nog niet af is
  • Bevat protocol ondersteuning voor REST, JMS, SOAP/WSDL
  • Maakt het snel wisselen van omgevingen mogelijk
  • Je kan test refactoring met één klik op de knop uitvoeren om tests snel te updaten

Andere DevOps testtools zijn Basis, QuerySurge, Sentry, Watir, Stackify Retrace, en meer

DevOps monitoringtools

Tijd om enkele DevOps tools voor monitoring te bekijken:

24. Nagios

Nagios
Nagios

Als het gaat om het monitoren van IT infrastructuur, is Nagios één van de meest efficiënte DevOps tools. Het is in C geschreven door Ethan Galstan, met een release in 2002.

Nagios is ook open source en gratis software, waarmee je infrastructuur, systemen en netwerken kan monitoren. Het biedt meldingen en monitoringservices voor toepassingen, servers, logs en switches. De DevOps tool richt zich erop om gebruikers te alarmeren wanneer er een probleem is, en meldt ze ook wanneer het probleem is opgelost.

Features en voordelen:

  • Biedt cross-platform functionaliteit, inclusief de Linux en Unix systemen
  • Heeft een GNU GPL v2 licentie
  • Monitort netwerk services zoals HTTP, FTP, SSH, POP3, SNMP, SMTP, NNTP, en ICMP
  • Monitort ook host resources, zoals schijfgebruik, processorbelasting, systeemlogs, en netwerk besturingssystemen, zoals Windows, via monitoring agents
  • Monitort de hardware, via metingen voor alarmen, temperatuur en meer.
  • Heeft een minimalistisch plugin ontwerp waarmee gebruikers hun eigen service checks kunnen ontwikkelen
  • Beschikbaar in Nagios XI, Core, Log Server, en Fusion.

25. Prometheus

Prometheus
Prometheus

Maak je meldingen en metingen nog krachtiger via de open source monitoringssoftware van Prometheus. Het is geschreven in Go werd in 2012 gepubliceerd.

Het houdt metrics in realtime bij in een time-series database, door krachtige queries te koppelen met hoog-dimensionale datamodellen. Promotheus is met name populair onder teams die ook Grafana gebruiken.

Features en voordelen:

  • Biedt cross-platform compatibiliteit
  • Het heeft de Apache License 2.0
  • Identificeert tijdreeksen aan de hand van key-value paren en metric namen
  • Bevat verschillende manieren voor data visualisatie, zoals grafieken, tabellen, en meer, waardoor het makkelijk wordt voor het DevOps team om de data te analyseren
  • Gebruikt PromQL waarmee je de tijdreeksdata kan opknippen in kleinere stukjes zodat je makkelijker ad-hoc tabellen, grafieken en meldingen kan maken
  • Slaat efficiënt data op in lokale schijven en geheugen, via een custom format. Je kan eenvoudig opschalen met functionele sharding en federation
  • Biedt eenvoudig te implementeren client libraries voor eenvoudige service instrumentation en ondersteunt meer dan 10 talen
  • Ondersteunt data export van externe oplossingen, zoals JMX metrics, StatsD, HAProxy, en DevOps tools als Docker.

26. New Relic

New Relic
New Relic

Door New Relic te gebruiken kan je betere prestaties krijgen van je software, door je hele software stack te analyseren, optimaliseren en problemen op te lossen.

New Relic is een technologiebedrijf dat opgericht is in 2008. Het platform laat elke verandering in je programma duidelijk zien.

Naast dat de realtime status van je ontwikkelingsprocessen worden getoond, helpt het je ook om problemen op te lossen, deploy cycles te versnellen, en gerelateerde taken te beheren, waarmee het aan alle belangrijke criteria voor een handige DevOps tool voldoet.

Features en voordelen:

  • Maakt het mogelijk om alle telemetrie data op één plek te verzamelen voor AI-gebaseerde inzichten en volledige zichtbaarheid van de stack, waardoor de betrouwbaarheid van de service verbetert en een product sneller naar de markt kan
  • Als je Grafana of Prometheus gebruikt, dan kan je data opslaan zoals logs, events, traces en metrics in New Relic
  • Door een datagedreven aanpak te gaan gebruiken kan je klantervaring aanzienlijk verbeteren

27. PagerDuty

PagerDuty
PagerDuty

Verbeter je klantervaring en bescherm de reputatie van je merk met het realtime operations monitoringsplatform van PagerDuty.

Als handige DevOps tool kan het je team helpen om minder downtime, meer productiviteit en minder storingen te bereiken door middel van automatisering en machine learning.

Features en voordelen:

  • PagerDuty is eenvoudig te gebruiken en op te schalen
  • PagerDuty fungeert als het centrale zenuwstelsel van je digitale infrastructuur, vanwaar alle digitale signalen naar de softwaresystemen worden verstuurd
  • Met snelle incidentrespons kan je taken automatiseren tussen team, oplossingen versnellen en gedetailleerde playbooks uitvoeren
  • Biedt meldingen en het inplannen van taken zodat je snel actie kan ondernemen
  • Gebruikt machine learning voor de context van incidenten, gepersonaliseerde aanbevelingen, en realtime oplossingen bij grote problemen
  • Ondersteunt meer dan 370 integraties met tools zoals Slack, AWS, Atlassian, Zendesk, New Relic en meer.

28. Sensu

Sensu
Sensu

Sensu is ongetwijfeld één van de beste DevOps tools voor het monitoren van ICT-infrastructuur. Je kan er servers, toepassingen, netwerkapparaten en containers mee monitoren, naast het controleren van de status van toepassingen, het meten van KPI’s en het verzamelen en analyseren van metrics.

Het is geschreven in Ruby, en werd in 2011 gereleaset. Het gebruikt Redis voor data opslag en rabbitMQ voor data uitwisseling tussen onderdelen. Sensu is ontworpen voor cloud omgevingen met server automatiseringstools zoals Ansible, Puppet en dergelijke.

Bedrijven zoals Tesla, Yahoo, Cisco, en anderen gebruiken Sensu.

Features en voordelen:

  • Het is een complete tool met uitbreidbaarheid en compenseerbaarheid
  • Verstuurt meldingen over problemen en storingen
  • Biedt een mogelijkheid om clients dynamisch te registreren of deregistreren
  • Werkt perfect met meerlagige netwerken en kritieke toepassingen
  • Het is beschikbaar in een betaald én een gratis pakket

29. Splunk

Splunk
Splunk

Monitor de prestaties van je infrastructuur in realtime met de voorspellende streaming analytics van Splunk.

Splunk helpt je bij het zoeken, monitoren en analyseren van machine-gegenereerde big data, door middel van een web-achtige interface. Er zit een auto-discover functie op, en je kan systemen, services en clouds groeperen, opsplitsen en ontdekken.

Features en voordelen:

  • Met meer dan 200 ingebouwde integraties voor cloud services
  • Biedt een uniek dashboard waarmee je snelle full-stack visualisatie kan gebruiken
  • Maakt het mogelijk om het gedrag van je infrastructuur eenvoudig te begrijpen door middel van beschikbaarheidszones, verschillende services, Kubernetes clusters en meer.
  • Door het gebruiken van data science (zoals AI en machine learning), kan het meldingen direct en accuraat versturen op basis van dynamische drempelwaarden, complexe regels en verschillende voorwaarden, om lawines aan meldingen te voorkomen en de time-to-detect zo laag mogelijk te houden
  • Helpt je bij het begrijpen van de klantervaring door de SLI’s en SLO’s te monitoren met inzicht op serviceniveau
  • Door middel van op maat gemaakte KPI’s kan je eenvoudig volgen hoeveel producten worden verkocht, wat de kosten/belasting is, en meer.
  • Maakt closed-loop automatisering mogelijk, zoals automatisch schalen, voor een naadloze ervaring voor de eindgebruiker

30. ELK Stack

ELK Stack
ELK Stack

ELK Stack is een krachtige combinatie van drie populaire open source tools: Elasticsearch, Logstash, & Kibana.

ELK stack maakt het mogelijk om logs samen te voegen uit al je toepassingen en systemen, logs te analyseren, visualisaties te maken voor het monitoren van infrastructuur en toepassingen, security analytics, snelle probleemoplossing, en meer.

  • Elasticsearch is een RESTful, open source, distributed analytics en zoektool gebouwd op de Apache License. Het ondersteunt diverse talen, biedt hoge prestaties, bevat schema-free JSON bestanden en meer, waardoor deze tool een goed alternatief is voor zoek en log analytics
  • Logstash is ook een open source tool, voor data ingestion die je kan gebruiken voor het verzamelen van data bij verschillende bronnen, de data vervolgens aan te passen en te versturen. Er worden meer dan 200 plugins en ingebouwde filters ondersteunt.
  • Kibana is een open source tool voor data verkenning en visualisatie om logs en events te reviewen. Het biedt eenvoudige voorgebouwde interactieve filters en verzamelingen, en biedt geografische ondersteuning voor data visualisaties

Andere DevOps monitoring tools zijn Raygun, Ganglia, Snort, eG Enterprise, Datadog, en meer.

Bonus DevOps Tools

Naast de hierboven genoemde DevOps tools voor de verschillende fasen van software development, zijn er nog heel veel meer beschikbaar voor samenwerking, planning, continuous feedback, beveiliging en allerlei andere taken.

  • Continuous feedback: Mouseflow, JIRA Service Desk, SurveyMonkey, SurveyGizmo, etc.
  • Samenwerking: Slack, Basecamp, Asana, etc.
  • Planning: Atlassian Jira Align, Planview, Targetprocess, Trello, etc.
  • Cloud DevOps tools: Kamaterra, OpenStack, AWS, Google Cloud Platform, Azure, IBM Cloud, etc.

Samenvatting

We hopen dat dit artikel je een helder beeld geeft van het concept van DevOps, hoe het werkt, en wat de voordelen zijn, naast wat de DevOps cultuur en gewoonten zijn.

Daarnaast zijn alle DevOps tools die we uitgekozen hebben voor dit artikel handig bij het gebruik in verschillende stadia van de DevOps software lifecycle, waaronder development, CI/CD, testing, configuratiebeheer, versiebeheer, monitoring en meer.

Amrita Pathak