Поделиться через


Рекомендации по непрерывной интеграции

Применимо к этой рекомендации Power Platform контрольного списка хорошо спроектированного операционного совершенства:

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

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

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

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

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

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

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

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

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

Cреды

Настройка и конфигурация среды имеют решающее значение для устойчивой и надежной CI/CD. Среды Power Platform можно настроить для изоляции различных этапов разработки, тестирования и развертывания решения. Процесс CI/CD перемещает изменения через эти этапы. Создайте стратегию среды с руководящими принципами для сред разработки.

Конвейеры непрерывной интеграции

Чтобы добиться непрерывной интеграции, используйте инструменты для управления, интеграции и автоматизации процесса. Конвейер непрерывной интеграции обеспечивает следующее:

  • Платформа для проведения автоматизированных тестов
  • Сканирование соответствия
  • Отправка сообщения
  • Все остальные компоненты, составляющие процесс непрерывной интеграции

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

Многие решения, такие как Azure Pipelines или GitHub Actions, предоставляют возможности конвейеров непрерывной интеграции. Подробнее читайте в статье Создание CI/CD с помощью Azure для Microsoft Power Platform.

Интеграция системы управления версиями

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

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

Другая популярная практика — создание небольших отчетов или значков, которые можно представить в системе управления версиями, чтобы сделать видимыми текущие состояния сборки.

На следующем изображении показана интеграция между GitHub и конвейером Azure DevOps. В этом примере создание запроса на извлечение запускает конвейер. Статус конвейера отображается в запросе на извлечение.

Снимок экрана значка статуса Azure DevOps в репозитории GitHub.

Интеграция тестирования

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

Пример диаграммы непрерывной интеграции.

Проверки качества для пользовательского кода

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

Неудачные тесты

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

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

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

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

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

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

Автоматизируйте тесты с помощью Azure Pipelines.

Power Apps API проверки Web предоставляет механизм для выполнения проверок статического анализа в отношении настроек и расширений Microsoft Dataverse платформы.

Microsoft Power Platform CLI (PAC CLI) — это инструмент командной строки, который поддерживает импорт и экспорт Power Platform решений, а также упаковку и распаковку Power Platform исходных файлов решений. PAC CLI доступен как автономный инструмент командной строки или как расширение для Visual Studio Code.

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