Canary testing

O modalitate de a reduce riscul și de a valida software-ul nou prin eliberarea de software către un procent mic de utilizatori.

Ce este testarea canarului?
Testarea Canarelor este o modalitate de a reduce riscul și de a valida software-ul nou prin eliberarea de software către un procent mic de utilizatori. Cu testarea canarului, puteți livra la anumite grupuri de utilizatori simultan. De asemenea, denumite implementări canare, lansări incrementale, etapizate sau treptate, lansările canare sunt o bună practică în devops și dezvoltarea de software.

Originea sintagmei provine din sintagma „Canari în mina de cărbune”, în care minerii de cărbune aduceau o pasăre canară în cușcă în mina de cărbune pentru a detecta dacă nivelul de gaze toxice era prea mare. Deoarece păsările au o toleranță mai mică pentru gazele toxice decât oamenii, dacă pasărea a murit, a fost o avertizare timpurie pentru mineri să evacueze. În contextul dezvoltării software-ului, rezultatul nu este la fel de cumplit, în schimb, ca dezvoltatori de software, scopul este de a detecta și rezolva rapid o problemă cu noul software înainte de a degrada experiența tuturor.

Cum se fac teste canare
Testele canare se pot face folosind implementări albastru-verzi pentru a împărți traficul la nivel de server pentru a rula încet traficul de la o versiune a aplicației la o versiune mai nouă a unei aplicații utilizând un router de trafic la nivel de server.

Cum se fac teste canare
Testarea canarelor permite ca noul cod sau caracteristicile să fie lansate unui subset mic de utilizatori pentru a verifica dacă există probleme cu codul înainte de a fi lansat unui public mai mare. Limitând lansarea la un public selectat pentru a minimiza raza de explozie a noilor versiuni, echipele sunt capabile să valideze funcționalitatea și performanța înainte de a fi lansate pentru toți utilizatorii.

Un alt motiv pentru a face teste canare este că de multe ori mediile de dezvoltare sau de etapizare nu se potrivesc pe deplin cu mediile de producție și prin testarea cu un procent mic de utilizatori de producție (adesea denumiți testarea în producție), puteți detecta probleme care nu au fost găsite. în medii de stadializare sau dezvoltare.

Testarea canarelor și steagurile caracteristicilor
Testarea canarului se poate face folosind semnalizatoare de caracteristici care permit echipelor să separe eliberarea codului de activarea caracteristicilor și să activeze și să dezactiveze caracteristicile de la distanță pentru anumite grupuri, procente de utilizatori sau toți utilizatorii. Folosind semnalizatori de funcții, echipele pot limita lansarea la doar 1% din utilizatori, pot monitoriza valori cheie, cum ar fi ratele de eroare, latența și valorile de afaceri, pentru a se asigura că noua caracteristică nu are efect negativ.

Dacă testul canar descoperă o problemă în timpul procesului de implementare, este ușor să dezactivați noua caracteristică sau cod prin dezactivarea semnalizării acestei caracteristici. Eliberările din Canary pot ajuta la prevenirea perioadelor de nefuncționare majore, a pierderii veniturilor sau a sentimentului negativ al clienților, oferind informații rapide despre performanța unei noi funcții, limitând în același timp persoanele afectate.

Testarea canarelor și livrarea continuă
Campionată de un influent dezvoltator de software Martin Fowler, livrarea continuă este o disciplină de dezvoltare software în care software-ul poate fi lansat în producție în orice moment. A fost adoptat de companii de software de top din întreaga lume ale căror echipe se așteaptă acum să livreze rapid software-ul stabil și fără erori la baza dvs. de utilizatori.

Testarea canarului se încadrează în metodologiile de livrare continuă și integrare continuă. Cele mai bune sisteme de livrare continuă de rase, precum o companie precum Facebook, integrează monitorizarea profundă și testarea automată în testarea canarelor. Dacă o caracteristică nu reușește o verificare de monitorizare după ce a fost implementată ca canar la un procent de utilizatori, aceasta va reveni automat. Cu implementare continuă și teste canare, o echipă poate lansa mai sigur noi funcționalități și modificări de cod la scară.