9 шагов по безопасному развертыванию функций с помощью флагов функций

RedDeveloper
30.12.2022 03:38
9 шагов по безопасному развертыванию функций с помощью флагов функций

В этой статье мы рассмотрим шаги по безопасному развертыванию обновления.

Что вам понадобится

  • Контроллер функций
  • Конфигурация для функции
  • Инфраструктура для развертывания выпусков canary (необязательно; если вы любите играть с огнем без перчаток)

Безопасное развертывание изменений

A summary of steps to rollout features safely
  1. Создайте функцию в контроллере функций для новой функции со значением по умолчанию disabled. Напишите код для новой функции, но за этим новым условием, используя контроллер функций. Теперь код присутствует, но отключен.
  2. Выпустите новый двоичный файл с новым кодом. На этом этапе код присутствует, но находится за флагом и в настоящее время отключен. Неудача на этом этапе потребует возврата к старым двоичным файлам
  3. Теперь обновите конфигурационные файлы, добавьте конфигурацию для функции, но сохраните ее отключенной. Функция все еще должна быть неактивной, и любой сбой на этом этапе потребует возврата к старому файлу конфигурации.
  4. Обновите конфигурацию, чтобы включить функцию для нескольких развертываний canary. Неудачное развертывание потребует прекращения работы канареек.
  5. Обновите оставшиеся развертывания и активируйте эту функцию. Вероятность неудачи на этом этапе минимальна, поскольку функция уже протестирована на пользователях canary.
  6. Теперь измените код так, чтобы значение по умолчанию для функции в контроллере функций было включено. Это не должно иметь никакого значения, поскольку в любом случае конфигурация была включена для этой функции. Неудачное развертывание на этом этапе потребует возврата к предыдущему двоичному файлу.
  7. Обновите файлы конфигурации и удалите ссылки на функцию. Код в любом случае не использует эту конфигурацию в соответствии с шагом 6.
  8. Обновите весь код и удалите условное поведение вокруг этой функции. Неудачное развертывание потребует возврата к предыдущей версии бинарного файла.
  9. Удалите код из контроллера функции.

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

Первоначально опубликовано на s9a.me.

Конечные и Readonly классы в PHP
Конечные и Readonly классы в PHP

23.03.2023 11:48

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

От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React

23.03.2023 08:01

Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои навыки работы с React.

БЭМ: Конвенция об именовании CSS
БЭМ: Конвенция об именовании CSS

23.03.2023 02:41

Я часто вижу беспорядочный код CSS, особенно если проект большой. Кроме того, я совершал эту ошибку в профессиональных или личных проектах и чувствовал, что больше не хочу смотреть на длинный код CSS с нарушенной структурой.

Революционная веб-разработка ServiceNow
Революционная веб-разработка ServiceNow

22.03.2023 13:41

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

Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?

22.03.2023 08:55

Заголовок веб-страницы играет наиболее важную роль в SEO, он помогает поисковой системе понять, о чем ваш сайт.

Конфигурация Jest в angular
Конфигурация Jest в angular

22.03.2023 08:25

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