Плаво-зелена примена наспрам Цанари примене: кључне разлике

Faza implementacije isporuke softvera zauzima ključnu poziciju u savremenom razvoju softvera, posebno u okruženjima baziranim na oblaku.

Ipak, često je potcenjena faza u procesu isporuke. Kompanije često ne posvećuju dovoljno vremena i resursa kako bi proces implementacije bio brz, pouzdan i automatizovan.

U praksi se često nailazi na različite oblike ručnih procedura implementacije. U boljim slučajevima, one su barem propraćene detaljnim kontrolnim listama koraka. U najgorim situacijama, planovi se kreiraju ad hoc u poslednjim trenucima.

Cilj automatizovane procedure implementacije uvek je na vidiku, ali put do njega često je izazovan i nepredvidiv. Međutim, potpuno automatizovana i pouzdana procedura implementacije donosi značajne uštede vremena. Na taj način se eliminišu napori koje razvojni timovi uobičajeno troše na svako proizvodno izdanje.

Strategije implementacije poput Canary i Blue-Green pružaju sve ove prednosti i dodaju visok nivo dostupnosti i brze procese instalacije i vraćanja. To omogućava timovima da češće objavljuju izdanja, bez dodatnog stresa. U nastavku ćemo detaljnije razmotriti ove strategije i njihove razlike.

Plavo-zelena implementacija: Pregled

Izvor: cncf.io

Plavo-zelena implementacija smanjuje vreme prekida rada i rizik prilikom objavljivanja novih verzija softvera tako što stvara dva identična okruženja: aktivno (plavo) i neaktivno (zeleno).

Aktivno okruženje je mesto gde se pokreće trenutna verzija softvera, i gde korisnici generišu produkcijski saobraćaj. Neaktivno okruženje je mesto gde se primenjuje i testira nova verzija softvera.

Kada se nova verzija testira i proglasi spremnom, saobraćaj se prebacuje iz aktivnog okruženja u neaktivno okruženje, koje tada postaje novo aktivno okruženje. Ovaj proces se može ponavljati po potrebi.

Pročitajte i: Objašnjenje plavo-zelene implementacije i njena uloga u DevOps-u

Ključne karakteristike i prednosti

Ovo su specifične karakteristike plavo-zelenog procesa implementacije:

  • Dva identična okruženja su jednaka u pogledu podataka i procesa. Plavo (aktivno) okruženje koristi se za svakodnevne procese produkcije. Zeleno (neaktivno) okruženje je mesto gde se instalira nova verzija, i koje je uvek sinhronizovano sa plavim.
  • Prebacivanje saobraćaja se vrši trenutno iz aktivnog okruženja u neaktivno okruženje, koje postaje novo aktivno okruženje. Na taj način se eliminiše zastoj u radu. Korisnici ne moraju da preduzimaju nikakve korake da bi pristupili novom okruženju.
  • Brzo vraćanje na prethodnu verziju u slučaju problema. Ovo osigurava minimalno vreme prekida rada ukoliko se pojavi problem sa novom verzijom softvera, i održava visoku dostupnost aplikacije.
  • Automatizovano testiranje je ključni aspekt plavo-zelene implementacije. Ono osigurava da je nova verzija softvera temeljno testirana pre nego što se primeni u aktivno okruženje.
  • Ova vrsta implementacije je deo kontinuirane isporuke, što znači brže i češće objavljivanje softvera u produkciju. Budući da je raspoređivanje već obavljeno i potrebno je samo prebacivanje saobraćaja, proces je izuzetno brz i može se obavljati svakodnevno, pod uslovom da su aktivnosti testiranja efikasne.

Canary implementacija: Pregled

Izvor: cncf.io

Canary implementacija podrazumeva postepeno objavljivanje novih funkcija ili ažuriranja za manji broj korisnika pre nego što se uvedu celoj korisničkoj bazi.

Ovaj pristup uključuje kreiranje nove verzije softvera i njeno implementiranje za malu grupu korisnika, dok se stara verzija održava za ostale korisnike. Razvojni tim pažljivo prati novu verziju kako bi se uverio da je stabilna i da radi kako se očekuje.

Ako sve prođe kako treba, nova verzija se uvodi za više korisnika, dok na kraju ne stigne do cele korisničke baze. Na ovaj način, razvojni tim minimizira rizik od uvođenja grešaka ili drugih problema koji mogu uticati na sve korisnike odjednom.

