Many people and organizations have written about GitOps, including the original definition by Weaveworks, the concept's creator; Kelsey Hightower's much-cited tweet ("GitOps: versioned CI/CD on top of declarative infrastructure. Stop scripting and start shipping"); and Red Hat's What is GitOps? article.
In this article, I'll share one example workflow for GitOps from the enterprise architect's point of view.
What is GitOps?
Before implementing GitOps, it is essential to understand its four guiding principles outlined by the Open GitOps project:
- The principle of declarative desired state
A system managed by GitOps must have its desired state expressed declaratively as data in a format writable and readable by both humans and machines. - The principle of immutable desired state versions
The desired state is stored in a way that supports versioning and immutability of versions and retains a complete version history. - The principle of continuous state reconciliation
Software agents continuously and automatically compare a system's actual state to its desired state. If the actual and desired states differ for any reason, initiate automated actions to reconcile them. - The principle of operations through declaration
The only mechanism through which the system is intentionally operated on is through these principles.
You can think of these principles as your runway lighting: They guide you toward adoption and help you land on your target destination as smoothly as possible. Also, if you're ever in doubt about your GitOps adoption, you can always look back at these principles to guide your team in the right direction.
[ Download An architect's guide to multicloud infrastructure. ]
An example GitOps workflow: Kubernetes
To help you understand the four guiding principles, I'll translate them into a Kubernetes perspective.
For this use case, I recommend using ArgoCD as the software agent that detects drift and synchronizes systems (or environments) to the source of truth (which is Git), satisfying the fourth GitOps principle.
- Store all Kubernetes resource configurations in Git.
- Use only pull requests to modify resources on that Git repo. For Kubernetes, that will include all the YAML files used to track Kubernetes configuration—from pod definitions to deployments.
- All Git modifications trigger a post-commit hook or Ansible integration that immediately applies the changes to the cluster.
- If the actual state drifts from the committed state in Git, trigger the same post-commit hook or Ansible integration path or alert the operations team.
[ Learn the basics of using Kubernetes in this free cheat sheet. ]
Speaking the same language
GitOps, if appropriately implemented, gives your team and broader organization the patterns to facilitate dev and ops teams working as one. Having both teams speak the same "language"—Git—improves the deployment velocity for business success. That is why automation architects and their peers should invest in GitOps.
Implementing new practices in an organization will always be challenging. Knowing this, it is vital to have a proper communication strategy in mind as you propose changes. As an architect, you need to be able to apply the principles of GitOps to your organization and decide on a path of least resistance toward adoption.
So as your fellow architect, I recommend you be ready to adopt GitOps and use it as your vehicle to yet another successful and exciting step forward for your organization.
執筆者紹介
Mike Calizo is a Principal Customer Service Manager at Elastic. Before Elastic, he was an Associate Principal Solution Architect based in New Zealand. His technology focuses are OpenShift, RHEL, Satellite, and Ansible. Mike is also a very active member of the open source community and enjoys organizing and presenting at Ansible and OpenShift Meetups in New Zealand several times a year.
チャンネル別に見る
自動化
テクノロジー、チームおよび環境に関する IT 自動化の最新情報
AI (人工知能)
お客様が AI ワークロードをどこでも自由に実行することを可能にするプラットフォームについてのアップデート
オープン・ハイブリッドクラウド
ハイブリッドクラウドで柔軟に未来を築く方法をご確認ください。
セキュリティ
環境やテクノロジー全体に及ぶリスクを軽減する方法に関する最新情報
エッジコンピューティング
エッジでの運用を単純化するプラットフォームのアップデート
インフラストラクチャ
世界有数のエンタープライズ向け Linux プラットフォームの最新情報
アプリケーション
アプリケーションの最も困難な課題に対する Red Hat ソリューションの詳細
オリジナル番組
エンタープライズ向けテクノロジーのメーカーやリーダーによるストーリー
製品
ツール
試用、購入、販売
コミュニケーション
Red Hat について
エンタープライズ・オープンソース・ソリューションのプロバイダーとして世界をリードする Red Hat は、Linux、クラウド、コンテナ、Kubernetes などのテクノロジーを提供しています。Red Hat は強化されたソリューションを提供し、コアデータセンターからネットワークエッジまで、企業が複数のプラットフォームおよび環境間で容易に運用できるようにしています。
言語を選択してください
Red Hat legal and privacy links
- Red Hat について
- 採用情報
- イベント
- 各国のオフィス
- Red Hat へのお問い合わせ
- Red Hat ブログ
- ダイバーシティ、エクイティ、およびインクルージョン
- Cool Stuff Store
- Red Hat Summit