Voor organisaties die applicatieontwikkeling als core business hebben, is het cruciaal om nieuwe functionaliteiten snel te kunnen leveren. Liefst zonder handmatige acties of installatiefouten. Maar wat is nu de beste aanpak?
In een snel veranderende omgeving hebben organisaties geleerd om wendbaar in te spelen bij kansen of problemen. Agile werken wordt dan ook al volledig omarmd. Zo’n agile benadering versnelt dan wel het bouwen van applicaties, de doorlooptijd om te testen en te releasen blijft vaak onveranderd.
Wie écht het verschil wil maken, kiest daarom voor Continuous Integration & Continuous Delivery (CI/CD). Het is een volgende stap in de versnelling van applicatieontwikkeling.
Samenvatting
CI/CD in het kort
Continuous Integration zorgt ervoor dat ontwikkelaars tegelijkertijd naadloos kunnen samenwerken aan één codebase. Veranderingen in software worden meteen geïntegreerd en klaargezet om getest te worden in verschillende omgevingen.
Continuous Delivery is een verzameling van methodieken, principes en tools die het mogelijk maken om met één druk op de knop software naar productie te brengen. Daarbij heb je dus niet te maken met handmatige tests of instellingen die aangepast moeten worden. De ontwikkelaar wordt ook meteen van feedback voorzien.
Uitdagingen in de praktijk
We zeiden het al: CI/CD is dé volgende stap na agile werken. De methode maakt het mogelijk om met een hoge frequentie test uit te voeren, wat resulteert in een hogere kwaliteit en kortere release cycles. Systeemupdates en -verbeteringen zijn op die manier snel beschikbaar voor de eindklant.
In de praktijk zien we dat veel organisaties interesse hebben in de methode, maar terughoudend zijn omdat ze snel op verschillende uitdagingen botsen. We noemen er enkele.
De methode vereist een vlotte samenwerking tussen de verschillende teams waarbij in elk team de nodige skills aanwezig moeten zijn. CI/CD is dan ook de basis om DevOps-teams te creëren.
- Een goede architectuur aan de basis van de methode moet de risico’s tot een minimum herleiden. Door bijvoorbeeld een onderscheid te maken tussen systeemonderdelen die organisaties vaak en minder vaak ontwikkelen, is het mogelijk om de risico’s over het gehele systeem te beperken. Zonder een goede architectuur aan de basis, is CI/CD onbegonnen werk.
- Testautomatisering is een cruciaal onderdeel bij CI/CD. Door de ingecheckte code meteen te testen, is het mogelijk om na te gaan of het systeem als geheel nog steeds werkt. Automatisering sluit bovendien handmatige fouten uit. Voor veel organisaties blijft het echter een uitdaging. Wanneer het bijvoorbeeld om legacy systemen gaat, is automatisatie moeilijk en duren testruns bijzonder lang.
- Klantfeedback verzamelen is erg nuttig en noodzakelijk om de werking en waardering van de software na te gaan. Dat kan bijvoorbeeld door nieuwe features ter beschikking te stellen van een selecte groep klanten, zonder ze commercieel te lanceren. Organisaties zien echter op tegen de praktische realisatie ervan.
Cloud native of hybrid?
Een ander vraagstuk rond het ontwikkelen van applicaties, gaat over de locatie: cloud native of hybrid? Hybrid is een goede benadering om maximale controle te behouden wanneer de applicatie ontwikkeld en getest wordt. Live zetten kan vervolgens via de cloud, zodat u moeiteloos op- en afschaalt en er van overprovisioning geen sprake is. Ook om in de cloud te bouwen en te testen, zijn er mogelijkheden.
Wilt u een optimale gebruikservaring garanderen aan uw eindklant door zo veel mogelijk in te zetten op automatisatie? Wilt u het verschil maken door direct in te spelen op innovaties? Maar staat u nog voor uitdagingen om aan de slag te gaan met CI/CD?