скидка 50% все планы, время ограничено. Начиная с $2.48/mo
осталось 10 минут
Инструменты разработчика и DevOps

Сине-зеленое развертывание против Canary: как сократить время простоя развертывания

Ник Сильвер By Ник Сильвер 10 минут чтения Обновлено 20 февраля 2025 г.
Развертывание Blue Green против Canary

Сегодня существует множество стратегий развертывания, и со временем их будет только больше. Тем не менее, две наиболее распространенные стратегии развертывания, активно используемые сегодня некоторыми крупнейшими компаниями, — это стратегии развертывания Canary и Blue-green.

При сравнении развертывания Blue-Green и Canary речь идет не только о скорости или простоте; Одним из наиболее важных факторов, которые следует учитывать при выборе одной из этих стратегий, является время простоя развертывания. 

Чтобы свести к минимуму время простоя развертывания и обеспечить плавный переход при развертывании обновлений или модификаций, первостепенное значение имеет выбор более подходящего варианта развертывания Canary или Blue-Green. 

Итак, давайте рассмотрим, что предлагает каждая стратегия, включая прямое сравнение развертывания Blue-Green и Canary, а также наш собственный опыт развертывания Canary и Blue-Green.

Что такое сине-зеленое развертывание и что оно предлагает?

В стратегии развертывания Blue-Green новая версия приложения может быть развернута немедленно после ее тестирования и проверки. Это происходит благодаря двум идентичным средам: синей и зеленой средам, отсюда и название «Сине-зеленое развертывание».

Это работает, потому что одна из этих сред активна, а другая неактивна. Это означает, что новую версию приложения можно развернуть в неактивной среде (скажем, зеленой). Поскольку эти две среды полностью идентичны с точки зрения ресурсов, инфраструктуры и конфигураций, любые недостатки обновления можно устранить до его полного развертывания. 

После того, как обновление протестировано и разработчики удовлетворены его работой, живой трафик переключается на эту неактивную среду. Это делает неактивную среду (зеленую) активной средой, а ранее активную среду (синюю) неактивной.

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

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

Хотя многие компании и организации используют эту стратегию, один из примеров этой стратегии в действии можно увидеть на Spotify. Поскольку услуги Spotify должны быть доступны круглосуточно и без выходных, у него всегда есть резервная неактивная среда, готовая к выпуску новых обновлений.

Что такое Canary-развертывание и что оно предлагает?

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

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

Этот цикл повторяется с постепенно увеличивающейся частью пользователей, и все проблемы с обновлением решаются до тех пор, пока обновление не будет выпущено для 100% пользователей. Например, сначала обновление будет выпущено только для 2%, затем для 25%, затем для 75% и, наконец, для 100% пользователей.

Этот постепенный выпуск в развертывании Canary по сравнению с Blue-Green предлагает более контролируемое и гибкое развертывание, позволяя разработчикам тестировать функции и обновления в контролируемой среде, где только небольшая часть испытывает потенциальные проблемы. 

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

Хорошо известным примером такой стратегии развертывания является использование Netflix Canary в тандеме с инструментом под названием Chaos Monkey, который намеренно вызывает сбои в их системе. Если сбой влияет на среду Canary, команда Netflix может проанализировать реакцию системы и соответствующим образом скорректировать ее. Таким образом, Netflix может убедиться, что обновление остается стабильным и устойчивым даже в неблагоприятных условиях.

Сине-зеленое развертывание против. Канарейка

Обе эти стратегии развертывания предлагают свои уникальные преимущества; однако они также имеют свои ограничения. Вот почему важно взвесить плюсы и минусы сине-зеленого развития по сравнению с канарским, прежде чем принимать решение. 

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

Сокращение времени простоя 

Одной из основных проблем и темой этой статьи является сокращение времени простоя при развертывании Blue-Green по сравнению с Canary. Одним из сильных сторон развертывания Blue-Green является его скорость, поскольку вы можете мгновенно развернуть обновление или функцию приложения, используя две его среды. 

С другой стороны, подход Canary к постепенному развертыванию позволяет свести к минимуму время простоя, поскольку с проблемами сталкивается не только небольшая группа пользователей, но и поскольку на каждом этапе предоставляется обратная связь, устранение неполадок может выполняться гораздо быстрее и без простоев. 

Кроме того, хотя обе службы предлагают функции отката, функция отката развертывания Blue-Green действует мгновенно, что дает разработчикам надежную резервную копию в случае каких-либо серьезных проблем. Тем не менее, как я упоминал ранее, резервная версия не будет доступна, если работа над более новой версией выполняется в неактивной среде.

Функцию отката Canary можно использовать только постепенно, так же, как и процесс развертывания. Однако она всегда доступна, поскольку более старая стабильная версия не зависит от среды, в которой тестируются и работают новые обновления.

