Magazin online în noiembrie
Un retailer nu are voie să oprească site-ul în campanie: lansările merg pe canary, cu cinci procente din trafic, și se opresc automat dacă rata de erori la plată urcă.
Blue-green deployment înseamnă două medii identice și o comutare controlată a traficului, ca lansarea unei versiuni noi să nu mai fie un eveniment de noapte. Configurăm comutarea la ingress, canary pe procente de trafic cu praguri pe metrici, rollback într-o comandă și migrări de bază de date compatibile în ambele sensuri. Pe infrastructura ta din Frankfurt.
Ridicăm mediul nou lângă cel care servește traficul, îl pornim cu aceeași configurație și rulăm pe el teste de fum. Dacă trec, mutăm traficul la nivel de ingress sau echilibrator, cu golirea conexiunilor deschise, ca nimeni să nu rămână cu o cerere tăiată la jumătate. Mediul vechi rămâne pornit până metricile confirmă că versiunea nouă se comportă corect. Dacă nu, comutăm înapoi imediat, fără reconstrucție și fără reinstalare.
Zero downtime nu vine din unealta folosită, ci din disciplina aplicată la fiecare pas. Lista de mai jos este exact ceea ce verificăm înainte, în timpul și după comutarea traficului, și rămâne scrisă în procedura de lansare pe care o primești la predare. O respectăm și când lansarea pare banală: incidentele mari vin aproape întotdeauna din livrări pe care cineva le-a considerat prea mici ca să merite verificări.
Codul se comută în secunde, schema nu. De aceea împărțim orice modificare în două etape: mai întâi extindem, adică adăugăm coloane sau tabele pe care le înțeleg ambele versiuni, apoi, după ce versiunea nouă este stabilă, restrângem și ștergem ce nu mai e folosit. Între cele două etape, aplicația veche și cea nouă pot rula în paralel. Așa un rollback nu întâlnește o schemă pe care versiunea anterioară nu o mai recunoaște.
Punerea procedurii de lansare intră în orele lunare: 1–8 ore pe planurile VPS, 5–10 ore pe servere dedicate, în funcție de plan, și 10 ore pe GPU. Ceri lucrarea din panoul de client, la Servicii DevOps, și propui termenul, de obicei înaintea unei lansări importante. Prima configurare cere de regulă cea mai mare parte a cotei; după ea, fiecare lansare devine rutină pentru echipa ta. Ce depășește cota se acceptă și se facturează separat, la oră.
Fiecare abonament include lunar ore de DevOps, CyberSecurity și Programare: 1 h de la planul cPanel Advanced în sus, 1–8 h pe VPS și 5–10 h pe serverele dedicate, în funcție de plan, și 10 h pe GPU. Orele se cer din panoul de client, nu se reportează în luna următoare, iar ce depășește cota se acceptă și se facturează separat. Cu abonamentele care includ minimum 2 ore lunare îți construim un site de prezentare, iar cu cele care includ minimum 5 ore, un magazin online — din orele deja plătite în abonament.
Descrii cum lansați acum, ce se strică cel mai des și când aveți următoarea versiune importantă, apoi propui un termen.
Alegem între blue-green, canary sau rolling update, în funcție de arhitectură, și stabilim pragurile la care se oprește lansarea.
Configurăm mediile, testele de fum și comutarea, apoi facem o lansare de probă și un rollback real, ca procedura să fie verificată.
Primești procedura de lansare, comanda de rollback, pragurile de oprire și regulile pentru migrările de schemă, în repozitoriul tău.
Un retailer nu are voie să oprească site-ul în campanie: lansările merg pe canary, cu cinci procente din trafic, și se opresc automat dacă rata de erori la plată urcă.
Fiecare versiune trece prin mediul verde cu teste de fum pe fluxurile de plată, iar comutarea se face în afara orelor de vârf, cu rollback pregătit și exersat.
Un serviciu folosit de cetățeni în timpul programului de lucru primește fereastră de lansare seara, golirea sesiunilor active și un mediu anterior păstrat 24 de ore.
Sunt două medii identice: unul servește traficul, celălalt primește versiunea nouă. Se testează pe mediul liber, apoi traficul se mută integral pe el. Vechiul rămâne pornit ca plasă de siguranță, deci revenirea este o comutare, nu o reinstalare.
Blue-green este mai simplu și potrivit când vrei o comutare curată, cu rollback rapid. Canary este mai bun când vrei să vezi comportamentul pe trafic real înainte de a expune toți utilizatorii, dar cere metrici de încredere și praguri stabilite din timp.
Cu rolling update corect configurat ajungi deja departe: probe de readiness, PodDisruptionBudget și golirea conexiunilor. Pentru control mai fin adăugăm Argo Rollouts sau Flagger, care fac blue-green și canary cu praguri automate pe metrici.
Păstrăm imaginile și manifestele versiunilor precedente, iar comutarea traficului este o schimbare de rută, nu o reconstrucție. Comanda o exersăm împreună la livrare și o trecem în procedură, inclusiv ce se face dacă între timp s-a rulat o migrare de schemă.
În două etape. Întâi extinzi schema cu elemente pe care le înțeleg ambele versiuni, lansezi codul, confirmi stabilitatea, apoi restrângi și elimini ce nu mai e folosit. Regula fixă: nicio migrare care rupe compatibilitatea nu pleacă odată cu codul.
Doar temporar, în timpul lansării. Pe Kubernetes mediul suplimentar există câteva minute și dispare după comutare. Pe arhitecturi mai simple ținem o rezervă de capacitate calculată împreună, ca să nu plătești constant pentru un mediu folosit rar.
Punem blue-green sau canary, cu teste de fum, praguri automate și rollback exersat, din orele incluse în abonamentul tău.