継続的インテグレーションに関する推奨事項

この Power Platform Well-Architected オペレーショナル エクセレンス チェックリストの推奨事項に適用されます:

OE:04 業界で実績のある Development and test のプラクティスに従って、ソフトウェア開発と品質保証のプロセスを最適化します。 明確なロール指定するには、ツール、ソース管理、アプリケーション設計パターン、ドキュメント、スタイル ガイドなどのコンポーネント全体でプラクティスを標準化します。

継続的インテグレーション/継続的デリバリー (CI/CD) を採用すると、シチズン デベロッパーにとって開発の複雑さが増す可能性があります。 ただし、信頼性が高く持続可能なフュージョン開発プロセスには、新機能やバグ修正を迅速に組み込むことができる、スケーラブルで自動化された開発プロセスが不可欠です。

開発者は、小規模なコード変更を行い、その変更をコード リポジトリにプッシュし、品質、テスト カバレッジ、混入バグに関するフィードバックをほぼ瞬時に得ることができます。 このプロセスにより、より高い信頼度と少ないリスクで速い作業が実現します。 継続的インテグレーションとは、ソース コントロール システムとデプロイメント パイプラインを統合して、ソフトウェア開発チームに自動化されたビルド、テスト、およびフィードバック メカニズムを提供する手法です。

主要な設計戦略

継続的インテグレーションは、開発者がソフトウェアの更新を定期的にソース管理システムに統合するために使用するソフトウェア開発プラクティスです。

継続的統合プロセスは、エンジニアが GitHub pull request を作成して、コード変更を統合する準備ができていることを CI システムに通知するときに開始されます。 理想的には、統合プロセスでは、コードを複数のベースラインとテストに対して検証します。 次に、これらのテストのステータスに関するフィードバックを要求元のエンジニアに提供します。

ベースラインのチェックとテストがうまくいった場合、統合プロセスにより、更新されたソフトウェアを展開する資産が生成およびステージングされます。 これらの資産には、コンパイルされたコードとコンテナー イメージが含まれます。

継続的インテグレーションでは、次のアクションを実行することで、高品質のソフトウェアをより迅速に提供できます。

  • コードに対して自動テストを実行して、破壊的変更を早期に検出します。
  • コード分析を実行して、コードの標準、品質、構成を確認します。
  • コンプライアンス チェックとセキュリティ チェックを実行して、ソフトウェアに既知の脆弱性が含まれていないことを確認します。
  • 受け入れテストまたは機能テストを実行して、ソフトウェアが期待どおりに動作することを確認します。
  • 検出された問題について迅速なフィードバックを提供します。
  • 該当する場合は、更新されたコードを含む展開可能なアセットまたはパッケージを作成します。

環境

環境のセットアップと構成は、持続可能で信頼性の高い CI/CD にとって重要です。 Power Platform 環境は、ソリューション開発、テスト、展開のさまざまな段階を分離するように設定できます。 CI/CD プロセスは、これらの段階を通じて変更を移動します。 開発者環境の指針となる環境戦略を確立します。

継続的インテグレーション パイプライン

継続的インテグレーションを実現するには、ツールを使用してプロセスを管理、統合、自動化します。 継続的インテグレーション パイプラインは以下を提供します。

  • 自動テストを実行するためのプラットフォーム
  • コンプライアンススキャン
  • レポート中
  • 継続的インテグレーションプロセスを構成するその他のすべてのコンポーネント

ほとんどの場合、パイプライン ソフトウェアはソース管理に接続されているため、プル リクエストが作成されたり、ソフトウェアが特定のブランチにマージされたりすると、継続的インテグレーション パイプラインが実行されます。 ソース管理統合により、pull request 関する CI フィードバックを直接提供する機会も提供されます。

Azure Pipelines や GitHub Actions などの多くのソリューションは、継続的統合パイプラインの機能を提供します。 詳細については、 Azureを使用したCI/CDの構築を参照してください Microsoft Power Platform

ソース管理統合

継続的統合パイプラインとソース管理システムの統合は、迅速なセルフサービス コード コントリビューションを実現する鍵となります。

CI パイプラインは、新しく作成された pull request で実行されます。 パイプラインには、すべてのテスト、セキュリティ評価、その他のチェックが含まれます。 CI テストの結果は pull request に直接表示されるため、品質に関するフィードバックをほぼリアルタイムで得ることができます。

もう 1 つの一般的なプラクティスは、現在のビルド状態を表示するためにソース管理に表示できる小さなレポートまたはバッジを作成することです。

次の図は、GitHub と Azure DevOps パイプラインの統合を示しています。 この例では、プル リクエストの作成によってパイプラインがトリガーされます。 パイプラインの状態が pull request に表示されます。

GitHubリポジトリの Azure DevOps ステータス バッジのスクリーンショット。

テストの統合

継続的インテグレーションの重要な要素は、開発者がコード コントリビューションする際の、コードの継続的な構築とテストです。 pull request が作成された時点でテストすると、コミットによって破壊的変更が導入されなかったというフィードバックがすぐに得られます。 利点は、継続的インテグレーション パイプライン内のテストが、テスト駆動開発中に実行されるテストと同じでよいことです。

継続的インテグレーションの例の図。

カスタムコードの品質チェック

ソリューションにカスタム コードを含めるときに、検証パイプラインにコード品質チェックを追加して、クリーンなカスタム コードがソース管理にコミットされていることを確認します。 使用しているコーディング言語や構文パターンに関係なく、コードの品質を維持し、セキュリティとガバナンスを強化するためのオプションが複数あります。

テストの失敗

テストが失敗すると、展開が一時的にブロックされ、発生した内容が詳細に分析されます。 テストの失敗は、テストの改良や、テストの失敗の原因となった変更の改善につなげる必要があります。

Power Platform の促進

Power Platform のパイプラインは、ALM 自動化機能と継続的インテグレーションと継続的デリバリー (CI/CD) 機能をサービスに組み込むことで、Power Platform およびDynamics 365 の顧客向けにアプリケーション ライフサイクル管理 (ALM) を民主化することを目的としています。

Azure DevOps 用の Microsoft Power Platform を使用することで、Power Platform でビルドされたアプリに関連する一般的なビルド & デプロイ タスクを自動化することができます。

GitHub Actionsを使用すると、開発者は自動化されたソフトウェア開発ライフサイクル ワークフローを構築できます。 Power Platform Microsoft Power Platform の GitHub アクション を使用して、リポジトリにワークフローを作成して、アプリをビルド、テスト、パッケージ化、リリース、デプロイし、自動化を実行し、ボットやその他のコンポーネントを Microsoft Power Platform 上で管理できます。

ALM Accelerator は、継続的インテグレーション/継続的配信プロセスを自動化するために設計された一連のアプリケーション、スクリプト、パイプラインで構成されるオープンソース ツールです。

Azure Pipelines でテストを自動化します

Power Apps チェッカーの Web API は、カスタマイズに対して実行されたスタティック分析のチェックや Microsoft Dataverse プラットフォームへと拡張するメカニズムを提供します。

Microsoft Power Platform CLI (PAC CLI) は、ソリューションのインポートとエクスポート、およびソリューション ソース ファイルへのパックとアンパックをサポートするコマンド ライン ツールです。 Power Platform Power Platform PAC CLIは、 スタンドアロンのコマンドライン ツール として、または コードの拡張機能 Visual Studio として利用できます。

次の手順