БесплатноБесплатный прототип ключевой страницы и черновик ТЗ при старте проекта
Ускорение и производительность

Docker и Kubernetes для 1С-Битрикс: контейнеры и автомасштабирование

Упаковываем 1С-Битрикс в контейнеры Docker и разворачиваем в Kubernetes: образы php-fpm, nginx и mysql, docker-compose для разработки, поды, ingress, автомасштабирование HPA и persistent volumes под upload. Повторяемые окружения dev, staging и prod, предсказуемые релизы и запас по нагрузке без простоя.

10 летдержим Битрикс под нагрузкой
50+проектов в Docker и Kubernetes
до ×6запас по трафику с автоскейлом
−70%времени на релиз и откат
Ingress Kubernetes nginxpod php-fpmpod mysqlpod HPA · автоскейл volume нагрузка и реплики подов
Зачем контейнеризовать Битрикс

Где Битрикс упирается в окружение и релизы

Пока разработка, тест и прод живут на разных вручную настроенных серверах, каждый релиз становится лотереей, а пиковый трафик — стрессом. Контейнеризация и оркестрация делают окружение повторяемым, релизы предсказуемыми, а масштабирование автоматическим.

На разработке всё работает, а на проде ломается из-за разницы в версиях php и настройках.
Упаковываем Битрикс в образы Docker — окружение становится одинаковым на dev, staging и prod до версии каждой библиотеки.
Каждый релиз — ручной деплой по ssh, который страшно катить и тяжело откатить.
Релизы идут через образы и манифесты: новая версия выкатывается одной командой, а откат — возврат к предыдущему образу за секунды.
В пиковый трафик сервер захлёбывается, а в спокойные часы простаивает и стоит денег.
Kubernetes с HPA сам поднимает реплики подов php-fpm под нагрузкой и гасит лишние в затишье — платите за фактическое потребление.
Поднять копию окружения под тест или нового разработчика занимает дни.
docker-compose разворачивает полную копию площадки за минуты на любой машине — у каждого одинаковый стенд.
Загруженные файлы и upload теряются при пересоздании сервера или контейнера.
Выносим upload, кеш и базу в persistent volumes — данные переживают перезапуск и переезд подов.
Что входит

Из чего складывается контейнеризация Битрикс

Собираем инфраструктуру под вашу нагрузку — от образов php-fpm, nginx и mysql и docker-compose для разработки до полноценного кластера Kubernetes с ingress, автомасштабированием и persistent volumes под upload.

Образы php-fpm, nginx и mysql

Собираем оптимизированные Docker-образы под Битрикс с нужной версией php, расширениями и тонкой настройкой веб-сервера и базы.

docker-compose для разработки

Полная копия площадки разворачивается локально одной командой — у каждого разработчика одинаковый стенд за минуты.

Поды и оркестрация в Kubernetes

Раскладываем сервисы по подам и деплойментам, настраиваем readiness и liveness-пробы и перезапуск упавших контейнеров.

Ingress и маршрутизация

Настраиваем ingress-контроллер с TLS, маршрутизацией и отдачей статики, чтобы трафик корректно попадал в нужные сервисы.

Автомасштабирование HPA

Horizontal Pod Autoscaler поднимает реплики php-fpm под нагрузкой и гасит лишние в затишье без ручного вмешательства.

Persistent volumes под upload

Загруженные файлы, кеш и база вынесены в постоянные тома и переживают перезапуск, переезд и пересоздание подов.

Как это устроено

Путь запроса через контейнеризованный Битрикс

Запрос приходит на ingress, тот направляет его в под nginx, который отдаёт статику и передаёт динамику в php-fpm, а данные берутся из mysql и persistent volume. При росте нагрузки HPA добавляет реплики подов.

IngressTLS · трафик nginxпод · статика php-fpmпод · логика mysqlбаза volumeupload · кеш HPAреплики HPA добавляет реплики подов php-fpm под нагрузкой и гасит лишние в затишье
Ingress → под nginx → под php-fpm → mysql и persistent volume, под контролем HPA.
Сравнение

Один сервод, кластер или Kubernetes

Критерий Один сервер вручнуюКластер без оркестрацииDocker / Kubernetes B2Bsite
Релизы и деплой Релизы вручную по sshРелизы полуавтоматомРелиз одной командой
Повторяемость окружений Окружения расходятсяУзлы настраивают рукамиПовторяемые образы dev/staging/prod
Масштабирование Масштаб только апгрейдомДобавление узлов вручнуюАвтоскейл HPA под нагрузку
Откат изменений Откат долгий и рискованныйОткат по узламОткат к образу за секунды
Отказоустойчивость Простой при сбое узлаБалансировка между узламиСамовосстановление подов
Эффект после контейнеризации

Что меняется в цифрах

до ×6
запас по трафику с автоскейлом HPA
−70%
времени на релиз и откат
минуты
на разворот копии окружения
99,9%
целевая доступность площадки

Ориентиры по проектам нашей команды. Точные показатели по вашей инфраструктуре оценим на бесплатном аудите.

