Cansu Kavili
GitOpsは、開発から本番までの作業の流れをGitの運用で管理するパターンです。GitOpsのコンセプトは、以下のように非常にわかりやすいものです:
GitOpsは、シンプルな運用、より良い開発者体験、システム上で起きていることのより良い可視性を提供します。今日、最も人気のあるGitOpsツールは、ArgoCDとFluxです。GitOpsの採用が進むにつれて、そのアプローチとツールに関するベストプラクティスも急速に形成されつつあります。
基本的に、GitOpsは「Gitにあるものをどうやって自分のプラットフォームに反映させるか」という問題を解決するためのものです。プラットフォームと直接やりとりする必要性をなくし、代わりにGitリポジトリとやりとりするようにします。しかし、GitOps は、特に DevOps 文化 と プラクティス を採用したいと考えている企業にとって、everything as code のアプローチを超える、それ以上の価値を組織へ提供します。
GitOpsの効果:
上記のように、GitOps のアプローチを導入することは、Git ハッシュやPull Requestを気にするだけでなく、製品やより重要なチームについても可視化できることを意味します。ITデリバリー能力の立ち上げとスケーリングにGitOpsを適用することで、市場やグローバルな出来事への対応を大幅に加速させることができます。GitOps のアプローチは、新しいチームや既存のチームに対して、再現性のある環境とツールを作成するためのより良い体験を提供することができます。また、既存のアプリケーションを移行する場合は、生産性を向上させ、ダイナミックなチーム構造を迅速に採用することができます。
クラウドネイティブな世界では、継続的デリバリーとは、すべてのコミットが人手を介さずに自動的に本番環境に送信されるプラクティスです。したがって、GitOpsのアプローチは、CDに完璧にマッチしています。
チームとして、実際にGitOpsとは何を意味するのかについて話し合い、合意する必要があります。Git リポジトリの構造や、どの設定ファイルをどこに保存するかを定義します。そして、ニーズに合わせて適切なツールを用意しましょう。もちろん、リポジトリを設定する方法は複数あります。 ここでは、1つの設定リポジトリと別のソースコードリポジトリを利用するCI/CDパイプラインのハイレベルなフロー例を示します:
Open Practice Libraryは、複数のGitリポジトリに分散するマイクロサービスのコレクションとフロントエンドアプリケーションです。これらのマイクロサービスはマニフェストとして定義され、マニフェストの変更は自動的にトリガーされ、様々なコードレポのGitHub Actionsを介してOpen Practice Libraryのバージョンがリリースされます。これは ArgoCD によって監視され、Red Hat OpenShift Container Platform で実行されているアプリをマニフェストの変更で自動的に更新します。
GitOps をチームや顧客、ステークホルダーと実施するにあたりより詳細にお知りになりたい場合は、以下のリンクを参照してください。