Test av kanarifugler
Hva er canary testing?
Canary Testing er en måte å redusere risiko og validere ny programvare på ved å lansere programvaren til en liten prosentandel av brukerne. Med canary testing kan du levere til bestemte grupper av brukere om gangen. Canary-utgivelser, også kalt canary deployments, inkrementelle, trinnvise eller fasede utrullinger, er en beste praksis innen devops og programvareutvikling.
Uttrykket stammer fra frasen "Canary in the coal mine", der gruvearbeidere tok med seg en kanarifugl i bur inn i kullgruven for å oppdage om nivået av giftig gass var for høyt. Siden fugler har lavere toleranse for giftige gasser enn mennesker, var det en tidlig advarsel til gruvearbeiderne om å evakuere hvis fuglen døde. I forbindelse med programvareutvikling er ikke utfallet like grusomt, men som programvareutvikler er målet å raskt oppdage og løse et problem med ny programvare før det forringer brukeropplevelsen for alle.
Slik utfører du kanaritester
Canary-tester kan gjøres ved hjelp av blågrønne distribusjoner for å dele opp trafikken på servernivå og sakte overføre trafikk fra en versjon av en applikasjon til en nyere versjon av en applikasjon ved hjelp av en trafikkruter på servernivå.
Oppdeling av trafikk etter applikasjonsversjon. Bilde: Optimizely
Eller det kan gjøres mer detaljert på funksjonsnivå ved hjelp av funksjonsflagg for å sende en prosentandel av sluttbrukerne til den nye versjonen av opplevelsen.
Sende 1 % prosent av brukerne til den nye opplevelsen ved hjelp av funksjonsflagg. Bilde : Optimizely
Slik tester du med kanarifugl
Med Canary testing kan ny kode eller nye funksjoner lanseres til en liten gruppe brukere for å verifisere om det er noen problemer med koden før den lanseres til et større publikum. Ved å begrense lanseringen til en utvalgt målgruppe for å minimere sprengningsradiusen for nye utgivelser, kan teamene validere funksjonalitet og ytelse før de ruller ut til alle brukere.
En annen grunn til å utføre kanariske tester og produkteksperimenter er at utviklings- eller staging-miljøer ofte ikke samsvarer helt med produksjonsmiljøer, og ved å teste med en liten prosentandel av produksjonsbrukerne (ofte omtalt som testing i produksjon) kan du oppdage problemer som kanskje ikke ville blitt oppdaget i staging- eller utviklingsmiljøer.
Kanariske tester og funksjonsflagg
Kanariske tester kan utføres ved hjelp av funksjonsflagg, som gjør det mulig for teamene å skille kodeutgivelser fra aktivering av funksjoner og slå funksjoner av og på eksternt for bestemte grupper, prosentandeler av brukere eller alle brukere. Ved hjelp av funksjonsflagg kan teamene begrense lanseringen til bare 1 % av brukerne og overvåke nøkkeltall som feilrater, ventetid og forretningsmessige beregninger for å sikre at den nye funksjonen ikke har noen negativ effekt.
Hvis testen oppdager et problem under distribusjonsprosessen, er det enkelt å deaktivere den nye funksjonen eller koden ved å slå av funksjonsflagget. Canary-utgivelser kan bidra til å forhindre store driftsstanser, tapte inntekter eller negative kundeopplevelser ved å gi rask kunnskap om ytelsen til en ny funksjon, samtidig som man begrenser konsekvensene for de berørte.
Canary-test og kontinuerlig levering
Kontinuerlig levering er en disiplin innen programvareutvikling som ble lansert av den innflytelsesrike programvareutvikleren Martin Fowler, og som innebærer at programvare kan settes i produksjon når som helst. Den har blitt tatt i bruk av ledende programvareselskaper over hele verden, der det nå forventes at teamene raskt leverer programvare som er stabil og feilfri til brukerbasen.
Canary testing passer inn i metodene for kontinuerlig levering og kontinuerlig integrasjon. De beste systemene for kontinuerlig levering, som for eksempel Facebook, integrerer dyp overvåking og automatiserte tester i kanaritestingen. Hvis en funksjon ikke klarer en overvåkingssjekk etter at den har blitt distribuert som en kanarifunksjon til en viss prosentandel av brukerne, blir den automatisk rullet tilbake. Med kontinuerlig distribusjon og kanariske tester kan et team på en tryggere måte lansere ny funksjonalitet og kodeendringer i stor skala.
Kanariske tester i Intelligence Cloud
Programvareteam kan nå bruke Optimizelys gratis funksjonsflagg til å implementere funksjonsflagg for kanariske tester.
Teamene kan ta i bruk praksisen med kontinuerlig integrasjon og kontinuerlig levering som brukes av dagens avanserte ingeniørteam. Både team - og hele selskaper - vil kunne dra nytte av raskere utviklingssykluser og funksjonshåndteringspraksiser som kanariske tester for å redusere risiko.
Optimizelys kunder someksperimenterer på serversiden, kan følge i fotsporene til verdens største programvareselskaper (som Amazon, Google og Facebook), som validerer funksjonene sine på bare en liten prosentandel av brukerne før de lanserer dem bredere.
Optimizely tilbyr også styring av funksjoner på bedriftsnivå gjennom Optimizely server-side experimentation, en kraftig løsning for å utføre kanaritesting, kontrollerte funksjonsutgivelser og funksjonstester i produktet eller appen din.