Implementarea albastru-verde vs. implementarea Canary: diferențe cheie

Faza de implementare a livrării de software joacă un rol substanțial în dezvoltarea software-ului de astăzi, cu atât mai mult într-un mediu cloud.

În ciuda acestui fapt, este și una dintre cele mai subestimate faze de livrare. De obicei, companiile nu investesc suficient timp și energie pentru a face implementarea rapidă, fiabilă, automatizată sau oricare dintre acestea.

De cele mai multe ori, încă văd diferite forme de proceduri de implementare manuală. În cazuri mai bune, cel puțin cu o listă de verificare a pașilor documentată corespunzător. În cel mai rău caz, doar planuri aleatorii create prin improvizație în ultimele minute.

Procedura de implementare automată este întotdeauna o țintă îndepărtată și un substituent pentru foaia de parcurs pe termen scurt și mediu, dar drumul real către aceasta este accidentat și imprevizibil. Dar a avea o procedură de implementare complet automatizată și fiabilă este cheia pentru economii semnificative în timp. Apoi, puteți elimina efortul pe care majoritatea echipei de dezvoltare îl cheltuiește de obicei pentru fiecare lansare de producție pentru implementare.

Strategiile de implementare Canary și Blue-Green profită de toate aceste beneficii și adaugă mai multe, disponibilitate ridicată și procese rapide de instalare și derulare. Permițând echipei să elibereze și mai des și fără alte nopți nedormite. Să aruncăm o privire la ce aduc acestea și la ce diferă.

Implementarea albastru-verde: o prezentare generală

Sursă: cncf.io

Implementarea Blue-Green reduce timpul de nefuncționare și riscul noilor versiuni de software prin crearea a două medii identice: activ (albastru) și inactiv (verde).

Mediul activ este locul în care rulează versiunea curentă a software-ului, iar utilizatorii generează trafic de producție. Mediul inactiv este locul în care noua versiune a software-ului este implementată și testată.

Odată ce noua versiune este testată și gata, traficul este comutat din mediul activ în mediul inactiv, transformându-l în noul mediu activ. Puteți repeta acest proces după cum este necesar.

Citește și: Implementarea albastru-verde și rolul său în DevOps explicat

Caracteristici și beneficii cheie

Acestea sunt caracteristicile specifice ale procesului de implementare Blue-Green:

  • Două medii identice sunt identice din punct de vedere al datelor și proceselor. Mediul albastru (activ) este locul în care utilizatorii de producție își desfășoară procesele de zi cu zi. Mediul verde (inactiv) este locul în care noua implementare este instalată și întotdeauna sincronizată cu albastru.
  • Comutare de trafic pe care o puteți face din mediul activ în mediul inactiv, transformându-l în noul mediu activ. Comutarea este instantanee. Toată implementarea este acum un lucru din trecut. Nu există o fereastră de oprire. Utilizatorii nu trebuie să facă nimic pentru a ajunge în noul mediu.
  • Retragerea rapidă în caz de probleme este o consecință. Acest lucru asigură un timp de nefuncționare minim dacă ceva nu merge bine cu noua versiune a software-ului, iar aplicația rămâne foarte disponibilă.
  • Testarea automată este un aspect cheie al implementării Blue-Green. Se asigură că noua versiune a software-ului este testată temeinic înainte de a fi implementată în mediul activ.
  • Această implementare face parte dintr-o conductă de livrare continuă, ceea ce înseamnă în cele din urmă lansări mai rapide și mai frecvente de software în producție. Deoarece implementarea a fost deja făcută și trebuie să faceți doar schimbarea traficului în sine, este atât de rapid încât puteți face acest lucru în fiecare zi. Presupunând că sunteți rapid în activitățile de testare.
  Cum să activați automat modul de consum redus pe iPhone

Desfășurarea Canary: o privire de ansamblu

Sursă: cncf.io

Implementarea Canary execută o lansare treptată de noi funcții sau actualizări pentru un subset mic de utilizatori înainte de a fi lansate în întreaga bază de utilizatori.

Această abordare implică crearea unei noi versiuni a software-ului și implementarea acesteia într-un grup mic, menținând în același timp să ruleze versiunea veche pentru restul utilizatorilor. Echipa de dezvoltare monitorizează îndeaproape noua versiune pentru a se asigura că este stabilă și funcționează conform așteptărilor.

Dacă totul merge bine, noua versiune se lansează la mai mulți utilizatori până când ajunge în cele din urmă la întreaga bază de utilizatori. În acest fel, echipa de proiect minimizează riscul de a introduce erori sau alte probleme care ar putea afecta toți utilizatorii simultan.

Scopul este de a reduce riscul introducerii de noi funcții pentru o bază mare de utilizatori. Prin urmare, trecerea la noua versiune se face mult mai lină.

