デプロイメントの計画

マルチクラウド環境にTerraformをデプロイするには、次の基本ステップを使用します。

  1. 外部接続の確立

    ステージング環境、開発環境、QA環境または本番環境を複数のクラウド・リージョンにデプロイする場合は、最初にOracle Cloud Infrastructure Resource Managerから、GitHub、GitLab、Bitbucketなどのソース・コード制御システムへの外部接続を確立する必要があります。GitHubには、Oracle Cloud Infrastructureリージョンのコンパートメント間でデプロイするTerraformモジュールが含まれます。

    次の図に、この関係を示します。



    iac-multi-account-deployment-oracle.zip

  2. コードを変更

    GitHubの中央コード・リポジトリには、開発操作(DevOps)チームによってチェックインされたTerraformモジュールが含まれます。このエンジニアのチームは、インフラストラクチャ・リポジトリ内で短期間のv1.0ブランチで作業します。存続期間の短いブランチのコード変更の準備ができたら、DevOpsエンジニアが確認してメイン・ブランチにマージします。DevOpsエンジニアは、リポジトリのGitタグを提供します。インフラストラクチャ・リポジトリの将来の変更について、DevOpsエンジニアはこの同じプロセスを繰り返します。

    デプロイメントは、Terraformコードを含むリポジトリにタグを付けるDevOpsエンジニアからトリガーされます。このアクションは、デプロイメント・パイプラインの実行を開始します。

    dev-US-ashburn-1/dev/1.0を使用してリポジトリにタグ付けすると、パイプラインがトリガーされ、コンピュート開発アカウントがUS-Ashburn-1リージョンにデプロイされます。

    例のタグdev-us-ashburn-1/dev/1.0には、ターゲット環境(Dev)、Oracle Region (US-Ashburn-1)、チーム(Dev)およびバージョン番号(1.0)が含まれています。QA、ステージング、本番などの他のターゲット・デプロイメントも同様に管理できます。



    iac-multi-region-deployment-oracle.zip

  3. 開発環境のデプロイメント

    マルチクラウド・デプロイメントのus-ashburn-1、us-phoenix-1およびus-sanjose-1リージョンに開発環境をデプロイするには、インフラストラクチャをデプロイするVCNを確認します。前述のように、個別のコード・パイプラインがGitHubリポジトリにチェックされます。リソースの追加や削除などの変更がパイプラインに加えられ、Gitタグの新しいバージョンが作成され、リソースをデプロイするためにリージョンにプッシュされます。

  4. 構成ソース・プロバイダを作成します

    Oracle Cloud Infrastructure Resource Managerの最初のステップは、terraformモジュールがデプロイされているGitHubサーバーへのパブリック・エンドポイントを含む構成ソース・プロバイダを作成することです。各リージョンには独自のソース・プロバイダがあり、リソースがデプロイするコンパートメント(開発、QA、ステージングまたは本番)にデプロイされます。コード承認ステージの完了後に必要に応じてOracle Cloud Infrastructureコマンドライン・インタフェース(CLI)を使用してスタックを作成します。スタックの作成後にTerraformプランを実行します。計画が正常に実行されると、Terraformが適用されます。実行後、対応するコンパートメントおよびリージョンに作成されたリソースを確認します。Terraform状態ファイルは、Oracle Cloud Infrastructure Registryに格納および保守されます。YAMLファイルなどのMetadataは、Oracle Cloud Infrastructure Artifacts Registryに格納されます。また、Oracle Cloud Infrastructure NotificationsおよびOracle Cloud Infrastructure Eventsを有効にして、インフラストラクチャ・デプロイメントのプロビジョニングの進捗をアラートして通知することもできます。