GitOps始めるぞ!の前に用語や周辺技術を整理してみた
はじめに
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
Author And Source
この問題について(GitOps始めるぞ!の前に用語や周辺技術を整理してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/tayu1605/items/54a425634b1c4cc6d664著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .