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
2k
1
Share
SRE課が開発中システムのCI/CDで取り組んでいるGitOpsの話 / GitOps with ArgoCD
Imamoto Hikaru
December 09, 2022
More Decks by Imamoto Hikaru
See All by Imamoto Hikaru
日々のSlackアラート確認運用をCustom Chat Modesで楽にした話 / 日々のSlackアラート確認運用をCustom Chat Modesで楽にした話
imamotohikaru
0
1k
実践!RDRAを活用した既存システムの仕様変更 / Specification Changes in Existing Systems Utilizing RDRA
imamotohikaru
1
8k
RDRA/DDD/Goでモジュラーモノリスのアプリを開発してみた話 / developing a modular monolith application with RDRA DDD Go
imamotohikaru
3
2.7k
RDRAとDDDでGoのモジュラーモノリスアプリを設計してみた話
imamotohikaru
2
3.8k
Other Decks in Technology
See All in Technology
Hello UUID
mimifuwacc
0
130
🀄️ on swiftc
giginet
PRO
0
280
Data Enabling Team立ち上げました
sansantech
PRO
0
300
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
5
13k
AIを活用したアクセシビリティ改善フロー
degudegu2510
1
160
Strands Agents × Amazon Bedrock AgentCoreで パーソナルAIエージェントを作ろう
yokomachi
2
260
GitHub Copilotを極める会 - 開発者のための活用術
findy_eventslides
6
3.8k
OpenClaw初心者向けセミナー / OpenClaw Beginner Seminar
cmhiranofumio
0
370
暗黙知について一歩踏み込んで考える - 暗黙知の4タイプと暗黙考・暗黙動へ
masayamoriofficial
0
990
仕様通り動くの先へ。Claude Codeで「使える」を検証する
gotalab555
8
3.1k
組織的なAI活用を阻む 最大のハードルは コンテキストデザインだった
ixbox
6
1.3k
シン・リスコフの置換原則 〜現代風に考えるSOLIDの原則〜
jinwatanabe
0
170
Featured
See All Featured
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
140
Color Theory Basics | Prateek | Gurzu
gurzu
0
280
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
270
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
480
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Scaling GitHub
holman
464
140k
Music & Morning Musume
bryan
47
7.1k
How to Ace a Technical Interview
jacobian
281
24k
30 Presentation Tips
portentint
PRO
1
270
The agentic SEO stack - context over prompts
schlessera
0
730
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
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 ご清聴ありがとうございました。