Situația inițială În prezent, se utilizează PostgreSQL 14 în producție pentru SaaS (multi-tenancy, până la 1200 rps la vârf, ~900 GB de date). Cluster 3 noduri (2x primar/standby + martor) pe Ubuntu 20.04 în Hetzner Cloud, gestionat de Patroni+etcd. După o serie de incidente, am observat: failover-uri periodice cu split-brain, replici rămase în urmă cu până la 20-40 de minute, backup-urile barman au fost uneori întrerupte, iar actualizările OS și Postgres au fost întârziate. Planul este de a migra la Ubuntu 22.04 și PostgreSQL 16 cu un timp de nefuncționare minim, plus punerea în ordine a observabilității și a funcționării în siguranță. Mediu tehnic - 3 VM (Hetzner Cloud), NVMe, rețea de 1 Gbps - Ubuntu 20.04 -> 22.04 - PostgreSQL 14 -> 16 - Patroni, etcd, HAProxy - barman pentru PITR - Prometheus + node_exporter este deja acolo, postgres_exporter este configurat în unele locuri - Acces: SSH prin cheie, limită de timp inactiv - nu mai mult de 10 minute la trecerea finală Sarcina și rezultatul așteptat 1) Analizați configurația actuală HA (Patroni/etcd/HAProxy/Postgres) și identificați cauzele creierului divizat și decalajelor de replicare. Înregistrați problemele găsite și modificările propuse într-un scurt raport. 2) Pregătiți un plan și efectuați o migrare la PostgreSQL 16 și Ubuntu 22.04, păstrând clusterul Patroni și comutarea transparentă pentru aplicații prin HAProxy. 3) Configurați backup-urile și verificarea recuperării, astfel încât PITR și validarea regulată a backup-urilor să fie garantate. 4) Consolidarea securității și a fiabilității operaționale: limitarea accesului la rețea, corectarea parametrilor kernel/limită, rotația jurnalelor, măsuri de bază de întărire fără fanatism. 5) Aduceți monitorizarea într-o stare în care puteți vedea în mod măsurabil întârzierea replicării, starea failoverului, plinul discului, tranzacțiile de lungă durată și creșterea WAL. Restricții - Nu puteți modifica schema aplicației și bazei de date (doar partea de server și parametrii Postgres/Patroni/HAProxy). - Nu puteți utiliza DB gestionat, totul rămâne pe furnizorul actual. - Accesul la producție este limitat: munca în prime time este doar citire și diagnosticare, modificări și comutare - conform unei ferestre convenite. - Documentația trebuie să fie pe înțelesul inginerului care va întreține sistemul după finalizarea lucrării. Criterii de acceptare (măsurabile) - Comutarea finală la un nou principal durează 10 minute de impact total asupra serviciului. - Replicare in modul normal: lag standby < 5 secunde la sarcina medie (conform metrici) si fara acumulare WAL. - Split-brain a fost eliminat: setările corecte de cvorum/ttl/loop_wait/retry_timeout și verificarea scenariului de pierdere a rețelei/nodurilor pe stand sau într-o fereastră convenită. - Backup-uri: backup zilnic complet sau de bază și arhivare continuă WAL, procedură de testare PITR reușită cu restaurare pe un VM separat înainte de o oră specificată. - Monitorizare: metrics Postgres sunt disponibile în Prometheus (inclusiv întârziere de replicare, WAL, interogări de lungă durată), există cel puțin 5 alerte (disc, lag, indisponibilitate nod, creșterea erorilor, oprirea backup-urilor). - Transfer de artefacte: configurații curente Patroni/HAProxy/Postgres, instrucțiuni de actualizare și recuperare în caz de dezastru, lista modificărilor efectuate. Etape de execuție - Audit și înregistrare a stării curente, colectarea de metrici și jurnalele, diagnosticarea incidentelor. - Proiectarea schemei țintă și a planului de migrare cu rollback. - Implementarea de noi VM-uri, transferul configurațiilor, configurarea Patroni/etcd/HAProxy. - Migrarea datelor (pg_basebackup/pg_upgrade sau metoda convenită), efectuarea verificărilor. - Configurare Barman și test PITR. - Realizarea monitorizării și alertelor, verificarea finală și transferul documentației. Instrumente profesionale de care veți avea nevoie - patronictl, etcdctl, psql, pgBackRest sau barman, pgbench (sau un analog pentru rulare), exportatori Prometheus, tcpdump/ss, journald/rsyslog, Ansible (de preferință) pentru reproductibilitate. Important Este nevoie de lucru practic în infrastructură, cu analiză și migrare atentă, și nu o consultare generală.