Reliable Deployment Practices

Reliable Deployment Practices

Excerpt:
Reliable deployment practices omogućavaju da se nove verzije sajta, aplikacije ili konfiguracije uvode kontrolisano, bez nepotrebnog rizika za produkciju. Dobar deployment proces uključuje pripremu, testiranje, backup, rollback plan i proveru nakon objave.

Blog članak:

Reliable deployment practices su važan deo tehničke stabilizacije jer svaka promena u produkciji nosi određeni rizik. Update plugina, izmena koda, promena PHP verzije, novi Docker image ili korekcija server konfiguracije mogu poboljšati sistem, ali ga mogu i destabilizovati.

Prvi princip pouzdanog deployment-a je da se promene ne rade nasumično. Pre svake izmene treba znati šta se menja, zašto se menja, koji deo sistema može biti pogođen i kako se proverava da li je promena uspela.

Testiranje pre produkcije značajno smanjuje rizik. Idealno je imati staging okruženje gde se nova verzija može proveriti bez uticaja na korisnike. Ako staging ne postoji, promene u produkciji moraju biti manje, pažljivije i dobro dokumentovane.

Backup je obavezan pre ozbiljnog deployment-a. To ne znači samo imati neki stari backup, već imati svežu kopiju fajlova, baze i relevantnih konfiguracija. Posebno je važno znati da li backup može brzo da se vrati ako nešto krene pogrešno.

Rollback plan mora postojati pre promene, ne tek nakon problema. Ako update obori sajt, ako nova verzija koda ne radi ili ako konfiguracija izazove grešku, treba odmah znati kako se sistem vraća na prethodno stabilno stanje.

Kod CMS sistema deployment često uključuje pluginove, teme, page buildere i bazu. Jedan update može promeniti strukturu podataka ili način rada šablona, pa posle objave treba proveriti frontend, administraciju, forme, checkout i ključne funkcije.

Kod custom aplikacija pouzdan deployment se često oslanja na Git, release verzije, environment varijable, build proces i jasno odvajanje produkcionih podešavanja od lokalnog razvoja. Time se smanjuje mogućnost da test konfiguracija završi u produkciji.

Deployment ne završava u trenutku kada se nova verzija objavi. Potrebno je proveriti logove, HTTP statuse, greške u browser konzoli, performanse, tracking evente i sve kritične korisničke tokove. Mnogi problemi se pojave tek nakon realnog korišćenja.

Važno je dokumentovati promene. Kratak zapis o tome šta je objavljeno, kada, ko je uradio izmenu i koji su rezultati provere može kasnije značajno ubrzati debugging i rollback.

Reliable deployment practices pretvaraju tehničke promene u kontrolisan proces. Kada postoje testiranje, backup, rollback, dokumentacija i provera posle objave, produkcija postaje stabilnija, a razvoj se može nastaviti sa manje rizika.