Svrha je smanjiti rizik od uvođenja novih funkcija u veliku korisničku bazu, čime je prelazak na novu verziju mnogo lakši.

Pročitajte i: Objašnjenje Canary implementacije i njene uloge u DevOps-u

Ključne karakteristike i prednosti

Ovo su specifične karakteristike procesa implementacije Canary:

  • Nova verzija se prvo primenjuje na mali podskup korisnika, a zatim se postepeno uvodi za više korisnika tokom vremena. Na taj način se minimizira rizik od uvođenja grešaka koje mogu uticati na sve korisnike odjednom.
  • Pažljivo se prati nova verzija kako bi se osigurala njena stabilnost. Programeri mogu brže dobiti povratne informacije o novoj verziji, što im omogućava da izvrše potrebna podešavanja pre nego što se primeni na celu korisničku bazu.
  • U slučaju problema, implementacija se brzo i lako može vratiti na prethodnu verziju. Ovo povećava poverenje programera i zainteresovanih strana u proces implementacije, smanjujući rizik od uvođenja problema koji bi mogli negativno uticati na korisničko iskustvo.
  • Proces implementacije se automatizuje koliko god je moguće kako bi se smanjio rizik od ljudske greške.

Rezime: Plavo-zelena implementacija naspram Canary implementacije

Karakteristika Plavo-zelena implementacija Canary implementacija
Sinhronizacija podataka Konstantna sinhronizacija podataka između plavog i zelenog okruženja. Podskup korisnika ili servera dobija novu verziju; ostali nastavljaju sa trenutnom verzijom.
Proces aktivacije Prebacivanje iz aktivnog u neaktivno okruženje kada je nova verzija spremna. Postepeno uvođenje u definisani podskup korisnika koji aktivno testiraju nove verzije.
Korisničko iskustvo Bez prekida u radu; besprekorno prebacivanje između aktivnih okruženja. Podskup korisnika aktivno testira novu verziju; potencijalni problemi za ovu grupu.
Dostupnost i brzina povratnih informacija Prioritet na visokoj dostupnosti. Prioritet na bržim povratnim informacijama i kontrolisanom uvođenju.
Smanjenje rizika Smanjenje mogućnosti problema kroz brzu migraciju na prethodnu stabilnu verziju. Smanjenje mogućnosti problema kroz postepeno oslobađanje podskupu korisnika.
Test pristup Testiranje uglavnom u neaktivnim okruženjima; testeri možda neće uhvatiti sve probleme iz stvarnog sveta. Produkcijski korisnici deluju kao testeri, rano otkrivajući probleme u realnom vremenu.
Značajni slučajevi korišćenja Netflix, Amazon, Etsy, LinkedIn i IBM koriste plavo-zelenu implementaciju. Netflix i Google koriste Canary implementaciju, zajedno sa automatizovanim testiranjem i postepenim uvođenjem.

Plavo-zelena implementacija naspram Canary implementacije: Karakteristike

Implementacija

Plavo-zelena implementacija podrazumeva postojanje dva okruženja (plavo i zeleno). Ova dva okruženja su stalno sinhronizovana u pogledu podataka. To zahteva kontinuirane procese sinhronizacije podataka između dva okruženja.

Kada se nova verzija testira i proglasi spremnom, saobraćaj se prebacuje iz aktivnog okruženja u neaktivno okruženje, koje tada postaje novo aktivno okruženje.

Nema gubljenja vremena na implementaciju novog koda i ne dolazi do zastoja u produkciji. Svi korisnici produkcije sve vreme rade na trenutno aktivnom okruženju i ne primećuju prekid u radu.

Izvor: aws.amazon.com

Canary implementacija podrazumeva primenu nove verzije softvera na mali podskup korisnika, dok većina korisnika ili servera nastavlja da koristi trenutnu verziju. Ovo je postepena, a ne kompletna promena. Testeri su u ovom slučaju direktni korisnici produkcije, odnosno samo njihov definisan podskup. Ova grupa aktivno testira novu verziju sa produkcijskim procesima, a kada postane stabilna, nova verzija se proširuje na ostale korisnike.

Plavo-zelena implementacija je prikladan izbor ukoliko je visok nivo dostupnosti prioritet. Canary implementacija je bolji izbor ako su brže povratne informacije i kontrolisano uvođenje važniji.

Ublažavanje razlike rizika

