Развертывание облачных решений

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

Подготовка заинтересованных лиц к развертыванию на основе облака

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

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

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

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

Выполнение облачно-нативных развертываний

Шаги развертывания немного отличаются в зависимости от того, является ли она новой автономной рабочей нагрузкой или обновлением компонентов для существующей системы:

Развертывание новых облачных рабочих нагрузок

  1. Создайте рабочую среду. Используйте конвейер CI/CD для развертывания с помощью конфигурации, протестированной в промежуточном режиме. Используйте те же артефакты сборки, шаблоны IaC и сценарии развертывания, которые прошли проверку в промежуточном режиме. Так как вы развертываете в отдельной среде, создайте все ресурсы Azure с помощью шаблонов IaC, а затем разверните код приложения или артефакты.

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

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

  4. Следите за процессом и постепенно расширяйте. Постепенное развертывание снижает риск и разрешает реальную проверку. Отпустите приложение в небольшую группу канарной группы пользователей. Используйте подсистему балансировки нагрузки для маршрутизации подмножества трафика в новое развертывание. Сбор отзывов и мониторинг производительности. Расширение масштабов или открытие доступа ко всем пользователям после успешной проверки.

Развертывание новых облачных функций в существующей рабочей нагрузке

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

Используйте инкрементальное развертывание для постепенного внедрения внутри текущей среды

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

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

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

  3. Следите за процессом и постепенно расширяйте. Отслеживайте работоспособность приложения, производительность и частоту ошибок с помощью таких средств, как Application Insights или Azure Monitor. Сравните метрики между пользователями и без нее, чтобы обнаружить аномалии. Если проблемы не обнаружены, постепенно увеличьте процент развертывания флага функции или разверните группу пользователей. Повторите мониторинг после каждого увеличения. После полного развертывания выполните окончательную проверку, чтобы обеспечить согласованное поведение во всех экземплярах и сегментах пользователей.

Развертывание новых функций в параллельной среде

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

  1. Создайте параллельную среду (зеленая). Используйте конвейер CI/CD для развертывания с помощью конфигурации, протестированной в промежуточном режиме. Используйте те же артефакты сборки, шаблоны IaC и сценарии развертывания, которые прошли проверку в промежуточном режиме. Так как вы развертываете в отдельной среде, создайте все ресурсы Azure с помощью шаблонов IaC, а затем разверните код приложения или артефакты.

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

  3. Маршрутизация подмножества трафика в параллельную среду. Постепенное развертывание снижает риск и разрешает реальную проверку. Отпустите приложение в небольшую группу канарной группы пользователей. Используйте подсистему балансировки нагрузки для маршрутизации подмножества трафика в новое развертывание. Кроме того, можно предоставить функцию определенному сегменту пользователя с помощью правил маршрутизации или флагов компонентов. Отслеживайте производительность, частоту ошибок и взаимодействие с пользователем с помощью Application Insights или Azure Monitor. Сравните трафик пользователей между голубыми и зелеными средами, чтобы обнаружить регрессии или аномалии.

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

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

Проверка успешности развертывания

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

  1. Проверьте критически важные пути взаимодействия пользователей. Убедитесь, что все ключевые потоки пользователей работают должным образом в динамической среде. Используйте автоматизированные наборы тестов или ручную проверку качества обслуживания для проверки реальных сценариев. Сосредоточьтесь на путях высокой ценности, таких как проверка подлинности, транзакции и рабочие процессы данных. Это тестирование применяется к развертыванию, включающему новую систему или улучшенную существующую.

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

  3. Просмотрите панели мониторинга для оценки состояния системы. Используйте Azure Monitor и Application Insights для проверки журналов и метрик. Найдите аномалии в частоте ошибок, задержке, использовании ЦП или памяти и пропускной способности. Убедитесь, что потоки данных мониторинга проходят правильно и данные не отсутствуют или не неправильно передаются.

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

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

  6. Объявите развертывание только после полной проверки. Считайте развертывание завершённым только после успешной проверки и соответствия системы вашим критериям приемки. При обнаружении проблем исправьте критически важные немедленно. Зафиксируйте незначительные проблемы для их устранения в будущих обновлениях.

Поддержка рабочих нагрузок во время стабилизации

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

  2. Непрерывно отслеживайте системные метрики и отзывы пользователей. Относиться к первым нескольким неделям как к периоду стабилизации. Отслеживайте метрики, такие как ЦП, память, частота ошибок и время отклика с помощью Azure Monitor и Application Insights. Сбор отзывов пользователей через каналы поддержки или прямую пропаганду. Это помогает обнаружить проблемы, которые могут пропустить автоматизированные системы.

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

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

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

Следующий шаг