Что такое Chrome Stable, Beta, Dev и Canary Release?
Каналы Chrome Stable, Beta, Dev, Canary Release
Для каждого программного обеспечения, которое предлагается открыто в разных зданиях, предусмотрен цикл обновления. Самая нестабильная сборка обновляется каждый день до самой стабильной сборки, которая выпускается примерно каждые шесть недель. Эти сборки доступны для всех платформ, на которых работает Chrome, включая Windows, Android и Linux.
Тем не менее, лучшая часть этих сборок заключается в том, что вы можете установить их параллельно на свой компьютер, то есть вы можете иметь Canary Build и стабильную сборку вместе. Поскольку они имеют разные профили, они работают без проблем.
Живут на грани
Если вы хотите попробовать что-то, только что испеченное из духовки, с плохим вкусом, вы можете загрузить эти сборки с сайта download-chromium.appspot.com. Чтобы пойти еще глубже, вы можете выбрать конкретную недавнюю сборку, перейдя к водопаду непрерывной сборки Chromium, посмотрев на число в верхней части под «LKGR», а затем зайдя в это ведро Google Storage и загрузив соответствующую сборку.
Что такое Chrome Canary build?
Эта сборка похожа на запеченную в духовке, но работает. Обновления выпускаются ежедневно и доступны для тестирования конечными пользователями. Вы всегда можете отправить отзыв, и сборка Canary действительно собирает данные, которые отправляются обратно на серверы Google.
Что такое канал Chrome Dev?
Это правильная сборка, если вы хотите увидеть новые функции, появившиеся в Chrome. Эта версия обновляется один или два раза в неделю. Хотя он близок к стабильной версии, он все еще содержит множество ошибок, которые необходимо пройти через тестирование. Так что, если вы в порядке с небольшим количеством ошибок, но хотите, чтобы то, что будет легко, это сборка для использования.
Что такое Chrome Beta канал?
Это стабильная версия канала Dev и содержит наименьшее количество ошибок. Это также общедоступная бета-версия перед финальной сборкой. Многое можно исправить, когда Google получит много откликов от реального использования. Он обновляется примерно каждую неделю, а основные обновления – каждые шесть недель.
Что такое Chrome Stable Channel?
Это идеальное печенье с лучшим вкусом по всему миру. Возможности появятся на этом канале более чем через месяц после стабильного канала. Этот канал проходит полное тестирование, устраняется сбои и обновляется примерно каждые две-три недели для небольших выпусков и каждые шесть недель для основных выпусков.
Три функции браузера Chrome Canary, которые облегчат жизнь пользователям
Chrome Canary — это современный веб-браузер Google, предназначенный для разработчиков, опытных технических специалистов и энтузиастов новых технологий. Если вам нравится экспериментировать с новыми веб-браузерами, он может заинтересовать вас. Работать с ним не всегда легко, но у пользователей появляется шанс попробовать новые функции браузера Google Chrome первыми. Рассказываем о самых интересных из них, как их подключить и протестировать.
Читайте «Хайтек» в
Chrome Canary — рассказываем главное о необычном браузере
Что такое Chrome Canary?
Chrome Canary — экспериментальная версия популярного браузера Chrome. Google предлагает четыре канала выпуска для своего браузера Chrome: стабильный, бета, для разработчиков и Canary. Большинство людей используют стабильную версию Chrome, которая тщательно протестирована и считается очень надежной.
Напротив, Chrome Canary может понравиться людям, которые любят копаться в новых технологиях и хотят заранее узнать, как стандартный браузер Chrome может выглядеть в будущем.
Chrome Canary — это сырой и незавершенный браузер по сравнению с его собратьями в Dev, Beta и Stable. В результате работа в Chrome Canary может быть немного неровной по сравнению с тем, к чему вы привыкли, используя обычный веб-браузер. Могут возникнуть ошибки, функции, которые вам нравятся, могут внезапно исчезнуть без предупреждения, а сам браузер может неожиданно вывести вас из строя. Короче говоря, работа над Chrome Canary продолжается. Он получает новые обновления и функции почти каждый день, но их стабильность не гарантируется.
Chrome Canary может показаться вам интригующим, если вы хотите получить доступ к экспериментальным функциям Chrome раньше широкой публики, но вам не следует полагаться на Chrome Canary в качестве основного браузера — фактически вы не можете установить его в качестве браузера по умолчанию. Тем не менее, можно использовать Chrome Canary в качестве дополнительного браузера, если хотите, и вам не нужно беспокоиться о каком-либо странном поведении, влияющем на ваш опыт просмотра в стандартном браузере Chrome.
Кто использует Chrome Canary?
Chrome Canary не предназначен для пользователей интернета, которым не нравятся технологии. Как сообщает Google: «Предупреждаем: он предназначен для разработчиков и первых пользователей и иногда может полностью выйти из строя». Технические специалисты называют этот тип веб-браузера передовой технологией, это означает, что он может быть не готов к работе в прайм-тайм и даже может быть нестабильным или ненадежным. Поэтому, если идея сбоя браузера вас утомляет, Chrome Canary не для вас.
Однако если вы не против случайных сбоев, возможно, вам стоит попробовать Chrome Canary. Как следует из названия, он заблаговременно предупреждает инженеров Chrome об ошибках или сбоях, которые в конечном итоге могут стать проблемой, если их не устранить. Благодаря этой обратной связи Google может ускорить цикл разработки и предоставить общественности новые интересные функции быстрее, чем это было бы возможно.
Как получить Chrome Canary?
Вы можете войти в Chrome Canary со своей учетной записью Google, чтобы получить доступ к закладкам, истории просмотров, паролям и настройкам, которые вы, возможно, уже установили в обычной версии Chrome.
Если вы предпочитаете быть осторожными, возможно, не захотите синхронизировать Chrome Canary с вашей учетной записью Google на случай, если ошибка может повлиять на ваши настройки, и синхронизировать эти изменения с вашей учетной записью, позже отражая их в стандартной версии Chrome. Однако вы можете настроить несколько профилей пользователей в Chrome Canary. Таким образом, вы можете настроить песочницу, в которой можно играть с новыми классными функциями Chrome Canary, не беспокоясь о том, что произойдет, если вы столкнетесь с ошибкой.
Какие новые функции предлагает Chrome Canary?
Google Chrome Canary позволяет проверять взломанные пароли
Еще в октябре прошлого года Google представила множество функций конфиденциальности для Google Maps, YouTube и Google Chrome. Это включало функцию проверки пароля для Chrome, которая позволяла пользователям проверять, не был ли какой-либо из их паролей взломан в результате утечки общедоступных данных. Теперь компания внедряет эту функцию в Google Chrome для Android.
Согласно недавнему отчету Techdows, последнее обновление для Google Chrome Canary представляет новый флаг «Массовая проверка пароля». После включения флаг добавляет новую опцию в настройках браузера под названием «Проверять пароли». Нажатие на новую опцию «Проверить пароли» сканирует все сохраненные пароли и предупреждает пользователей, если их пароль был взломан в результате утечки данных.
Если вы хотите опробовать новую функцию на своем устройстве, вы можете загрузить последнюю версию Google Chrome Canary по ссылке ниже в Play Store. После того, как вы установили браузер на свое устройство, вам нужно посетить страницу chrome://flags и найти флаг «Password Chek Bluk». Затем, после того, как вы включите флаг и перезапустите браузер, вы должны увидеть новую опцию «Проверить пароль» в настройках «Пароли» в браузере.
Наряду с функцией проверки пароля в обновлении Chrome Canary также представлена функция проверки безопасности браузера для версии Android. Чтобы использовать функцию проверки безопасности на Android, сначала необходимо включить флажок «Проверка безопасности на Android», а затем перезапустить браузер. Затем вы должны увидеть новую опцию проверки безопасности в настройках браузера, которая поможет защитить вас от утечки данных, небезопасных веб-сайтов и многого другого.
Субтитры в реальном времени
Cубтитры, которые будут воспроизводиться в режиме реального времени, скоро могут стать реальностью для браузера Google Chrome для ПК и в ОС Chrome. Однако в одной из последних версий Chrome Canary уже можно получить доступ к новой функции Live Caption, ее легко найти в настройках в браузера.
Однако журналисту издания The Verge в ходе тестирования так и не удалось заставить Live Captions работать. При запуске функции и переходе на YouTube или Twitch для просмотра субтитров к видео браузер вылетал.
Это предсказуемо для Canary — ведь это версия Google Chrome, предназначенная только для разработчиков и энтузиастов.
И все же новая функция пригодится не только при просмотре видео, но и при видеозвонках. Автоматический перевод текстов, который следует ожидать в дальнейшем, позволит людям, которые общаются на разных языках, лучше понимать друг друга в режиме реального времени.
Что нужно сделать, чтобы протестировать новую функцию Live Caption:
Функция Live Caption доступна и в Android 10 на телефонах Pixel 4, 3A, 3 и 2, а также в «некоторых других телефонах Android», согласно заявлению Google.
Nearby Share в браузере Chrome для Windows 10
По сообщениям источников, Google начала тестирование функции Nearby Share. Ее особенность в том, что она позволяет просто обмениваться файлами в браузере Chrome для Windows 10. Это попытка Google интегрировать аналог AirDrop в Chrome для ОС Windows, macOS, Linux и Chrome OS. Доступность функции для тестирования может говорить о том, что вскоре она появится в стабильных версиях браузера.
Сейчас функцию Nearby Share можно использовать только в версиях Chrome Dev или Canary. Для этого необходимо перейти на страницу chrome://nearby, где будут отображены доступные устройства, после активации соответствующего параметра в настройках chrome://flags.
Учтите, что для работы Nearby Share на данном этапе разработки потребуется компьютер с поддержкой Bluetooth, смартфон Google Pixel или ноутбук Chromebook. Для работы функции используйте разблокированные устройства, помните, что они должны находиться близко друг к другу. Кроме того, необходимо включить Bluetooth.
В прошлом месяце стало известно о том, что Google планирует расширить функцию на все смартфоны с Android 6.0 и более поздними версиями ОС.
Canary версия что это
Все мы использовали Google Chrome, так как он самый популярный веб-браузер в мире. Но знаете ли вы, что этот браузер имеет четыре различных версии Chrome?
У Google Chrome есть 4 версии: Стабильная, Бета-версия, Dev и Canary. Google использует каждую из этих версий Chrome для разных целей.
В этой статье вы сможете узнать, для чего предназначена каждая из версий Chrome, а также обо всех различиях, которые их разделяют. После глубокого изучения различий между 4 версиями мы порекомендуем лучшую версию Google Chrome для установки на ваши устройства.
Почему существуют разные версии Google Chrome?
У Google Chrome есть 4 разных версии: Chrome Stable, Chrome Beta, Chrome Dev и Chrome Canary. Приложение для каждой из этих версий Chrome доступно в Google Play, но почему существует так много разных версий одного и того же браузера?
Каждая из этих версий представляет собой состояние на этапе разработки, пока не будет достигнута финальная версия, которая может понравиться всем пользователям.
Перед интеграцией новых функций разработчики должны протестировать их работу в пробной версии приложения. В случае с Google Chrome у разработчиков есть 3 тестовые версии приложения (Beta, Dev и Canary) перед окончательной интеграцией функций в финальную версию, известную как Stable. Таким образом, каждая из версий Google Chrome выполняет свою миссию для правильной разработки веб-браузера.
Google Chrome Stable
Google Chrome Stable – это последняя стабильная версия браузера, которую вы почти наверняка установили на свой мобильный телефон или планшет.
В стабильном Chrome пользователи могут пользоваться всеми новыми функциями браузера без ошибок безопасности или стабильности, поскольку они были протестированы в предыдущих версиях. Если вы хотите легко просматривать Интернет, стабильная версия Google Chrome – это версия, которую вы должны установить на свои мобильные устройства.
Стоит отметить, что стабильная версия обновляется каждые две-три недели, а время ожидания крупных обновлений увеличивается до шести недель.
Google Chrome Beta
Версия, предшествующая стабильной –это Google Chrome Beta, она работает корректно и включает новшества, которые позже будут интегрированы в окончательную версию.
По этой причине для многих это наиболее сбалансированная версия, которую вы можете установить на свой мобильный телефон, поскольку она сочетает в себе хорошую производительность и последние функции Chrome.
Кроме того, если вы используете бета-версию Google Chrome, вам гарантированы постоянные обновления, поскольку приложение обновляется каждую неделю. Для крупных обновлений необходимо подождать около шесть недель.
Пользователи бета-версии могут ознакомиться с новыми функциями на четыре-шесть недель раньше, чем в стабильной версии Chrome. Если вы хотите стать одним из них, вы можете бесплатно загрузить бета-версию Chrome из Play Маркет.
Пользователи могут не только пользоваться новыми функциями, но и сообщать о потенциальных ошибках бета-версии Chrome. Таким образом, разработчики могут исправить их до того, как эти функции будут реализованы в окончательной версии Chrome.
Google Chrome Dev
Google Chrome Dev – это версия Chrome, предназначенная для разработчиков и опытных пользователей, которые тестируют последние обновления, чтобы обнаружить все недостатки для улучшения. Стоит отметить, что Chrome Dev может работать с ошибками, это делает приложение нестабильным.
Хотя эта версия не рекомендуется для повседневного использования, Dev идеально подходит для пользователей, которые хотят протестировать новые функции за девять-двенадцать недель до их официального выпуска.
Это приложение постоянно обновляется с целью, чтобы пользователи оставляли постоянную обратную связь в Google. Если вы хотите заранее протестировать Chrome и не возражаете против использования более нестабильной версии, чем бета-версия, вы можете бесплатно загрузить Google Chrome Dev из Play Маркет.
Google Chrome Canary
Последняя версия Google Chrome – Canary версия, специально разработанная для разработчиков. Выпущенная в 2016 году Chrome Canary является наименее стабильной версией приложения, поэтому Google рекомендует использовать ее только для тестирования. В данной версии браузера функции время от времени появляются и исчезают, что также не делает его идеальным для повседневного использования.
Google Chrome Canary первым получает обновления, поэтому они не работают должным образом. Но не все так плохо, потому что для Canary также характерны постоянные обновления, до семи каждую неделю. Если вы хотите использовать эту версию Google Chrome, скачайте ее бесплатно из магазина приложений Play Маркет.
Какую версию Google Chrome установить?
Лучшая версия Chrome, которую вы можете установить – это стабильная версия, так как вы можете наслаждаться стабильной работой браузера. Хотя вам, возможно, придется немного подождать, чтобы протестировать новые функции, стабильная версия является наиболее рекомендуемой для работы в Интернете.
Производительность, стабильность и безопасность гарантируют, что Google Chrome Stable – это идеальная версия для большинства пользователей.
Отличия Chrome Canary от Google Chrome
Привет, котятки! Шучу. Настроение хорошее, потому что надеюсь, что Google Chrome Canary вскоре сделает сёрфинг в интернете очень удобным. Chrome Canary — это экспериментальная тестовая версия известного браузера Google Chrome — браузера для поиска в интернете. Эта версия публичная и так же как и более стабильную Chrome Beta, её можно скачать с Google Play.

