2022年3月21日
DevOps
Continuous Integration
Continuous Delivery
GitOps:真実の唯一の情報源、as codeの 伝道者、CI/CD自動化の実現者。GitOpsの早分かりをどうぞ!
長年にわたり、ソフトウェア開発の方法論は、ウォーターフォールモデルからアジャイル、そして今日私たちがDevOpsと呼ぶものへと変化してきました。これらの方法論は主に文化的な側面に焦点を当てていますが、いずれも強力なツールやテクノロジーに支えられており、以前よりも作業が容易になりました。DockerとKubernetesがコンテナ化を容易にすることでDevOpsの採用を促進したように、私たちは今、GitOpsがGitを中心としたアプローチで人気を博しているのを目撃しています。
この記事では、GitOpsを探求していきます。なぜ使われるのでしょうか。どのように機能するのでしょうか。
今日、多くの企業が、インフラストラクチャーとアプリケーションをバージョン管理するこの新しい手法を採用しています。GitOpsは、エンジニアリ ングチームが問題により早く対応して修正を迅速に行うことを支援し、よりアジャイルなデプロイメントを実現します。特筆すべき利点は、全ての変更履歴を追跡できるため、デバッグやロールバックが容易になることです。また、より迅速に変更を加えることができ、デプロイメントプロセス中に自分が何をしているかを他の人に知らせることで、コラボレーションを向上させることができます。さらに、デプロイは、何か問題が起きたときに簡単に元に戻すことができます。
GitOpsでは、分からないことやうまくいかないことがあっても、複雑なログを調べて問題をデバッグする必要はありません。コミット履歴を見れば全てが一目瞭然ですし、以前に知られていた安定版リリースにロールバックすることも可能です。
GitOpsは、デリバリーパイプラインの中心にGitを活用することで、複雑さを軽減しています。開発者は真新しいツールを学ぶ代わりに、Gitコマンドの知識を活用することができます。
多くの組織が新機能のリリースに苦労しているのは、ダウンタイムの増加や開発者の意欲に影響する複雑なリリースプロセスが原因です。デプロイに何時間も要する何百もの機能を一晩でデプロイできても解決にはなりません。GitOpsは、そのようなデプロイを管理す るために、必要な力仕事を自動化し、誤操作をなくすための方法です。
GitOpsの中心的な考え方は、プロジェクトのコードをGitリポジトリー(アプリケーションコード、ファイル、依存関係、マニフェストなど)に保管し、リポジトリーの状態をKubernetesクラスターの状態と同期させることです。これを成功させるためには、エージェントがマニフェストファイルの変更や開発者による新しいコードのプッシュを追跡します。エージェントは、何が変更されたかを確認し、期待される/望ましい状態に一致するように同期させることができます。
GitOpsは、プッシュとプルの2つのモデルで動作します。プッシュ型は、CI/CDツールが変更を本番環境にプッシュする方法です。プルベースの方法では、全てのクラスターにエージェントがインストールされる必要があります。エージェントが変更を追跡し、必要な構成と不一致があるたびにそれをプルします。FluxCD、Argo CD、Jenkins Xは、GitOpsの分野を切り開いた三大プラットフォームです。
アプリケーションの全コードを格納したGitリポジトリーと、適切に設定されたCIパイプラインがあると仮定しましょう。開発者が新しいコードをGitHubにプッシュすると、それが検証され、CIサーバーが指定されたテストを実行して全てが良好であるかどうかをチェックしてビルドします。次に、コンテナイメージが作成され、イメージレジストリーにプッシュされます。新しい変更はGitオペレーターによってプル/ピックされ、現在の状態と希望する状態が一致するかどうかスキャンされます。もし現在の状態と希望する状態とが一致しない場合は、希望する状態を維持するためにプロビジョニングが行われます。最後に、デプロイが行われます。
DevOpsもGitOpsも、核心としてはソフトウェアのデプロイを容易にすることを推進していますが、運用方法にはそれぞれ違いがあります。両者の比較を見てみましょう。
GitOpsを見ると、多くの利点があることが分かります。開発者とDevOpsエンジニアがソ フトウェアのデリバリープロセスを自動化するのに役立ちます。ソフトウェアを開発からテスト、ステージング、そして最終的に本番へと移行させることで、これを実現します。開発者はすでにこのアプローチを気に入っており、クラウドネイティブの領域でGitOpsの人気が高まり続けるように思われます。
今日のGitOpsの1つの懸念点は、組織が標準的なアプローチとして使用できるような、本格的なエンドツーエンドのツール/プラットフォームがないことです。そこでHarnessでは、GitOpsを実現するために、高度なCIおよびCD機能を備えたHarness GitOpsを発表しました。Harness GitOpsをご自身でお試しください!
この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。