Этапы

Как мы контейнеризуем Битрикс

Идём от рабочего docker-compose к промышленному Kubernetes, проверяя каждый шаг на копии и подтверждая запас нагрузочным тестом перед переключением прода.

01

Аудит и план

Разбираем текущее окружение, версии, структуру проекта и upload, определяем состав сервисов и схему контейнеризации.

02

Сборка образов

Собираем оптимизированные образы php-fpm, nginx и mysql под Битрикс с нужными расширениями и настройками веб-сервера.

03

docker-compose для dev

Поднимаем локальное окружение в docker-compose, проверяем сборку, миграции и обмен с 1С на копии данных.

04

Развёртывание в Kubernetes

Описываем деплойменты, сервисы, ingress и persistent volumes, настраиваем пробы, автоскейл HPA и окружения staging и prod.

05

Нагрузочный тест

Моделируем пики трафика на staging, проверяем работу автоскейла и устраняем узкие места до переключения прода.

06

Переключение и передача

Переводим прод в согласованное окно с минимальным простоем, настраиваем мониторинг и передаём манифесты и инструкции.

Сроки

Сколько занимает контейнеризация

2–4 дня Аудит окружения, версий и upload, план контейнеризации
1
4–8 дней Сборка образов php-fpm, nginx, mysql и docker-compose для dev
2
1–3 недели Развёртывание в Kubernetes: поды, ingress, HPA, volumes
3
2–4 дня Нагрузочный тест staging и проверка автоскейла
4
постоянно Мониторинг, обновление образов и сопровождение кластера
5
Стоимость

Сколько стоит контейнеризация Битрикс

Стоимость зависит от сложности проекта, числа сервисов и целевого трафика. Ниже — ориентиры; точную смету присылаем после бесплатного аудита инфраструктуры.

Docker для разработки
от 60 000 ₽
Срок: от 1 недели

Образы и docker-compose для повторяемого локального окружения и тестов.

  • Образы php-fpm, nginx, mysql
  • docker-compose для dev
  • Повторяемое окружение команды
  • Инструкция по запуску
Популярный выбор
Kubernetes под нагрузку
от 180 000 ₽
Срок: от 3 недель

Полное развёртывание в Kubernetes с автоскейлом и нагрузочным тестом.

  • Всё из тарифа «Docker для разработки»
  • Поды, деплойменты и ingress
  • Автомасштабирование HPA
  • Persistent volumes под upload
  • Окружения staging и prod
  • Нагрузочное тестирование
Кластер и CI/CD
от 320 000 ₽
Срок: от 5 недель

Промышленный кластер с конвейером сборки, релизов и мониторингом.

  • Всё из тарифа «Kubernetes под нагрузку»
  • CI/CD сборка и деплой образов
  • Мониторинг и алерты
  • Резервное копирование томов
  • Сопровождение кластера
Docker для разработки от 60 000 ₽
Срок: от 1 недели

Образы и docker-compose для повторяемого локального окружения и тестов.

  • Образы php-fpm, nginx, mysql
  • docker-compose для dev
  • Повторяемое окружение команды
  • Инструкция по запуску
Популярный Kubernetes под нагрузку от 180 000 ₽
Срок: от 3 недель

Полное развёртывание в Kubernetes с автоскейлом и нагрузочным тестом.

  • Всё из тарифа «Docker для разработки»
  • Поды, деплойменты и ingress
  • Автомасштабирование HPA
  • Persistent volumes под upload
  • Окружения staging и prod
  • Нагрузочное тестирование
Кластер и CI/CD от 320 000 ₽
Срок: от 5 недель

Промышленный кластер с конвейером сборки, релизов и мониторингом.

  • Всё из тарифа «Kubernetes под нагрузку»
  • CI/CD сборка и деплой образов
  • Мониторинг и алерты
  • Резервное копирование томов
  • Сопровождение кластера

Дополнительные опции

Настройка CI/CD-конвейера сборки и релизов от 70 000 ₽
Нагрузочный тест с проверкой автоскейла от 35 000 ₽
Мониторинг кластера и алерты от 30 000 ₽
Расчёт выгоды

Сколько вы переплачиваете за простаивающее железо

Прикиньте, сколько денег уходит на серверные мощности, которые держат под пик, но большую часть времени простаивают. Автомасштабирование в Kubernetes поднимает реплики только под нагрузкой.

Экономия на инфраструктуре в месяц 0 ₽

Оценка по формуле: затраты × доля простоя в процентах × доля экономии от автоскейла. Это ориентир возможной экономии, а не гарантия.

Умный расчёт

Подберём схему контейнеризации под ваш проект

Ответьте на несколько вопросов о текущей инфраструктуре, частоте релизов и целевом трафике — предложим схему от docker-compose до Kubernetes и пришлём ориентир по стоимости и срокам.

Вопрос 1
Загрузка вопроса…

Примеры работ

Кейсы контейнеризации Битрикс

Интернет-магазин

Kubernetes с автоскейлом под распродажи

