Рекомендации по методам безопасного развертывания

Применяется к следующей рекомендации контрольного списка по достижению операционной эффективности Power Platform Well-Architected:

OE:10 Четко определите методы безопасного развертывания вашей рабочей нагрузки. Подчеркивайте идеалы небольших, постепенных, контролируемых по качеству методов выпуска. Используйте современные шаблоны развертывания для контроля рисков. Учитывайте рутинные и аварийные развертывания или развертывания с исправлениями.

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

Ключевые стратегии проектирования

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

  • Безопасность и последовательность: Все изменения в производственной нагрузке по своей сути рискованны и должны осуществляться с акцентом на безопасность и последовательность.
  • Модели работоспособности: Развертывания должны пройти проверку работоспособности до начала каждой фазы постепенного воздействия.
  • Обнаружение проблем: при обнаружении проблем развертывание следует немедленно остановить и начать восстановление.

В следующих разделах приведены подробные рекомендации для каждого из этих пунктов.

Безопасность и согласованность

Независимо от того, развертываете ли вы обновление кода приложения, инфраструктуры как кода (IaC), флага функции или конфигурации, вы создаете риск для рабочей нагрузки. Внедрений в производство с низким уровнем риска не предусмотрено. Каждое развертывание должно следовать стандартному шаблону и должно быть автоматизировано, чтобы обеспечить согласованность и минимизировать риск человеческой ошибки. Крайне важно, чтобы ваша цепочка поставок рабочей нагрузки и конвейеры развертывания были надежными, безопасными и имели четко определенные стандарты развертывания. Рассматривайте каждое развертывание как возможный риск и подвергайте каждое развертывание одинаковому уровню управления рисками.

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

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

Модели работоспособности

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

Обнаружение проблем

Если ваше развертывание вызывает проблему в одной из групп развертывания, развертывание должно быть немедленно прекращено. Выясните причину проблемы и серьезность последствий сразу после получения предупреждения. Восстановление после проблемы может включать в себя:

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

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

Общие рекомендации

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

  • Используйте поток выпуска или структуру ветвления на основе соединительной линии, которая обеспечивает тесное синхронизированное взаимодействие в команде разработчиков, вместо Gitflow или структуры ветвления на основе среды.

  • Автоматизируйте максимально возможную часть практики безопасного развертывания. Подробнее читайте в разделе Рекомендации по внедрению автоматизации.

  • Используйте методы непрерывной интеграции (CI) для регулярной интеграции изменений кода в репозитории. Практики CI могут помочь вам выявить конфликты интеграции и снизить вероятность крупных и рискованных слияний. Подробнее читайте в разделе Рекомендации по непрерывной интеграции.

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

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

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

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

Аварийные протоколы

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

  • Ускорение этапа продвижения и утверждения
  • Ускорение дымового тестирования и интеграционного тестирования
  • Сокращение времени выпечки

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

Рекомендации

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

Возможности в Power Platform

Конвейеры в Power Platform направлены на демократизацию управления жизненным циклом приложений (ALM) для клиентов Power Platform и Dynamics 365 за счет внедрения в службу возможностей автоматизации ALM, а также непрерывной интеграции и непрерывной доставки (CI/CD).

Инструменты Microsoft Power Platform Build Tools для Azure DevOps можно использовать для автоматизации общих задач сборки и развертывания, связанных с приложениями, созданными на основе Power Platform.

GitHub Actions для Power Platform позволяют разработчикам создавать автоматизированные рабочие процессы жизненного цикла разработки программного обеспечения. С помощью GitHub Actions для Microsoft Power Platform вы можете создавать бизнес-процессы в своем репозитории для создания, тестирования, упаковки, выпуска и развертывания приложений; выполнять автоматизацию; и управлять ботами и другими компонентами на базе Power Platform.

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

Автоматизация тестов с помощью Azure Pipelines.

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

Среды Power Platform обеспечивают функцию восстановления на определенный момент времени, которая может помочь вам выполнить откат.

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