Citește și: Desfășurarea Canary și rolul său în DevOps explicat

Caracteristici și beneficii cheie

Acestea sunt caracteristicile specifice ale procesului de implementare Canary:

  • Implementați mai întâi noua versiune la un subset mic de utilizatori, apoi implementați-o treptat la mai mulți utilizatori în timp. Minimizați riscul de a introduce erori sau alte probleme care ar putea afecta toți utilizatorii simultan.
  • Monitorizați îndeaproape noua versiune pentru a vă asigura că este stabilă și funcționează conform așteptărilor. Dezvoltatorii pot primi feedback cu privire la noua versiune mai rapid, permițându-le să facă orice ajustări necesare înainte de implementarea în întreaga bază de utilizatori.
  • Dacă apar probleme, refaceți rapid și ușor implementarea la versiunea anterioară. Acest lucru ajută la creșterea încrederii dezvoltatorilor și a părților interesate în procesul de implementare, deoarece reduce riscul de a introduce probleme care ar putea afecta experiența utilizatorului.
  • Automatizați procesul de implementare cât mai mult posibil pentru a reduce riscul de eroare umană.

Rezumat: implementare albastru-verde vs. implementare Canary

FeatureBlue-Green DeploymentCanary DeploymentData Sync Sincronizare constantă a datelor între mediile albastru și verde. Un subset de utilizatori sau servere primește noua versiune; restul continuă cu versiunea curentă. Procesul de activare Treceți de la mediu activ la mediu inactiv atunci când o nouă versiune este gata. Lansare treptată la un subset definit de utilizatori care testează în mod activ versiunile noi. Experiența utilizatorilor de producțieFără timp de nefuncționare a producției; comutare fără probleme între mediile active. Un subset de utilizatori de producție testează în mod activ noua versiune; probleme potențiale pentru acest grup. Disponibilitate ridicată vs. viteză de feedback. Prioritate pe disponibilitate ridicată. Prioritate pe feedback mai rapid și lansare controlată. Atenuarea riscurilor. Reducerea posibilității de probleme prin lansarea treptată pentru un subset de utilizatori. Testarea în principal în medii inactive; Este posibil ca testerii să nu detecteze toate problemele din lumea reală. Abordarea testării. Testarea în principal în medii inactive; Este posibil ca testerii să nu detecteze toate problemele din lumea reală. Utilizatorii de producție acționează ca testeri, descoperind din timp problemele din lumea reală. Cazuri de utilizare notabileNetflix, Amazon, Etsy, LinkedIn și IBM folosesc Blue-Green.Netflix și Google folosesc Canary, împreună cu testarea automată și lansări graduale.

  Ghidul dezvoltatorului pentru autentificarea SAML [3 Online Tools]

Implementare albastru-verde vs. implementare Canary: caracteristici

Implementare

Implementarea albastru-verde înseamnă două medii (albastru și verde). Dar, în același timp, cele două medii sunt în mod constant sincronizate în ceea ce privește datele. Acest lucru crește cererea pentru procese permanente de sincronizare a datelor între cele două medii.

Odată ce noua versiune este testată și considerată gata, traficul este comutat din mediul activ în mediul inactiv, transformându-l în noul mediu activ.

Nu petreceți timp implementând cod nou și nu este implicat niciun timp de întrerupere a producției. Toți utilizatorii de producție lucrează tot timpul în mediul activ în prezent și nici măcar nu observă schimbarea.

Sursă: aws.amazon.com

Implementarea Canary implică implementarea unei noi versiuni a software-ului unui subset mic de utilizatori, în timp ce majoritatea utilizatorilor sau serverelor continuă să utilizeze versiunea curentă. Aceasta este o implementare graduală, mai degrabă decât o schimbare completă. Testerii sunt, în acest caz, utilizatori direcți de producție, chiar dacă doar un subset definit dintre ei. Acest grup testează în mod activ noua versiune cu procesele de producție, iar când va fi stabilă, noua versiune se va răspândi la restul utilizatorilor.

Implementarea albastru-verde va fi alegerea dvs. dacă disponibilitatea ridicată este prioritatea. Puteți favoriza implementarea Canary dacă preferați un feedback mai rapid și o lansare mai controlată (deși mai lentă).

Atenuarea diferenței de risc

Implementarea albastru-verde atenuează riscul eșecului lansării prin trecerea rapidă la versiunea anterioară stabilă. Pentru fiecare utilizator și instantaneu. Evident, există încă riscul ca noile funcții să fie amânate pentru utilizatori în caz de rollback, dar cel puțin niciunul dintre utilizatori nu va fi blocat din cauza unor probleme critice din noua versiune.

