03 нояб. 2022 г.·1 мин

Внедрение сине-зеленого развертывания в Kubernetes: варианты и преимущества

Изучите шаблон сине-зеленого развертывания, его преимущества и варианты реализации этого метода в среде Kubernetes.

Внедрение сине-зеленого развертывания в Kubernetes: варианты и преимущества

Сине-зеленое развертывание является широко используемой стратегией управления выпусками программного обеспечения. В нем задействованы две идентичные аппаратные среды: одна активна и обслуживает пользователей, а другая остается в резерве. Такой подход упрощает управление обновлениями программного обеспечения и снижает риск простоя системы.

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

Некоторые заслуживающие внимания преимущества сине-зеленых развертываний включают в себя:

Kubernetes становится все более популярным как среда для разработки, тестирования и развертывания в производственной среде. Несмотря на то, что это упрощает развертывание приложений, Kubernetes не предлагает нативную сине-зеленую функциональность развертывания из коробки. Вместо этого он предоставляет объект Deployment, который позволяет чередовать обновления, которые могут в некоторой степени заменить модули приложения его последней версией без простоев.

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

Для эффективной реализации сине-зеленых развертываний с помощью Kubernetes рассмотрите следующие инструменты:

Argo Rollouts — это набор контроллеров Kubernetes и определений пользовательских ресурсов (CRD) с открытым исходным кодом, который добавляет расширенные функции развертывания, такие как сине-зеленое и канареечное развертывание, эксперименты и другие возможности прогрессивной доставки. При необходимости он интегрируется с входными контроллерами и сервисными сетками Kubernetes для управления трафиком во время обновлений. Он даже может запрашивать и интерпретировать метрики из других систем для проверки ключевых показателей эффективности (KPI) и автоматически продвигать или откатывать выпуски.

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

GitLab CI/CD — это многофункциональная платформа DevOps, которая оптимизирует крупные проекты по разработке программного обеспечения. В дополнение к репозиторию кода и возможностям отслеживания проблем, GitLab предлагает автоматизацию CI/CD, которая поддерживает развертывание вручную и по расписанию в производственных системах Kubernetes, включая прогрессивные стратегии развертывания, такие как сине-зеленое развертывание.

CircleCI — это платформа CI/CD, которая помогает командам инженеров создавать, тестировать и развертывать программное обеспечение, отслеживая изменения кода в режиме реального времени с помощью пользовательского интерфейса панели управления. CircleCI поддерживает развертывание в кластерах Kubernetes и интегрируется с другими службами для стратегий развертывания, таких как флаги функций, сине-зеленое и канареечное развертывание.

В этой статье представлен сине-зеленый шаблон развертывания, его различные преимущества и варианты реализации этого метода в среде Kubernetes. Используя такие инструменты, как Argo Rollouts, Flagger, GitLab CI/CD или CircleCI, вы можете добиться более плавного выпуска программного обеспечения, минимизировать время простоя и улучшить общее впечатление как разработчиков, так и конечных пользователей в вашей среде Kubernetes. Изучая эти инструменты, учитывайте уникальные требования вашего конвейера разработки программного обеспечения, чтобы определить решение, которое лучше всего соответствует потребностям вашей команды.

Легко начать
Создай что-то невероятное

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

Попробовать AppMaster