С точки зрения сокращения времени простоя при развертывании, если сравнивать развертывание Canary с Blue-Green, Canary превосходит его с точки зрения контроля рисков и детального контроля; однако, если мы рассматриваем исключительно сокращение времени простоя, то синий-зеленый является лучшим из двух, поскольку переключение происходит мгновенно.

Тем не менее, при обсуждении развертывания Blue-Green и Canary важно учитывать и другие факторы, помимо сокращения времени простоя. 

Тип приложения

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

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

Затраты на инфраструктуру

Еще одной важной проблемой при выборе между развертыванием Blue-Green и Canary являются затраты. Естественно, при развертывании Blue-Green затраты будут выше, поскольку необходимо поддерживать две отдельные среды. 

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

Масштабируемость и долгосрочное обслуживание 

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

Это делает выбор между развертыванием Canary и Blue-Green с точки зрения масштабируемости и обслуживания довольно простым. При развертывании Canary масштабируемость зачастую проще и экономичнее, поскольку не требуется дублирование сред. 

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

Опыт Cloudzy с сине-зеленым развертыванием против. Канарское развертывание

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

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

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

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

Это определенно было правильное решение, поскольку, хотя у нас не было каких-либо серьезных проблем, начали возникать некоторые более мелкие проблемы, о которых сообщили 5% пользовательской базы нашего клиента, для которых эта функция была развернута.

В Cloudzy мы верим в силу индивидуальных решений. Независимо от того, нужна ли вашему бизнесу надежность развертывания Blue-Green или гибкость развертывания Canary, наша команда DevOps обладает опытом и знаниями для реализации лучшей стратегии для вашей инфраструктуры. Связаться с нами здесь сегодня, чтобы узнать, как мы можем оптимизировать процесс развертывания и обеспечить бесперебойную работу ваших операций.

Говоря о VPS, мы предлагаем одни из самых низких тарифов в индустрии VPS с такими функциями, как более 12 локаций по всему миру, выделенное подключение к Интернету со скоростью до 10 Гбит/с, корпоративное твердотельное хранилище NVMe, мощные турбоскоростные процессоры AMD EPYC с тактовой частотой 3,23 ГГц и время безотказной работы 99,95%. Ознакомьтесь с нашим Цены на VPS для более подробной информации.

Заключительные мысли

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

Часто задаваемые вопросы

В чем основная разница между сине-зеленым и канареечным развертыванием?

Основное различие между стратегиями развертывания Blue-Green и Canary заключается в том, как выпускаются обновления. В развертывании Blue-Green используются две идентичные среды, причем обновления применяются к неактивной среде, что обеспечивает мгновенное переключение практически без простоев. Напротив, при развертывании Canary обновления сначала выпускаются постепенно для небольшой группы пользователей, отслеживая проблемы, а затем постепенно распространяются на всю базу пользователей.

Что лучше для сокращения времени простоя: сине-зеленое или канареечное развертывание?

Развертывание Blue-Green, как правило, лучше подходит для сокращения времени простоя, поскольку позволяет мгновенно переключаться между средами. Это сводит к минимуму любые возможные сбои. Хотя развертывание Canary также направлено на минимизацию времени простоя, оно достигается за счет постепенного развертывания, которое может включать некоторые незначительные локализованные проблемы, затрагивающие лишь небольшую группу пользователей.

Какова стоимость развертывания сине-зеленых и канареечных систем?

Развертывания Blue-Green обычно обходятся дороже, поскольку требуют обслуживания двух полных сред. С другой стороны, развертывания Canary более экономичны, поскольку не требуют дублирующей инфраструктуры; обновления развертываются в основной среде, что делает его лучшим выбором для небольших команд или менее ресурсоемких приложений.​

Делиться

Еще из блога

Продолжайте читать.

Металлический контейнер, защищенный светящимся неоново-голубым каркасным куполом, на котором изображен заголовок статьи и логотип Cloudzy на темно-синем фоне.
Инструменты разработчика и DevOps

Основные ошибки безопасности Docker, которых следует избегать в 2026 году

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

Рекса СайрусРекса Сайрус 15 минут чтения
Трехмерная светящаяся структура синего куба, представляющая контейнеры Docker, рядом с текстом «Portainer vs Yacht: какой пользовательский интерфейс Docker выбрать» и логотипом Cloudzy.
Инструменты разработчика и DevOps

Portainer против Yacht: какой пользовательский интерфейс Docker выбрать в 2026 году?

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

Рекса СайрусРекса Сайрус 13 минут чтения
Инструменты непрерывной интеграции
Инструменты разработчика и DevOps

Лучшие инструменты CI/CD для оптимизации рабочих процессов DevOps в 2026 году

  Сфера разработки программного обеспечения развивается быстрее, чем когда-либо. И если вы не хотите отставать от этого быстрого роста, вам следует использовать методологии DevOps и Agile.

Ада ЛавгудАда Лавгуд 11 минут чтения

Готовы к развертыванию? От $2,48 в месяц.

Независимое облако, с 2008 г. AMD EPYC, NVMe, 40 Гбит/с. 14-дневный возврат денег.