Упаковали магазин в образы php-fpm и nginx, развернули в Kubernetes с HPA — в чёрную пятницу реплики поднялись автоматически, площадка отработала без падений.

×6Запас по трафику
0Падений в пик
4 неделиСрок
B2B-портал

Повторяемые окружения dev/staging/prod

Собрали docker-compose для разработки и манифесты Kubernetes — разница между окружениями исчезла, релизы перестали ломать прод.

−70%Время релиза
−90%Поломок прода
3 неделиСрок
Медиа-портал

CI/CD и быстрый откат релизов

Настроили конвейер сборки образов и деплой в кластер — выкат новой версии и откат стали делом секунд, упавшие поды поднимаются сами.

секундыОткат релиза
99,9%Доступность
5 недельСрок
Отзывы клиентов

Что говорят после перехода в контейнеры

«Раньше каждый релиз был стрессом: на тесте всё работало, а на проде падало. После контейнеризации окружения стали одинаковыми, релизы катятся одной командой, а откат занимает секунды. Спокойствие команды бесценно.»

Дмитрий технический директор

«Перед сезоном перевели магазин в Kubernetes с автоскейлом. В распродажу реплики поднялись сами, площадка не легла, а в обычные дни мы перестали платить за простаивающие серверы. Получили мониторинг и понятные инструкции.»

Марина руководитель интернет-магазина

«Новый разработчик раньше поднимал стенд несколько дней. Теперь docker-compose разворачивает копию окружения за минуты, и у всех всё одинаково. Команда взлетела по скорости, а инфраструктура наконец стала прозрачной.»

Сергей тимлид разработки
Почему мы

На что можно рассчитывать по договору

Без переписывания сайта

Контейнеризуем существующий Битрикс как есть — меняем окружение и схему развёртывания, а не код проекта.

Оркестрация под задачу

Предлагаем Kubernetes только там, где он окупается: маленькому проекту хватит docker-compose, и мы скажем об этом прямо.

Проверка нагрузкой

Перед переключением прода тестируем автоскейл и запас на staging — эффект виден в цифрах, а не на словах.

Манифесты и доступы — ваши

Передаём образы, манифесты, мониторинг и инструкции: кластер остаётся под вашим контролем без привязки к нам.

База знаний

Частые вопросы о контейнерах — и наш ответ

Это не общие советы из интернета, а закономерности из реальных проектов на Битрикс под нагрузкой. Каждый ответ — позиция нашей команды.

Релизы

На тесте работает, на проде ломается после релиза

Наш ответ

Причина почти всегда в разнице окружений: версии php, расширения, настройки. Упаковываем Битрикс в Docker-образы, и dev, staging и prod становятся одинаковыми до версии каждой библиотеки. Релиз перестаёт быть лотереей, а откат — возврат к предыдущему образу за секунды.

Нагрузка

В пик сервер ложится, а в затишье простаивает и стоит денег

Наш ответ

Это классический случай для автомасштабирования. В Kubernetes настраиваем HPA: под нагрузкой поднимаются дополнительные реплики подов php-fpm, в спокойные часы лишние гасятся. Вы платите за фактическое потребление, а пик разбирается автоматически без ручного вмешательства.

Данные

Боюсь, что upload и файлы потеряются в контейнерах

Наш ответ

Контейнеры эфемерны, поэтому изменяемые данные в них не держат. Загруженные файлы, кеш и базу выносим в persistent volumes — постоянные тома, которые переживают перезапуск, переезд и пересоздание подов. Данные не теряются, а резервное копирование настраивается отдельно.

Нужно ли

Не уверены, нужен ли нам вообще Kubernetes

Наш ответ

Не всем. Небольшому сайту с редкими релизами Kubernetes избыточен — достаточно docker-compose для повторяемого окружения. Оркестрация окупается на проектах с частыми релизами и неравномерной нагрузкой. Мы начинаем с аудита и честно говорим, что именно вам нужно.

Подробно об услуге

Docker и Kubernetes для 1С-Битрикс: что это и зачем

Контейнеризация и оркестрация 1С-Битрикс — это перевод сайта с вручную настроенных серверов на повторяемые, изолированные окружения, которые одинаково работают на разработке, тесте и в продакшене и масштабируются под нагрузку автоматически. Docker упаковывает Битрикс и его окружение — веб-сервер, обработчик php, базу данных, кеш — в готовые образы, а Kubernetes разворачивает эти образы в кластере, следит за их состоянием, перезапускает упавшие контейнеры и добавляет реплики под нагрузкой. В результате площадка становится гибкой и быстрой: релизы предсказуемы, окружения одинаковы, а пиковый трафик перестаёт быть стрессом.

В отличие от тюнинга одного сервера, контейнеризация решает не только проблему скорости, но и проблему повторяемости и управляемости. Классическая боль Битрикс-проектов — когда на машине разработчика всё работает, а на проде ломается из-за разницы в версиях php, расширениях и настройках. Образ Docker фиксирует окружение целиком: одна и та же сборка катится на dev, staging и prod, поэтому различий между ними просто не остаётся. А вместе с оркестрацией это даёт автоматическое масштабирование, самовосстановление и быстрый откат — то, чего не получить ручным деплоем по ssh.

