はじめに
あなたは、オンライン アウトドア衣料小売業者のソフトウェア エンジニアとして働いているとします。 この小売業者のオンライン ネットショップ (クラウドネイティブでマイクロサービス ベースの .NET アプリ) のデプロイと更新を担当しています。
プロジェクト要件を満たし、チームのアジャイル開発プラクティスを強化するために、GitHub Actions と Azure Pipelines を使用して継続的インテグレーションと継続的デプロイ (CI/CD) を比較することにしました。 CI/CD パイプラインでは、一連の自動化された手順を使用して、アプリをコンパイルし、ビルドからすべての環境にデプロイします。
現在の Web にはマイクロサービス アーキテクチャがあり、各マイクロサービスは個別にデプロイされるため、1 つのサービスに対して CI/CD を設定することから始めます。
製品サービス という名前の .NET Web API は、Web サイトのすべてのバックエンド カタログ機能をサポートします。 このモジュールでは、製品サービスの CI/CD パイプラインを実装します。
このモジュールに従って操作すると、以下の作業を実行できます:
- コンテナー レジストリに対して GitHub Actions を認証する。
- GitHub Actions によって使用される機密情報を安全に格納する。
- マイクロサービス用のコンテナー イメージをビルドするアクションを実装する。
- マイクロサービス コードを変更してコミットし、ビルドをトリガーする。
- 更新されたコンテナーを Azure Kubernetes Service (AKS) クラスターにデプロイするアクションを実装する。
- Helm チャートを変更してコミットし、デプロイをトリガーする。
- マイクロサービスを以前のデプロイに戻す。
このモジュールでは、お使いの Azure サブスクリプションを使用してリソースをデプロイします。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
重要
Azure サブスクリプションでの不要な料金請求を避けるために、このモジュールが完了したら、Azure リソースを削除することを忘れないようにしてください。
前提条件
- DevOps プラクティスに関する概念的知識。
- コンテナー、Docker、AKS に関する概念的な知識。
- 所有者のアクセス許可を使用した Azure サブスクリプションへのアクセス。
- GitHub アカウントへのアクセス。
- 次のセクションで説明するように、Visual Studio Code または GitHub Codespaces で "開発コンテナー" を実行し、設定できる。
開発コンテナー
このモジュールには、開発コンテナー (または "dev コンテナー") を定義する構成ファイルが含まれています。 開発コンテナーを使うと、必要なツールで事前に構成された標準化された環境が保証されます。
開発コンテナーは、2 つの環境のいずれかで実行できます。 開始する前に、次のいずれかのリンクの手順に従って環境を設定してください (Docker や必要な Visual Studio Code 拡張機能のインストールなど)。
- Visual Studio Code とローカル コンピューターでサポートされている Docker 環境。
- GitHub Codespaces (料金がかかる場合があります)。