Testarea Canary: ce este și cum poți beneficia de pe urma ei?

Publicat: 2022-08-20

Sunt șanse, dacă nu sunteți programator, să nu fi auzit niciodată despre testarea Canary. Este în regulă, totuși probabil vă întrebați ce este și de ce se numește testarea canarului?

Termenul derivă din expresia „canar în mina de cărbune”. Vedeți, minerii de cărbune obișnuiau să aducă un canar în cușcă în mina de cărbune cu ei, deoarece canarii au o toleranță mai mică la gaz toxic.

Prin urmare, muncitorii știau că dacă canarul moare, ar trebui să iasă din mină. În ceea ce privește dezvoltarea de software, atunci când se creează software nou, scopul este de a detecta și rezolva problemele cât mai repede posibil, înainte ca acestea să devină o problemă pentru utilizatori.

meme canar

Ce este testarea Canary?

Testarea Canary este metoda de a încerca noi funcționalități și caracteristici, cu un impact negativ, sperăm, minim asupra finalului utilizatorului. Acest tip de testare este utilizat în mod normal cu un grup restrâns de utilizatori, pentru care aplicația este prezentată cu mici modificări. În acest fel, majoritatea utilizatorilor vor folosi în continuare versiunea actuală a software-ului, în timp ce grupul mai mic de utilizatori selectat va folosi o versiune ușor actualizată.

Scopul acestui exercițiu este de a permite majorității persoanelor care folosesc software-ul să continue să lucreze cu acesta, fără probleme, în timp ce împinge modificări doar pentru un mic procent de utilizatori.

Toate acestea se fac în timp ce rulează simultan atât versiunea existentă, cât și cea nouă a aplicației. Apoi, dacă testarea Canary nu returnează nicio eroare, puteți continua să o extindeți la procente mai mari de utilizatori.

Cititorii se bucură și de: Ce este dezvoltarea rapidă a aplicațiilor? 4 faze ale metodologiei RAD – DevriX

Cum se efectuează un test Canary?

Primul pas într-un test Canary este lansarea unui set de servere back-end sau containere pentru a rula noul cod. Odată ce există utilizatori noi, echilibratorul de încărcare va trimite un procent dintre aceștia către „clusterul canar”.

Specialiștii DevOps monitorizează apoi serverele pentru a identifica probleme potențiale, cum ar fi sarcina de calcul sau rate mai mari de I/O. Și, rețineți că, chiar dacă apar probleme serioase, este ușor să reveniți la cum erau, deoarece procesul nu afectează pe toți cei care folosesc software-ul.

În caz contrar, puteți implementa și automatiza cu ușurință testarea Canary folosind instrumente precum Spinnaker pentru a desemna numărul de utilizatori care folosesc noul cod.

Procentul menționat este de obicei în jur de 5% și, odată ce echipa DevOps alocată stabilește că nu există probleme, poate crește în mod constant acest procent, până când toată lumea folosește noua versiune de cod a aplicației.

În plus, testarea Canary este benefică în situațiile în care mediile de dezvoltare sau de organizare nu se potrivesc pe deplin cu mediul de producție. Utilizarea unui grup mic de utilizatori de testare poate dezvălui orice probleme care nu au fost detectate în timpul mediilor de realizare sau dezvoltare.

Cititorii se bucură și de: Testarea A/B cu WordPress: Ghidul definitiv – DevriX

Avantajele și dezavantajele testării Canary

Să definim binele și răul când vine vorba de testare, folosind metoda canarului.

Avantaje și dezavantaje ale testării Canary

Beneficiile testării Canare

  • Testare în lumea reală . Testarea în medii interne închise este grozavă, totuși, posibilitatea de a testa software-ul pe utilizatori reali este ceea ce te duce cu un pas mai departe. Cu implementările Canary, puteți face exact asta – testați aplicația pe un public la scară mică, fără riscul de a lansa o aplicație complet nouă.
  • Un management mai bun al riscului . Lansarea treptată a noilor funcții și asigurarea faptului că acestea funcționează corect, reduce considerabil erorile semnificative și costul total al oricăror defecțiuni.
    Prin utilizarea metodei de testare Canary, practic, eliminați necesitatea de a derula înapoi actualizările majore sau de a rescrie cantități mari de cod.
  • Mai orientat spre afaceri . Trebuie să prezentați date de afaceri managerilor și oamenilor de marketing/vânzări? Cu Canary, puteți vizualiza foarte rapid rezultatele. De exemplu, dacă doriți să testați o nouă caracteristică software - puteți implementa o nouă caracteristică pentru un grup mic de utilizatori și apoi așteptați să vedeți dacă funcția merge bine sau nu. Apoi puteți utiliza aceste date pentru a crește implicarea pentru produsul dvs.