Strategia de atenuare a riscului de desfășurare Canary constă în reducerea treptată a posibilității de probleme. Deoarece noile funcții sunt lansate unui subgrup de utilizatori de producție, aceștia folosesc deja acea versiune de software cu ceva timp înainte ca lansarea să fie răspândită tuturor utilizatorilor. Probabilitatea este foarte mare ca acei utilizatori inițiali să surprindă astfel de probleme în curând.

Diferența de abordare de testare

Implementarea Blue-Green lasă procesele de testare exclusiv pentru mediul inactiv. Aici dezvoltatorii, testerii și diverse părți interesate pot testa orice doresc. Vă puteți aștepta întotdeauna la un comportament similar ca și cum testele ar rula direct pe mediul de producție activ (din moment ce datele și configurația sunt întotdeauna sincronizate între cele două medii).

  Cum să analizați argumentele liniei de comandă în Python

Deci, testerii dvs. rulează emisiunea de testare și există încă posibilitatea ca ei să nu descopere toate problemele pe care le-ar face utilizatorii reali de producție. Cu toate acestea, aceasta nu este cu adevărat o problemă, deoarece comutarea între mediile inactive și active este întotdeauna rapidă. Apoi, puteți lăsa dezvoltatorii să remedieze problema și să facă din nou schimbarea.

Sursă: ibm.com

Implementarea Canary vă permite să utilizați utilizatori de producție ca testeri. Astfel de utilizatori tind de obicei să găsească mai multe probleme într-un timp mai scurt. Pur și simplu rulează procesele de afaceri de zi cu zi într-o manieră completă de la capăt la capăt.

Nu doar pentru că au construit astfel de scenarii și cazuri de testare, ci pentru că trebuie să o facă oricum. Riști ca cei din grup să aibă probleme serioase pentru o vreme. Dar nu afectează majoritatea utilizatorilor, iar echipa de dezvoltare se poate concentra imediat asupra celor mai grave probleme din lumea reală.

Experiență și cazuri de utilizare

Iată câteva dintre cazurile de utilizare cunoscute în care astfel de implementări rulează deja cu succes:

  • Netflix folosește implementarea Blue-Green pentru a implementa noi versiuni ale serviciului său de streaming.
  • Amazon și Etsy folosesc implementarea Blue-Green pentru a implementa versiuni noi ale platformei lor de comerț electronic.
  • LinkedIn folosește implementarea Blue-Green pentru a implementa versiuni noi ale platformei sale de rețele sociale.
  • IBM folosește implementarea Blue-Green pentru a implementa noi versiuni ale platformei sale cloud.
  • Netflix folosește, de asemenea, Canary Deployment pentru a implementa modificări la serviciul său de streaming. Compania folosește o combinație de testare automată, semnalizări de caracteristici și testare A/B pentru a implementa încet modificările.
  • Google folosește Canary Deployment pentru a implementa modificări la serviciile sale cloud. În mod similar, compania folosește beneficiile testării automate, împărțirii traficului și includerii monitorizării pentru a implementa treptat modificări la un subset mic de utilizatori înainte de implementarea tuturor utilizatorilor.

Automatizarea este cheia, iar conductele DevOps sunt cu siguranță viitorul proceselor de implementare. Acestea sunt procese complet automate care conțin pași precum:

  • Crearea sau actualizarea mediilor țintă în termeni de servicii, date, utilizatori sau privilegii.
  • Implementarea automată a versiunilor complete/delta ale codurilor sursă direct din depozitul de coduri.
  • Actualizarea schemei bazei de date și reîmprospătarea datelor.
  • Execuția automată a testelor direct în timpul activităților de implementare.
  • Procese automate de rollback în cazul în care orice caz de testare important nu s-a finalizat cu succes.
  • Eliminarea oricăror pași de intervenție manuală la zero.

Odată ce aveți astfel de conducte de implementare, puteți conecta procesele Canary sau Blue-Green sau orice altceva doriți. Acestea sunt doar două dintre exemplele care s-au dovedit deja a funcționa bine. Dar acestea sunt doar cadre filozofice pentru rezolvarea majorității problemelor legate de activitățile de implementare. Nici măcar nu este dificil să comutați între ele în timp sau să folosiți o combinație a ambelor.

Cuvinte finale

Respectarea procedurilor manuale de implementare este vederea unor procese de dezvoltare nematurate sau chiar a unor echipe. Alternativ, poate dezvălui cât de inflexibilă și monolitică este compania respectivă în ceea ce privește livrarea de software. În ambele cazuri, înseamnă multă muncă pentru a repara status quo-ul. Deci, încercați să implementați strategiile de implementare menționate mai sus pentru proiectul dvs.

Apoi, vedeți cum să implementați aplicații în Kubernetes.