• Migrarea și consolidarea unui cluster de producție PostgreSQL + Patroni la Ubuntu cu restaurarea replicării și configurarea copiei de rezervă

    8 ore în urmă
    • Buget dorit până la 950.37 USD
    • Se așteaptă un executant...
  • 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ă.
  • How would you rate this task?

    Sign in to leave your rating.

    Total ratings: 0

Oferta ta

Încă nu ai trimis o ofertă pentru această comandă.
Apasă „Trimite o ofertă” pentru a o trimite.

Aveți nevoie de o sarcină similară?

Dacă acest proiect este apropiat de ceea ce aveți nevoie, puteți consulta servicii gata în categorie sau publica propria sarcină cu bugetul, termenul și cerințele necesare.

The project «Migrarea și consolidarea unui cluster de producție PostgreSQL + Patroni la Ubuntu cu restaurarea replicării și configurarea copiei de rezervă» can be used as a reference for your own brief: what should be done, what result is needed and what budget to set.