De grootste verschil tussen Agile en Devops is dat Agile is betrokken bij ontwikkeling, testen, integratie en implementatie terwijl Devops betrokken is bij ontwikkeling, testen, integratie, implementatie en monitoring.
Softwareontwikkeling is een continu proces, dat zowel uitdagend als veeleisend is. Ontwikkelteams volgen bepaalde stappen gedurende de gehele levenscyclus van de softwareontwikkeling. Agile is een betere ontwikkelingsaanpak met meerdere voordelen. Het biedt klanttevredenheid, flexibiliteit om eisen te veranderen en geld te besparen. Hoewel Agile de ontwikkeltijd drastisch verkort, mist het de wendbaarheid in operaties. Devops is een alternatief voor dit probleem. Het gaat om ontwikkeling, testen, integratie, implementatie en operaties na inzet van het product. Het gaat om continue monitoring. In eenvoudige bewoordingen, Devops brengt behendigheid in zowel ontwikkeling als operaties.
1. Wat is Agile
- Definitie, functionaliteit
2. Wat is Devops
- Definitie, functionaliteit
3. Verschil tussen Agile en Devops
- Vergelijking van belangrijke verschillen
Agile, Devops, Softwareontwikkeling
Agile is een nieuwe methode voor softwareontwikkeling. Het vereist geen vaste set vereisten voordat de software wordt ontwikkeld, in tegenstelling tot de traditionele watervalmethode. Een watervalprocesmodel volgt opeenvolgende stappen. Hoewel het een goed georganiseerde en gestructureerde aanpak was, was het geen betere benadering voor softwareontwikkeling. Het had problemen op het gebied van budget, tijd, omvang en kwaliteit; vaak is het eindproduct niet waar de klant om vroeg. Om deze problemen te verhelpen, heeft een team van software-engineers een alternatieve aanpak ontwikkeld. Ze kwamen met het Agile Manifesto. Het richt zich als volgt op 4 waarden en 12 principes:
Het is noodzakelijk voor een softwareproject om de bovenstaande waarden en principes te volgen als de ontwikkelbenadering flexibel is.
Figuur 1: Agile Project Management
Bij het ontwikkelen van software met Agile stellen ontwikkelaars eerst een aantal vereisten. Deze vereisten zijn gedefinieerd, gecodeerd en getest. Vervolgens ontmoet het team de klant om feedback te krijgen. In de volgende iteratie worden nieuwe eisen gesteld. Evenzo zijn ze gedefinieerd, gecodeerd en getest. Tegelijkertijd werkt het ontwikkelingsteam ook aan de vereiste aanpassingen in de vorige feedback. Nogmaals, ze ontmoeten de klant om feedback te krijgen. Op dezelfde manier gaat dit proces door tot het uiteindelijke product wordt geproduceerd.
Hoewel Agile een betere ontwikkelingsbenadering is, mist het de wendbaarheid in operaties. Devops is een oplossing om dit probleem op te lossen. Het is een benadering voor softwareontwikkeling die voortdurende ontwikkeling, continue testen, continue integratie, continue inzet en continue bewaking gedurende de volledige ontwikkelingscyclus omvat.
Figuur 2: Fasen in een gereedschapsketting van Devops
Verschillende tools kunnen worden gebruikt om de stadia in Devops te automatiseren. De git en SVN kunnen worden gebruikt voor broncodebeheer. Ze helpen de code gedurende de hele ontwikkelingscyclus te behouden. Verschillende versies van de code kunnen worden opgeslagen en het is mogelijk om op elk gewenst moment wijzigingen aan te brengen. Er zijn tools zoals Maven, Gradle en ANT om te bouwen. Deze hulpmiddelen helpen de code in uitvoerbare bestanden te verpakken, zodat ze kunnen worden gericht voor testen. Voor continue testen zijn er tools zoals Selenium en JUnit. Jenkins kan worden gebruikt voor continue integratie. Puppet, chef en SaltStack worden gebruikt voor continue inzet. Ten slotte kunnen hulpmiddelen zoals New Relic, Sensu en Nagios worden gebruikt voor continue bewaking.
Agile is een methode voor softwareontwikkeling, waarbij eisen en oplossingen evolueren door de gezamenlijke inspanning van zelforganiserende en crossfunctionele teams en hun klanten. Devops is een cultuur en praktijk op het gebied van software-engineering die erop gericht is de ontwikkeling van software en de werking van software te verenigen.
Agile omvat ontwikkeling, testen, integratie en implementatie. Het voert geen bewerkingen uit na het afleveren van het product. Anderzijds houdt Devops zich bezig met ontwikkeling, testen, integratie, implementatie en operaties na de implementatie van het product. Het gaat om continue monitoring om er zeker van te zijn dat het product goed presteert.
Bovendien krijgt Agile feedback van de klant. Devops krijgt feedback van zowel klanten als van het interne team.
Devops legt meer de nadruk op automatisering. Het gebruikt meer open source-tools om de totale werklast te verminderen.
Agile minimaliseert de kloof tussen klantbehoeften en ontwikkeling- en testteams. Devops minimaliseert de kloof tussen ontwikkelings-, test- en operatieteams.
Agile heeft betrekking op kleine teams, terwijl bij Devops grotere teams betrokken zijn.
Zowel Agile als Devops zijn softwareontwikkelingsmethodologieën die helpen bij het snel ontwikkelen van software. Het verschil tussen Agile en Devops is dat Agile ontwikkeling, testen, integratie en implementatie omvat, terwijl Devops ontwikkeling, testen, integratie, implementatie en monitoring omvat. Meestal is Devops beter dan Agile.
1. Wat is Agile ?, Agile ME, 7 maart 2016, hier beschikbaar.
2. Agile Methodology, Tutorials Point (India) Pvt. Ltd., 4 feb. 2017, hier beschikbaar.
3. Wat is DevOps? | DevOps Training - DevOps Inleiding & Tools | DevOps-zelfstudie | Edureka, 15 september 2016, hier beschikbaar.
1. "Agile Project Management by Planbox" By Planbox - Eigen werk (CC BY-SA 3.0) via Commons Wikimedia
2. "Devops-toolchain" By Kharnagy - Eigen werk (CC BY-SA 4.0) via Commons Wikimedia