Un client care opereaza peste 20 de aplicatii web avea infrastructura imprastiata pe 7 masini la doi furnizori diferiti: cateva aplicatii pe 5 VM-uri de hosting in Romania si alte doua pe doua servere dedicate inchiriate la Hetzner. Costuri duplicate, securitate inconsistenta si zero vizibilitate unitara. Le-am consolidat totul pe un singur server nou cu Debian si virtualizare KVM — cu un perimetru de securitate real si monitorizare 24/7. Proiect implementat in aprilie 2025, la Hetzner, pe Debian 12 (Bookworm), pe un server dual-CPU cu 128 GB RAM.
Contextul
Infrastructura clientului crescuse organic, fara un plan unitar:
- 5 VM-uri la un hosting din Romania, pe care rulau majoritatea celor 20+ aplicatii web
- 2 servere dedicate inchiriate la Hetzner, fiecare cu propriile aplicatii si configuratii
- Doi furnizori, doua facturi, doua modele de administrare diferite
- Securitate pe bucati — fiecare masina cu reguli proprii (sau fara), fara un punct unic de control
- Fara monitorizare centralizata: o problema pe o aplicatie se afla cand suna clientul, nu inainte
Riscul de business nu era o singura aplicatie picata, ci lipsa de control si de vizibilitate peste tot ce rula in productie.
Provocarea
Trebuia sa consolidam totul fara sa rescriem aplicatiile si fara downtime lung, pastrand izolarea intre workload-uri — aplicatiile vechi nu trebuiau sa se influenteze reciproc. In plus, clientul voia costuri mai mici si o singura administrare, dar fara compromis pe securitate.
Solutia propusa
Dupa discutii tehnice cu clientul, decizia a fost clara: un singur server fizic nou, mai puternic, la Hetzner, transformat in host de virtualizare. Pe el am construit un mediu KVM cu trei masini virtuale, fiecare cu un rol bine definit:
- Host Debian Linux — sistemul de baza, intarit (hardening) si transformat in perimetru de securitate si punct unic de intrare
- KVM ca hypervisor — izolare reala intre workload-uri, snapshot-uri, flexibilitate la alocarea de resurse
- 3 VM-uri — doua pentru cele doua servere dedicate vechi, una pentru toate aplicatiile de pe cele 5 VM-uri din Romania
De ce KVM si nu Proxmox sau VMware
Voiam un singur server lean care sa faca si virtualizare, si perimetru de securitate — nginx, Suricata si GeoIP ruleaza pe acelasi host Debian. KVM e hypervisor-ul nativ din Linux: zero licente, control total, integrare directa cu host-ul, fara un strat de management in plus. Proxmox sau VMware ar fi adaugat complexitate inutila aici — in plus, HA real pe doar doua noduri Proxmox e problematic: un cluster are nevoie de un al treilea vot pentru quorum, altfel risti split-brain. Pentru un singur host cu recuperare rapida pe un server standby, Debian + KVM a fost alegerea corecta.
Pe scurt, transformarea:
Implementarea
Pasul 1 — Host Debian + KVM
Pe serverul nou am instalat Debian Linux ca sistem gazda, intarit conform best practices (servicii minime, SSH pe chei, firewall nftables, kernel tuning). Peste el, KVM/QEMU + libvirt ca strat de virtualizare. Astfel fiecare aplicatie sau grup de aplicatii ruleaza izolat in propria VM, fara sa poata afecta restul.
Pasul 2 — Migrarea celor doua servere dedicate (image-level)
Cele doua servere fizice dedicate vechi de la Hetzner au fost migrate la nivel de imagine (P2V — physical to virtual), fiecare in propria VM pe noul host. Practic am preluat serverul intreg — sistem de operare, configuratii, aplicatii — exact cum era, fara reinstalare si fara reconfigurare manuala. Aplicatiile au pornit in VM identic cu mediul vechi.
Pasul 3 — Consolidarea celor 5 VM-uri din Romania
Cele 20+ aplicatii web raspandite pe cele 5 VM-uri de hosting din Romania au fost migrate intr-o singura VM pe noul server. Am grupat aplicatiile, am refacut dependintele (runtime-uri si baze de date, dupa caz) si am validat fiecare aplicatie inainte de a opri vechiul mediu.
Securitatea — host-ul ca perimetru
Tot traficul intra acum printr-un singur punct controlat, pe host, inainte sa ajunga la vreo aplicatie. Asta ne-a permis sa construim un perimetru de securitate real, identic pentru toate cele 20+ aplicatii:
- nginx ca reverse proxy — punct unic de intrare pentru toate aplicatiile din cele 3 VM-uri. Terminare TLS centralizata, certificate gestionate intr-un singur loc, routing pe domeniu/aplicatie, rate limiting si security headers consistente. Aplicatiile din VM-uri nu sunt expuse direct la internet.
- GeoIP filtering — filtrare la nivel de tara direct pe host. Reducem suprafata de atac blocand regiunile de unde clientul nu are utilizatori legitimi, dar de unde vine masa de scanari si atacuri automate.
- Suricata IDS/IPS — inspectie profunda a pachetelor pe host, cu seturi de reguli actualizate. Detecteaza si blocheaza tentativele de exploit (SQLi, scanari, payload-uri cunoscute) inainte sa atinga aplicatiile din VM-uri. Fiecare alerta e logata si trimisa mai departe in monitorizare.
- CrowdSec — detectie comportamentala a atacurilor (brute-force, scanari, abuz) si blocare bazata pe semnale, inclusiv blocklist-uri comunitare partajate
- ipset cu liste dinamice — blocare la nivel de kernel, foarte rapida, a unor liste mari de IP-uri care se actualizeaza dinamic (decizii CrowdSec, feed-uri de amenintari, reputatie IP) — atacatorii sunt taiati la poarta, inainte sa ajunga la aplicatii
- NetFlow — practic toate conexiunile care trec prin server sunt jurnalizate la nivel de flux: cine, cu cine, cat trafic, cand. Vizibilitate completa pentru investigatii si audit
Rezultatul: in loc de 7 masini cu reguli diferite (sau inexistente), un singur perimetru consistent prin care trece tot.
Monitorizare si alertare — Zabbix
Fara vizibilitate, consolidarea ar fi mutat doar problema. Am instalat Zabbix ca sistem central de monitorizare si alertare, cu agenti pe host si pe toate cele 3 VM-uri:
- Infrastructura — CPU, RAM, disk, I/O si starea fiecarei VM KVM pe host; alerta inainte ca o resursa sa devina critica (ex: disk peste 80%)
- Aplicatii — verificari HTTP/HTTPS pe fiecare aplicatie web (cod de raspuns, timp de raspuns, expirarea certificatului TLS), ca sa stim ca pica inainte sa sune clientul
- Securitate — alertele Suricata si evenimentele nginx ajung in Zabbix, corelate cu restul metricilor
- Backup — starea job-urilor de backup, ca un backup esuat sa genereze alerta, nu o surpriza la restore
- Alertare cu escaladare — notificari pe email, cu praguri si severitati, plus dashboard-uri pentru o privire de ansamblu in timp real
Disponibilitate si backup la nivel de imagine
Consolidarea pe un singur server fizic inseamna ca acel server devine critic — deci backup-ul a fost parte din design, nu un adaos ulterior. Folosim o solutie enterprise de backup la nivel de imagine: fiecare VM e salvata integral (imagine completa + incrementale), pe un al doilea server inchiriat separat de client, in alta locatie fizica.
Avantajul fata de un backup clasic de fisiere: la nevoie restauram VM-ul intreg in cateva minute — sistem, configuratii, aplicatii, date — gata de pornit, nu reasamblat manual. RTO scade de la ore la minute, iar copia separata fizic respecta principiul 3-2-1.
Nu e un cluster HA cu failover automat — a fost o decizie constienta de cost. Serverul de backup nu e doar o destinatie de copii: la nevoie, cele 3 VM-uri pot fi pornite direct pe el in cateva minute (warm standby), pentru ca sunt salvate ca imagini complete, gata de boot. Obtinem astfel un RTO de minute la o fractiune din costul si complexitatea unui cluster HA real. Daca business-ul cere failover automat sub-minut, urmatorul pas firesc e un cluster de 2-3 noduri cu replicare — dar pentru volumul si bugetul clientului, recuperarea rapida si testata a fost echilibrul corect.
Rezultatul
- ✅ De la 7 masini la doi furnizori la un singur server cu 3 VM-uri — o singura administrare, o singura factura principala
- ✅ 20+ aplicatii web migrate fara rescriere, cu izolare reala intre workload-uri (KVM)
- ✅ Cele doua servere dedicate preluate la nivel de imagine — zero reconfigurare manuala
- ✅ Un perimetru de securitate unic: nginx reverse proxy + GeoIP + Suricata IDS/IPS pe host, identic pentru toate aplicatiile
- ✅ Vizibilitate completa 24/7 cu Zabbix — alerta inainte de incident, nu dupa
- ✅ Backup la nivel de imagine pe server separat — restore complet in minute, copie in alta locatie fizica
- ✅ Costuri mai mici si infrastructura predata documentata complet
Ai aplicatii imprastiate pe mai multe servere?
Daca platesti facturi la mai multi furnizori pentru aplicatii raspandite pe masini diferite, fara un perimetru de securitate comun si fara monitorizare unitara, probabil platesti mai mult pentru mai putin control. Facem audit si plan de consolidare: ce se poate uni, cum izolam workload-urile, ce perimetru de securitate punem si cum monitorizam totul dintr-un singur loc.