Blue Green Deployment și Drupal - Cât de multe știi cu adevărat?
Publicat: 2019-07-23Blue Green Deployment este unul dintre pilonii strategiilor de implementare care învinge limitările abordării tradiționale a implementării aplicațiilor. Cât de multe știți despre Blue Green Deployment? Cum este implementată Blue Green Deployment în Drupal?
Da, ai citit bine. A trebui să vă luați aplicația offline pentru actualizări sau în timp ce lansați o versiune mai nouă este o sarcină descurajantă și o adevărată durere. Este adevărat că puteți atenua acest lucru cu perioadele de nefuncționare programate, dar asta nu este ceva care va face clienții fericiți. Unele site-uri pierd de fapt mii de dolari în fiecare minut în care sunt oprite! Ar trebui implementarea sau actualizarea aplicației dvs. să fie adevăratul motiv din spatele pierderii dvs.?
Aflați despre de ce implementarea albastru verde este cea mai bună strategie pentru a reduce timpul de nefuncționare și pentru a atenua alte riscuri implicate în implementarea aplicației. Aflați mai multe despre implementarea albastru-verde și Drupal.
Ce este Blue-Green Deployment?
Blue-Green Deployment este o tehnică de lansare a aplicațiilor prin deplasarea sau mutarea traficului între două medii identice care rulează două versiuni diferite ale unei aplicații.
Pe scurt, există o versiune a unei aplicații, să o numim „versiunea albastră” în producție. Și apoi, există un router care este folosit pentru a direcționa traficul către aplicație. Acum ai nevoie de o altă versiune. „versiunea verde” cu mai multe bunătăți adăugate, care urmează să fie implementată. Cu toate acestea, doriți să vă asigurați că, în timp ce această implementare are loc, un utilizator poate încă să se uite la aplicația dvs., să apese un buton sau să facă orice dorește, fără ca aplicația dvs. să se închidă! Mai degrabă a implementa în secret „versiunea verde” în timp ce „versiunea albastră” se ocupă între timp de tot traficul, înainte de a schimba în cele din urmă conexiunile.

Cu capacități de lansare și rollback aproape de zero, ideea fundamentală a implementării Blue-Green este de a schimba traficul între două medii identice care rulează două versiuni diferite ale aplicației. În timp ce versiunea actuală a aplicației este reprezentată de mediul Albastru, cea verde este pusă în scenă rulând o versiune diferită.
De ce implementare albastru-verde?
Una dintre provocările majore legate de automatizarea procesului de implementare este trecerea în sine, adică mutarea aplicației din etapa finală de testare în etapa live. Și acest lucru trebuie să fie rezolvat rapid pentru a minimiza orice fel de nefuncționare. Acesta este exact ceea ce face implementarea albastru-verde. Cu două medii de producție (cât mai identice în natură), la un moment dat, unul dintre ele este live. Și pe măsură ce vă pregătiți pentru o nouă lansare, vă faceți toate testele pe celălalt mediu care nu este live. Odată ce sunteți gata să rulați, tot ce trebuie să faceți este să comutați routerul, astfel încât tot traficul dvs. să fie direcționat către cea mai recentă versiune, iar celălalt mediu să rămână inactiv.
De asemenea, implementarea Blue-Green oferă una dintre cele mai importante caracteristici, o deplasare rapidă. Să presupunem că dacă ceva nu merge bine cu cea mai recentă versiune, trebuie doar să comutați înapoi routerul. Deși ar putea exista încă o problemă cu tranzacțiile pierdute atunci când mediul defect era activ, ați putea, de asemenea, să îl proiectați astfel încât ambele medii să fie alimentate cu tranzacțiile și unul să acționeze ca o rezervă pentru celălalt.
Cum este implementarea albastru-verde?
Acum că știm despre cele două medii ale Blue-Green Deployment, să ne uităm la unele dintre cele mai bune practici pentru a le implementa.
Echilibrarea sarcinii prin comutarea DNS
Rețineți că, atunci când schimbați mediile, faceți ca domeniul dvs. să trimită în cele din urmă către servere diferite. În loc să accesați înregistrările DNS și să faceți modificări în interfața de gestionare a DNS, utilizați echilibrarea încărcăturii.
Problema cu efectuarea modificărilor în înregistrările DNS va avea ca rezultat doar un traseu lung de trafic. Aceasta înseamnă că, deși unii dintre utilizatorii dvs. vor fi în continuare deserviți de vechiul mediu, nici măcar nu veți avea control deplin asupra unde este direcționat traficul dvs.
Cu toate acestea, echilibrarea încărcăturii vă va permite să vă configurați noile servere imediat și nu va trebui să depindeți de mecanismul DNS. În acest fel, vei avea control deplin asupra traficului și poți fi absolut sigur că tot traficul este direcționat către noul mediu.
Actualizare continuă
NU comutați toate serverele simultan. În schimb, executați o actualizare continuă. Adică, în loc să treceți la serverele Green de la cele Albastre dintr-o dată, lucrați cu un mediu integrat. Adăugați un server nou, retrageți unul vechi. Repetați până când fiecare server nou este pe loc. Acest lucru vă va reduce timpul de nefuncționare cu o marjă uriașă!
Monitorizarea mediului
În timp ce monitorizarea mediului în direct este evidentă, nu doriți să ajungeți să fiți prins cu nerăbdare dacă nu monitorizați celălalt mediu. Da, monitorizarea celuilalt mediu este mai puțin critică. Cu toate acestea, deoarece același mediu poate acționa ca ambele stări, veți avea nevoie de o modalitate mai ușoară de a comuta alerta între cele două. Configurați jetoane API diferite pentru cele două medii care raportează sau modificați în mod programatic politica de alertă asupra mediului atunci când rolul acestuia este schimbat/schimbat.

