Backup vs. versionare: de ce nu sunt același lucru

„Avem versionare pe Git, deci suntem acoperiți” — o frază pe care o aud surprinzător de des, de obicei chiar înainte de un incident care demonstrează exact opusul. Backup-ul și versionarea rezolvă probleme diferite, protejează împotriva unor riscuri diferite, și confuzia dintre ele lasă, de multe ori, o gaură exact acolo unde cineva credea că e protejat.

Articolul ăsta explică clar diferența, cu exemple concrete despre ce acoperă fiecare și, mai important, ce NU acoperă niciuna dintre ele fără cealaltă.

Ce este versionarea, de fapt

Versionarea (folosind un sistem ca Git, sau chiar sistemul nativ de revizii al WordPress pentru articole) păstrează un istoric al modificărilor unui fișier sau document de-a lungul timpului. Poți vedea cine a schimbat ce, când, și te poți întoarce la o versiune anterioară a acelui fișier specific.

Pentru codul unui site — tema, plugin-urile personalizate, orice cod scris de un dezvoltator — versionarea prin Git e standardul industriei. Fiecare modificare e înregistrată, cu un mesaj care explică ce s-a schimbat și de ce, iar echipa poate colabora fără să se calce pe picioare, fiecare lucrând pe propria ramură de cod înainte de a combina modificările.

Ce este backup-ul, de fapt

Backup-ul e o copie completă, la un moment dat, a întregului sistem — nu doar cod, ci și baza de date, fișierele media încărcate, configurările de server, totul. Scopul lui nu e să urmărească evoluția în timp a unui fișier, ci să ofere o „fotografie” completă din care poți reconstrui întregul sistem dacă originalul dispare sau e compromis.

Un backup bun conține tot ce ai nevoie pentru a reface site-ul de la zero, pe un server complet nou, fără să depinzi de nimic din infrastructura originală care ar fi putut fi compromisă.

Diferența esențială, într-o singură propoziție

Versionarea răspunde la întrebarea „ce s-a schimbat și pot să mă întorc la o versiune anterioară a acestui fișier?” Backup-ul răspunde la întrebarea „dacă tot sistemul dispare chiar acum, pot să-l reconstruiesc complet, de la zero, în altă parte?” Sunt întrebări diferite, cu răspunsuri care nu se suprapun automat.

Ce NU acoperă versionarea, chiar dacă pare că ar trebui

Baza de date, de obicei deloc

Marea majoritate a proiectelor WordPress versionează codul — tema, plugin-urile personalizate — prin Git, dar aproape niciodată baza de date completă. Și totuși, conținutul real al unui site WordPress (articole, pagini, comenzi, comentarii, utilizatori) trăiește în baza de date, nu în cod. O versionare perfectă a codului nu-ți recuperează nimic din conținutul real al site-ului dacă baza de date e coruptă sau ștearsă.

Fișierele media încărcate

Imaginile, documentele, orice fișier încărcat prin Media Library, de obicei nu fac parte din depozitul de cod versionat — sunt excluse explicit, pentru că un depozit Git nu e gândit să gestioneze eficient mii de fișiere binare mari. Asta înseamnă că, din nou, versionarea nu te ajută dacă acele fișiere dispar.

Configurările de server

Setările specifice serverului — configurări PHP, reguli de server web, certificate SSL, cron jobs — trăiesc de obicei în afara oricărui sistem de versionare, direct pe infrastructura serverului. Dacă serverul dispare complet, versionarea codului nu-ți spune nimic despre cum era configurat mediul în care rula acel cod.

Un istoric compromis nu te salvează

Dacă un atacator obține acces la depozitul de cod versionat și introduce cod malițios, urmat de un commit legitim ulterior, istoricul de versionare conține acum atât versiunea compromisă, cât și cea „curată” — dar identificarea exactă a punctului de compromitere, în mijlocul a zeci sau sute de commit-uri, poate fi surprinzător de dificilă sub presiunea unui incident real.

Ce NU acoperă backup-ul, chiar dacă pare complet

Colaborarea și istoricul deciziilor

Un backup îți dă o stare completă la un moment dat, dar nu-ți spune de ce codul arată așa cum arată, cine a făcut o anumită modificare, sau ce alternative au fost luate în considerare. Pentru dezvoltare activă, cu o echipă care lucrează simultan pe funcționalități diferite, lipsa versionării ar face colaborarea practic imposibil de gestionat organizat.

