デプロイメント戦略の計画

OCIリソースとワークロードを定義およびデプロイする方法を決定します。OCI Terraformプロバイダを使用すると、Terraform CloudやOCIリソース・マネージャなど、Terraformディストリビューションを使用する任意の場所でOCIリソースを管理できます。OCI Terraformプロバイダに加えて、OCI Landing Zones Terraformモジュールも利用できます。これにより、コーディングが不要なクラシックな.tfvarsファイルまたはJSON構成を使用してOCIリソースのデプロイメントを簡素化できます。

たとえば、OCIランディング・ゾーンを使用すると、アイデンティティ、セキュリティ、ネットワーキング、可観測性、ガバナンスなどの重要なクラウド・サービスを含む、CISが強化されたテナンシおよびワークロード・インフラストラクチャを繰り返し1クリックでプロビジョニングできます。ワークロード・リソースは、特定のアプリケーションの上にデプロイできます。

顧客とデータに基づいたリージョンの選択

クラウド・アーキテクト、ネットワーク・アーキテクト、クラウド・オペレーション・マネージャー

地域を選択するときは、誰がリソースにアクセスし、どの国または世界のどの地域からアクセスするかに注意してください。選択を行う際には、プライバシーおよび規制要件を考慮してください。

Infrastructure as Codeの採用

Cloud Architect、DevOps Architect、Cloud Operations Manager

OCIでInfrastructure as Codeを導入する場合、アプリケーション・インフラストラクチャ全体をコードの形式で定義できます。運用プロシージャをコードとして実行し、イベントベースの通知に応答して実装できます。

次の要素を使用すると、コードを使用してインフラストラクチャを定義および管理できます。

  • Oracle Cloud Infrastructureランディング・ゾーン

    OCIランディング・ゾーンは、すぐに使用できる設計、構成、および任意のOCIアーキテクチャおよびデプロイメント・モデルに使用できる宣言的なIaC Terraformモジュールを含む、OCIブループリントの完全なセットを提供します。

  • Oracle Cloud Infrastructure Resource Manager

    Resource Managerでは、Terraformを使用してOCIリソースのプロビジョニング・プロセスを自動化し、Infrastructure-as-Codeモデルを使用したリソースのインストール、構成および管理を支援します。

  • Oracle Cloud Infrastructure Events

    イベントにより、テナンシのリソース変更に対するレスポンスが自動化されます。OCIサービスは、イベント・メッセージを発行します。これは、リソースの変更を示す構造化メッセージです。テナンシ全体のリソースの状態変更に基づいて自動化を作成し、リソースがその状態を変更したときに開発チームが自動的に対応できるようにします。

  • Oracle Cloud Infrastructure Functions

    関数は、スケーラビリティの高いフルマネージド・サーバーレス・プラットフォームを提供します。コードをデプロイした後、イベントを使用して、ファンクションとしてコーディングされた操作プロシージャをトリガーできます。

Terraformを採用して繰返し可能なワークフローを実装

DevOps Architect、Application Architect、Cloud Operations Manager

Terraformは、Infrastructure as Codeモデルを介してインフラストラクチャをプログラムで管理、バージョニングおよび永続化できるオープン・ソース・ツールです。Terraform構成によって、インフラストラクチャは、インフラストラクチャを定義してその状態を維持する宣言ファイルに体系化されます。

これらのファイルは、チーム・メンバー間で共有し、コードとして扱い、編集、確認およびバージョニングできます。

OCI Terraformプロバイダを使用すると、Terraform CloudやOracle Cloud Infrastructure Resource Managerなど、Terraformディストリビューションを使用する任意の場所でOCIリソースを管理できます。On top of the OCI Terraform provider, you can leverage OCI Landing Zones Terraform modules that provide a declarative configurable approach with classic .tfvars or JSON configuration files where no coding skills are needed.

OCIでTerraformを使用する場合は、次の点を考慮してください:

  • Terraformはコードであり、制御バージョン・システムを使用して処理する必要があります。OCI Resource Managerでは、Gitリポジトリを活用してコードを実行できます。
  • OCIのVMコンピュート・インスタンスで実行している場合は、OCIプロバイダの認証としてInstance Principalを使用することを検討してください。
  • Terraformスタックとそのランタイムがアクセスできるセキュアな場所に、適切なレベルの粒度でTerraform状態ファイルを保持します。OCIリソースを拡張すると、Terraformスタックでリソースを分離および分割します。1つのスタック内のすべてのリソースが1つの状態ファイルになり、処理に時間がかかる可能性があるため、他のリソースでの重要な更新がブロックされる可能性があります。OCI Resource Managerを使用する場合、各スタックには独自の状態ファイルが含まれます。
  • OCIランディング・ゾーンのブループリントは、OCIランディング・ゾーンTerraformモジュールで実行するように構築された構成です。これらのブループリントは、多くのベスト・プラクティスを実装するときにすぐに使用することも、独自のユースケースをサポートするように変更することもできます。JSON構成を使用して宣言的なアプローチを使用する場合、デプロイメントの実行にTerraformコーディング・スキルは必要ありません。

