Een canary deployment is een voorzichtige manier om nieuwe software uit te rollen door die eerst aan een kleine groep gebruikers te tonen. Terwijl de meeste mensen op de huidige versie blijven, krijgt een klein deel de nieuwe. Je kijkt scherp mee, en pas als die zich goed gedraagt, vergroot je de uitrol tot iedereen op de nieuwe versie zit.

De naam komt uit de mijnbouw, waar mijnwerkers een kanarie meenamen omdat die vogel eerder op gevaarlijk gas reageerde dan mensen. Als de kanarie het moeilijk kreeg, gingen ze naar buiten. Een canary release gebruikt diezelfde logica: de eerste kleine groep gebruikers is de vroege waarschuwing, dus als de nieuwe versie een probleem heeft, raakt dat een handvol mensen in plaats van je hele gebruikersbestand.

De hele aanpak leunt op goede metrics. Je moet de foutpercentages en prestaties van de canary-groep in realtime kunnen zien om de afweging te maken, en je moet ze vergelijken met de groep die nog op de oude versie zit, want een foutpercentage van 1 procent zegt niets tot je weet dat de basislijn 0,2 procent was. Klopt er iets niet, dan haalt een snelle rollback iedereen terug naar veilig. Ervaren teams automatiseren dit helemaal: het systeem houdt zelf de cijfers van de canary in de gaten en promoveert de release naar iedereen of draait hem terug, zonder dat er om twee uur ‘s nachts iemand naar een dashboard zit te staren. De afweging tegenover iedereen in één keer omschakelen is tijd. Een voorzichtige canary doet er soms een uur over om al het verkeer te bereiken, en dat is de prijs voor het vroeg vangen van een slechte release terwijl die nog maar een handvol mensen raakt.

Bij TopDevs gebruiken we canary deployments voor apps met veel verkeer, door eerst naar een paar procent van de gebruikers uit te rollen, zodat een probleem klein wordt gevangen en nooit de hele groep bereikt.