DevOps en de magie van feature toggles!

door: Henry Been op: 23 februari 2017 9:58:03 CET

DevOps en de magie van feature toggles!
SnelStart Aangenaam 2016

Zelfs onze meest fanatieke gebruiker is het waarschijnlijk niet opgevallen. Afgelopen woensdag hebben wij een productieverstoring gehad van twee á drie minuten. Maximaal drie minuten heeft het ons gekost om de wijziging, die de storing veroorzaakte, terug te draaien. Voordat onze gebruikers door hadden dat er een probleem was, was het probleem al weer opgelost. In dit blog meer over hoe makkelijk wij dit kunnen doen bij SnelStart.

Magie?

Bij SnelStart kunnen we veel, maar ook wij kunnen niet toveren. Hoe het werkt is eigenlijk heel simpel. We zetten de problematische programmacode gewoon uit. Vroeger was dit wel anders. Een geïnstalleerd programma kon je niet makkelijk en snel wijzigen. Als er een fout in zat, dan moest je wachten totdat er een update beschikbaar was. Het was dan maar te hopen dat jouw probleem was opgelost.

In een wereld van continuous delivery en DevOps is snelheid het toverwoord. Updates verschijnen met grotere regelmaat en worden automatisch geïnstalleerd. Een ander voordeel zijn zogenaamde feature toggles of feature flags. Een feature toggle is een aan-of-uit knop voor een wijziging of een nieuwe functionaliteit van het programma. Met een update leveren we de nieuwe programmacode, maar ook nog de oude code. Met een feature toggle kunnen wij vervolgens per gebruiker of per groep gebruikers een wijziging of nieuwe functie aan of uit zetten.

Niet elke wijziging direct voor iedereen

We gebruiken deze feature toggles voor een stapsgewijze verspreiding. Zo kunnen wij nieuwe functionaliteiten samen met een kleine groep gebruikers testen, voordat we die aan alle gebruikers beschikbaar maken. Ook kunnen we hiermee wijzigingen, die een onbedoeld bijeffect hebben, weer uit zetten.

feature-toggle.jpgAls IT-ers vergelijken we dit vaak met het gooien van een steen in de vijver. Vlak bij de plek waar de steen verdwijnt ontstaat een hoge golf die vanuit het midden naar buiten steeds lager wordt. Vooral in het begin is de golf hoog, maar heeft hij een kleine omtrek. Naarmate de omtrek van de golf toeneemt, wordt de hoogte echter lager.

Hetzelfde doen wij met nieuwe functionaliteiten en verbeteringen in ons pakket. Nadat een ontwikkelaar een wijziging heeft gemaakt, wordt deze eerst alleen aangezet voor onze testers. Onze testers (kleine omtrek) halen de grote fouten (hoge golf) er uit. Daarna komt de wijziging beschikbaar voor onze medewerkers en software partners (grotere omtrek), waarmee we gezamenlijk kleinere, vooral schoonheidsfouten opsporen (lagere golf). Tenslotte gaat de update naar een eerste groep klanten en ten slotte naar al onze klanten, waarbij de omtrek maximaal wordt er geen merkbare golf meer hoort te zijn.

Betrouwbaarheid voorop!

Zoals ik al schreef staan wij niet alleen in het gebruik van toggles. Toch is lang niet ieder softwarebedrijf zo ver. Dat is dan ook de reden dat ik in oktober van dit jaar hier een presentatie over ga geven op de Topconf in Düsseldorf, een conferentie voor softwareontwikkelaars.

Door het inzetten van technische vernieuwingen als feature toggles, kunnen wij onze klanten nog beter van dienst zijn. Dankzij deze mogelijkheid kunnen we aan onze applicatie doorwerken en nieuwe functionaliteiten nog sneller afleveren. En mocht er onverhoopt toch een keer iets niet goed gaan, dan draaien we dat zo snel mogelijk terug. Daarom durven wij te zeggen tegen onze klanten: Betrouwbaarheid voorop!

 Ook ontwikkelen met feature toggles?


Henry Been

Door Henry Been

Nieuwsgierig naar hoe SnelStart software ontwikkelt? Regelmatig probeert Henry Been zijn kennis te delen door middel van interessante blogs. Henry is software architect bij SnelStart. Zijn interesses liggen op het gebied van Cloud (Microsoft Azure), software architectuur en het ontwerpen en schrijven van testbare en onderhoudbare software.

Wat vond u van dit artikel?
Goed verhaal! of Geef een tip of stel een vraag aan Henry Been.


Volg Henry Been op social media: