6.2. GitOps の方法論および実戦

GitOps は、Git プル要求を使用してインフラストラクチャーおよびアプリケーションの設定を管理する一連の手法です。GitOps の Git リポジトリーは、システムおよびアプリケーション設定の信頼できる唯一のソースです。リポジトリーにはシステムの全体の状態が含まれ、システム状態の変更の追跡情報は表示され、監査可能になります。GitOps を使用して DevOps の方法論を実装できます。

GitOps ツールを使用し、OpenShift Container Platform クラスターおよびアプリケーションの管理および再作成のための反復可能かつ予測可能なプロセスを作成できます。GitOps を使用することで、インフラストラクチャーおよびアプリケーション設定のスプロールの問題に対処できます。これは、インフラストラクチャーとアプリケーションの定義を「コード」として定義することで、インフラストラクチャーおよびアプリケーション設定の変更の伝播を単純化します。 クラスター設定ファイルに GitOps を実装すると、自動インストールが容易になり、クラスターの自動化されたカスタマイズの設定が可能になります。Git リポジトリーでのソフトウェアの開発およびメンテナンスのコアとなる原則を、クラスターおよびアプリケーション設定ファイルの作成および管理に適用できます。

OpenShift Container Platform を使用してクラスター設定およびコンテナー開発プロセスの両方を自動化することにより、GitOps 手法を導入する場面およびそのタイミングを選択することができます。GitOps ストラテジーと実行計画と共に CI パイプラインを使用することが理想的です。OpenShift Container Platform は、この方法論をビジネスプラクティスや各種パイプラインに統合するタイミングとその方法を選択する面での柔軟性を提供します。

GitOps 統合により、OpenShift Container Platform クラスター設定を宣言的に設定し、保存することができます。

GitOps はクラスターを宣言的に設定し、クラスター設定の状態を Git に保存することができるため、OpenShift Container Platform と効果的に機能します。詳細は、「利用可能なクラスターのカスタマイズ」を参照してください。

6.2.1. 単一クラスターおよびマルチクラスター管理向けの GitOps

独立した OpenShift Container Platform クラスターまたは連携型の OpenShift Container Platform クラスターのいずれが必要となる場合でも、GitOps ストラテジーを使用して以下のタスクを管理できます。

  • クラスターに設定、モニタリングまたはストレージについての同様の状態の設定があることを確認します。
  • クラスターを既知の状態から回復するか、または再作成します。
  • 既知の状態でクラスターを作成します。
  • 複数の OpenShift Container Platform クラスターに対する設定変更を適用するか、または元に戻します。
  • テンプレート化された設定を複数の異なる環境に関連付けます。

6.2.2. アプリケーション設定管理向けの GitOps

GitOps 手法を使用してアプリケーション設定を管理することもできます。これにより、異なる環境(開発、ステージ、実稼働環境など)の異なるクラスターにアプリケーションをデプロイする場合に、アプリケーションの一貫性が確保されます。また、GitOps でアプリケーション設定を管理することは、クラウドまたはオンプレミスのいずれであれ、複数のクラスターにアプリケーションをデプロイする必要がある場合に、可用性やスケーラビリティーを確保する上で有益です。

GitOps ストラテジーを使用して以下を行うことができます。

  • ステージから実稼働環境へと、クラスター全体でアプリケーションをプロモートします。
  • 複数の OpenShift Container Platform クラスターへのアプリケーションの変更を適用するか、または元に戻します。

6.2.3. GitOps テクノロジープロバイダーおよびインテグレーター

複数のコミュニティーオファリングおよびサードパーティーベンダーが OpenShift Container Platform との高度な統合機能を提供しています。

以下のコミュニティーパートナーおよびサードパーティーインテグレーターを使用して GitOps を OpenShift Container Platform に統合できます。