さまざまな CI/CD アプローチを調べる
ここまでは、クラウドネイティブ アプリの CI/CD をサポートするための 2 つの方法を見てきました。 アプリを AKS に手動でデプロイし、GitHub Actions を使用してアプリをビルドしてデプロイしました。 Microsoft では、3 つ目のアプローチである Azure Pipelines がサポートされています。 自動化されたアプローチはどちらも有効です。ニーズに最も適したものを選択します。
GitHub アクションと Azure Pipelines はどのように異なりますか?
まず、これら 2 つのアプローチがどのように同じかを見てみましょう。 GitHub Actions と Azure Pipelines はどちらも CI/CD ツールです。 どちらも次の機能をサポートします。
- アプリのビルドとデプロイ。
- アプリをビルドしてデプロイする手順を定義する YAML ファイル。
- ビルドおよびデプロイ プロセスを開始するトリガー。
- ビルドとデプロイのプロセスを監視する。
- デプロイのロールバック。
機能のサポート レベルが異なると、2 つのアプローチが異なります。 これらの違いを見てみましょう。
GitHub Actions | Azure Pipelines |
---|---|
パブリック リポジトリは無料 | オープン ソース プロジェクトの場合は無料 |
プライベート リポジトリの場合、1 か月あたり最大 2,000 分無料 | プライベート リポジトリの場合、1 か月あたり最大 1800 分無料 |
最大 20 個の同時実行ジョブ | 最大 10 個の同時実行ジョブ |
Azure Pipelines は、さまざまなソース リポジトリをサポートしているため、GitHub Actions よりも優れた利点があります。 Azure Pipelines では、GitHub、GitHub Enterprise Server、Bitbucket Cloud、Azure Repos Git、TFVC、Subversion、External Git がサポートされています。 GitHub Actions では GitHub のみがサポートされます。
より複雑な CD/CD ワークフローがある場合は、Azure Pipelines をスケーリングしてニーズをサポートできます。 Azure Pipelines では、複数のステージ、複数のジョブ、および複数のステップがサポートされています。 GitHub Actions では、複数のステップを持つ 1 つのジョブのみがサポートされます。 この柔軟性は、自動テスト シナリオと組み合わせることができます。
注
DevOps で新しいプロジェクトを作成すると、無料の Azure Pipeline Minutes が利用できない場合があります。 無料の並列処理の許可を要求するには、 並列処理要求フォームに入力します。 これは、次の演習を完了する前に行う必要があります。
GitHub アクションを無効にする
違いを確認したら、Azure Pipelines を使用するようにアプリを変更することにします。
[ Actions ] タブでフォークしたリポジトリに移動します。
Build and deploy an app to AKS ワークフローを選択します。
右上の [その他のオプション] メニューを選択します。
[ ワークフローを無効にする] を選択します。
GitHub アクション ワークフローを無効にしました。 次に、アプリをビルドしてデプロイするための Azure Pipeline を作成します。