Automatizare
Setul manual de acțiuni vă va crește munca. În schimb, scriptați fiecare acțiune din procesul de comutare. Automatizarea procesului de comutare va avea ca rezultat o implementare mai rapidă, mai ușoară și mai sigură a implementării Blue-Green.
Implementare Blue Green pentru site-urile web Drupal
Probleme
- În timpul implementării codului, Drupal trebuie să ruleze actualizări ale bazei de date pentru a funcționa și aceasta este o problemă majoră, deoarece actualizările Drupal setează site-ul web în modul de întreținere și utilizatorii dvs. sunt întâmpinați cu acest ecran alb frumos.

Dacă implementarea eșuează, atunci o derulare înapoi este posibilă numai prin restaurarea bazei de date din dump, având în vedere că schema bazei de date ar fi putut fi modificată. Aceasta înseamnă timp de nefuncţionare!
Soluție: Blue Green Deployment!
Să ne uităm la câteva dintre prezentarea generală a infrastructurii pentru implementarea Blue Green Deployment cu Drupal. Orice fel de operațiuni în Drupal necesită Nginx și un server php (pentru a rula în principal Drupal), avem nevoie de o bază de date, o stocare de fișiere, ceva cache, iar stiva este proiectată astfel încât să fie foarte disponibilă.
Cu Blue Green Deployment, trebuie să implementați o nouă stivă cu o nouă bază de cod și să copiați toată baza de date și diferitele stări din baza de cod anterioară, de preferință folosind Drush.

Odată ce cele două stive diferite sunt configurate, stiva de staging trebuie testată independent de stiva de producție. Practic, trebuie ca utilizatorii să meargă la stiva (stiva de producție) și să testeze versiunea site-ului web care este implementată. Și când cealaltă versiune (stiva de staging) este gata, trebuie doar să răsturnați versiunile. Acum utilizatorii sunt direcționați către noua stivă, iar versiunea mai veche este disponibilă pentru testare.
Blue Green Implementare cu Docker
Implementările în Drupal nu sunt ușoare. Deși trebuie să vă asigurați că codul este implementat, dependențele compozitorului sunt gestionate, actualizările schemei sunt actualizate și toate cache-urile sunt șters, trebuie, de asemenea, să vă asigurați că „site-ul receptiv” este activ și rulează. Și ce se întâmplă dacă există o problemă și implementarea eșuează? Derulezi? Sau opriți desfășurarea?
Expresia pe care o cauți este Blue Green Deployment
În timpul implementării Drupal, Docker asigură o schimbare ușoară între aplicații și facilitează construirea și rularea diferitelor versiuni ale acestora. Pe instanța EC2, există întotdeauna un set de containere docker ridicate de albastru și verde, iar nginx funcționează ca un server proxy invers. Implementarea albastru-verde cu Docker permite unui utilizator să construiască un site web Drupal care rulează în paralel în cele două medii diferite.
Blue Green Implementare cu AWS
Deși din punct de vedere istoric, implementarea albastru-verde nu a fost prima alegere pentru implementarea software-ului la sediu din cauza costului ridicat și complexității sale implicate, containerele au schimbat definitiv această percepție.
Containerele ușurează adoptarea implementării albastru-verde datorită pachetului lor ușor și comportamentului consecvent pe măsură ce comută între medii. Și pentru a schimba configurația unui container, trebuie doar să-i actualizați fișierul docker și să reconstruiți și să redistribuiți containerul în loc, mai degrabă decât să actualizați software-ul.
Amazon ECS efectuează aceste actualizări continue atunci când actualizați un serviciu Amazon ECS existent. Actualizarea continuă pentru implementarea ecs blue green implică înlocuirea versiunii existente a containerului cu cea mai recentă. Acest număr de containere pe care Amazon ECS le adaugă sau le elimină în timpul actualizării este controlat prin ajustarea numărului maxim și minim de sarcini sănătoase permise în timpul implementării serviciului. Odată actualizată, definiția sarcinii serviciului este actualizată cu cea mai recentă versiune a imaginii containerului, Amazon ECS începe automat să înlocuiască versiunea veche a containerului cu cea mai recentă.

Implementarea albastru-verde cu AWS ECS va oferi, de asemenea, beneficii de optimizare, deoarece nu sunteți legat de același set de resurse. Adică, atunci când pachetul de performanță al aplicației se schimbă de la o versiune la alta, pur și simplu lansați noul mediu cu resursele optimizate (pot fi mai puține ca număr sau un set complet diferit de resurse).
Implementarea albastru-verde în AWS se potrivește, de asemenea, bine cu fluxurile de lucru de integrare și implementare continuă, ținând o verificare a complexității acestora, permițând automatizării implementării să ia în considerare mai puține dependențe de un mediu existent.
Această soluție permite utilizatorilor să gestioneze cu ușurință implementarea și scalabilitatea platformelor web fără a pierde timp. Această implementare ajută la configurarea unui mediu de înaltă disponibilitate care va rula un site web Drupal fără probleme.
