Continuous delivery: wat betekent dat voor een intern gehoste ontwikkelomgeving?
Software-en applicatieontwikkelaars zijn voortdurend gefocust op het perfectioneren van hun werkproces, het is hun tweede natuur. Daarbij is er aandacht voor organisatorische processen (denk aan agile, scrum en kanban), maar ook voor softwarematige automatisering. Continuous delivery is een ontwikkelmethode die beide aspecten omvat. Op ’s lands grootste IT-website Computable.nl legt development-expert Dennis Doomen deze aanpak in een driedelige blogreeks uitstekend uit. Oké, op het gebied van software en processen weten ontwikkelaars en testers goed hoe ze het willen hebben. Maar in hoeverre zijn zij bekend met de invloed van het onderliggende IT-platform op continuous delivery? Daar ga ik in dit blogartikel op in.
Karaktereigenschappen en automatisering
De gemiddelde (software)tester heeft een aantal karaktereigenschappen die hem of haar geschikt maken voor het werk. Zo hebben deze professionals een hekel aan onvoorspelbaarheid en toeval en willen ze die factoren zoveel mogelijk uitsluiten. Om zo weinig mogelijk aan het toeval over te laten, worden alle processen binnen het ontwikkelen en testen van software, waar mogelijk, geautomatiseerd. Hiermee voorkom je menselijke fouten voorkomt en bespoedig je het ontwikkelproces.
Die combinatie vertalen naar de praktijk is dan ook de eerste en belangrijkste eigenschap van continuous delivery. De filosofie achter CD is veel omvattend en beperkt zich niet tot technische processen: het gaat ook over de organisatie eromheen. Het ontwikkelteam focust zich in korte sprints op één feature of code tegelijk en gaat niet door met het volgende traject vóór dit onderdeel in productie staat.
Des te verbazender is de volgende conclusie: veel softwareontwikkelaars en applicatiespecialisten hebben maar weinig inzicht in de performance en stabiliteit van het onderliggende IT-platform en – erger nog – accepteren dit! Dit is mijn ervaring na jaren van samenwerken met deze experts.
OTAP
Het onderliggende IT-platform, bijvoorbeeld een OTAP-straat (die een afzonderlijke ontwikkel-, test-, acceptatie- en productieomgeving herbergt) met geregelde uitwijk, mag niets aan het toeval overlaten. Een goede performance van het IT-platform is geen bijzaak, net zomin als een constante performance dat is. Nee, deze factoren zijn bepalend voor de betrouwbaarheid van tests en de uitrol van nieuwe features of patches. Hoofdzaak in plaats van bijzaak dus
Maar krijgt een ontwikkelaar van mobiele applicaties of software inzicht in het niveau en de stabiliteit van hardware performance en de connectiviteit? Hoe weet je zeker dat het platform op ieder moment constante output levert? En hoe bepaal je of de acceptatieomgeving ook echt dezelfde omstandigheden als de productieomgeving creëert? Kortom, hoe maak je de prestaties van het IT-platform inzichtelijk en beheersbaar? Het antwoord luidt: dat is ontzettend lastig. Maar deze complexiteit zou geen reden mogen zijn voor softwareontwikkelaars om dan maar een struisvogelpolitiek te hanteren: kop in het zand en net doen of de factoren hardware en connectiviteit er niet zijn. Responstijd van storage en geheugen, netwerkbelasting, cpu ready time en tal van andere technische eigenschappen hebben links- of rechtsom invloed op het test- en ontwikkelproces.
De rol van de hoster in continuous delivery
De conclusie? Ontwikkelaars zijn ijzersterk in het perfectioneren van de software in de acceptatie- en productieomgeving, maar accepteren te gemakkelijk dat zeg een invloed hebben op onderliggende hardware en connectiviteit. Dit terwijl deze laag heel veel effect heeft op het slagen van continuous delivery en het gelijkschakelen van alle omgevingsfactoren.
Een belangrijke rol is weggelegd voor de hoster. Deze heeft de verantwoordelijkheid om een hoog beschikbaar en stabiel presterend OTAP-platform te leveren en dit platform continu te monitoren. Juist om deze redenen hebben wij ervoor gekozen om volledig onafhankelijk van externe partijen de regie over onze eigen infrastructuur te voeren. Deze visie hebben wij vertaald in onze datacenteronafhankelijke infrastructuur. Door de volledige beheersing van onze infrastructuur is het onderliggende IT-platform van de OTAP-omgeving geen variabele, maar een constante.