Dezavantajele testării Canare

  • Probleme de software . Există încă cod netestat, așa că, firește, există riscuri implicate. În cazul în care chiar și câțiva utilizatori se confruntă cu probleme semnificative cu o anumită caracteristică, cel mai bine este să săriți peste testarea Canary în favoarea unor teste interne mai stricte.
  • Cheltuieli mai mari . Dacă intenționați să utilizați un echilibrator de încărcare pentru a partiționa utilizatorii, veți avea nevoie de infrastructură suplimentară și mai multă administrare. Aceasta înseamnă că va trebui să creați două medii de producție și backend separate pentru a executa testul. Deci, două servere de aplicații, două linii de cod, două servere web și o infrastructură de rețea de întreținut.
  • Experiență proastă a utilizatorului . Unii utilizatori ar putea să nu fie prea îndrăgostiți de ideea de a fi utilizați ca subiecți de testare. Dacă doriți să fiți deschis cu privire la ceea ce se întâmplă, puteți informa utilizatorii că sunt folosiți ca „canari”, printr-un program de „adopție timpurie” sau ceva similar.

Când să nu folosiți testarea Canary?

Testarea Canary este benefică în multe cazuri, cu toate acestea, nu este un răspuns sigur la toate (adică 42).

Iată când cu siguranță nu ar trebui să utilizați abordarea canar:

  • În medii care nu sunt potrivite pentru implementare continuă.
  • Când aveți de-a face cu software critic, cum ar fi sisteme de susținere a vieții sau reactoare nucleare.
  • Sisteme financiare în care eșecul poate avea un impact economic substanțial.

Când nu puteți actualiza software-ul de la distanță.

Cum se face o implementare Canary?

Acum, să aruncăm o privire la pașii necesari pe care trebuie să-i faceți pentru a efectua o desfășurare canary.

  1. Pregătiți-vă pentru implementare pe serverul intermediar.
  2. Excludeți nodurile canare prin echilibrarea sarcinii.
  3. Implementați noua versiune în nodurile canare.
  4. Testați noua versiune cu scripturi de testare automate.
  5. Conectați nodurile canare la trafic cu echilibrarea sarcinii.
  6. Lansați actualizarea la nodurile de producție rămase.

În practică, implementarea începe cu pregătirea serverului de staging. Verificați fișierele de configurare, scripturile de testare, creați artefacte și așa mai departe. După aceea, puteți fie să rulați teste automate sau manuale, fie să lăsați serverul activ și să vedeți dacă totul merge bine sau dacă se blochează.

Când să-l împing pe Canary la producție?

Odată ce ați testat actualizarea Canary pe 5 sau 10% dintre utilizatori și totul funcționează corect, puteți continua să dublați sau să triplați procentul de utilizatori de testare.

Apoi, testați din nou, adunați feedback de la valori și, odată ce ați evaluat că totul funcționează bine, încă o dată, puteți continua să actualizați 70% din mediul de producție.

În cele din urmă, repetați procedura de testare și, dacă totul este bine, lansați noua versiune a software-ului pentru 100% dintre utilizatori și, desigur, continuați monitorizarea.

Companii care au implementat Canary Deployment

Pentru a vă arăta că implementarea Canary este o metodă populară de implementare, vom arunca o privire asupra unor companii care folosesc implementarea Canary.

Netflix

Gigantul serviciilor de streaming folosește analiza automată a canarelor cu Kayenta din 2018. Acest lucru permite actualizări extrem de rapide ale mediului de producție Netflix. Compania afirmă că această metodă de implementare a crescut productivitatea dezvoltatorilor, reducând în același timp riscul de a face schimbări în mediul lor de producție.

Instagram

Această platformă de socializare a fost, de asemenea, un fan de multă vreme al implementării Canary. Cofondatorul și CTO al lor, Mike Krieger, a spus că versiunile canare asigură că bug-urile nu fac prea multe daune și afectează doar un grup mic de oameni.

Google

Știați că Google Chrome are o versiune specială, destinată dezvoltatorilor? Așa este, Google Chrome Canary vă permite să testați noile API-uri ale platformei web și să vedeți cum ar arăta viitorul browserului înaintea oricui.

Microsoft

Microsoft își folosește propriul personal pentru a-și testa toate actualizările de produse. Procesul a fost în vigoare de la Windows Vista și Microsoft Azure. Upgrade-ul la Windows 10 a fost, de asemenea, realizat folosind actualizări canare ale sistemelor de operare ale personalului lor.

rezumat

Testarea Canary este o modalitate excelentă de a introduce rapid versiuni noi de aplicații, în medii de testare din lumea reală. Nu numai asta, dar permite o mai bună gestionare a riscurilor și date mai urmăribile.

În ciuda faptului că testele canare au atât de multe beneficii, nu este întotdeauna soluția pentru orice situație. Asigurați-vă că vă cercetați înainte de a începe o desfășurare Canary, altfel s-ar putea întoarce împotriva voastră.