Из чего складывается контейнеризация Битрикс

Мы раскладываем площадку на отдельные сервисы и собираем под каждый свой контейнер. Образ php-fpm содержит нужную версию php с расширениями под Битрикс и тонкой настройкой пулов. Образ nginx отвечает за отдачу статики, маршрутизацию и сжатие. Образ mysql или вынесенная база хранит данные. Для разработки эти контейнеры связываются в docker-compose — полная копия площадки поднимается на любой машине одной командой за минуты. Для продакшена те же образы разворачиваются в Kubernetes: сервисы раскладываются по подам и деплойментам, ingress принимает и маршрутизирует трафик, HPA добавляет реплики под нагрузкой, а persistent volumes хранят upload и базу.

Основные блоки, из которых собирается инфраструктура:

  • оптимизированные образы php-fpm, nginx и mysql под версию и расширения вашего Битрикса;
  • docker-compose для повторяемого локального окружения и тестов всей команды;
  • поды, деплойменты и сервисы Kubernetes с readiness и liveness-пробами;
  • ingress-контроллер с TLS, маршрутизацией и отдачей статики;
  • горизонтальное автомасштабирование HPA по нагрузке на процессор и память;
  • persistent volumes под upload, кеш и базу, переживающие перезапуск подов;
  • раздельные окружения dev, staging и prod на одних и тех же образах.

Кому нужна контейнеризация Битрикс

Это направление окупается там, где проект активно развивается, часто релизится и сталкивается с неравномерной нагрузкой. Интернет-магазины с сезонными распродажами, которым нужен запас по трафику только в горячие дни. B2B-порталы и личные кабинеты, где над проектом работает команда и важно, чтобы у всех было одинаковое окружение. Медиа-площадки с резкими всплесками посещаемости. Проекты, где релизы стали стрессом из-за разницы между тестом и продом, а ручной деплой по ssh страшно катить. Если ваша команда тратит время на разбор различий окружений и боится выкатывать обновления, контейнеризация снимает именно эту боль.

Отдельная ценность — для проектов с пиковой и предсказуемо неравномерной нагрузкой. Когда основной трафик приходит в несколько дней или часов, держать под него мощный сервер постоянно дорого и расточительно. Автомасштабирование в Kubernetes поднимает реплики подов ровно тогда, когда они нужны, и гасит их в затишье. Вы платите за фактическое потребление, а не за пиковую мощность круглые сутки, и при этом площадка спокойно проходит распродажу или всплеск посещаемости.

Как устроена работа

Контейнеризацию мы начинаем с аудита: разбираем текущее окружение, версии php и расширений, структуру проекта, объём и расположение upload, частоту релизов и профиль нагрузки. На основе этого определяем состав сервисов и схему — иногда достаточно docker-compose для повторяемой разработки, иногда нужен полноценный кластер Kubernetes с автоскейлом. Дальше собираем образы, поднимаем локальное окружение, проверяем сборку, миграции и обмен с 1С на копии данных. Затем описываем манифесты Kubernetes, настраиваем поды, ingress, persistent volumes и автоскейл, разворачиваем staging и prod. Перед переключением прода проводим нагрузочный тест и проверяем, что автоскейл реально держит пик.

Такой пошаговый подход бережёт бюджет и снижает риск. Вы не платите за оркестрацию, которая не нужна, если хватает docker-compose, и переключаете прод только после того, как новое окружение проверено на копии трафика. По итогам передаём образы, манифесты, настроенный мониторинг и инструкции по эксплуатации, чтобы кластер оставался прозрачным и под вашим контролем — вести его сможет как наша команда, так и ваши администраторы без привязки к подрядчику.

Экспертный взгляд

Контейнеры для Битрикс: когда это нужно, а когда избыточно

Вокруг Docker и Kubernetes много шума: их подают как обязательный шаг для любого современного проекта. На практике всё тоньше. Контейнеры решают конкретные проблемы — повторяемость окружений, предсказуемость релизов, автоматическое масштабирование, — и там, где этих проблем нет, оркестрация добавляет сложность без отдачи. Наша задача не продать самое модное решение, а понять вашу нагрузку, частоту релизов и боли команды и предложить ровно ту схему, которая окупится. Ниже разбираем, чем контейнеризация Битрикс отличается от привычного сервера, какие проблемы она снимает и где проходит граница между docker-compose и полноценным Kubernetes.

Почему Битрикс на вручную настроенном сервере буксует на релизах

Типовая история: проект живёт на одном сервере, окружение настроено руками, а разработка идёт на машинах разработчиков, где у каждого свой набор версий и расширений php. Пока правок мало, это терпимо. Но как только команда растёт и релизы учащаются, начинается боль. На тесте всё работает, а на проде падает из-за разницы в одной версии библиотеки. Деплой идёт по ssh вручную, его страшно катить в рабочее время и тяжело откатить, если что-то пошло не так. Поднять копию окружения под нового разработчика или отдельный тест занимает дни ручной настройки. И каждый такой инцидент — это потерянное время команды и риск для продакшена.

