Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SRE課が開発中システムのCI/CDで取り組んでいるGitOpsの話 / GitOps wit...
Search
Imamoto Hikaru
December 09, 2022
Technology
1
1.4k
SRE課が開発中システムのCI/CDで取り組んでいるGitOpsの話 / GitOps with ArgoCD
Imamoto Hikaru
December 09, 2022
Tweet
Share
More Decks by Imamoto Hikaru
See All by Imamoto Hikaru
実践!RDRAを活用した既存システムの仕様変更 / Specification Changes in Existing Systems Utilizing RDRA
imamotohikaru
1
6.4k
RDRA/DDD/Goでモジュラーモノリスのアプリを開発してみた話 / developing a modular monolith application with RDRA DDD Go
imamotohikaru
3
2.1k
RDRAとDDDでGoのモジュラーモノリスアプリを設計してみた話
imamotohikaru
2
3.1k
Other Decks in Technology
See All in Technology
分布で見る効果検証入門 / ai-distributional-effect
cyberagentdevelopers
PRO
4
700
30万人が利用するチャットをFirebase Realtime DatabaseからActionCableへ移行する方法
ryosk7
5
350
Forget efficiency – Become more productive without the stress
ufried
0
140
Aurora_BlueGreenDeploymentsやってみた
tsukasa_ishimaru
1
120
生成AIの強みと弱みを理解して、生成AIがもたらすパワーをプロダクトの価値へ繋げるために実践したこと / advance-ai-generating
cyberagentdevelopers
PRO
1
180
大規模データ基盤チームのオンプレTiDB運用への挑戦 / dpu-tidb
cyberagentdevelopers
PRO
1
110
2024-10-30-reInventStandby_StudyGroup_Intro
shinichirokawano
1
630
最速最小からはじめるデータプロダクト / Data Product MVP
amaotone
5
740
[JAWS-UG金沢支部×コンテナ支部合同企画]コンテナとは何か
furuton
3
260
君は隠しイベントを見つけれるか?
mujyun
0
290
事業者間調整の行間を読む 調整の具体事例
sugiim
0
1.5k
【技術書典17】OpenFOAM(自宅で極める流体解析)2次元円柱まわりの流れ
kamakiri1225
0
210
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
107
49k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
GitHub's CSS Performance
jonrohan
1030
460k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Embracing the Ebb and Flow
colly
84
4.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
290
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
228
52k
Designing for Performance
lara
604
68k
Adopting Sorbet at Scale
ufuk
73
9k
Transcript
#RAKUSMeetup ©2022 RAKUS Co., Ltd. SRE課が開発中システムの CI/CDで取り組んでいるGitOpsの話 株式会社ラクス 今本光
#RAKUSMeetup 今本光(いまもとひかる) SI企業でのエンジニア経験を経て 2021/10にラクスに入社。 SRE課 BusinessPlatform チーム所属。 社内の複数サービスを横断したビ ジネス基盤となるアプリケーション の開発に携わっています。 趣味:野球観戦、サウナ、日向坂46
休日はコワーキングスペースで勉 強したりGoのコードを書いたりす ることが多いです。
#RAKUSMeetup 本日お話しする内容 • 現在開発中のシステムについて(Kubernetesを利用) • Kubernetesのデプロイについて • ArgoCDを使ったGitOpsへの取り組み • GitOpsによって得られるメリット
#RAKUSMeetup 現在開発中のシステムについて
#RAKUSMeetup 現在開発中のシステムの概要 • 業務運用課の要望を元に現在開発中の新規システム • 運用コスト削減や運用作業品質向上を目的としたWebアプリ ◦ 現在は人の手で判断・作業している運用業務を削減 • AWS上にKubernetesを構築してアプリケーションを運用する
想定
#RAKUSMeetup デプロイ環境ごとの構成
#RAKUSMeetup 全体図
#RAKUSMeetup Kubernetesのデプロイについて
#RAKUSMeetup コマンドによるデプロイ方法 • Kubernetesマニフェスト上のコンテナイメージ情報を更新し て、以下のコマンドでデプロイ実施可能 $ kubectl apply -f deployment.yml
#RAKUSMeetup kubectl applyにおける課題 • (1) 誰がいつ変更を適用したかのログが取りづらい ◦ 開発者のローカル環境で直接コマンド実行したりすると誰がコマンド実行したか 追えなくなる •
(2) コマンドミスが発生する可能性がある ◦ 人の手でコマンド実行する場合、コピペミスや反映する環境の設定ミスで事故が 発生する可能性がある • (3) クラスタの認証情報を外部に公開する必要がある ◦ Kubernetesクラスタの認証情報をコマンド実行者や実行元システムが保持す る必要がある
#RAKUSMeetup kubectl applyは課題がいっぱい! • kubectl applyを打たずにアプリをデプロイしたい!! →この課題に対する解決策としてGitOpsに取り組んでいます。
#RAKUSMeetup ArgoCDを使った GitOpsへの取り組み
#RAKUSMeetup GitOpsとは • デプロイに関する問題を解消する手段として、GitOpsという手 法に取り組んでいます。 • GitOpsとは「アプリだけでなくインフラも含めてシステム全体の コードをGitを使って管理する手法」です。 • CIだけでなくCDも含めてGit操作だけで完結するようになりま
す。
#RAKUSMeetup GitOpsを実現するためのツール • CI:GitHub Actions ◦ GitHub上のリポジトリへのPushやPRマージをトリガーに特定の処理を 実行する • CD:ArgoCD
◦ Kubernetes環境でGitOpsを実現するためのCDツール ◦ Gitリポジトリ上のKubernetesマニフェストを監視して、変更を検知した らKubernetesクラスタに適用(=デプロイ)
#RAKUSMeetup GitOpsの実現方法
#RAKUSMeetup GitOpsの実現方法
#RAKUSMeetup GitOpsの実現方法
#RAKUSMeetup GitOpsの実現方法
#RAKUSMeetup GitOpsの実現方法
#RAKUSMeetup GitOpsの実現方法
#RAKUSMeetup GitOpsによって得られるメリット
#RAKUSMeetup GitOpsによって得られるメリット • デプロイ手順の簡略化 ◦ GitHubのCIとPRマージのみで完結するのでデプロイ手順がシンプル • デプロイ情報のログが残せる ◦ GitHub上でのPRマージがデプロイの契機となるので、操作者やデプロイ時刻、デプ
ロイ内容のログが自動的に残る • セキュアなデプロイ手順となる ◦ kubectlコマンドでのデプロイと比較して、デプロイ手順ミス等のヒューマンエラーが 起きない ◦ クラスタの認証情報もAWS内部で保持すれば良いので、外部に持つ必要があない
#RAKUSMeetup まとめ • Kubernetesクラスタへのデプロイの手法としてGitOpsの実 現に取り組んでいます。 • GitOpsを実現するツールとしてArgoCDを採用しています。 • GitHub+ArgoCDでCI/CDを実行することで、kubectlコマ ンドでのデプロイと比較して様々なメリットがあります。
#RAKUSMeetup ご清聴ありがとうございました。