Что такое Google Chrome Canary
Некоторые настройки могут изменить внешний вид, замедлить браузер или вызвать ошибки. Хорошо, что есть кнопка восстановления настроек.
Итак, первое впечатление от новой версии. Очень интересным мне показалось меню внизу экрана. Кнопка домой вполне лаконично смотрится здесь и в Хроме мне всегда её не хватало. Закрывать вкладку чтобы открыть новую мне никогда не нравилось.
Рекомендованный контент остался, но его можно скрыть или совсем убрать как я описал в посте Как убрать «Статьи для вас». Тогда ничего кроме кнопок прямого доступа, строки поиска и меню не останется. Именно такой вариант на верхнем скриншоте слева.
Появилось ужасно удобно дифференцирование нажатия на слово. Лёгкий тап (нажатие) по слову покажет перевод внизу страницы. Продолжительное выделение приведёт к тому, что внизу страницы откроется справочная ссылка-подсказка на это слово или словосочетание.
К сожалению, Google Chrome Canary ещё не умеет фиксировать иконки быстрого доступа к сайтам. И их пока осталось всего 8. На десктопной версии 10 значков сайтов и из можно защитить от изменения.
Вот, как работает перевод. Согласитесь, весьма удобно быстро перевести незнакомое слово. Эти две функции — перевод и подсказки, надеюсь, войдут в окончательный релиз Хрома.
Среди нововведений отмечу ещё очень крупные всплывающие описания страницы на десктопной версии браузера. Когда много открытых вкладок — это очень поможет.
Dark Mode — ещё один отличный инструмент для тех, кто любит читать на тёмном фоне.
Режим включается только на мобильных устройствах.
Настройки флагов Google Chrome Canary
Для включения Dark Mode нужно войти на страницу настроек мобильного приложения Chrome Canary chrome://flags/ и в строке поиска ввести Dark Mode.
Некоторые настройки есть только на мобильных версиях браузера, некоторые только на десктопных. Большинство настроек действительны и там и там.
После включения режима тёмного стиля отображения контента и темного стиля отображения интерфейса нажимаем кнопку Relaunch Now. Браузер перезагрузится с новыми настройками. Для общего сброса настроек до настроек по умолчанию нажимаем Reset all to default.
Приведу несколько флагов настроек для примера. Их очень много — от внешнего вида до управления кредитными картами и работой браузера с сенсорным экраном.
Браузер мне нравится. Вкладки открываются быстрее, закрываются быстрее, работает браузер быстрее.. Есть дополнительные функции и новые настройки интерфейса.
Тестируем на проде: Canary Deployment
Канарейка — маленькая птица, которая постоянно поет. Эти птички чувствительны к метану и угарному газу. Даже от небольшой концентрации лишних газов в воздухе они теряют сознание или умирают. Золотоискатели и шахтеры брали птичек на добычу: пока канарейки поют, можно работать, если замолчали — в шахте газ и пора уходить. Шахтеры жертвовали маленькой птичкой, чтобы выбираться из шахт живыми.
Подобная практика нашла себя и в IT. Например, в стандартной задаче деплоя новой версии сервиса или приложения на продакшн с тестированием перед этим. Тестовое окружение может быть слишком дорогим, автоматизированные тесты не покрывают все, что хотелось бы, а не тестировать и жертвовать качеством рискованно. Как раз в таких случаях помогает подход Canary Deployment, когда немного настоящего продакшн-трафика пускается на новую версию. Подход помогает безопасно проверить новую версию на продакшн, жертвуя малым ради большой цели. Подробнее, как работает подход, чем полезен и как его реализовать, расскажет Андрей Маркелов (Andrey_V_Markelov), на примере реализации в компании Infobip.
Андрей Маркелов — ведущий инженер-программист в Infobip, уже 11 лет занимается разработкой приложений на Java в области финансов и телекоммуникаций. Разрабатывает Open Source продукты, активно участвует в Atlassian Community и пишет плагины для продуктов Atlassian. Евангелист Prometheus, Docker и Redis.
О компании Infobip
Это глобальная телекоммуникационная платформа, которая позволяет банкам, ретейлу, интернет-магазинам и транспортным компаниям отправлять сообщения своим клиентам с помощью SMS, push, писем и голосовых сообщений. В таком бизнесе важна стабильность и надежность, чтобы клиенты вовремя получали сообщения.
IT-инфраструктура Infobip в цифрах:
Релизы
Типичный релиз у нас проходит так. Например, есть сервисы A, B, C, D и E, каждый из них разрабатывается отдельной командой.
В какой-то момент команда сервиса А решает задеплоить новую версию, но команды сервисов B, C, D и E об этом не знают. Вариантов, как поступит команда сервиса А, два.
Проведет инкрементальный релиз: сначала заменит одну версию, а потом вторую.
Но есть второй вариант: команда найдет дополнительные мощности и машины, задеплоит новую версию, а потом переключит роутер, и версия начнет работать на продакшн.
В любом варианте после деплоя почти всегда возникают проблемы, даже если версия протестирована. Тестировать можно руками, можно автоматизированно, можно не тестировать — проблемы возникнут в любом случае. Самый простой и правильный способ их решить — откатиться назад на работающую версию. Уже потом можно разбираться с ущербом, с причинами и исправлять их.
Проблемы нам не нужны. Если клиенты обнаружат их быстрее нас, это ударит по репутации. Поэтому мы должны находить проблемы быстрее клиентов. Работая на опережение, мы минимизируем ущерб.
В то же время, мы хотим ускорить деплой, чтобы это происходило быстро, легко, само собой и без напряжения со стороны команды. Инженеров, DevOps-инженеров и программистов надо беречь — релиз новой версии это стресс. Команда это не расходный материал, мы стремимся рационально использовать человеческие ресурсы.
Проблемы деплоя
Клиентский трафик непредсказуем. Невозможно предсказать, когда клиентский трафик будет минимальным. Мы не знаем, где и когда клиенты начнут свои кампании — может, сегодня ночью в Индии, а завтра в Гонконге. С учетом большой разницы во времени, деплой даже в 2 часа ночи не гарантирует, что клиенты не пострадают.
Проблемы провайдеров. Мессенджеры и провайдеры — наши партнеры. Иногда у них бывают сбои, которые вызывают ошибки во время деплоя новых версий.
Распределенные команды. Команды, которые разрабатывают клиентскую часть и бэкенд, находятся в разных часовых поясах. Из-за этого они часто не могут договориться между собой.
Дата-центры нельзя повторить на стейдже. В одном дата-центре 200 стоек — повторить это в песочнице даже приблизительно не получится.
Даунтаймынедопустимы! У нас есть допустимый уровень доступности (Error Budget), когда мы работаем 99,99% времени, например, а оставшиеся проценты это «право на ошибку». Достичь 100% надежности невозможно, но важно постоянно следить за падениями и простоями.
Классические варианты решения
Писать код без багов. Когда я был молодым разработчиком, ко мне подходили менеджеры с просьбой провести релиз без багов, но это не всегда возможно.
Писать тесты. Тесты работают, но иногда совсем не так, как хочет бизнес. Зарабатывать деньги — это не задача тестов.
Тестировать на стейдже. За 3,5 года моей работы в Infobip я ни разу не видел, чтобы состояние стейджа хотя бы частично совпадало с продакшн.
Мы даже пытались развить эту идею: сначала у нас был стейдж, потом препродакшн, а потом препродакшн препродакшна. Но и это не помогло — они не совпадали даже по мощности. Со стейджем мы можем гарантировать базовую функциональность, но не знаем, как она будет работать при нагрузках.
Релиз делает тот, кто разрабатывал. Это хорошая практика: даже если кто-то меняет название комментария, сразу добавляет в продакшн. Это помогает развивать ответственность и не забывать о внесенных изменениях.
Дополнительные сложности тоже есть. Для разработчика это стресс — тратить много времени, чтобы все проверить вручную.
Согласованные релизы. Этот вариант обычно предлагает менеджмент: «Давайте договоримся, что каждый день будете тестировать и добавлять новые версии». Это не работает: всегда есть команда, которая ждет все остальных или наоборот.
Smoke-тесты
Еще один способ решить наши проблемы с деплоем. Рассмотрим, как работают smoke-тесты на предыдущем примере, когда команда A хочет задеплоить новую версию.
Сначала команда деплоит один инстанс на продакшн. Сообщениями в инстанс от моков имитируется реальный трафик, чтобы он совпадал с нормальным ежедневным трафиком. Если все хорошо, команда переключает новую версию на пользовательский трафик.
Второй вариант — деплоить с дополнительным железом. Команда тестирует его на продакшн, потом переключает, и все работает.
Canary-релизы
Из-за недостатков smoke-тестов мы начали использовать canary-релизы.
Практика, подобная тому, как шахтеры использовали канареек для индикации уровня газов, нашла себя и в IT. Мы пускаем немного настоящего продакшн-трафика на новую версию, при этом стараемся уложиться в Service Level Agreement (SLA). SLA — это наше «право на ошибку», которое мы можем использовать раз в год (или за какой-то другой промежуток времени). Если все будет хорошо, добавим больше трафика. Если нет — вернем предыдущие версии.
Реализация и нюансы
Как мы реализовали canary-релизы? Например, группа клиентов отправляет сообщения через наш сервис.
Деплой проходит так: убираем один узел из-под балансировщика (1), меняем версию (2) и отдельно пускаем немного трафика (3).
В целом, в группе будут счастливы все, даже если один пользователь будет недоволен. Если все хорошо — меняем все версии.
Покажу схематично, как это выглядит для микросервисов в большинстве случаев.
Есть Service Discovery и еще два сервиса: S1N1 и S2. Первый сервис (S1N1) оповещает Service Discovery, когда стартует, а Service Discovery его запоминает. Второй сервис с двумя узлами (S2N1 и S2N2) тоже оповещает Service Discovery при старте.
Второй сервис для первого работает как сервер. Первый запрашивает у Service Discovery информацию о своих серверах, а когда получает — ищет и проверяет их («health check»). Когда проверит, то отправит им сообщения.
Когда кто-то хочет задеплоить новую версию второго сервиса, он сообщает Service Discovery, что вторая нода будет canary-нодой: на нее будет отправляться меньше трафика, потому что сейчас пройдет деплой. Убираем canary-ноду из-под балансировщика и первый сервис не отправляет в нее трафик.
Меняем версию и Service Discovery знает, что вторая нода теперь canary — можно давать ей меньше нагрузки (5%). Если все хорошо, меняем версию, возвращаем нагрузки и работаем дальше.
Чтобы все это реализовать, нам нужны:
Балансировка
Это первое, о чем мы должны задуматься. Есть две стратегии балансировки.
Простейший вариант, когда одна нода всегда canary. Эта нода всегда получает меньше трафика и мы начинаем деплой с нее. В случае проблем мы сравним ее работу до деплоя и во время него. Например, если ошибок стало в 2 раза больше, значит и ущерб вырос в 2 раза.
Canary-нода задается в процессе деплоя. Когда деплой закончится и мы снимем с нее статус canary-ноды, баланс трафика восстановится. С меньшим количеством машин мы получим честное распределение.
Мониторинг
Краеугольный камень canary-релизов. Мы должны точно понимать, зачем мы это делаем и какие метрики хотим собирать.
Примеры метрик, которые мы собираем с наших сервисов.
Counter. Это некоторая возрастающая величина, например, количество ошибок. Эту метрику просто интерполировать и изучать график: вчера было 2 ошибки, а сегодня 500, значит, что-то пошло не так.
Количество ошибок в минуту или в секунду, это важнейший показатель, который можно вычислить используя Counter. Эти данные дают четкое представление о работе системы на дистанции. Рассмотрим на примере графика количества ошибок в секунду для двух версий продакшн-системы.
В первой версии было мало ошибок, возможно, не работал аудит. Во второй версии все намного хуже. Можно точно сказать, что есть проблемы, поэтому мы должны откатить эту версию.
Gauge. Метрики похожи на Counter, но мы записываем значения, которые могут как увеличиваться, так и уменьшаться. Например, время выполнения запросов или размер очереди.
На графике пример времени отклика (latency). По графику видно, что версии похожи, с ними можно работать. Но если приглядеться, то заметно, как меняется величина. Если время выполнения запросов увеличивается при добавлении пользователей, то сразу понятно, что есть проблемы — раньше такого не было.
Summary. Один из важнейших показателей для бизнеса — перцентили. Метрика показывает, что в 95% случаев наша система работает так, как мы хотим. Мы можем смириться, если где-то проблемы, потому что понимаем общую тенденцию, насколько все хорошо или плохо.
Инструменты
Prometheus. Хорошо себя проявил в Infobip. Он позволяет реализовать многомерные метрики, потому что используются лейблы.
Анализ версий
Есть несколько стратегий анализа версий.
Смотреть метрики только canary-ноды. Один из простейших вариантов: задеплоили новую версию и изучаем только работу. Но если инженер в это время начнет изучать логи, постоянно нервно перезагружая страницы, то это решение ничем не отличается от остальных.
Canary-нода сравнивается с любой другой нодой. Это сравнение с другими инстансами, которые работают на полном трафике. Например, если с маленьким трафиком дела обстоят хуже, или не лучше, чем на реальных инстансах, то что-то не так.
Canary-нода сравнивается с собой в прошлом. Ноды, выделенные для canary, можно сравнивать с историческими данными. Например, если неделю назад все было хорошо, то можем ориентироваться на эти данные, чтобы понять текущую ситуацию.
Автоматизация
Мы хотим освободить инженеров от ручного сравнения, поэтому важно реализовать автоматизацию. Процесс деплоя (deployment pipeline) обычно выглядит так:
На этом этапе мы реализуем автоматическое сравнение. Как оно может выглядеть и почему лучше, чем проверка после деплоя, рассмотрим на примере из Jenkins.
Это pipeline к Groovy.
Описание метрики. Посмотрим, как может выглядеть функция compare на примере DSL.
Допустим, мы сравниваем количество ошибок и хотим узнать количество ошибок в секунду за последние 5 минут.
У нас есть два значения: базовое и canary-ноды. Значение у canary-ноды — текущее. Базовое — baseValue — это значение любой другой не canary-ноды. Сравниваем значения между собой по формуле, которую ставим исходя из своего опыта и наблюдений. Если значение canaryValue плохое, то деплой не удался, и мы откатываемся.
Зачем это все нужно?
Человек не может проверить сотни и тысячи метрик, тем более сделать это быстро. Автоматическое сравнение помогает проверить все метрики и быстро оповещает о проблемах. Время оповещения критично: если что-то случилось за последние 2 секунды, то ущерб будет не такой большой, как если бы это произошло 15 минут назад. Пока кто-то заметит проблему, напишет в поддержку, а поддержка нам, чтобы откатить, можно потерять клиентов.
Если процесс прошел и все хорошо, мы деплоим все остальные ноды автоматически. В это время инженеры не делают ничего. Только когда они запускают canary, решают, какие метрики взять, сколько по времени делать сравнение, какую стратегию использовать.
Если возникли проблемы — автоматически откатываем canary-ноду, работаем на прошлых версиях и исправляем ошибки, которые нашли. По метрикам их легко найти и увидеть ущерб от новой версии.
Препятствия
Реализовать это, конечно, непросто. Прежде всего нужна общая система мониторинга. У инженеров свои метрики, у поддержки и аналитиков — другие, у бизнеса третьи. Общая система — это общий язык, на котором разговаривают бизнес и разработка.
Нужно проверить на практике стабильность метрик. Проверка помогает понять, какой минимальный набор метрик нужен, чтобы обеспечить качество.
Как этого достичь? Использовать canary-сервис не в момент деплоя. Добавляем на старой версии некий сервис, который в любой момент времени сможет взять любую выделенную ноду, уменьшить трафик без деплоя. После сравниваем: изучаем ошибки и ищем ту грань, когда мы достигаем качества.
Какую пользу мы получили от canary-релизов
Минимизировали процент ущерба от багов. Большинство ошибок деплоя происходит из-за несогласованности каких-то данных или приоритета. Таких ошибок стало намного меньше, потому что мы можем решить проблему в первые секунды.
Оптимизировали работу команд. У новичков есть «право на ошибку»: они могут деплоить в продакшн без страха ошибиться, появляется дополнительная инициатива, стимул работать. Если они что-то сломают, то это будет не критично, а ошибившегося не уволят.
Автоматизировали деплой. Это уже не ручной процесс, как раньше, а настоящий автоматизированный. Но он проходит дольше.
Выделили важные метрики. Вся компания, начиная от бизнеса и инженеров, понимает, что действительно важно в нашем продукте, какие метрики, например, отток и приток пользователей. Мы контролируем процесс: тестируем метрики, вводим новые, смотрим, как работают старые, чтобы строить систему, которая будет зарабатывать деньги производительнее.
У нас много классных практик и систем, которые нам помогают. Несмотря на это, мы стремимся быть профессионалами и делать свою работу качественно, вне зависимости от того, есть у нас система, которая нам поможет, или нет.
Инженерные подходы и практики — основной фокус конференции TechLead Conf. Если вы достигли успехов на пути к техническому совершенству и готовы рассказать, что вам в этом помогло, — подавайте заявку на доклад.
TechLead Conf пройдет 8 и 9 июня онлайн. Карантин не повод останавливать профессиональное общение, поэтому сейчас мы как раз тестируем новые форматы и к июню будем во всеоружии, чтобы конференция была именно конференцией — с вопросами, дискуссиями и нетворкингом.

