Корень проблемы — в том, что окружение не зафиксировано. Оно описано в головах и разрозненных инструкциях, а не в коде. Docker меняет это в корне: образ фиксирует окружение целиком, от версии php до настроек веб-сервера, и одна и та же сборка работает одинаково везде. Эта проблема тесно связана с настройкой самого окружения, поэтому контейнеризацию мы часто совмещаем с тонкой настройкой окружения и BitrixVM — внутри контейнера те же параметры пулов, памяти и кеша работают так же, как на отдельном сервере, только теперь они зафиксированы в образе и повторяемы.

Что даёт docker-compose, а что — Kubernetes

Важно различать два уровня. Docker-compose — это про разработку и небольшие развёртывания: он связывает контейнеры в единое окружение, которое поднимается одной командой. Этого часто достаточно, чтобы убрать главную боль — расхождение окружений и сложность разворачивания стендов. Команда получает одинаковые условия, новый разработчик стартует за минуты, а тест идёт на точной копии прода. Для многих проектов это и есть нужный уровень, и навязывать им Kubernetes было бы лишней тратой.

Kubernetes — это следующий уровень, про промышленную эксплуатацию под нагрузкой. Он оркеструет контейнеры в кластере: раскладывает их по подам, следит за состоянием через пробы, перезапускает упавшие, распределяет трафик через ingress и автоматически масштабирует площадку через HPA. Поднять дополнительные реплики php-fpm в пик и погасить их в затишье он умеет сам. Это окупается, когда нагрузка неравномерна, релизы часты, а простой недопустим. Граница между уровнями — не в размере сайта, а в характере нагрузки и темпе изменений, и определять её нужно по фактам, а не по моде. Сам этот выбор мы разбираем в рамках общей серверной и инфраструктурной оптимизации, где контейнеризация — лишь один из слоёв наряду с тюнингом окружения и кластеризацией.

Как мы храним данные и не теряем upload

Главное опасение при переходе в контейнеры — что данные потеряются. Оно обосновано: контейнеры эфемерны, при перезапуске или пересоздании их файловая система сбрасывается к образу. Поэтому изменяемые данные в контейнерах не держат. Загруженные файлы Битрикса, папку upload, кеш и базу данных мы выносим в persistent volumes — постоянные тома, которые живут отдельно от подов и переживают их перезапуск, переезд между узлами и пересоздание. Под нужно пересоздать при релизе — данные на месте. Узел вышел из строя и под переехал на другой — upload и база доступны как прежде.

Поверх этого настраивается резервное копирование томов и базы, чтобы любой инцидент превращался из катастрофы в управляемую ситуацию с понятным временем восстановления. Для Битрикса это особенно важно: проект интенсивно работает с файлами и базой, и потеря upload или несогласованность данных недопустимы. Мы продумываем схему хранения с первого дня и проверяем восстановление на копии, а не надеемся, что бэкап сработает в нужный момент.

Зачем нужен нагрузочный тест перед переключением

Сам факт переезда в Kubernetes не гарантирует, что площадка выдержит пик — автоскейл нужно настроить и проверить. Поэтому перед переключением прода мы поднимаем staging на тех же образах и манифестах и моделируем реальные сценарии: массовый заход в каталог, всплеск оформлений заказа, наплыв на популярный материал. Постепенно наращиваем нагрузку и смотрим, как HPA добавляет реплики, успевает ли он за ростом трафика, не упирается ли база, корректно ли работает ingress. Это превращает переход в управляемое событие, а не эксперимент на живых клиентах в день распродажи.

По итогам теста мы видим, какой именно слой сдаётся первым и где нужно поднять лимиты или пороги автоскейла, устраняем эти ограничения и повторяем замер, подтверждая запас. В результате вы получаете конкретную цифру: сколько одновременных пользователей держит площадка и с каким запасом она войдёт в пик. Только после этого переключаем прод — в согласованное окно и с возможностью мгновенного отката к прежнему окружению, если что-то пойдёт не по плану.

Как мы ведём переход без простоя

Контейнеризацию мы делаем параллельно с работающим сайтом, не трогая прод до самого конца. Сначала собираем образы и поднимаем окружение в docker-compose, проверяем сборку, миграции и обмен с 1С на копии данных. Затем разворачиваем кластер и staging, прогоняем нагрузочный тест. Прод переключаем в согласованное окно с минимальным простоем, заранее подготовив план отката. Если что-то пойдёт не так, возврат к прежней схеме занимает минуты, потому что старое окружение остаётся нетронутым до подтверждения, что новое работает стабильно. Такой подход исключает ситуацию, когда переезд ломает живые продажи.

Отдельное внимание — обмену с 1С и фоновым задачам Битрикса. Контейнеризация не должна нарушить интеграции и агенты, поэтому мы заранее раскладываем, как в новой схеме работают обмен, очереди и cron-задачи, и проверяем их на staging. Для проектов с активной разработкой связываем всё это с конвейером CI/CD: сборка образа, прогон проверок и деплой в кластер идут автоматически, а откат — это возврат к предыдущему образу одной командой.

