• Міграція та hardening production-кластера PostgreSQL + Patroni на Ubuntu з відновленням реплікації та налаштуванням бекапів

    8 годин тому
    • Бажаний бюджет до 950.37 USD
    • Очікує виконавця...
  • Початкова ситуація
    Зараз використовується PostgreSQL 14 в production для SaaS (мультіарендність, до 1200 rps у піку, ~900 ГБ даних). Кластер 3 вузла (2x primary/standby + witness) на Ubuntu 20.04 у Hetzner Cloud, управління Patroni+etcd. Після серії інцидентів помічені: періодичні failover зі split-brain, відставання репліки до 20-40 хвилин, barman-бекапи іноді биті, а оновлення ОС та Postgres відкладалися. Планується перехід на Ubuntu 22.04 та PostgreSQL 16 з мінімальним простоєм, плюс наведення порядку у спостережуваності та безпечній експлуатації.

    Технічне середовище
    - 3 VM (Hetzner Cloud), NVMe, мережа 1 Gbps
    - Ubuntu 20.04 -> 22.04
    - PostgreSQL 14 -> 16
    - Patroni, etcd, HAProxy
    - barman для PITR
    - Prometheus + node_exporter вже є, postgres_exporter місцями налаштований
    - Доступ: SSH за ключом, обмеження за часом простою - не більше 10 хвилин на фінальному перемиканні

    Завдання та очікуваний результат
    1) Провести аналіз поточної конфігурації HA (Patroni/etcd/HAProxy/Postgres) та виявити причини split-brain та лагів реплікації. Зафіксувати знайдені проблеми та запропоновані зміни у короткому звіті.
    2) Підготувати план та виконати міграцію на PostgreSQL 16 та Ubuntu 22.04 із збереженням Patroni-кластера та прозорим перемиканням для додатків через HAProxy.
    3) Налаштувати бекапи та перевірку відновлення так, щоб було гарантовано PITR та регулярну валідацію бекапів.
    4) Посилити безпеку та експлуатаційну надійність: обмеження мережного доступу, коректні параметри kernel/limits, ротація логів, базові заходи hardening без фанатизму.
    5) Привести моніторинг стану, коли можна вимірно бачити lag реплікації, стан failover, заповнення дисків, тривалі транзакції і зростання WAL.

    Обмеження
    - Не можна змінювати додаток та схему БД (тільки серверна частина та параметри Postgres/Patroni/HAProxy).
    - Не можна використовувати managed DB, все залишається на поточному провайдері.
    - Доступ до продакшену обмежений: роботи у прайм-тайм тільки читання та діагностика, зміни та перемикання – за погодженим вікном.
    - Документація має бути зрозумілою інженеру, який супроводжуватиме систему після завершення робіт.

    Критерії приймання (вимірювані)
    - Фінальне перемикання на новий primary вкладається в 10 хвилин загального на сервіс.
    - Реплікація в штатному режимі: lag standby < 5 секунд при середньому навантаженні (за метриками) та без накопичення WAL.
    - Виключено split-brain: коректне налаштування quorum/ttl/loop_wait/retry_timeout та перевірка сценарію втрати мережі/вузла на стенді або у погодженому вікні.
    - Бекапи: щоденний full або basebackup та безперервний archiving WAL, успішна тестова процедура PITR з відновленням в окрему VM до заданого часу.
    - Моніторинг: в Prometheus доступні метрики Postgres (включаючи replication lag, WAL, long running queries), є мінімум 5 алертів (диск, лаг, недоступність вузла, зростання помилок, зупинка бекапів).
    - Передача артефактів: актуальні конфіги Patroni/HAProxy/Postgres, інструкції з оновлення та аварійного відновлення, список виконаних змін.

    Етапи виконання
    - Аудит та фіксація поточного стану, збір метрик та логів, діагностика інцидентів.
    - Проектування цільової схеми та плану міграції з відкатом.
    - Розгортання нових VM, перенесення конфігурацій, налаштування Patroni/etcd/HAProxy.
    - Міграція даних (pg_basebackup/pg_upgrade чи узгоджений метод), прогін перевірок.
    - Налаштування barman та тест PITR.
    - Налаштування моніторингу та алертів, фінальна перевірка та передача документації.

    Професійні інструменти, які знадобляться
    - patronictl, etcdctl, psql, pgBackRest або barman, pgbench (або аналог для прогонки), Prometheus exporters, tcpdump/ss, journald/rsyslog, Ansible (бажано) для відтворюваності.

    Важливо
    Потрібна робота саме руками в інфраструктурі, з аналізом та акуратною міграцією, а не загальна консультація.
  • Як ви оцінюєте це завдання?

    Увійдіть в обліковий запис, щоб залишити свою оцінку.

    Усього оцінок: 0

Ваша пропозиція

Ви ще не залишили пропозицію до цього замовлення.
Натисніть «Запропонувати послугу», щоб надіслати свою пропозицію.

Потрібне схоже завдання?

Якщо завдання схоже на ваше, можна переглянути готові послуги в категорії або створити власне завдання з потрібним бюджетом, строками та вимогами.

Завдання «Міграція та hardening production-кластера PostgreSQL + Patroni на Ubuntu з відновленням реплікації та налаштуванням бекапів» можна використати як орієнтир для свого брифа: що потрібно зробити, який результат потрібен і який бюджет вказати.