Към съдържанието
N1
CRM / Bitrix24 · DevOps · CI/CD · бекъпи

On-premise Bitrix24 в Docker: CI/CD, анонимизирани дъмпове, бекъпи и мониторинг

Клиент: Застрахователна компания, NDA Категория: CRM / Bitrix24 Стек: Docker Compose, Rocky Linux 9, GitLab CI, bash, PHP 8.4, MySQL, nginx, Prometheus, Grafana, Telegram Срок: внедрявано поетапно
Проблем

Порталът се разгръщаше и обновяваше ръчно, описаният в документацията ежедневен бекъп всъщност не съществуваше на нито един сървър, а разработката вървеше върху копия на продукцията с лични данни.

Ограничения

Ядрото на on-premise Bitrix24 се обновява от доставчика и само променя схемата на базата — не може да се пресглоби от git. Продукцията не може да се спира, а личните данни на клиентите на застрахователя не бива да напускат продукционната среда.

Какво направих
  • Продукция от нулата с една команда на Rocky Linux 9: пакети, Docker, код, конфигурации, база и проверка — идемпотентно, без повторно генериране на тайните
  • Внедряване през GitLab CI само след зелен preprod и предварителна проверка на продукцията; след внедряването — smoke проверка и сверяване на схемата с preprod
  • Анонимизираният дъмп е единственият формат на данни за локалната среда и preprod: тайните, телефоните и личните данни се маскират преди предоставяне
  • Бекъп на базата, файловете и конфигурациите със задължителна проверка на възстановимостта във временна база
  • Обновяване на ядрото с една команда: точка за възстановяване, снимка на схемата „преди“ и „след“ и манифест на промените
  • Миграции на схемата с дневник и заключване срещу паралелно стартиране; мониторинг с Prometheus и Grafana с известия в Telegram
Архитектура
GitLab CI → Preprod с анонимизирани данни → Продукция в Docker Compose → Бекъп + проверка на възстановяването → Prometheus / Grafana → Telegram
Резултат

Порталът се разгръща и обновява възпроизводимо: схемата се води с 235 миграции, промените се покриват от 95 файла с PHPUnit тестове (над 700 теста) и тестове на фронтенда. Бекъпът се счита за работещ само след проверено възстановяване.

Какво може да се преизползва
Скрипт за разгръщане на продукция на on-premise Bitrix24 от нулата SQL анонимизиране на дъмп на Bitrix24 GitLab CI конвейер с „врата“ през preprod и обновяване на ядрото със снимка на схемата