Возражения, которые мы слышим чаще всего

«Контейнеры и Kubernetes — это сложно и не для нас». Сложность оркестрации реальна, но она ложится на нас, а не на вас. Мы настраиваем кластер, передаём манифесты и инструкции, а при желании берём эксплуатацию на себя. Кроме того, далеко не всем нужен именно Kubernetes — часто достаточно docker-compose, который проще и решает главную боль с окружениями. Мы предлагаем оркестрацию только там, где она реально окупается.

«Битрикс — монолит, его не контейнеризуешь нормально». Битрикс действительно не микросервис, но это не мешает упаковать его в контейнеры. Мы не дробим монолит, а раскладываем окружение на сервисы: веб-сервер, php, база, кеш. Сам проект остаётся как есть, меняется схема его развёртывания и масштабирования. Десятки Битрикс-проектов прекрасно живут в контейнерах именно по этой схеме.

«Это дорого и долго». Поэтому мы и начинаем с малого: docker-compose для разработки стоит ощутимо дешевле полноценного кластера и уже снимает главную боль с окружениями. Полный Kubernetes с автоскейлом подключаем тогда, когда нагрузка и темп релизов это оправдывают. А умный расчёт на этой странице помогает заранее прикинуть, сколько вы переплачиваете за простаивающее железо и что вернёт автомасштабирование.

Сценарии, под которые мы собираем инфраструктуру

Нагрузка и темп разработки бывают очень разными, и схема контейнеризации подстраивается под проект, а не наоборот. Для интернет-магазина с сезонными распродажами ядром становится Kubernetes с автоскейлом HPA и нагрузочным тестом перед каждым крупным пиком — реплики подов поднимаются в горячие дни и гасятся в затишье. Для B2B-портала, над которым работает команда, на первый план выходят повторяемые окружения dev, staging и prod на одних образах, чтобы релизы перестали ломать прод и каждый разработчик имел одинаковый стенд. Для медиа-портала с всплесками посещаемости важны быстрый автоскейл и отдача статики через ingress, чтобы массовый заход на популярный материал не клал площадку.

Отдельный сценарий — проект в очень активной разработке с десятками релизов в неделю. Здесь ядром становится конвейер CI/CD поверх контейнеров: сборка образа, автоматические проверки и деплой в кластер идут без ручных шагов, а откат — возврат к предыдущему образу за секунды. Все эти схемы мы собираем из одних и тех же кирпичей — образы, docker-compose, поды, ingress, HPA, persistent volumes, — но комбинируем их под вашу нагрузку и бюджет, а не выдаём самое дорогое решение по умолчанию.

Чем контейнеризация выгоднее альтернатив

У растущего Битрикс-проекта обычно три пути справиться с нагрузкой и релизами: терпеть ручной деплой и докупать всё более мощное железо под пик, собрать кластер без оркестрации с полуавтоматическими релизами или перейти на контейнеры с автомасштабированием. Первый путь дорог незаметно: команда тратит время на разбор окружений и боится релизов, а мощный сервер простаивает большую часть суток. Второй путь лучше, но узлы по-прежнему настраиваются руками, добавление мощностей не автоматизировано, а откат идёт по узлам. Оба варианта оставляют человеческий труд там, где его могла бы делать система.

Контейнеризация с оркестрацией снимает эти ограничения. Окружение зафиксировано в образах и повторяемо, релизы и откаты автоматизированы, масштабирование происходит само по нагрузке, упавшие поды поднимаются без участия человека. Вы платите за фактическое потребление ресурсов, а не за пиковую мощность круглые сутки, и освобождаете команду от рутины деплоя и разбора окружений. В долгую такой подход оказывается и дешевле по железу, и надёжнее по эксплуатации, и быстрее по скорости поставки новых функций.

Что входит в эксплуатацию кластера

Контейнеризация — не разовая акция: кластер живёт, образы обновляются, нагрузка меняется. Поэтому мы закладываем эксплуатацию с первого дня. Настроенный мониторинг ресурсов, состояния подов и доступности с алертами показывает, когда площадка подходит к потолку или под ведёт себя нештатно, и даёт время среагировать заранее. Резервное копирование томов и базы с проверенным планом восстановления превращает любой инцидент в управляемую ситуацию. Обновление образов php и системных компонентов мы проводим планово, прогоняя изменения через staging перед продом.

Мы передаём вам образы, манифесты, документацию по кластеру и инструкции по эксплуатации, чтобы ваши администраторы понимали, как устроена площадка и что делать в нештатной ситуации. Если своей команды эксплуатации нет, берём сопровождение на себя: следим за метриками, реагируем на алерты, обновляем образы и готовим кластер к сезонным пикам. В любом случае инфраструктура остаётся прозрачной и под вашим контролем — вы в любой момент видите её состояние и сами решаете, кто её ведёт.

С чего начать

