LoginSignup
1
2

More than 3 years have passed since last update.

GitOps始めるぞ!の前に用語や周辺技術を整理してみた

Posted at

はじめに

GitOpsなるものがちまたで流行しているので、GKEで個人で運用しているサービスにも試しに取り入れてみようかと思っている今日このごろ

そもそもGitOpsが何者なのかもわかってないので、用語や周辺技術をまずはまとめてみる

用語の前提知識

CI

継続的インテグレーションのことで、コンパイル・テスト・デプロイといったソフトウェア開発のサイクル(ビルド)を頻繁に繰り返し実行させる

CD

継続的デリバリーのことで、ビルドやテストだけでなく、リリースプロセス全体を自動化

宣言的

一連の指示ではなく一連のファクトによって構成している
この記事がとてもわかりやすかった!

ここからが本題、GitOpsって何?

Weaveworks社が提唱する、CI/CDパイプラインの概念!
https://www.weave.works/blog/gitops-operations-by-pull-request

google翻訳を駆使しながら読んで、簡単にまとめると
コマンドラインツールを使わずに、gitの操作ですべての開発作業(もちろんデプロイも)を完結させる運用、そしてKubernetesの宣言的な構成と相性が良いと理解した

時間あるときにもう少しちゃんと読んでみようと思う

GitOpsのメリットは?

じゃあ、そのメリットでどこにあるのって話で、考えられるだけ洗い出してみた

  • git上の履歴を見るだけで環境に対して何が行われたかを追える
  • 実際に動いている環境とgitで宣言しているコードの違いを検知できる
  • コマンドラインによる人的な操作をなくすことで、オペミスをなくす
  • 人的な操作を削減は人的コストの削減につながる
  • CI/CDの分離
  • コードとコンフィグを分けることでセキュリティもよくなる

Docker、Kubernetesによる、Infrastructure as Codeが実現できている環境であるからこそ、GitOpsの強みを発揮できそうな印象(というよりInfrastructure as Codeであることが前提か)

また、個人の運用しているサービスに当てはめると、デプロイはkubectl applyコマンドを使っていて、本番との差分もkubectl diffに確認するという、人的オペレーションだらけとなっているので、これが自動化できるだけでも保守性がとても上がる!

どうやって実現するか?

CI、CD、manifestの管理ツールについて簡単にまとめた

CIツール

...etc

CDツール

...etc

manifest管理ツール

...etc

まとめ

今回はGitOpsを導入する前に用語や周辺技術に関して簡単にまとめてみた
今度は実際に導入してみる

参考

https://style.biglobe.co.jp/entry/2020/06/12/100000
https://knowledge.sakura.ad.jp/21870/
https://kabukawa.hatenablog.jp/entry/2018/12/21/130304

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2