Rolling update что это
Лучшие rolling release Linux дистрибутивы
Большинство операционных систем Linux обновляются стандартно — с помощью новых релизов. Прежде чем стать доступными для широкого круга пользователей, они проходят тестирование, поэтому отличаются надёжностью и стабильностью. Однако есть у них и недостаток — устаревшее ПО. Устанавливая дистрибутив, релиз которого состоялся полгода назад, пользователь получает работоспособные, но менее функциональные приложения (те же браузеры и месседжеры регулярно обрастают новыми «фишками»). Чтобы установить последние версии программ, приходится вручную скачивать пакеты с официальных сайтов и инсталлировать их в систему.
Однако существуют ОС, в которых обновление происходит постоянно (иногда по нескольку раз в день). Устанавливая их, пользователь может быть уверен, что на его компьютере появится самое свежее программное обеспечение и будет оставаться таким всегда (при условии регулярной установки обновлений, предлагаемых разработчиками). Такая модель обновлений носит название rolling release. В этой статье мы собрали лучшие rolling release Linux дистрибутивы.
Лучшие rolling release дистрибутивы Linux
На данный момент существует больше 40 дистрибутивов Linux, обновляющихся по модели rolling release. Представляем вашему вниманию лучшие из них.
1. Manjaro Linux
Дистрибутив, созданный на основе Arch. Ориентирован на процессоры с 64-битной архитектурой. Существуют также 32-битные редакции, поддерживаемые сообществом. В официальной версии представлены три окружения рабочего стола: KDE Plasma, Xfce и Gnome. В неофициальной: Awesome, Cinnamon, Budgie, LXDE, Mate, Openbox, LXQt, Bspwm. В качестве менеджера пакетов используется Pacman, но, начиная с релиза 17.1.12, доступна ещё и система управления пакетами Snappy.
Главная особенность Manjaro заключается в том, что пользователь может установить сразу несколько ядер и переключаться между ними в меню Grub.
2. Zenwalk Linux
Небольшой, быстрый и современный дистрибутив для машин с процессорами x86_64. Ориентирован на использование в качестве домашней ОС, но также предоставляет много возможностей пользователям, занимающимся разработкой ПО. Окружение рабочего стола по умолчанию — Xfce. Для управления программным обеспечением предназначен пакетный менеджер TXZ. Основой для Zenwalk послужила одна из самых старых операционных систем Linux — Slackware, которой долгое время пользовался основатель проекта.
3. Arch Linux
Легковесный дистрибутив с очень гибкими настройками. Оптимизирован под архитектуру x86_64. Графическое окружение можно выбрать на свой вкус из семи доступных вариантов: Cinnamon, Enlightenment, Gnome, KDE, LXDE, Mate, Xfce. Существует несколько версий Arch: десктопная, серверная и для Raspberry Pi.
«Из коробки» пользователи получают голую операционную систему с консолью и минимальным набором предустановленных пакетов. Всё необходимое ПО нужно устанавливать самостоятельно, так что Arch вряд ли подойдёт тем, кто никогда не имел дела с Linux.
4. CentOS
CentOS разработана на основе кодов Red Hat Enterprise Linux и почти идентична ей, но является бесплатной операционной системой. Она включает в себя менеджеры пакетов Flatpak и RPM, окружения рабочего стола Gnome и KDE. Подходит для машин с процессорами aarch64, ppc64le, x86_64.
Обновления по методу rolling release доступны только для ветки CentOS, получившей название Stream. Она содержит изменения, которые в будущем будут внесены в новые выпуски RHEL.
5. Kali Linux
Дистрибутив с огромным набором инструментов для социальной инженерии, обратной разработки, криминальной экспертизы, проверки безопасности IT-систем. Идеально подходит для установки на серверы и рабочие станции. Основан на Debian (testing).
Кроме архитектур i686 и x86_64 поддерживает ARM. В зависимости от версии ОС доступны разные окружения рабочего стола, среди которых Enlightenment, Gnome, KDE Plasma, LXDE, Mate, Xfce. Для управления программным обеспечением предусмотрен менеджер пакетов Deb.
6. Anarchy Linux
Это дистрибутив, основанный на Arch и во многом его повторяющий. Имеет серверную и десктопную версии. От «родителя» выгодно отличается наличием текстового установщика — он позволяет выбрать версию графической оболочки и настроить основные конфигурации системы, не имея навыков работы в консоли.
Пользователям доступны четыре графические оболочки: Budgie, Cinnamon, Gnome, Xfce. Для установки и удаления пакетов предназначен менеджер Pacman. Anarchy Linux будет работать на компьютерах с архитектурой процессора x86_64.
7. ОpenSUSE Tumbleweed
Tumbleweed был создан как дополнение к основной линейке дистрибутивов openSUSE. Разработчики хотели удовлетворить нужды пользователей, которым нужны новейшие версии приложений, ядра и прочего ПО, поэтому реализовали в этой ОС обновления по модели rolling release. Установка Tumbleweed возможна на машины с процессорами Intel (32 и 64 бита), а также POWER (ppc64 и ppc64le).
В качестве менеджера пакетов задействован RPM (zypper). Доступно два окружения рабочего стола: KDE Plasma и Gnome. Также сообщество разработало следующие инструменты:
8. Feren OS
Красивый, удобный, легковесный и простой в использовании дистрибутив, созданный на базе Debian и ядра Ubuntu, c графическим окружением Cinnamon и KDE Plasma. Он предназначен для процессоров i686, x86_64. Управление пакетами осуществляется при помощи менеджера пакетов Deb (apt).
Feren OS использует псевдо-модель роллинг-релизов, поэтому пользователи получают обновления в виде патчей некоторых программ, а не всей системы.
9. Gentoo Linux
Универсальный мета-дистрибутив. Подходит для большинства компьютеров, поскольку поддерживает архитектуру процессоров i686, x86_64, alpha, arm, hppa, ia64, ppc, sparc, а также s390 (экспериментально). Существуют десктопный и серверный варианты. Gentoo использует BSD-подобную систему управления пакетами — Portage, которая позволяет получить полный контроль над программным обеспечением.
В этой ОС доступны следующие окружения рабочего стола: KDE, Cinnamon, Gnome, LXDE, TDE, Xfce, Mate, Lumina, LXQt, DDE, Unity, Pantheon, Budgie.
10. Solus
Дистрибутив разработан для современных машин с процессорами, имеющими 64-битную архитектуру. В качестве графической оболочки выступает Budgie, также доступны KDE Plasma, Mate и Gnome. Стандартный менеджер пакетов — eopkg, являющийся ответвлением pisi. Также есть возможность устанавливать приложения из репозиториев Flatpak и Snappy.
Solus рекомендован для домашнего использования, но подойдёт и разработчикам ПО. Этот дистрибутив поддерживает множество инструментов для написания и редактирования кода (в том числе, Atom, Idea, GNOME Builder, Qt Creator, Visual Studio Code, а также Bazaar, Git, Mercurial, SVN).
Выводы
Тем, кто хочет установить дистрибутив Linux rolling release, есть из чего выбрать. Впрочем, новичкам в мире Linux нужно быть осторожными — такие дистрибутивы могут неожиданно «выходить из строя» и требовать самостоятельной починки, например, ручной переустановки драйверов.
Русские Блоги
Kubernetes Rolling Обновление боя
1. Фон
2. Шаги
2.1 Развертывание начальной версии Развертывание.
YAML начального развертывания выглядит следующим образом:
2.2 Обновите первоначальную версию.
Обновление до 2.4.31, YAML выглядит следующим образом:
Заметим еще раз позже:
В этом процессе мы обнаружим, что ReplicaSet развертывание-развертывание-5fb9c69c5c постепенно заменяется развертыванием-развертывание-54766f574f. После создания новой версии модуля первоначальная версия модуля прекращается. Это гладкий процесс обновления. Kubernetes предоставляет два параметра maxSurge и maxUnavailable для точного управления количеством замен Pod.
Откат версии 2.3.
По умолчанию Kubernetes сохранит только самые последние версии. В описанном выше процессе обновления количество ревизий устанавливается с помощью revisionHistoryLimit. Давайте посмотрим на команду:
Продолжайте обновлять. Новая версия YAML выглядит следующим образом:
Выполните обновление и запишите журнал обновлений.
Измените версию образа в файле YAML, чтобы продолжить обновление, и просмотрите результат обновления:
Образы httpd были обновлены до 2.4.35, затем мы пытаемся откатиться до версии v2:
3. Резюме
3.1 Еще раз убедившись в прелести Kubernetes, обновление / выпуск / обновление в оттенках серого при нормальной работе (остановка экземпляров старых версий в пакетном режиме, включение экземпляров новых версий, сосуществование с новыми и старыми версиями, постепенное расширение диапазона новых версий и, наконец, всех пользователей Миграция на новую версию), сине-зеленое обновление / выпуск / обновление (не останавливайте старую версию и не развертывайте новую версию, новая версия будет удалена после выпуска теста), переход на обновление / выпуск / обновление (одна или несколько служб) Остановите, выполните обновление и постепенно используйте новую версию, а затем начните снова и снова и, наконец, завершите обновление версии всех экземпляров во всем кластере). Эти концепции более понятны.
3.2 В настоящее время некоторая информация больше не применима к новой версии. Не вводите в заблуждение информацию в Интернете. Вы должны опираться на официальные документы и системную помощь. Например:
Команды, связанные с Deploy в Kubernetes:
Развернуть доступные типы ресурсов:
3.3 Развертывание обновления также может быть достигнуто через YAML, который будет представлен в последующих статьях.
Kubernetes: типы Deployment Strategies и Argo Rollouts
Одна из целей, которые мы преследуем внедряя ArgoCD в Kubernetes – использование новых Deployment Strategies для наших приложений.
Ниже рассмотрим типы деплойментов в Kubernetes, как работают Deployment в Kubernetes, и быстрый пример использования Argo Rollouts, который более детально будем рассматривать в следущих постах.
Deployment Strategies и Kubernetes
Кратко рассмотрим стратегии деплоя, имеющиеся в Kubernetes.
Также, Kubernetes позволяет реализовать аналоги Canary и Blue-Green deployments, хотя с ограничениями.
Recreate
Тут всё достаточно просто: при этой стратегии, Kubernetes останавливает все запущенные в Deployment поды, и на их месте запускает новые.
Очевидно, что при таком подходе будет определённый даунтайм : пока остановятся старые поды (см. Pod Lifecycle — Termination of Pods), пока запустятся новые, пока они пройдут все Readiness проверки – приложение будет недоступно для пользователей.
Имеет смысл использовать его, если ваше приложение не может функционировать с двумя разными версиями одновременно, например из-за ограничений работы с базой данных.
Пример такого деплоймента:
Деплоим version: «1.0» :
Оба пода убиваются, и затем создаются новые:
Rolling Update
С RollingUpdate всё немного интереснее: тут Kubernetes запускает новые поды параллельно с запущенными старыми, а затем убивает старые, и оставляет только новые. Таким образом, в процессе деплоя некоторое время одновременно работают две версии приложения – и старое, и новое. Является типом по-умолчанию.
При таком подходе получаем zero downtime, так как в процессе обновления часть подов со старой версией остаётся жива.
Из недостатков – могут быть ситуации, когда такой подход неприменим. Например, если при старте подов выполняются MySQL-миграции, которые меняют схему базы данных таким образом, что предыдущая версия приложения не сможет её использовать.
Пример такого деплоймента:
Стабильность и преимущества Rolling release
Каждую неделю такие треды создаются. Неужели ничего не нашёл?
Использовал поиск гугла по сайту, треды были но древние, буду рад ссылке + я искал именно в контексте арча, хотя и общие темы сойдут.
Пользую генту с роллингом уже более 15 лет. Проблем не было особо. Ну, если только ты их сам себе не создашь.
Ищи просто про Роллинг.
Я уже раза четыре пытался пересесть на федору, но каждый раз возвращаюсь на арч. Ни разу меня не подвел с пакетами в отличие от федоры. Мне нужно много софта для радиолюбителей, всяких модулей, и даже с AUR проблем возникает немного, и они все некритичны. Быстрый цикл обновлений это здорово, даже если тебе софт сломали, это значит, могут через два часа починить.
Про федору с dnf не хочется вспоминать, и хоть красношапка молодцы, мне их дистриб нравится, но мне спокойнее на арч в обнимку с archwiki. Как-никак, 9 лет уже юзаю.
я поклонник арча, но сейчас держу его у себя только второй системой, для души, поковырять и понастраивать линукс (поиздеваться, сломать, откатить, или заставить работать, да и шустрый он, пакман сила). А основная система та, которая работает постоянно, в моём случае на одном ноуте убунту, на втором дебиан. ЗЫ мне не улыбается ковырять арч в тот момент, когда мне комп нужен срочно, хотя арч это сила, признаю
Быстрый цикл обновлений это здорово, даже если тебе софт сломали, это значит, могут через два часа починить.
Что-то одно из другого совсем не следует. Если тебе софт сломали, это совсем не значит, что его могут через два часа починить.
Кстати, мне как сидящему на KDE neon будет очень интересно субъективное сравнение стабильности неона с арчиком, если кто вдруг имеет опыт.
Давай по порядку. Обновления в арче не такие ломучие, как малюют хейтеры. И если ты боишся, что система грохнется в ответственный момент — нее обновляй ее. Обновишься чуть позже, ничего страшного. И можно периодически делать тарболы корневого раздела (или снапшоты, в случае с btrfs). А роллинг считают преимуществом, потому что система не грохнется при обновлении между мажорными релизами и у теба всегда одна версия пакетов — последняя. Но лично я выбрал арч за его простоту и гибкость. И отсутствие ненужного хлама. Все, что тебе надо, ты ставишь сам. Плюс, шикарная документация (правда, ее лучше читать на английском).
Вот и я выбираю его по тем же причинам, вопрос в роллинге
Согласен, признаю) Но я не видел еще дистрибутивов, наверное, кроме генты, где обновления пакетам приходят так часто и быстро. Потому как роллинг-релиз.
Про роллинг я уже написал. Бэкапишься и не трогаешь систему, когда его работоспособность критична.
Ага, спасибо. А в целом, как часто обновляться, мне вот каждый день не удобно, раз в 2 недели пойдёт, или может всё развалиться? Обязательно ли при этом каждый раз читать арчевый хоумпейдж?
В принципе, можно и раз в месяц. Но нежелательно совсем забивать на это дело. Иначе, потом окажется, что проще накатить заново, чем пытаться разрулить баги. Это особеннойсть роллинга.
Отличный совет (не обязательно обновляться сразу же), который очень редко проскакивает в любом линукс-комьюнити.
зато следует то, что когда в арче уже новая испраленная версия дров/софта, в штабле всё ещё протухнхая и нужно бегать с горщим задом в поисках реп от васянов с обновлениями
Да, в этих дебианах все протухшее и не рабочее.
Бояться нечего. Это же линукс. Даже стейбл там нестабилен.
Такое быть может, я про праздник. Но ты перед и во время важной работы не обновляйся просто.
все советуют обновляться ежедневно
И замучаешься, и не нужно. Обновляйся когда почувствуешь тягу к новому.
арчеводов по безопасному обновлению
Ну сломалось, если уж совсем что-то критичное, то просто заново накати систему, ничего страшного.
Бывалый «арчевод» в теме, поясню за дистрибутив.
С «арчем» больших проблем нету последние лет пять, ибо схема наконец-то отработана за почти двадцать лет, да и перемен навроде внедрения Systemd уже нету. Конечно, вылезают иногда косяки, но! Есть один хороший сайт, называется archlinux.org/news. Если такие косяки вылезают на свет Божий, то в этом разделе об этом тут же указывается вместе с инструкцией по «починке» (которая обычно умещается в одну команду).
Также есть нубский вопрос по частоте обновлений, все советуют обновляться ежедневно, но есть ли способы безопасно обновляться скажем раз в месяц?
Да. Главное — пересматривать вышеуказанный сайт на предмет «сюрпризов» и всё будет нормально. Хотя всё-таки лучше хотя бы раз в две недели обновляться, так меньше шансов нарваться на какой-то косяк.
Также приветствуются советы арчеводов по безопасному обновлению, бэкап пакетов и т.п.
Лично мне пока что не приходилось пользоваться бэкапами (ибо веселее переустановить), но в качестве начального способа порекомендовал бы именно способ с архивированием в tar либо же протоколом rsync. Btrfs — не так надёжно, как хотелось бы, LVM — для новичка сложновато, ибо нужно ещё научиться логические разделы делать, причём вручную.
Кстати, мне как сидящему на KDE neon будет очень интересно субъективное сравнение стабильности неона с арчиком, если кто вдруг имеет опыт.
В разы лучше. Ибо KDE neon основан на Ubuntu LTS, и как следствие, разработчики применили немало «корчен-тулинга», чтобы собрать это воедино со свежайшими «кедами» и заставить работать. В Arch с этим проще, ибо патчи от разработчиков дистрибутива если и есть, то минимальны, а значит, всё работает именно так, как задумали создатели DE.
Да, абсолютно, поэтому просто не надо обновляться когда не готов к расхлебыванию.
Также есть нубский вопрос по частоте обновлений, все советуют обновляться ежедневно, но есть ли способы безопасно обновляться скажем раз в месяц?
В месяц без проблем, можно даже раз в несколько месяцев, но тут уже могут быть проблемки, требующие ручного вмешательства.
Также приветствуются советы арчеводов по безопасному обновлению, бэкап пакетов и т.п.
В системе есть кэш пакетов, он же и простейший штатный бекап. После обновления старые пакеты останутся лежать в кеше и могут быть оттуда установлены назад.
и все вернется в зад.
Это если вручную, а так есть утилиты которые сами все это делают, о них можно почитать в Arch Wiki.
безопасно обновляться скажем раз в месяц?
Такой вопрос арчеводам, если его не обновлять, скажем года 2, то он потом обновляется нормально?
раз в 2 недели пойдёт, или может всё развалиться?
Я на одном компе раз в полгода обновляюсь. На другом раз в два месяца. Когда душа лежит.
Крайне рискованно. Скорее будут проблемы, чем нет. Хотя бывает всякое.
Есть мнение, что если у тебя нет ауров, то всё нормально обновится. Но кто его знает? Никто не тестит такое.
Понятно, в этом и есть основная проблема роллинга, забыть про систему на ндцать лет не получится. В дебиане с этим проще, даже если система осталась на тестинге или сиде, то через несколько лет обновляешся до следующего стабильного релиза, а потом снова тестинг если надо.
Ауры и вики это лучшее что есть в арче)))
Иначе, потом окажется, что проще накатить заново, чем пытаться разрулить баги.
Не сталкивался с таким на арче
Года два — не думаю. Ибо в пакетах постепенно будут мельчайшие изменения наподобие сегодняшнего nss, потом устанете это разгребать.
в этом и есть основная проблема роллинга, забыть про систему на ндцать лет не получится
Это проблема любой системы в принципе, за любым механизмом надо ухаживать.
В дебиане с этим проще, даже если система осталась на тестинге или сиде, то через несколько лет обновляешся до следующего стабильного релиза, а потом снова тестинг если надо.
Как раз таки с «дебианом» будет куда больше проблем. Не раз и не два я видел темы, где люди жаловались на разнообразные косяки, которые повылезали с обновлением до той же «десятки».
Стратегии деплоя в Kubernetes: rolling, recreate, blue/green, canary, dark (A/B-тестирование)
Прим. перев.: Этот обзорный материал от Weaveworks знакомит с наиболее популярными стратегиями выката приложений и рассказывает о возможности реализации наиболее продвинутых из них с помощью Kubernetes-оператора Flagger. Он написан простым языком и содержит наглядные схемы, позволяющие разобраться в вопросе даже начинающим инженерам.
Схема взята из другого обзора стратегий выката, сделанного в Container Solutions
Одной из самых больших проблем при разработке cloud native-приложений сегодня является ускорение деплоя. При микросервисном подходе разработчики уже работают с полностью модульными приложениями и проектируют их, позволяя различным командам одновременно писать код и вносить изменения в приложение.
Более короткие и частые развертывания имеют следующие преимущества:
В этой публикации мы обсудим различные стратегии деплоя в Kubernetes, в том числе rolling-развертывания и более продвинутые методы, такие как канареечные (canary) выкаты и их разновидности.
Стратегии деплоя
Существует несколько различных типов стратегий развертывания, коими можно воспользоваться в зависимости от цели. Например, вам может потребоваться внести изменения в некое окружение для дальнейшего тестирования, или в подмножество пользователей/клиентов, или возникнет необходимость провести ограниченное тестирование на пользователях, прежде чем сделать некую функцию общедоступной.
Rolling (постепенный, «накатываемый» деплой)
Это стандартная стратегия развертывания в Kubernetes. Она постепенно, один за другим, заменяет pod’ы со старой версией приложения на pod’ы с новой версией — без простоя кластера.
Kubernetes дожидается готовности новых pod’ов к работе (проверяя их с помощью readiness-тестов), прежде чем приступить к сворачиванию старых. Если возникает проблема, подобное накатываемое обновление можно прервать, не останавливая всего кластера. В YAML-файле с описанием типа deployment’а новый образ заменяет собой старый образ:
Параметры накатываемого обновления можно уточнить в файле манифеста:
Recreate (повторное создание)
В этом простейшем типе развертывания старые pod’ы убиваются все разом и заменяются новыми:
Соответствующий манифест выглядит примерно так:
Blue/Green (сине-зеленые развертывания)
Стратегия сине-зеленого развертывания (иногда ее ещё называют red/black, т.е. красно-чёрной) предусматривает одновременное развертывание старой (зеленой) и новой (синей) версий приложения. После размещения обеих версий обычные пользователи получают доступ к зеленой, в то время как синяя доступна для QA-команды для автоматизации тестов через отдельный сервис или прямой проброс портов:
После того, как синяя (новая) версия была протестирована и был одобрен ее релиз, сервис переключается на неё, а зеленая (старая) сворачивается:
Canary (канареечные развертывания)
Канареечные выкаты похожи на сине-зеленые, но лучше управляются и используют прогрессивный поэтапный подход. К этому типу относятся несколько различных стратегий, включая «скрытые» запуски и А/В-тестирование.
Эта стратегия применяется, когда необходимо испытать некую новую функциональность, как правило, в бэкенде приложения. Суть подхода в том, чтобы создать два практически одинаковых сервера: один обслуживает почти всех пользователей, а другой, с новыми функциями, обслуживает лишь небольшую подгруппу пользователей, после чего результаты их работы сравниваются. Если все проходит без ошибок, новая версия постепенно выкатывается на всю инфраструктуру.
Хотя данную стратегию можно реализовать исключительно средствами Kubernetes, заменяя старые pod’ы на новые, гораздо удобнее и проще использовать service mesh вроде Istio.
Например, у вас может быть два различных манифеста в Git: обычный с тегом 0.1.0 и «канареечный» с тегом 0.2.0. Изменяя веса в манифесте виртуального шлюза Istio, можно управлять распределением трафика между этими двумя deployment’ами:
Пошаговое руководство по реализации канареечных развертываний с помощью Istio можно найти в материале GitOps Workflows with Istio. (Прим. перев.: Мы также переводили материал про канареечные выкаты в Istio здесь.)
Канареечные развертывания с Weaveworks Flagger
Weaveworks Flagger позволяет легко и эффективно управлять канареечными выкатами.
Flagger автоматизирует работу с ними. Он использует Istio или AWS App Mesh для маршрутизации и переключения трафика, а также метрики Prometheus для анализа результатов. Кроме того, анализ канареечных развертываний можно дополнить вебхуками для проведения приемочных (acceptance) тестов, нагрузочных и любых других типов проверок.
На основе deployment’а Kubernetes и, при необходимости, горизонтального масштабирования pod’ов (HPA), Flagger создает наборы из объектов (deployment’ы Kubernetes, сервисы ClusterIP и виртуальные сервисы Istio или App Mesh) для проведения анализа и реализации канареечных развертываний:
Реализуя контур управления (control loop), Flagger постепенно переключает трафик на канареечный сервер, параллельно измеряя ключевые показатели производительности, такие как доля успешных HTTP-запросов, средняя продолжительность запроса и здоровье pod’ов. Основываясь на анализе KPI (ключевых показателей эффективности), канареечная часть либо растет, либо сворачивается, и результаты анализа публикуются в Slack. Описание и демонстрацию этого процесса можно найти в материале Progressive Delivery for App Mesh.
Dark (скрытые) или А/В-развертывания
Скрытое развертывание — еще одна вариация канареечной стратегии (с ней, кстати, Flagger тоже может работать). Разница между скрытым и канареечным развертыванием состоит в том, что скрытые развертывания имеют дело с фронтендом, а не с бэкендом, как канареечные.
Другое название этих развертываний — А/В-тестирование. Вместо того, чтобы открыть доступ к новой функции всем пользователям, ее предлагают лишь ограниченной их части. Обычно эти пользователи не знают, что выступают тестерами-первопроходцами (отсюда и термин «скрытое развертывание»).
С помощью переключателей функциональности (feature toggles) и других инструментов можно следить за тем, как пользователи взаимодействуют с новой функцией, увлекает ли она их или они считают новый пользовательский интерфейс запутанным, и другими типами метрик.
Flagger и A/B-развертывания
Помимо маршрутизации с учётом весов, Flagger также может направлять на канареечный сервер трафик в зависимости от параметров HTTP. При А/В-тестировании можно использовать заголовки HTTP или файлы cookie для перенаправления определенного сегмента пользователей. Это особенно эффективно в случае frontend-приложений, требующих привязки сессии к серверу (session affinity). Дополнительную информацию можно найти в документации Flagger.
Автор выражает благодарность Stefan Prodan, инженеру Weaveworks (и создателю Flagger), за все эти потрясающие схемы деплоя.