Canary testing
Innehållsförteckning
Vad är canary testing?
Canary Testing är ett sätt att minska risken och validera ny programvara genom att släppa programvaran till en liten andel användare. Med canary testing kan du leverera till vissa grupper av användare åt gången. Canary-utgåvor kallas även för canary-distributioner, inkrementella, iscensatta eller fasade utrullningar och är bästa praxis inom devops och programvaruutveckling.
Uttrycket kommer från uttrycket "Canary in the coal mine", där gruvarbetare tog med sig en kanariefågel i bur in i kolgruvan för att upptäcka om nivån av giftig gas var för hög. Eftersom fåglar har en lägre tolerans för giftiga gaser än människor, var det en tidig varning för gruvarbetarna att evakuera om fågeln dog. I samband med programvaruutveckling är resultatet inte lika hemskt, utan som programvaruutvecklare är målet att snabbt upptäcka och lösa ett problem med ny programvara innan det försämrar allas upplevelse.
Hur man gör canary testing
Canary testing kan göras med hjälp av blågröna driftsättningar för att dela trafik på servernivå och långsamt rulla över trafik från en version av en applikation till en nyare version av en applikation med hjälp av en trafikrouter på servernivå.
Delning av trafik efter applikationsversion. Bild: Optimizely
Eller så kan det göras mer detaljerat på funktionsnivå med hjälp av feature flags för att skicka en procentandel av slutanvändarna till den nya versionen av upplevelsen.
Skicka 1% procent av användarna till den nya upplevelsen med hjälp av Feature Flags. Bild: Optimizely
Hur man gör canary testing
Canary testing gör det möjligt att släppa ny kod eller nya funktioner till en liten grupp användare för att verifiera om det finns några problem med koden innan den släpps till en större publik. Genom att begränsa releasen till en utvald målgrupp för att minimera sprängradien för nya releaser kan teamen validera funktionalitet och prestanda innan de rullar ut till alla användare.
En annan anledning till att göra canary testing och produktexperimentering är att utvecklings- eller stagingmiljöer ofta inte helt matchar produktionsmiljöer och genom att testa med en liten andel produktionsanvändare (ofta kallat testning i produktion) kan du upptäcka problem som kanske inte har hittats i staging- eller utvecklingsmiljöer.
Canary testing & feature flags
Canary testing kan göras med hjälp av feature flags som gör det möjligt för team att separera kodrelease från feature enablement och slå på och av funktioner på distans för specifika grupper, procentandelar av användare eller alla användare. Med hjälp av feature flags kan teamen begränsa releasen till bara 1 % av användarna och övervaka huvudfunktioner som ingår, t.ex. felfrekvenser, latens och affärsmått för att säkerställa att den nya funktionen inte har någon negativ effekt.
Om canary testing upptäcker ett problem under distributionsprocessen är det enkelt att inaktivera den nya funktionen eller koden genom att stänga av feature flags. Canary-utgåvor kan hjälpa till att förhindra större driftstopp, förlorade intäkter eller negativa kundkänslor genom att ge snabba lärdomar om prestanda för en ny funktion samtidigt som de som påverkas begränsas.
Canary testing & kontinuerlig leverans
Kontinuerlig leverans, som förespråkades av den inflytelserika programvaruutvecklaren Martin Fowler, är en disciplin inom programvaruutveckling där programvara kan släppas till produktion när som helst. Den har anammats av ledande programvaruföretag runt om i världen vars team nu förväntas att snabbt leverera programvara som är stabil och buggfri till din användarbas.
Canary testing passar in i metoderna för kontinuerlig leverans och kontinuerlig integration. De bästa systemen för kontinuerlig leverans, som företag som Facebook, integrerar djup övervakning och automatiserad testning i sin canary testing. Om en funktion misslyckas med en övervakningskontroll när den har distribuerats som en kanariefågel till en procentandel av användarna, kommer den automatiskt att rullas tillbaka. Med kontinuerlig driftsättning och canary testing kan ett team på ett säkrare sätt släppa ny funktionalitet och kodändringar i skala upp.
Canary testing i Intelligence Cloud
Programvaruteknikteam kan nu använda Optimizely gratis funktionsflaggor för att implementera funktionsflaggor för canary testing.
Teamen kan anamma metoderna för kontinuerlig integration och kontinuerlig leverans som används av dagens avancerade ingenjörsteam. Både team - och hela företag - kommer att kunna dra nytta av de snabbare utvecklingscyklerna och metoder för funktionshantering som canary testing för att minska risken.
Optimizely server-side experimentation kunder kan följa i fotspåren av världens främsta mjukvaruföretag (som Amazon, Google och Facebook) som validerar sina funktioner till bara en liten andel användare innan de rullar ut bredare.
Optimizely erbjuder också företagsklass och funktionshantering genom Optimizely server-side experimentation, en kraftfull lösning för att göra canary testing, kontrollerade funktionssläpp och funktionstester i din produkt eller app.