Поддержка Docker и Kubernetes для проектов на 1С-Битрикс
Контейнеризируем Битрикс и сопровождаем его в Docker и Kubernetes: образы php-fpm, nginx и mysql, docker-compose, helm-чарты, ingress, persistent volumes для upload, healthcheck, секреты, горизонтальное масштабирование и zero-downtime деплой. Окружения dev, staging и prod становятся одинаковыми и предсказуемыми.
Что входит в поддержку Docker и Kubernetes для Битрикс
Берём на себя контейнеризацию Битрикс и эксплуатацию контейнеров: от сборки образов php-fpm, nginx и mysql до оркестрации в Kubernetes с автомасштабированием и деплоем без простоя.
Путь запроса в кластере Kubernetes с Битрикс
Запрос приходит на ingress, балансируется между подами nginx и php-fpm, статика и upload отдаются из общего тома, а база живёт в отдельном statefulset с постоянным хранилищем.
Контейнеризация Битрикс в Docker и Kubernetes: что это и зачем
Поддержка Docker и Kubernetes для 1С-Битрикс — это перевод сайта или портала в контейнеры и его дальнейшая эксплуатация в оркестраторе. Вместо одного сервера, на котором вручную настроены PHP, веб-сервер и база, проект разбивается на отдельные образы php-fpm, nginx и mysql, которые запускаются одинаково на ноутбуке разработчика, на тестовом стенде и на боевом кластере. Это убирает классическую проблему «у меня работает, а на проде падает»: окружения становятся воспроизводимыми, а инфраструктура — описанной кодом, который можно версионировать, ревьюить и откатывать.
Для Битрикс контейнеризация имеет свою специфику, которую нельзя игнорировать. Система активно работает с каталогом upload, кэшем и сессиями, ведёт обмен с 1С и хранит много состояния. Если просто запаковать всё в образ, при первом же пересоздании пода загруженные файлы исчезнут, а пользователей разлогинит. Поэтому грамотная контейнеризация Битрикс — это не упаковка в Docker как есть, а аккуратное разделение того, что должно быть неизменным образом, и того, что обязано жить в постоянном хранилище.
Из чего складывается поддержка контейнеров Битрикс
Работа объединяет несколько слоёв, каждый из которых снимает свой класс проблем. Сборка образов фиксирует версию PHP, набор расширений и редакцию Битрикс, чтобы окружение не дрейфовало. Файл docker-compose даёт разработчику поднять весь стек одной командой и работать ровно в тех же условиях, что и прод. Манифесты Kubernetes описывают поды, сервисы, ingress, тома и секреты декларативно — кластер сам приводит реальное состояние к желаемому. А helm-чарт собирает всё это в один шаблон, из которого разворачиваются dev, staging и prod без копирования манифестов.
Главные узлы, из которых складывается сопровождение:
- образы php-fpm, nginx и mysql под вашу версию PHP и редакцию Битрикс;
- docker-compose для одинакового окружения разработки на любой машине;
- манифесты и helm-чарты для окружений dev, staging и prod из единого шаблона;
- ingress с маршрутизацией и TLS, сервисы и балансировка между подами;
- persistent volumes для каталога upload, кэша и сессий, общих для всех реплик;
- healthcheck, плавная выкатка и откат для деплоя без простоя;
- секреты Kubernetes для паролей базы, ключей интеграций и токенов;
- горизонтальное масштабирование php-fpm и nginx по метрикам нагрузки.
Кому нужна контейнеризация Битрикс
Перевод в контейнеры окупается там, где проект перерос один сервель и ручное администрирование. Это интернет-магазины с пиковыми распродажами, когда нагрузка скачет в разы и нужно быстро добавить мощности. Это B2B-порталы и SaaS-платформы, где важны одинаковые окружения и частые релизы без простоя. Это медиа и высоконагруженные проекты, которым нужны горизонтальное масштабирование и отказоустойчивость. Чем больше у проекта трафика, релизов и требований к доступности, тем заметнее эффект от оркестрации.
Отдельная ценность — для команд, которые часто выкатывают изменения. Когда релизы идут несколько раз в неделю, остановка сайта на каждый деплой превращается в постоянный риск и потерю выручки. Zero-downtime деплой с healthcheck снимает эту боль: новые поды поднимаются, проходят проверку готовности, и только после этого трафик переключается на них, а старые корректно выводятся. Если что-то пошло не так, кластер откатывается автоматически.
Как устроена работа и сопровождение
Мы начинаем с аудита текущей инфраструктуры: смотрим версии PHP и базы, нагрузку, точки отказа и особенности проекта. На основе этого собираем образы и docker-compose, затем описываем манифесты и helm-чарт, разворачиваем staging и переносим на него данные и upload. Перед выводом в прод прогоняем нагрузку и обкатываем сценарии деплоя и отката, чтобы запуск прошёл предсказуемо. После запуска берём кластер на сопровождение: мониторим состояние подов и метрики, обновляем образы, масштабируем под нагрузку и реагируем на инциденты по согласованному SLA.
Фундамент всего — постоянное хранилище и разделение состояния. Каталог upload, кэш и сессии выносятся в persistent volumes, общие для всех подов php-fpm, поэтому файлы не теряются при пересоздании контейнеров, а пользователей не разлогинивает при балансировке. Пароли и ключи живут в секретах Kubernetes, а не в коде. Результат поддержки Docker и Kubernetes для Битрикс — это предсказуемая, воспроизводимая и масштабируемая инфраструктура, которая обновляется без простоя, держит пиковую нагрузку и остаётся под вашим полным контролем.
Как держать Битрикс в контейнерах: варианты
Разница между подходами проявляется не в первый день, а когда нужно масштабироваться, обновляться без простоя и повторять окружение один в один.
| Критерий | Своими силами | Системный администратор | Студия B2Bsite |
|---|---|---|---|
| Компетенции по Битрикс | Знаний по Битрикс в контейнерах часто не хватает | Сильны в серверах, но не в специфике Битрикс | Контейнеризируем Битрикс с учётом его особенностей |
| Воспроизводимость окружений | Образы собирают как придётся, дрейф окружений | docker-compose есть, Kubernetes под вопросом | Образы и helm-чарты воспроизводимы для dev, staging, prod |
| Деплой без простоя | Деплой с остановкой и ручными шагами | Деплой полуручной, без плавной выкатки | Zero-downtime деплой с healthcheck и откатом |
| Сохранность upload и данных | upload теряется при пересоздании пода | Тома настраивают, но без проверки на проде | Persistent volumes для upload и кэша проверены под нагрузкой |
| Реакция и подстраховка | Реакция на инцидент в рабочие часы | Один человек — узкое место и риск отпуска | Мониторинг 24/7 и SLA на реакцию |
Как мы переводим Битрикс в контейнеры и берём на сопровождение
Сколько занимает контейнеризация и выход на сопровождение
Сколько стоит поддержка Docker и Kubernetes для Битрикс
Стоимость зависит от числа окружений, объёма данных и требований к нагрузке и отказоустойчивости. Ниже — ориентиры; точную смету присылаем после аудита инфраструктуры, бесплатно.
Перевод Битрикс в Docker с воспроизводимым окружением разработки.
- Образы php-fpm, nginx, mysql
- docker-compose для dev
- Перенос данных и upload
- Инструкция по запуску
Оркестрация в Kubernetes с окружениями dev, staging и prod.
- Helm-чарт и манифесты
- Ingress, тома и секреты
- Окружения dev, staging, prod
- Zero-downtime деплой
- Healthcheck и автоскейл
Эксплуатация кластера, мониторинг и развитие инфраструктуры.
- Мониторинг 24/7 и алерты
- Обновление образов и чартов
- Масштабирование под нагрузку
- Реакция по SLA
- Резервные копии и восстановление
Контейнеризация от 90 000 ₽
Перевод Битрикс в Docker с воспроизводимым окружением разработки.
- Образы php-fpm, nginx, mysql
- docker-compose для dev
- Перенос данных и upload
- Инструкция по запуску
Популярный Kubernetes под ключ от 220 000 ₽
Оркестрация в Kubernetes с окружениями dev, staging и prod.
- Helm-чарт и манифесты
- Ingress, тома и секреты
- Окружения dev, staging, prod
- Zero-downtime деплой
- Healthcheck и автоскейл
Сопровождение DevOps от 60 000 ₽
Эксплуатация кластера, мониторинг и развитие инфраструктуры.
- Мониторинг 24/7 и алерты
- Обновление образов и чартов
- Масштабирование под нагрузку
- Реакция по SLA
- Резервные копии и восстановление
Дополнительные опции
| Настройка CI/CD для деплоя в кластер | от 70 000 ₽ |
| Перенос базы в управляемый кластер mysql | от 50 000 ₽ |
| Нагрузочное тестирование и тюнинг автоскейла | от 60 000 ₽ |
Сколько простоя и потерь снимает контейнеризация
Прикиньте, во сколько обходятся простои и долгие деплои сейчас и сколько съедает ручное сопровождение. Zero-downtime деплой и автомасштабирование убирают значительную часть этих потерь.
Оценка по формуле: часы простоя × выручка в час плюс часы ручного DevOps × стоимость часа. Это ориентир потерь, которые снимает контейнеризация и автоматизация, а не гарантия.
Рассчитайте контейнеризацию под ваш проект
Ответьте на несколько вопросов о текущей инфраструктуре и нагрузке — соберём ориентир по стоимости и срокам перехода на Docker и Kubernetes.
Кейсы по контейнеризации Битрикс
Что говорят клиенты о переходе на контейнеры
Частые проблемы контейнеризации Битрикс — и наш ответ
Это не общие советы из интернета, а закономерности из реальных проектов на Kubernetes. Каждый ответ — позиция нашей команды.
На что можно рассчитывать по договору
Docker или Kubernetes для Битрикс: что выбрать и где грабли
Контейнеры стали стандартом, и желание «завернуть Битрикс в Docker» возникает почти у каждой команды, которая упёрлась в потолок одного сервера. На бумаге всё просто: взять образ с PHP, положить туда код, поднять рядом базу — и готово. На практике именно Битрикс контейнеризируется сложнее многих систем, потому что он хранит много состояния и плотно работает с файловой системой. Ниже разбираем, чем Docker отличается от Kubernetes в контексте Битрикс, когда нужен каждый из них и на какие грабли наступают чаще всего.
Чем Docker отличается от Kubernetes простыми словами
Docker — это технология упаковки приложения в контейнер: вы описываете, какие версии PHP, расширений и зависимостей нужны, и получаете образ, который одинаково запускается где угодно. docker-compose добавляет к этому возможность поднять несколько контейнеров вместе — php-fpm, nginx, базу — одной командой. Этого достаточно для разработки и для небольших проектов на одном сервере. Kubernetes — это оркестратор: он управляет множеством контейнеров на множестве серверов, сам перезапускает упавшие поды, балансирует нагрузку, масштабирует реплики и выкатывает обновления без простоя. Грубо говоря, Docker отвечает на вопрос «как запустить контейнер», а Kubernetes — «как держать сотни контейнеров живыми и под нагрузкой».
Для Битрикс это значит следующее. Если у вас один сайт на одном сервере и редкие релизы, часто достаточно Docker и docker-compose: вы получаете воспроизводимое окружение и избавляетесь от ручной настройки. Если же проект растёт, появляются пиковые нагрузки, несколько окружений и частые деплои, в дело вступает Kubernetes с автомасштабированием, helm-чартами и плавной выкаткой. Мы не навязываем кластер там, где он избыточен, а на бесплатном аудите прямо говорим, какой уровень оркестрации действительно нужен вашему проекту.
Почему Битрикс не контейнеризируется в лоб
Главная ловушка — состояние. Битрикс активно пишет в каталог upload загруженные пользователями и администраторами файлы, ведёт кэш и хранит сессии. Если всё это остаётся внутри контейнера, то при любом пересоздании пода — а в Kubernetes поды пересоздаются постоянно — данные исчезают. Поэтому upload, кэш и сессии обязательно выносятся в постоянное хранилище, общее для всех реплик. Иначе горизонтальное масштабирование ломает сайт: один пользователь загрузил файл на один под, а следующий запрос ушёл на другой под, где этого файла нет.
Вторая ловушка — база данных. mysql в контейнере удобно для разработки, но на проде база требует особого внимания: постоянного хранилища, аккуратных обновлений и резервного копирования. Мы либо выносим базу в statefulset с надёжным томом, либо рекомендуем управляемый кластер базы данных у провайдера, если это надёжнее для вашей нагрузки. Третья ловушка — обмен с 1С и фоновые задачи: агенты и крон Битрикс нельзя запускать на каждом поде, иначе задачи задвоятся. Их выносят в отдельный под, чтобы обмен и обработки шли в одном экземпляре.
Зачем нужны окружения dev, staging и prod из одного чарта
Самая частая причина неожиданных багов на проде — разница окружений. На машине разработчика одна версия PHP, на тесте другая, на бою третья, конфиги правились руками в разное время. helm-чарт решает это радикально: все три окружения собираются из одного шаблона, отличаются только значениями — доменом, ресурсами, числом реплик. Образы те же самые, прошедшие тот же путь сборки. Поэтому если изменение отработало на staging, на проде оно поведёт себя так же. Дрейф конфигураций, на который уходят часы отладки, просто исчезает как класс.
Для команды это меняет ритм работы. Разработчик поднимает окружение одной командой и не тратит день на настройку. Тестировщик получает стенд, идентичный продакшену. Релиз-инженер выкатывает изменения через тот же чарт, что и на тесте. Когда инфраструктура описана кодом, к ней применимы те же практики, что и к самому коду: ревью, история изменений, откат к предыдущей версии. Если вам важна и автоматизация выкаток, мы настраиваем конвейер вместе с коллегами по направлению DevOps и серверной поддержки, чтобы деплой в кластер запускался по кнопке или по событию в репозитории.
Как мы делаем деплой без простоя
Zero-downtime деплой — это не магия, а связка нескольких правильно настроенных механизмов. Сначала задаётся проба готовности: Kubernetes не отправляет трафик на под, пока тот не ответит, что готов обслуживать запросы. При выкатке кластер поднимает новые поды рядом со старыми, ждёт, пока они пройдут healthcheck, и только потом плавно переключает трафик, выводя старые реплики. Если новый под не проходит проверку, развёртывание останавливается и откатывается, а пользователи продолжают работать на прежней версии. Для Битрикс важно правильно настроить проверку готовности так, чтобы она учитывала прогрев кэша и доступность базы, иначе плавная выкатка превратится в фикцию.
Отдельно настраиваем корректное завершение работы пода: перед остановкой он перестаёт принимать новые запросы, но дорабатывает текущие. Так пользователь не получает обрыв в середине оформления заказа. В сумме это даёт ноль секунд простоя при деплое — обновления можно катить хоть несколько раз в день, не дожидаясь ночного окна и не теряя выручку.
Persistent volumes, секреты и безопасность
Постоянное хранилище — сердце контейнеризированного Битрикс. Каталог upload подключается как persistent volume с режимом доступа для нескольких подов одновременно, чтобы любая реплика php-fpm видела одни и те же файлы. Кэш и сессии выносятся в общий быстрый слой, чтобы балансировка между подами не разлогинивала пользователей и не сбрасывала корзины. База данных получает отдельный надёжный том и регулярные резервные копии. Все чувствительные данные — пароли базы, ключи интеграций, токены платёжных и логистических сервисов — хранятся в секретах Kubernetes и подключаются к подам в момент запуска, а в репозитории остаются только шаблоны без паролей.
Безопасность мы закладываем с первого дня: доступ к кластеру разграничен по ролям, трафик идёт по HTTPS через ingress с TLS, образы собираются из проверенных базовых слоёв и регулярно обновляются для закрытия уязвимостей. Это особенно важно для проектов, где контейнеры соседствуют с обменом данными и платежами — тему безопасной эксплуатации мы детальнее разбираем в рамках поддержки и развития проектов на Битрикс.
Когда кластер окупается, а когда достаточно Docker
Мы не уговариваем всех подряд строить Kubernetes. Полноценная оркестрация оправдана, когда у вас ощутимый трафик с пиками, несколько окружений, частые релизы и требования к отказоустойчивости, при которых даже короткий простой стоит денег. В этом случае автомасштабирование, плавная выкатка и самовосстановление кластера окупаются быстро. Если же это один сайт со стабильной нагрузкой и редкими обновлениями, иногда честнее и дешевле остановиться на Docker с docker-compose и хорошо настроенном одном сервере. На аудите мы оцениваем нагрузку, частоту релизов и цену простоя и предлагаем уровень, который реально нужен, а не максимальный по прайсу.
Как мы ведём проект по шагам
Чтобы переход был предсказуемым, мы разбиваем его на понятные этапы. Первый — аудит инфраструктуры: разбираем текущий сервер, версии, нагрузку, точки отказа и особенности проекта, фиксируем целевую схему. Второй — сборка образов php-fpm, nginx и mysql под ваш стек и подготовка docker-compose, чтобы разработчики сразу получили воспроизводимое окружение. Третий — описание манифестов и helm-чарта: поды, сервисы, ingress, тома, секреты и автоскейл. Четвёртый — развёртывание staging, перенос данных и upload, нагрузочная обкатка и отработка сценариев деплоя и отката.
Пятый этап — вывод прода на кластер с настройкой zero-downtime деплоя, healthcheck и горизонтального масштабирования. Шестой — сопровождение: мониторинг подов и метрик, обновление образов и чартов, масштабирование под нагрузку, резервное копирование и реакция на инциденты по SLA. На каждом этапе мы показываем результат и передаём документацию, чтобы инфраструктура была прозрачной и управляемой вашей командой.
Возражения, которые мы слышим чаще всего
«Kubernetes — это сложно и дорого, нам столько не нужно». Часто так и есть, поэтому мы и начинаем с аудита: если хватает Docker, предлагаем именно его. А там, где кластер действительно нужен, helm-чарт и автоматизация снижают сложность эксплуатации, а не повышают её. «У нас всё работает на одном сервере, зачем менять». Пока не упёрлись в пик или простой при деплое — возможно, и не нужно. Но как только релизы участились, а распродажи кладут сайт, контейнеризация окупается снятыми простоями и нервами. «Боимся потерять данные при переезде». Перенос мы обкатываем на staging, upload и базу переносим с проверкой целостности, а прод переключаем только после успешной обкатки и с готовым откатом.
Сценарии, под которые мы собираем кластер
Контейнеризация подстраивается под тип проекта, а не наоборот. Для интернет-магазина на первый план выходит автоскейл под распродажи и быстрая отдача каталога: реплики php-fpm и nginx наращиваются по нагрузке, а статика и upload отдаются из общего тома без узких мест. Для B2B-портала и личных кабинетов критична одинаковость окружений и частые релизы без простоя, поэтому ядром становится helm-чарт для dev, staging и prod и плавная выкатка с откатом. Для медиа и контентных проектов с тяжёлой статикой важны кэширующий слой и оптимальная работа с постоянным хранилищем, чтобы пиковый трафик не упирался в диск.
Отдельный сценарий — высоконагруженные и федеральные проекты с требованиями к отказоустойчивости, где даже минута простоя стоит ощутимых денег. Здесь мы разносим поды по узлам кластера, настраиваем самовосстановление, дублируем критичные компоненты и выстраиваем мониторинг так, чтобы инцидент гасился до того, как его заметят пользователи. Во всех этих сценариях база, обмен с 1С и фоновые задачи остаются в единственном экземпляре с надёжным хранилищем, а слой приложения свободно масштабируется горизонтально.
Чем контейнеры выгоднее одного сервера в долгую
У растущего проекта обычно три пути: бесконечно наращивать мощность одного сервера, держать парк отдельных машин с ручной настройкой или перейти на контейнеры и оркестрацию. Вертикальное наращивание одного сервера упирается в потолок и не спасает от простоя при его сбое — вся нагрузка лежит на единственной точке отказа. Парк вручную настроенных машин дрейфует: конфиги расходятся, обновления накатываются неравномерно, а воспроизвести окружение для отладки тяжело. Контейнеры и Kubernetes снимают обе проблемы: инфраструктура описана кодом, окружения идентичны, а отказ одного узла кластер переживает без простоя, перераспределяя поды.
В деньгах это проявляется не сразу, а на горизонте эксплуатации. Автоскейл означает, что вы платите за мощности по фактической нагрузке, а не за пиковый сервер, простаивающий большую часть времени. Снятые простои при деплое — это сохранённая выручка и отсутствие ночных окон для выкаток. А воспроизводимые окружения экономят часы инженеров, которые раньше уходили на отладку различий между средами. Чем активнее проект растёт и чаще релизится, тем заметнее эта выгода.
Что вы получаете в итоге
По итогам проекта у вас остаётся воспроизводимая инфраструктура, описанная кодом: образы, helm-чарты, манифесты и документация. Окружения dev, staging и prod собираются из одного шаблона и не разъезжаются. Деплой проходит без простоя, кластер сам держит нагрузку и восстанавливается после сбоев, а upload и сессии надёжно живут в постоянном хранилище. Всё это разворачивается на вашем кластере и остаётся вашей собственностью без привязки к подрядчику — развивать инфраструктуру сможет как наша команда, так и любая другая. А мы готовы взять эксплуатацию на себя с мониторингом 24/7 и SLA, чтобы вы занимались продуктом, а не серверами. Начните с разговора: расскажите о вашей инфраструктуре, нагрузке и частоте релизов — мы проведём бесплатный аудит, предложим уровень оркестрации под задачу и пришлём смету в течение рабочего дня.
Частые вопросы о поддержке Docker и Kubernetes для Битрикс
Что такое контейнеризация Битрикс простыми словами? +
Это упаковка сайта в контейнеры — изолированные коробки с заранее зафиксированными версиями PHP, веб-сервера и зависимостей. Вместо ручной настройки сервера вы получаете образ, который одинаково запускается на машине разработчика, на тестовом стенде и на боевом сервере. Исчезает ситуация, когда на одном окружении работает, а на другом падает.
Чем Docker отличается от Kubernetes? +
Docker отвечает за упаковку и запуск отдельных контейнеров, docker-compose поднимает несколько контейнеров вместе на одном сервере. Kubernetes — это оркестратор поверх контейнеров: он управляет ими на множестве серверов, сам перезапускает упавшие поды, балансирует нагрузку, масштабирует реплики и выкатывает обновления без простоя. Docker — про один сервер, Kubernetes — про кластер под нагрузкой.
Что такое под, ingress и persistent volume? +
Под — это минимальная единица запуска в Kubernetes, обычно один контейнер приложения. Ingress — это входная точка кластера, которая принимает запросы, держит TLS и маршрутизирует их к нужным сервисам. Persistent volume — постоянное хранилище, которое живёт независимо от подов, поэтому загруженные файлы и данные не теряются при пересоздании контейнеров.
Что такое helm-чарт? +
Helm-чарт — это шаблон развёртывания: один набор манифестов с параметрами, из которого разворачиваются разные окружения. Вместо того чтобы копировать и править манифесты для dev, staging и prod вручную, вы держите один чарт и подставляете в него разные значения. Это убирает дрейф конфигураций и делает развёртывание повторяемым.
Что значит zero-downtime деплой? +
Это обновление без простоя. Новые поды поднимаются рядом со старыми, проходят проверку готовности, и только после этого трафик плавно переключается на них, а старые корректно выводятся. Пользователи не видят обрыва, а если новая версия не прошла проверку, происходит автоматический откат. Сайт доступен на всём протяжении выкатки.
Какие образы вы собираете для Битрикс? +
Базовый набор — php-fpm под вашу версию PHP с нужными расширениями, nginx для отдачи статики и проксирования, и mysql для базы данных. Образы фиксируют версии и зависимости, чтобы окружение не дрейфовало. По необходимости добавляем отдельные образы для крона и обмена с 1С, кэширующего слоя и поиска.
Можно ли поднять окружение разработчика одной командой? +
Да, для этого мы готовим docker-compose. Разработчик клонирует репозиторий и одной командой поднимает весь стек — код, веб-сервер и базу — в том же виде, что и на проде. Это убирает дни на настройку локального окружения и расхождения между машинами в команде.
Как вы делаете окружения dev, staging и prod одинаковыми? +
Все три окружения собираются из одного helm-чарта и одних и тех же образов, отличаются только значениями — доменом, ресурсами, числом реплик. Поэтому то, что прошло проверку на staging, ведёт себя на проде так же. Дрейф конфигураций, на который обычно уходят часы отладки, исчезает.
Что делать с обновлениями ядра Битрикс в контейнерах? +
Обновления накатываем сначала на staging в новом образе, прогоняем проверку и только потом выкатываем на прод плавной выкаткой. Поскольку окружения идентичны, риск, что обновление сломает прод, минимален. При проблеме откат к предыдущему образу занимает секунды.
А что с лицензией Битрикс при переезде в контейнеры? +
Лицензия Битрикс привязана к проекту, а не к конкретному способу размещения, поэтому переход в контейнеры её не нарушает. Мы переносим ключ и настройки в новое окружение, проверяем активацию и работу обновлений. Никаких дополнительных лицензий контейнеризация не требует.
Не потеряется ли каталог upload при пересоздании подов? +
Нет, при правильной настройке. Каталог upload нельзя держать внутри образа — мы выносим его в persistent volume с режимом доступа для нескольких подов. Файлы хранятся отдельно от контейнеров и доступны всем репликам php-fpm, поэтому пересоздание пода не приводит к потере загруженных файлов.
Как быть с сессиями пользователей при нескольких подах? +
Сессии нельзя хранить в файловой системе отдельного пода, иначе при балансировке пользователя разлогинит. Мы выносим хранение сессий и кэша в общий быстрый слой, поэтому запрос обрабатывает любая реплика без потери авторизации и содержимого корзины.
Где будет жить база данных mysql? +
Для разработки база удобно живёт в контейнере. На проде мы либо выносим её в statefulset с надёжным постоянным томом и резервным копированием, либо рекомендуем управляемый кластер базы данных у провайдера, если это надёжнее для вашей нагрузки. Выбор зависит от объёма данных и требований к отказоустойчивости.
Как настраивается резервное копирование? +
Настраиваем регулярные резервные копии базы и постоянных томов с upload по расписанию, с хранением в отдельном надёжном месте. Периодически проверяем восстановление из копий, чтобы они были рабочими, а не лежали мёртвым грузом. Это часть сопровождения инфраструктуры.
Что с обменом с 1С и кроном в кластере? +
Агенты, крон и обмен с 1С нельзя запускать на каждом поде, иначе задачи задвоятся. Мы выносим их в отдельный под в единственном экземпляре, чтобы обмен товарами, заказами и остатками и фоновые обработки шли корректно и без дублирования.
Как работает горизонтальное масштабирование? +
Мы описываем автоскейл php-fpm и nginx по метрикам нагрузки — например, по загрузке процессора или числу запросов. В пик кластер сам добавляет реплики подов, в спад убирает лишние. Вы не платите за простаивающие мощности и не падаете в час пик распродаж.
Как обеспечивается деплой без простоя? +
Через связку проб готовности, плавной выкатки и корректного завершения подов. Новые поды поднимаются и проходят healthcheck, затем трафик переключается на них, старые выводятся, дорабатывая текущие запросы. При неудачной проверке происходит откат. В итоге обновления идут с нулевым простоем.
Что такое healthcheck и зачем он нужен? +
Healthcheck — это проверки жизнеспособности и готовности пода. Проверка живости перезапускает зависший контейнер, проверка готовности не пускает трафик на под, пока он не готов обслуживать запросы. Для Битрикс важно учитывать в проверке прогрев кэша и доступность базы, иначе плавная выкатка не сработает.
Можно ли откатить неудачный релиз? +
Да, откат к предыдущей версии чарта или образа выполняется быстро и предсказуемо. Поскольку каждое развёртывание версионируется, вернуться к рабочему состоянию можно одной командой. А плавная выкатка с проверкой готовности часто останавливает плохой релиз ещё до того, как он затронет пользователей.
Выдержит ли кластер пиковые распродажи? +
Для этого и нужна оркестрация. Перед сезоном мы прогоняем нагрузочное тестирование, настраиваем пороги автоскейла и проверяем, что кластер добавляет реплики вовремя. В пик мощности наращиваются автоматически, а после спада освобождаются, поэтому сайт держит наплыв трафика без падений.
Как хранятся пароли и ключи в Kubernetes? +
Пароли базы, ключи интеграций и токены платёжных и логистических сервисов выносятся в секреты Kubernetes и подключаются к подам как переменные окружения или файлы при запуске. В репозитории остаются только шаблоны без чувствительных данных, а доступ к секретам разграничен по ролям.
Кто будет следить за кластером после запуска? +
Мы берём инфраструктуру на сопровождение: мониторим состояние подов и метрики, настраиваем алерты, обновляем образы и чарты, масштабируем под нагрузку и реагируем на инциденты по согласованному SLA. Часто мы видим проблему по алерту раньше, чем её замечают пользователи.
На чьей инфраструктуре всё разворачивается? +
На вашей — на вашем кластере или у выбранного вами провайдера. Данные и инфраструктура остаются под вашим контролем. Мы передаём образы, helm-чарты, манифесты и документацию, поэтому развивать решение сможет как наша команда, так и любая другая, без привязки к подрядчику.
Можно ли подключить автоматический деплой из репозитория? +
Да. Мы настраиваем конвейер, который собирает образ, прогоняет проверки и выкатывает изменения в нужное окружение по событию в репозитории или по кнопке. Деплой в кластер становится предсказуемым и не требует ручных шагов. Это распространённое дополнение к контейнеризации.
Сколько стоит и сколько занимает переход на контейнеры? +
Контейнеризация в Docker обычно начинается от 90 000 рублей, оркестрация в Kubernetes под ключ — от 220 000, сопровождение — от 60 000 рублей в месяц. Сроки — от двух до четырёх недель в зависимости от числа окружений и нагрузки. Точную смету и план присылаем после бесплатного аудита инфраструктуры.
Обсудим контейнеризацию вашего Битрикс?
Расскажите о вашей инфраструктуре, нагрузке и релизах — проведём аудит, предложим уровень оркестрации под задачу и пришлём смету в течение рабочего дня.
- Ответим в течение рабочего дня
- Бесплатный аудит процессов и расчёт
- NDA и фиксированная смета