GitOpsを正しく採用しさえすれば、それ以外のことは可能になる
開発者への浸透を図る過程で、チームは技術ではなく文化を語るようになった。GitOpsは文化の話であり、「不変のインフラ」という考え方は直感的ではない。開発者はステージング・QA・本番ごとに長く使うブランチを持つ働き方に慣れていたため、チームはトランクベース開発と、フォルダ単位でのプロモーションを教育していった。短命なブランチを使い、環境の違いはフォルダで表現する、という教え方だ。
ところが皮肉なことに、Akuity製のツール「Kargo」の登場により、ブランチとGitOpsの組み合わせは、人間が直接操作しない前提であれば十分に意味を持つことが分かってきた。KargoのAPIやUIを通じて開発者が操作すると、見た目はmainにプッシュしてUI上で承認する「ClickOps」のようだが、裏側ではdev・qa・prodというブランチを自動生成し、Argo CDと連携してクラスタに反映していく。人間が直接ブランチを切るのではなく、GitOpsエンジンやコントローラがブランチを操作して変更をGitやOCIに書き戻す、いわば「双方向GitOps」がここに成立した。
GitOpsを正しく採用しさえすれば、それ以外のことは可能になるというのがLajko氏の結論だ。ローリングアップデート・ブルーグリーン・カナリアといったProgressive Delivery(Argo RolloutsやFlaggerとの連携)も、ゼロダウンタイムも、ステートレスなクラスタであればディザスタリカバリすら「トラブルシューティングに30分以上かかるなら、そのクラスタごと捨てて新しく立ち上げる」という運用で解決できる。
platformengineering.orgの調査によれば、56.5%のプラットフォームチームが今やGitOpsを「トップクラスの能力」と評価し、CI/CD・Infrastructure as Code・Kubernetes自体に次ぐ4位にランクインしているという。
こうしてGitOpsエンジンの選定自体が戦略的な意思決定になった。Argo CD(2019年リリース、GitHub Star数約2万3800、コントリビューターは約1863名、Adobeやiits-Consultingなど430社超が採用)、Flux CD(2016年リリース、Star数約8300、貢献者約184名、SAPやCiscoなど164社が採用)、そして2022年リリースの新興ツールSveltos Addon Controller(Star数約550、貢献者約19名、Mistralなど10社超が採用、大規模フリートとアドオン管理に強み)という3つが並び立つ。
実際、Lajko氏のチームは1万5000クラスタ規模の検証で、1000クラスタに5000アプリケーションを2時間以内でデプロイできることを確認している。
