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.6k
RDRA/DDD/Goでモジュラーモノリスのアプリを開発してみた話 / developing a modular monolith application with RDRA DDD Go
imamotohikaru
3
2.2k
RDRAとDDDでGoのモジュラーモノリスアプリを設計してみた話
imamotohikaru
2
3.1k
Other Decks in Technology
See All in Technology
.NET 9 のパフォーマンス改善
nenonaninu
0
1k
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
200
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
110
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
120
普通のエンジニアがLaravelコアチームメンバーになるまで
avosalmon
0
110
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
860
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
170
Amazon Kendra GenAI Index 登場でどう変わる? 評価から学ぶ最適なRAG構成
naoki_0531
0
120
多領域インシデントマネジメントへの挑戦:ハードウェアとソフトウェアの融合が生む課題/Challenge to multidisciplinary incident management: Issues created by the fusion of hardware and software
bitkey
PRO
2
110
ハイテク休憩
sat
PRO
2
160
統計データで2024年の クラウド・インフラ動向を眺める
ysknsid25
2
850
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
210
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
Code Review Best Practice
trishagee
65
17k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
98
4 Signs Your Business is Dying
shpigford
181
21k
Building Adaptive Systems
keathley
38
2.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Rails Girls Zürich Keynote
gr2m
94
13k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Become a Pro
speakerdeck
PRO
26
5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
Documentation Writing (for coders)
carmenintech
66
4.5k
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 ご清聴ありがとうございました。