Plavo-zelena implementacija smanjuje rizik od neuspeha brzom tranzicijom na stabilnu prethodnu verziju za svakog korisnika. Postoji rizik da će nove funkcionalnosti biti odložene, ali nijedan korisnik neće biti blokiran zbog kritičnih problema iz novog izdanja.

Strategija ublažavanja rizika kod Canary implementacije leži u postepenom smanjenju mogućnosti problema. Budući da su nove funkcije objavljene podgrupi produkcijskih korisnika, oni će prvi koristiti novu verziju pre nego što se izdanje proširi na sve ostale. Veća je verovatnoća da će ovi korisnici brzo identifikovati potencijalne probleme.

Razlika u pristupu testiranju

Plavo-zelena implementacija procese testiranja ostavlja isključivo za neaktivno okruženje. Ovde programeri, testeri i druge zainteresovane strane mogu testirati šta god žele. Mogu očekivati slično ponašanje kao da se testovi izvode u aktivnom produkcijskom okruženju, budući da su podaci i konfiguracija uvek sinhronizovani.

Iako testeri sprovode testiranja, postoji mogućnost da neće uočiti sve probleme koje bi stvarni korisnici primetili u produkciji. Međutim, to nije veliki problem, s obzirom na to da je prelazak između neaktivnog i aktivnog okruženja brz. Programeri mogu rešiti problem i ponovo izvršiti izmenu.

Izvor: ibm.com

Canary implementacija omogućava korišćenje produkcijskih korisnika kao testere. Takvi korisnici obično brže pronalaze probleme. Oni jednostavno sprovode svoje svakodnevne poslovne procese od početka do kraja.

Korisnici iz grupe testera mogu naići na ozbiljne probleme određeno vreme. Ipak, to ne utiče na većinu korisnika, a razvojni tim se može odmah koncentrisati na rešavanje najozbiljnijih problema.

Iskustvo i slučajevi upotrebe

U nastavku su navedeni primeri uspešne primene ovih strategija:

  • Netflix koristi plavo-zelenu implementaciju za uvođenje novih verzija svoje usluge striminga.
  • Amazon i Etsy koriste plavo-zelenu implementaciju za uvođenje novih verzija svojih platformi za e-trgovinu.
  • LinkedIn koristi plavo-zelenu implementaciju za uvođenje novih verzija svoje platforme za društveno umrežavanje.
  • IBM koristi plavo-zelenu implementaciju za uvođenje novih verzija svoje platforme u oblaku.
  • Netflix koristi Canary implementaciju za uvođenje promena u svoju uslugu striminga. Kompanija koristi kombinaciju automatizovanog testiranja, oznaka funkcija i A/B testiranja kako bi polako uvela promene.
  • Google koristi Canary implementaciju za uvođenje promena u svoje usluge u oblaku. Takođe, koristi automatizovano testiranje, podelu saobraćaja i praćenje uključivanja kako bi postepeno uvela promene za manji broj korisnika pre nego što ih primeni na sve korisnike.

Najbolje prakse i budući trendovi

Automatizacija je ključna, a DevOps procesi su budućnost implementacije. To su potpuno automatizovani procesi koji obuhvataju korake kao što su:

  • Kreiranje ili ažuriranje ciljnog okruženja u smislu usluga, podataka, korisnika ili privilegija.
  • Automatizovana implementacija kompletnih/delta verzija izvornih kodova direktno iz repozitorijuma.
  • Nadogradnja šeme baze podataka i osvežavanje podataka.
  • Automatizovano izvođenje testova tokom implementacije.
  • Automatizovan proces vraćanja unazad u slučaju neuspeha testova.
  • Eliminisanje svih koraka ručne intervencije.

Kada su ovi procesi implementirani, moguće je primeniti Canary ili Blue-Green procese, ili bilo koji drugi željeni pristup. Oni su samo dva od primera koja su se već pokazala efikasnim. Oni predstavljaju filozofski okvir za rešavanje većine problema sa implementacijom. Nije teško prelaziti između ovih strategija tokom vremena ili koristiti kombinaciju obe.

Završne reči

Održavanje ručnih procedura implementacije ukazuje na nezrele razvojne procese. Alternativno, to može ukazivati na nefleksibilnost kompanije u pogledu isporuke softvera. U oba slučaja, potrebno je dosta napora da se popravi status quo. Stoga, pokušajte da implementirate navedene strategije implementacije za svoj projekat.

Nakon toga, pogledajte kako da implementirate aplikacije u Kubernetes-u.