Granularitatea fină

Dacă vrei să anulezi o singură modificare mică, făcută acum o oră, dintr-un fișier de cod — nu tot site-ul, doar acel fișier specific — un backup complet e un instrument mult prea grosier. Ai nevoie fie să restaurezi tot backup-ul (pierzând toate celelalte modificări legitime făcute între timp), fie să identifici manual și să corectezi acea singură schimbare, ceea ce versionarea face instant și precis.

Frecvența practică

Backup-urile complete rulează de obicei zilnic sau, în cel mai bun caz, la câteva ore — genera un backup complet la fiecare modificare de cod ar fi ineficient și costisitor în resurse. Asta înseamnă că, între două backup-uri, orice modificare de cod nedorită nu poate fi anulată granular — doar prin restaurarea completă a ultimului backup bun, cu tot ce înseamnă asta.

De ce ai nevoie de ambele, nu de unul „mai bun”

Un site WordPress administrat corect are nevoie de ambele sisteme, funcționând împreună, fiecare acoperind exact riscul pentru care celălalt nu e potrivit:

Versionare (Git) pentru cod — tema, plugin-urile personalizate, orice dezvoltare activă. Permite colaborare organizată, istoric clar al deciziilor, și posibilitatea de a anula precis o singură modificare problematică.

Backup complet pentru tot restul — baza de date, fișiere media, configurări — și, ideal, chiar și pentru codul versionat, ca strat suplimentar de siguranță în cazul în care depozitul Git însuși devine inaccesibil sau compromis.

Am detaliat pe larg, în ghidul nostru despre backup, de ce majoritatea backup-urilor „configurate” nu funcționează de fapt atunci când ai nevoie de ele — o problemă complet separată de discuția despre versionare, dar la fel de importantă.

Un exemplu concret care arată de ce confuzia costă

Un site cu dezvoltare activă, cod versionat impecabil pe Git, dar fără backup complet al bazei de date, a suferit o problemă la server — o eroare de infrastructură la furnizorul de hosting, nu un atac, doar un eșec tehnic al serverului fizic. Codul era perfect recuperabil, instant, dintr-un simplu `git clone` pe un server nou.

Baza de date, însă, conținea luni de comenzi, conturi de clienți și conținut editat direct din panoul de administrare, niciodată trecut prin procesul de versionare (pentru că baza de date, în mod normal, nici nu trece prin el). Fără un backup separat, funcțional, acel conținut real al afacerii — nu codul, ci datele reale ale clienților — a fost pierdut ireversibil. Codul „versionat perfect” nu a ajutat cu absolut nimic la recuperarea a ceea ce conta cu adevărat pentru afacere.

Cum verifici dacă ești acoperit corect, pe ambele fronturi

Pentru versionare: verifică dacă tot codul personalizat (temă, plugin-uri proprii) e într-un depozit Git activ, cu commit-uri regulate, nu doar o configurare inițială uitată de atunci.

Pentru backup: verifică — testând efectiv prin restaurare, nu doar presupunând — dacă backup-ul curent conține baza de date completă, toate fișierele media, și poate fi restaurat integral pe un mediu separat, complet funcțional, fără să depindă de nimic din infrastructura originală.

Dacă răspunsul la oricare dintre aceste verificări e „nu sunt sigur”, acolo e exact riscul invizibil care așteaptă momentul cel mai nepotrivit să devină vizibil.

Concluzia practică

Versionarea și backup-ul nu sunt variante alternative ale aceluiași lucru — sunt două sisteme complementare, fiecare esențial pentru un tip diferit de risc. „Avem versionare” nu înseamnă „avem backup”, la fel cum „avem backup” nu înseamnă că poți gestiona organizat dezvoltarea activă de cod fără versionare. Un site administrat cu adevărat responsabil are nevoie de ambele, funcționând corect, verificate activ, nu doar presupuse funcționale.

Toate pachetele noastre de administrare WordPress includ atât backup complet, testat periodic prin restaurare reală, cât și, pentru proiectele cu dezvoltare activă, versionare corectă a codului. De la 49 €/lună.

Nu ești sigur dacă site-ul tău e acoperit corect pe ambele fronturi? Cere auditul gratuit — verificăm concret, fără obligații.

Mastodon