Начните с аудита инфраструктуры. Расскажите о вашем проекте, текущем окружении, частоте релизов и целевом трафике — мы разберём, где теряется время команды и какой потолок у площадки, и покажем, что даст контейнеризация в цифрах. По итогам вы получите честную картину: нужен ли вам Kubernetes или достаточно docker-compose, какой запас по нагрузке вы получите и сколько сэкономите на железе. Аудит бесплатный, а смету на работы пришлём в течение рабочего дня. Обсудим вашу инфраструктуру — и сделаем её гибкой, быстрой и предсказуемой.

Вопросы и ответы

Частые вопросы о Docker и Kubernetes для Битрикс

Что такое контейнеризация простыми словами? +

Это упаковка приложения вместе с его окружением — версией php, расширениями, веб-сервером, настройками — в готовый образ, который одинаково работает на любой машине. В отличие от ручной настройки сервера, образ фиксирует окружение целиком, поэтому на разработке, тесте и в продакшене оно совпадает до мелочей.

Что такое Docker? +

Docker — это технология контейнеров. Она позволяет собрать образ с приложением и окружением и запускать его как изолированный контейнер на любом сервере. Для Битрикса в образы упаковываются php-fpm, nginx и база, а docker-compose связывает их в единое окружение, которое поднимается одной командой.

Что такое Kubernetes и зачем он нужен? +

Kubernetes — это система оркестрации контейнеров. Она разворачивает образы в кластере, раскладывает их по подам, следит за состоянием, перезапускает упавшие контейнеры, распределяет трафик и автоматически масштабирует площадку под нагрузку. Нужен он для промышленной эксплуатации проектов с неравномерной нагрузкой и частыми релизами.

Что такое под в Kubernetes? +

Под — это минимальная единица развёртывания в Kubernetes, обёртка вокруг одного или нескольких контейнеров с общими ресурсами. Например, под php-fpm обрабатывает логику Битрикса. Kubernetes может держать несколько реплик одного пода и поднимать новые под нагрузкой, чтобы распределить трафик и обеспечить отказоустойчивость.

Что такое ingress? +

Ingress — это точка входа трафика в кластер Kubernetes. Ingress-контроллер принимает запросы извне, завершает TLS, маршрутизирует их к нужным сервисам и часто отдаёт статику. По сути это умный обратный прокси на входе в кластер, который направляет каждый запрос туда, где он должен обрабатываться.

Что такое HPA и persistent volume? +

HPA, или Horizontal Pod Autoscaler, — это механизм автомасштабирования: он сам добавляет реплики подов под нагрузкой и убирает лишние в затишье. Persistent volume — постоянный том для хранения данных, который живёт отдельно от подов и переживает их перезапуск. В нём держат upload, кеш и базу, чтобы данные не терялись.

Зачем Битриксу Docker, если он и так работает? +

Docker решает не проблему работы, а проблему повторяемости и релизов. Когда разработка, тест и прод настроены вручную и отличаются, релизы ломают сайт из-за разницы в версиях и настройках. Образ фиксирует окружение целиком, делает его одинаковым везде и превращает релиз из лотереи в предсказуемую операцию.

Можно ли контейнеризовать монолитный Битрикс? +

Да. Битрикс не микросервис, но это не мешает упаковать его в контейнеры. Мы не дробим сам проект, а раскладываем на сервисы окружение: веб-сервер, php-fpm, базу, кеш. Проект остаётся как есть, меняется только схема развёртывания и масштабирования. Десятки Битрикс-проектов так и работают.

Что даёт автомасштабирование на практике? +

В пиковый трафик Kubernetes сам поднимает дополнительные реплики подов php-fpm, чтобы разобрать нагрузку, а в спокойные часы гасит лишние. Вы не держите мощный сервер под пик круглые сутки и платите за фактическое потребление. Площадка спокойно проходит распродажу или всплеск посещаемости без ручного вмешательства.

Ускорит ли контейнеризация сам сайт? +

Контейнеры в первую очередь дают повторяемость, предсказуемые релизы и масштабирование, а не магическое ускорение кода. Но косвенно скорость растёт: образы собираются с оптимальными настройками веб-сервера и php, автоскейл снимает тормоза в пик, а отдача статики через ingress разгружает площадку. Для прямого ускорения кода нужна отдельная оптимизация.

Чем контейнеры отличаются от обычных виртуальных машин? +

Виртуальная машина эмулирует целый компьютер с операционной системой и потребляет много ресурсов. Контейнер делит ядро хоста и содержит только приложение с окружением, поэтому он легче, быстрее стартует и плотнее упаковывается. Для масштабирования это удобнее: реплику пода можно поднять за секунды, а не минуты.

Как контейнеры решают проблему «у меня работает, на проде нет»? +

Эта проблема возникает из-за разницы окружений. Образ Docker фиксирует версию php, расширения и настройки целиком, и одна и та же сборка катится на dev, staging и prod. Различий между окружениями не остаётся, поэтому если код работает на тесте, он работает и на проде. Это убирает самый частый источник поломок при релизе.

Как устроены окружения dev, staging и prod? +

