Мазмұнға өту
N1
CRM / Bitrix24 · DevOps · CI/CD · сақтық көшірмелер

Docker-дегі қорапты Bitrix24: CI/CD, иесіздендірілген дамптар, сақтық көшірмелер және мониторинг

Клиент: Сақтандыру компаниясы, NDA Санат: CRM / Bitrix24 Стек: Docker Compose, Rocky Linux 9, GitLab CI, bash, PHP 8.4, MySQL, nginx, Prometheus, Grafana, Telegram Мерзім: кезең-кезеңмен енгізілді
Мәселе

Порталды қолмен орналастырып, қолмен жаңартатын; құжаттамада көрсетілген күнделікті бэкап іс жүзінде бірде-бір серверде болмаған, ал әзірлеу дербес деректері бар прод көшірмелерінде жүретін.

Шектеулер

Қорапты Bitrix24 ядросын вендор жаңартады, әрі ол дерекқор схемасын өзі өзгертеді — оны git-тен қайта жинау мүмкін емес. Продты тоқтатуға болмайды, ал сақтандыру компаниясы клиенттерінің дербес деректері продтан шықпауы керек.

Не істедім
  • Rocky Linux 9-да продты бір командамен нөлден көтеру: пакеттер, Docker, код, конфигтер, дерекқор және тексеру — идемпотентті, құпияларды қайта генерацияламай
  • GitLab CI арқылы шығару тек жасыл препродтан және продтың ұшу алдындағы тексеруінен кейін; шығарудан кейін — смоук-тексеру және схеманы препродпен салыстыру
  • Иесіздендірілген дамп — жергілікті орта мен препрод үшін деректердің жалғыз форматы: құпиялар, телефондар мен дербес деректер берілгенге дейін бүркемеленеді
  • Дерекқордың, файлдардың және конфигтердің сақтық көшірмесі — уақытша дерекқорға қалпына келтірілетінін міндетті тексерумен
  • Ядроны бір командамен жаңарту: қалпына келтіру нүктесі, схеманың «дейін» және «кейін» снапшоты және өзгерістер манифесі
  • Журналы және параллель іске қосудан бұғаттауы бар схема миграциялары; Telegram-ға хабарламалар жіберетін Prometheus пен Grafana мониторингі
Архитектура
GitLab CI → Иесіздендірілген деректердегі препрод → Docker Compose-тағы прод → Бэкап + қалпына келтіруді тексеру → Prometheus / Grafana → Telegram
Нәтиже

Портал қайталанатын түрде орналастырылып, жаңартылады: схема 235 миграциямен жүргізіледі, өзгерістерді 95 PHPUnit-тест файлы (700-ден астам тест) және фронтенд тесттері қамтиды. Бэкап тек тексерілген қалпына келтіруден кейін ғана жұмыс істейтін болып саналады.

Нені қайта қолдануға болады
Қорапты Bitrix24 продын нөлден орналастыру скрипті Bitrix24 дампын SQL арқылы иесіздендіру Препрод қақпасы бар GitLab CI конвейері және схема снапшотымен ядроны жаңарту