Словник для прогресивної доставки: Canary, Feature Flags, і Dark Launch

Освоєння англійської лексики щодо поступової доставки — канарські випуски, кільце розгортання, прапорці можливостей, темний запуск, перемикач аварійного завершення роботи і багато іншого для інженерних команд.

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

Якщо ви працюєте в інженерії платформ, інженерії продукту або DevOps, ви постійно стикаєтеся з прогресивним словником доставки: в обговореннях архітектури, пост-мортемах інциденту, сесіях планування функцій і оцінці інструментів. У цьому довіднику описано основні терміни, а також контекст, у якому вам слід їх використовувати.

Що таке прогресивна доставка?

Традиційне розгортання є двійковим: нова версія або розгортається, або не розгортається. Прогресивно-доставка додає третій вимір: кому і скільки. Це змінює профіль ризику кожного випуску.

«Прогресивно-поступова доставка — це постійна доставка, де нові версії розгортаються для підмножини користувачів і оцінюють перед повним розгортанням»

— Джеймс Губернатор, вперше вжив цей термін у 2018 році

Основний словник

1. Європейський Союз Канарські острови (англ. Canary Islands, ісп

Вимова: /ˈkænəri rɪˈliːs/

Маршрутизація невеликого відсотка виробничого трафіку — зазвичай 1-5% — до нової версії, в той час як більшість користувачів продовжують використовувати стабільну версію. Названо на честь історичної практики відправки канарій у вугільні шахти для виявлення небезпечних газів перед відправкою людей.

Використання: “Ми робимо випуск канарій — 2% трафіку йде на v2.4. Ми будемо контролювати рівень помилок протягом 30 хвилин перед розширенням. ”

** Ключові фрази: **

    • « Запустити канарію » * — виконати розгортання канарії
    • « Канарський трафік » * — підмножина трафіку, який буде маршрутизовано до нової версії
    • « Аналіз канарій » * — порівняння показників між канарійкою і базовим рівнем
    • « Продувати канарею » * — розширити канарею для більшого трафіку
  • “Время выпечки” — период наблюдения для канарейки перед продвижением по службе

2. Розгортання кільця

Багатоетапна стратегія розгортання, за якої ви випускаєте програму для поступово збільшуючихся ** кіл ** користувачів — від внутрішніх, до бета- користувачів, до невеликого відсотка виробництва, до повного виробництва. Поширений у широкомасштабних платформах (Azure, Windows, Microsoft 365).

Типові кільця:

  • ** Кільце 0 (Канарія): ** Тільки внутрішні працівники
  • ** Кільце 1 (Ранні користувачі):** Включені бета-користувачі
  • ** Кільце 2 (Мале виробництво):** 1-5% виробництва
  • Кільце 3 (ширше виробництво): 20-50%
  • Кільце 4 (повне виробництво): 100%

** Використання: ** * “Ця зміна проходить через всі чотири кола. Перевірка кільця 0 займає 24 години, потім ми відкриваємо бюджет помилок перед підвищенням до кільця 1. “*

3-й. Прапорець можливості / Перемикання можливості

Вимова: /ˈfiːtʃə flæɡ/

Механізм, який дозволяє увімкнути або вимкнути функціональність під час виконання без розгортання нового коду. Прапорці можливостей відокремлюють розгортання від випуску — ви можете відправити код до виробництва без активації для користувачів.

** Типи прапорців можливостей: **

  • ** Release flag ** — тимчасовий прапорець для керування розгортанням нової можливості; вилучається після повного випуску
  • ** Прапорець експерименту ** — використовується для A/ B- тестування
  • ** Ops flag ** — використовується для керування поведінкою системи у виробничих умовах (наприклад, вимикання можливості під час високого навантаження)
  • ** Прапорець дозволів ** — керує доступом до функцій для певних груп користувачів

** Використання: ** * “Новий поток отримання знаходиться за прапорцем можливості. Ми ввімкнемо його для 10% користувачів і будемо стежити за ступенем конверсії перед розширенням».*

4. Темний запуск

Розгортання нового коду до виробничого стану і маршрутизація справжнього виробничого трафіку через нього, але не показування результатів користувачам. Система обробляє запит двічі — один раз зі старим кодом (показаним користувачеві) і один раз з новим кодом (результати відкидаються або записуються у журнал). Використовується для перевірки швидкодії і коректності перед тим, як функція стане видимою.

** Використання: ** * “Ми запустили новий алгоритм ранжування пошуку на два тижні. Новий код обробляв 40 мільйонів запитів без будь-яких помилок, перш ніж ми вивели результати користувачам. ”*

** Порівняльні терміни: **

    • « Режим тіней » * — синонім для темного запуску
    • « Тіньовий трафік » * — трафік, надісланий до нової системи під час темного запуску
  • “Тіньове тестування” — практика темного запуску для перевірки

5. Перемикач вимикання

Механізм для негайного і повного вимикання можливості, інтеграції або компонента служби — зазвичай, прапорець можливості встановлено у глобальному стані « вимкнути ». Автоматичний вимкнення - це механізм безпеки, а не плановий крок розгортання.

** Використання: ** * “Ми встановили перемикач аварійного завершення роботи для інтеграції з новим постачальником платіжних послуг. Якщо після запуску рівень помилок підвищиться, інженер-поклик може вимкнути його за 30 секунд без розгортання. ”*

** Порівняльні фрази: **

    • « Натиснути перемикач зупинки » * / * « Перевернути перемикач зупинки » * — активувати його
    • “Встановити аварійний вимкнення” * — підготуйте його, щоб його можна було швидко активувати
    • « Перемикач аварійного вимикання активовано » * — перемикач готовий до використання

6-й. Поступове розгортання / Progressive Rollout

Стратегія випуску, за якої нова версія буде ввімкнено для поступово зростаючого відсотка користувачів з часом — наприклад, 1% → 5% → 25% → 100%, з автоматичним або ручним підвищенням на кожному етапі.

Використання: “Ми робимо поступове впровадження з автоматичним підвищенням кожних 24 годин, з урахуванням рівня помилок, що залишається нижче 0,1%.“

7-й. Вхідні ворота / Gate of Entry

Контрольна точка у поступовому розгортанні, де певні параметри мають бути у прийнятних межах, перш ніж розгортання може перейти до наступного етапу. Ворота можуть бути ручними (людина схвалює) або автоматичними (метрики тригерного просування).

** Використання: ** *“Шлюз розгортання перевіряє затримку P99, частоту помилок і аварії, про які повідомляє користувач. Всі три повинні бути зеленими протягом 30 хвилин перед автоматичним підвищенням до наступного кола. *

8. Розділення руху

Технічний механізм розділення вхідних запитів між двома або більше версіями служби. Реалізовано на рівні балансувальника навантаження, мережі служб або API- шлюзів.

** Методи: **

  • ** Розділення за відсотками: ** 95% до v1, 5% до v2
  • ** Маршрутизація за заголовками: ** Запити з певним заголовком надсилаються до v2
  • ** Засноване на атрибутах користувача: ** Користувачі у певному регіоні або з певним планом
  • ** Прилиплі сеанси: ** Один і той же користувач завжди переходить до однієї і тієї ж версії

9-й. Синій/зелений розгортання

Запуск двох ідентичних виробничих середовищ (синій = поточний, зелений = новий). Трафік перемикається з синього на зелений за однією атомною операцією. На відміну від канарки, синій/зелений не є поступовим — це повний перехід. Перевага - миттєвий відкат: повернення потоку даних до синього.

** Використання: ** “Ми використовуємо синій/зелений для міграції наших баз даних — ми можемо повернути трафік до попередньої версії за менше ніж 10 секунд, якщо щось не так.”

** Порівняйте з канаркою: ** Синій/ зелений — миттєвий і повний; канарка — поступовий і збільшений.

10-й. Тестування A/B / тестування розділення

Контрольований експеримент, у якому випадково поділеним групам користувачів показано два варіанти (A і B), щоб виміряти, який з них краще виконує певну функцію (коефіцієнт перетворення, кількість клацань, залучення). На відміну від канарки (фокусується на стані системи), A / B тестування вимірює ** поведінку користувача **.

** Використання: ** “Ми проводимо A/ B- тестування потоку введення. Варіант B показує сторінку з ціною раніше. Нам потрібні 10 000 користувачів на варіант для статистичної значущості.”

Статистична значущість

У A/B тестуванні, рівень довіри, що спостережувана різниця між варіантами є реальною, а не через випадковий випадок. Зазвичай виражається як p-значення нижче 0,05 (95% довіри).

** Використання: ** “Перетворення поліпшення лише 1,2% і ми не досягли статистично значущості — нам потрібен ще один тиждень даних, перш ніж прийняти рішення.”

Дванадцята когорта

Група користувачів, які мають спільну характеристику і які аналізуються разом — зазвичай, її визначають за датою, коли вони вперше були піддані впливу властивості, за їх географією, рівнем плану або іншим атрибутом.

Вживання: “В групі першого тижня було 40% утримання. Щотижнева когорта, яка пережила новий вступ, показує 52% — значне поліпшення. “

13-й. Розробка та впровадження екологічних стандартів

Розгортання гілки функціональності у тимчасове, ізольоване середовище для тестування і перегляду перед об’ єднанням. Також називається середовищем PR або програмами для перегляду.

** Використання: ** *“Кожен PR автоматично отримує розгортання гілки функціональності — рецензенти можуть перевіряти фактичну поведінку без локального перевірки гілки.” *

14-й. Прапор / Flag of the Republic of Belarus

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

** Використання: ** *“У коді є 47 прапорців можливостей. Принаймні 15 застарілих — функції повністю розгорнуті, але прапори і їх кодові гілки все ще там»

15-й. Відступити проти руху вперед

  • ** Відновлення: ** Повернення до попередньої версії, якщо у випуску є проблеми
  • ** Перенесення на наступний день: ** Виправлення проблеми у новому розгортанні замість повернення, оскільки повернення також скасує інші зміни, які вже були внесені у виробничій версії

** Використання: ** “Ми не можемо повернути назад — три інші можливості, які були поставлені в тій же версії, вже використовуються. Ми продовжимо з цільовим виправленням.»

Порядок виконання: послідовний переказ

** Інженер: ** * “Ми плануємо відправити новий рушій рекомендацій наступного тижня. Що таке «Стратегія розгортання»?*

** Release Engineer: ** “Ми розпочнемо з темного запуску — маршрутизувати 5% трафіку в тіньовому режимі протягом 48 годин, щоб порівняти затримку і точність з поточною моделлю. Якщо показники будуть хорошими, ми перевернемо прапорець на 1% канарейку. Розгортання ворота вимагає затримки P99 нижче 200 мс і частоти помилок нижче 0,5% протягом 4 послідовних годин. Якщо всі перевірки пройдуть, ми автоматично підвищимо на 5%, 25%, 100% протягом трьох днів. Kill switch озброєний повсюди — якщо щось підвищується, ми можемо відключити прапор глобально за кілька секунд. “

Ключеві моменти

  • ** Випуск Canary ** надсилає невеликий відсоток трафіку до нової версії; * підвищує* його на основі метрики.
  • ** Кільцеве розгортання ** використовує структуровані кільця (внутрішні → бета → виробничі рівні).
  • ** Прапорці можливостей ** відокремлюють розгортання від випуску — відправте код, а потім контролюйте, коли користувачі побачать його.
  • ** Dark launch ** запускає новий код проти реального трафіку невидимо — ідеально підходить для перевірки коректності і продуктивності перед запуском.
  • ** Kill switch ** - це аварійний перемикач вимикання; активуйте його перед кожним відпуском.
  • ** Синій/ зелений ** дає миттєве повернення; канарець дає поступове зменшення ризику — вони слугують різним цілям.
  • ** Прапорці зберігання ** є технічним боргом — звикайте вилучати прапорці після повного розгортання.

Прогресивно-доставний словник є мовою впевнених, контрольованих випусків програмного забезпечення. Знаючи ці терміни, ви зможете брати участь у обговоренні стратегії розгортання і робити свій внесок у безпечніші випуски.

Поширені запитання

Про що ця стаття "Словник для прогресивної доставки: Canary, Feature Flags, і Dark Launch"?

Освоєння англійської лексики щодо поступової доставки — канарські випуски, кільце розгортання, прапорці можливостей, темний запуск, перемикач аварійного завершення роботи і багато іншого для інженерних команд.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "Словник для прогресивної доставки: Canary, Feature Flags, і Dark Launch"?

Приблизно 8 min.