Все три окружения работают на одних и тех же образах, отличаясь только конфигурацией и данными. Dev — для разработки в docker-compose, staging — копия прода для проверки релизов и нагрузочных тестов, prod — боевая площадка. Изменения проходят путь dev → staging → prod, поэтому до боевого сервера доходит уже проверенная сборка.

Как быстро можно откатить релиз? +

Откат — это возврат к предыдущему образу, который занимает секунды. Поскольку старый образ остаётся доступным, вернуться к работающей версии можно одной командой без долгого ручного восстановления. Это снимает главный страх перед релизами: даже если новая версия повела себя нештатно, откат мгновенный и предсказуемый.

Можно ли настроить CI/CD для Битрикса в контейнерах? +

Да, и это один из главных плюсов. Настраиваем конвейер: сборка образа, автоматические проверки и деплой в кластер идут без ручных шагов. Разработчик отправляет изменения, а конвейер сам собирает, тестирует и выкатывает новую версию. Для проектов с частыми релизами это резко ускоряет поставку и снижает число ошибок.

Сколько времени занимает поднять копию окружения? +

С docker-compose — минуты. Новый разработчик или отдельный тестовый стенд получают полную копию площадки одной командой, без дней ручной настройки. Окружение у всех одинаковое, поэтому проблемы вида «у меня по-другому настроено» исчезают, а команда стартует и тестирует заметно быстрее.

Не потеряются ли upload и файлы в контейнерах? +

Нет. Контейнеры эфемерны, поэтому изменяемые данные в них не держат — их выносят в persistent volumes. Папка upload, кеш и база живут в постоянных томах, которые переживают перезапуск, переезд и пересоздание подов. Поверх настраивается резервное копирование, так что данные не теряются ни при релизе, ни при сбое узла.

Как контейнеризация помогает в пиковый трафик? +

Под нагрузкой HPA автоматически поднимает дополнительные реплики подов php-fpm, и трафик распределяется между ними. Когда пик спадает, лишние реплики гасятся. Это даёт запас по трафику без постоянной переплаты за мощный сервер и без ручного вмешательства в самый ответственный момент распродажи.

Что будет, если один из подов упадёт? +

Kubernetes отслеживает состояние подов через пробы и автоматически перезапускает упавший под или поднимает новый взамен. Трафик при этом перераспределяется на работающие реплики, и пользователи в большинстве случаев сбоя не замечают. Это самовосстановление — одно из ключевых преимуществ оркестрации перед одним сервером.

Как настраивается резервное копирование в кластере? +

Резервируются persistent volumes с upload и база данных по расписанию, а план восстановления проверяется на копии, а не только на бумаге. Для Битрикса это критично: проект интенсивно работает с файлами и базой, и потеря данных недопустима. Схему хранения и бэкапа мы продумываем с первого дня.

Сколько стоит контейнеризация Битрикс? +

Docker и docker-compose для разработки обычно начинаются от 60 000 рублей, полноценный Kubernetes под нагрузку с автоскейлом и нагрузочным тестом — от 180 000, кластер с CI/CD и мониторингом — от 320 000. Цена зависит от сложности проекта, числа сервисов и целевого трафика. Точную смету присылаем после бесплатного аудита.

За какой срок реально контейнеризовать проект? +

Аудит и план занимают два-четыре дня, сборка образов и docker-compose — четыре-восемь дней, развёртывание в Kubernetes — от одной до трёх недель, нагрузочный тест — два-четыре дня. Точные сроки зависят от сложности проекта и фиксируются в смете до старта работ.

Можно ли перевести сайт в контейнеры без простоя? +

Да. Мы готовим контейнерное окружение параллельно с работающим сайтом, проверяем его на копии данных и трафика, прогоняем нагрузочный тест на staging и переключаем прод в согласованное окно с минимальным простоем. Старое окружение остаётся нетронутым до подтверждения, что новое работает стабильно, поэтому откат занимает минуты.

Нужен ли всем именно Kubernetes? +

Нет. Небольшому сайту с редкими релизами Kubernetes избыточен — достаточно docker-compose для повторяемого окружения. Оркестрация окупается на проектах с частыми релизами и неравномерной нагрузкой. Мы начинаем с аудита и честно говорим, что именно вам нужно, а не предлагаем самое сложное решение по умолчанию.

Что мы получаем по итогу работ? +

Контейнеризованную инфраструктуру с повторяемыми окружениями, предсказуемыми релизами и запасом по нагрузке, а также образы, манифесты, настроенный мониторинг и инструкции по эксплуатации. Кластер остаётся под вашим контролем без привязки к подрядчику: вести его сможет как наша команда, так и ваши администраторы или любой другой исполнитель.

Начать проект

Обсудим контейнеризацию вашего Битрикса?

Расскажите о вашем проекте, частоте релизов и целевом трафике — разберём инфраструктуру, предложим схему от docker-compose до Kubernetes и пришлём смету в течение рабочего дня.

  • Ответим в течение рабочего дня
  • Бесплатный аудит процессов и расчёт
  • NDA и фиксированная смета