OCI Designer Toolkit (OKIT)の採用

DevOps Architect、Infrastructure Architect、Cloud Operations Manager

Oracle Cloud Infrastructure (OCI)デザイナおよびビジュアライゼーションtoolKIT (OKIT)は、グラフィカルなWebベースのインタフェースを介してOCI環境を設計、デプロイおよびビジュアル化(イントロスペクト/問合せ)できるブラウザベースのツールです。

Webベースのインタフェースにより、アーキテクトと設計者はインフラストラクチャのビジュアル表現を構築し、これを複数の形式でエクスポートできます。完了したら、設計を拡張してキー・プロパティ情報を追加し、設計したインフラストラクチャを多数のDevOpsフレームワークにエクスポートできます。

OKITを使用すると、Webインタフェースに埋め込まれた単純な問合せ機能を使用して既存のOCI環境をイントロスペクトし、移植可能な汎用JSONファイルを提供できます。JSONファイルを使用すると、既存のシステムを視覚化したり、設計したOCIインフラストラクチャをzipファイルとして構築するために使用できるTerraformまたはAnsibleスクリプトのセットを生成できます。

OKITモデルでは、クラウドのInitスクリプトを使用して、コンピュート・リソースのデプロイメントをさらに自動化できます。OKITは基本的に、テナンシに対する認証にユーザーの個人キーを使用しているため、ローカルでの実行に最適な単一ユーザー・ツールです。Oracle Cloud Infrastructure Resource Managerを使用すると、設計を共有できます。OKIT設計はJSON形式でエクスポートでき、バージョン管理が可能です。

シンプルで反復可能なアクションの自動化

DevOps Architect、Cloud Operations Manager

OCIコマンドライン・インタフェース(CLI)を使用して、繰返し可能なアクションをスクリプト化し、複数のタスクを編成することを検討してください。OCI CLIを使用すると、自動化によって操作を簡素化できます。

CLIには、コンソールと同じコア機能と追加のコマンドがあります。スクリプトの実行など、これらの機能の一部によって、OCIコンソールの機能が拡張されます。CLIは、MacOS、Windowsまたはサポート対象のLinuxディストリビューションで実行されるPythonバージョン3.6以上をサポートしています。また、静的資格証明に依存するのではなく、フェデレーテッド・アイデンティティを利用するように構成することもできます。

構成管理ツールの採用

DevOps Architect、Infrastructure Architect、Cloud Operations Manager

プロビジョニング、オーケストレーションおよび構成の管理に役立つように、Ansibleモジュールなどの管理ツールを採用することを検討してください。

Ansibleモジュールを使用すると、クラウド・インフラストラクチャの構成とプロビジョニング、ソフトウェア・アセットのデプロイと更新、複雑な操作プロセスのオーケストレーションを自動化して、ワークロードのデプロイメントと構成によるリスクを軽減し、アジリティを実現できます。Ansibleプレイブックは、構成、デプロイメントおよび編成タスクを自動化します。

OCIは、クラウド・インフラストラクチャのプロビジョニングと構成、複雑な操作プロセスのオーケストレーション、ソフトウェア・アセットのデプロイメントと更新を自動化するために、Ansibleモジュールの使用をサポートしています。OCI Ansibleコレクションでは、Ansible TowerおよびAWXがサポートされています。

ビルドおよびデプロイメント管理システムの導入

DevOps Architect、Cloud Operations Manager

Ansible TowerやJenkinsなどのビルドおよびデプロイメント管理システムを使用して効率を向上させます。これらのシステムにより、手動プロセスによるエラーが削減され、変更のデプロイ作業のレベルが低下します。

変更のテストと検証

DevOps Architect、Cloud Operations Manager

エラーを検出するには、常に変更を追跡、テストおよび検証します。

バージョン・コントロール・システムを使用して、コードの変更を追跡できます。デプロイメント管理システムを使用してテスト・プロセスを自動化することを検討してください。