Member-only story

GitOpsで完全自動化されたDevOpsパイプラインを構築する

gavin.zhou
Dec 27, 2022

--

現代の技術の進歩に伴い、ほとんどのチームが自動化によってソフトウェア開発ライフサイクルを加速しています。しかし、ソフトウェア開発パイプラインの完全なアジリティ(機敏性)を実現するために、DevOpsチームはITインフラを効果的に継続的に維持しながらソフトウェアアプリケーションをデプロイする技術を必要としています。この記事では、これらの要求に対するソリューションを提供するGitOpsと呼ばれる運用フレームワークを紹介します。その構成要素と、GitOpsがどのように機能するかについて説明していきます。その原則、メリット、そして課題を明らかにします。また、GitOpsとDevOpsの違いについて説明し、GitOpsのトップ・ツールをリストアップします。

なぜGitOpsなのか?

以前は、ITインフラストラクチャの管理は複雑な作業でした。ほとんどのインフラコンフィグレーションは、システム管理者(IAC)が手作業で管理、コンフィギュア、配布していました。また、これらのインフラストラクチャでは、異なるチームメンバーが同時に共同作業を行っていたため、しばしば複数のエラーが発生することがありました。

しかし、最近のテクノロジーのおかげで、ITインフラストラクチャの設計、開発、文書化、メンテナンスの新しい方法を採用し、チーム間での構成仕様の編集や配布を容易にできるようになりました。DevOpsとエンジニアリングチームは、バージョン管理システムを使用して、インフラストラクチャのファイルをローカルに作成&保存し、ローカルに実行、実行することができるようになりました。

IACの導入がDevOpsチームに多くのメリットをもたらしたとはいえ、このプロセスには課題もありました。複数のチームが同時にインフラストラクチャのコンフィギュレーションで共同作業を行うことができるため、レビューと承認のプロセスが必要だったのです。個々のチームメンバーからの変更を確認するためのテストが不足しており、インフラストラクチャの更新は手動で行われていました。DevOps チームは、アプリケーション・インフラの文書化とプロビジョニングを行うための、自動化されたスケーラブルな方法を必要としていました。GitOps.

GitOpsとは?

GitOpsは、アプリケーション開発のためのDevOpsベストプラクティスを拡張し、インフラストラクチャーオートメーション(IAC)に統合した運用パラダイムである。GitOpsは、バージョン管理、コードレビュー、CI/CDパイプラインなどのDevOpsのベストプラクティスを融合し、Kubernetesのすべてのデータ、ドキュメント、運用タスクを保存・管理するものです。包括的な自動テストとデプロイのための信頼できる唯一の情報源としてgitを利用することにより、アーキテクチャを管理し、システムのクラウド基盤を迅速に再現することを可能にします。GitOpsは、コード、テスト、ステージング、本番環境を同期させることで、IaC…

--

--

No responses yet