1C-Битрикс vs Kubernetes (K8s)
Когда Enterprise-архитектура превращается в дорогой способ запустить несколько PHP-серверов
Опубликую пост на одну из моих любимых тем — с подобными задачами ко мне достаточно регулярно обращаются заказчики или приходят вакансии. 🙂
Представим типичную ситуацию.
Есть группа компаний и несколько — иногда несколько десятков — сайтов на 1С-Битрикс.
Каждый из них когда-то развивался отдельно:
• разные версии ядра; • разные модули; • разная инфраструктура; • много кастомного кода.
В какой-то момент компания решает всё это привести в порядок.
Типичная формулировка задачи выглядит примерно так:
Есть «зоопарк» отдельных сайтов на 1С-Битрикс. Нужно построить единую высоконагруженную платформу: использовать многосайтовость Bitrix, общее ядро, централизовать интеграции, базы данных и управление контентом, внедрить CI/CD, Infrastructure as Code и развернуть всё это в Kubernetes.
На первый взгляд звучит логично и современно.
Но здесь почти всегда возникают два вопроса.
Первый: нужен ли вообще здесь Kubernetes?
И второй:
Если мы уже строим современную облачную инфраструктуру вокруг Kubernetes, обязательно ли центральным элементом новой системы должен оставаться один большой 1С-Битрикс?
Ответ не сводится к:
«Kubernetes — хорошо или плохо» или «1С-Битрикс — хорошо или плохо».
Сначала нужно понять, какую проблему бизнеса мы вообще пытаемся решить.
Коротко:
Kubernetes для 1С-Битрикс — не обязательное и не запрещённое решение.
Во многих проектах разумнее сначала:
• проверить реальную нагрузку; • найти и устранить узкие места; • стандартизировать окружения и деплой; • привести в порядок эксплуатацию на обычных VM.
Kubernetes становится действительно рациональным выбором, когда он уже является корпоративной платформой компании либо когда вокруг 1С-Битрикс работает много независимо масштабируемых сервисов.
Что на самом деле хочет получить заказчик
Если убрать технические термины, требования обычно вполне понятные:
• сайты не должны падать; • инфраструктура должна выдерживать рост посещаемости; • обновление одного проекта не должно превращаться в приключение; • все сайты должны использовать предсказуемый технологический стек; • не должно быть десяти разных способов интеграции с 1С, CRM и другими системами; • новые сайты должны запускаться быстрее; • изменения должны автоматически тестироваться и выкладываться; • инфраструктуру нужно уметь восстановить по описанию, а не по памяти администратора; • стоимость сопровождения должна быть понятной и управляемой.
Все эти задачи абсолютно правильные.
Но ни одна из них сама по себе ещё не означает: «нам обязательно нужен Kubernetes». В полной статье разбираю, когда Kubernetes действительно имеет смысл для инфраструктуры вокруг 1С-Битрикс, какие проблемы он решает, какие может добавить и какие альтернативы стоит рассмотреть до миграции.