Production Rollback Systems

Production Rollback Systems

Excerpt:
Production rollback systems omogućavaju brzo vraćanje sajta ili aplikacije na prethodno stabilno stanje nakon greške, neuspešnog update-a ili loše deploy promene. Dobar rollback proces smanjuje downtime, čuva podatke i omogućava kontrolisanu reakciju bez panike.

Blog članak:

Production rollback system je sigurnosni mehanizam za situacije kada nova promena u produkciji napravi problem. To može biti update plugina, nova verzija teme, izmena koda, promena konfiguracije, migracija baze ili deploy koji nije prošao kako je očekivano.

Rollback nije isto što i improvizovano vraćanje fajlova. U ozbiljnom sistemu mora se znati šta se vraća, odakle se vraća, koliko je backup star i koje podatke može prepisati. Bez tog razumevanja rollback može rešiti jedan problem, ali napraviti drugi.

Kod CMS sajtova rollback često uključuje vraćanje prethodne verzije plugina, teme ili jezgra sistema. Ako je problem nastao posle update-a, najbrži put do stabilizacije može biti povratak na prethodnu proverenu verziju.

Kod custom aplikacija rollback se obično vezuje za deploy proces. Pre objave nove verzije korisno je imati prethodnu verziju koda spremnu za brzo vraćanje. To može biti kroz Git, release foldere, Docker image tagove ili hosting snapshot.

Baza podataka je najosetljiviji deo rollback-a. Fajlovi se često mogu vratiti relativno jednostavno, ali baza se tokom rada menja kroz porudžbine, korisničke unose, forme, komentare i transakcije. Zato vraćanje baze mora biti posebno pažljivo.

Kod e-commerce sajtova puni rollback baze može obrisati nove porudžbine ako se ne uradi pravilno. U takvim slučajevima nekada je bolje vratiti samo kod ili konfiguraciju, a bazu ostaviti netaknutom, uz dodatnu korekciju problematičnih zapisa ako je potrebno.

Dobar rollback sistem počinje pre incidenta. Pre većih promena treba napraviti backup, zabeležiti verzije, proveriti šta se menja i imati plan vraćanja. Ako se plan pravi tek kada je sajt već oboren, rizik je mnogo veći.

Važno je razlikovati rollback od trajnog rešenja. Rollback vraća sistem u stabilno stanje, ali ne objašnjava uvek zašto je nova verzija napravila problem. Posle stabilizacije treba analizirati uzrok i pripremiti sigurniji način za ponovni pokušaj.

Rollback proces treba testirati povremeno. Backup koji nikada nije vraćen, snapshot koji nije proveren ili deploy strategija koja postoji samo u teoriji nisu dovoljno pouzdani za hitne situacije.

Production rollback systems daju produkcionom radu sigurnosnu mrežu. Kada postoji jasan način da se sistem brzo vrati na stabilnu verziju, tehničke promene se mogu raditi sigurnije, a incidenti se rešavaju sa manje stresa i manjim rizikom za poslovanje.