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
Why adopt GitOps with ArgoCD ?
Search
Annosuke Yokoo
October 07, 2024
Technology
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Why adopt GitOps with ArgoCD ?
Annosuke Yokoo
October 07, 2024
More Decks by Annosuke Yokoo
See All by Annosuke Yokoo
SRE は AI に何を任せるべきか。Plaid が Datadog で出した答え / what -should-SREs-delegate-to-AI? Plaid’s-answer-powered-by-Datadog
parupappa2929
0
40
Bits AI SRE と Datadog MCP Server による未来 / datadog-bits-ai-sre-and-mcp-server-feature
parupappa2929
0
590
Datadog GPU Monitoring で実現する GPU 監視 / datadog-gpu-monitoring
parupappa2929
0
64
Datadog による AI エージェント オブザーバビリティの最前線 / Datadog-AI-Agent-observability
parupappa2929
1
690
今日から始める CI/CD Observability / CICD Observability for Google Cloud
parupappa2929
0
73
Software Delivery Observability ~ CI・CD , DORA metrics も Datadog で可視化しよう ~ / datadog-ci-cd-observability
parupappa2929
0
840
Helm , Kustomize に代わる !? 次世代 k8s パッケージマネージャー Glasskube 入門 / glasskube-entry
parupappa2929
0
930
持続可能なプラットフォーム目指す、Platform Engineering 支援 / Enabling Platform Engineering
parupappa2929
0
160
Google Cloud Next Tokyo’24 勝手にRecap コンテナ最新アップデート紹介 / google-cloud-next-recap-gke-cloud-run
parupappa2929
0
150
Other Decks in Technology
See All in Technology
属人化を叩き割れ!「制作加速」と「安定化」の矛盾を打破する:8年目プロダクトが辿り着いた「ミスが起こり得ない」アセット制作フローの全貌
gree_tech
PRO
0
110
FORENSIA: ローカルLLMフォレンジックハーネス
sumeshi
2
420
【GCC2026】大規模言語モデルを活用した内製検索サービスの社内展開や業務活用
bandainamcostudios
PRO
0
320
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
840
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
モダンフロントエンド 開発研修
recruitengineers
PRO
4
820
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
130
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
3
1.1k
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
codmoninc
0
160
FPGAが実現する遠方宇宙の高空間分解能天体撮影 -大型地上望遠鏡の視力を補正する「補償光学」とは?-
komei_mt
0
560
Flutter × BLE Centralを自前Pluginで実装する設計パターン - MethodChannel / EventChannelで作る双方向ブリッジの実践 / Building Custom Flutter BLE Central Plugins: Bidirectional Bridging with Method & Event Channels
bitkey
PRO
0
150
Featured
See All Featured
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
470
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
660
Optimising Largest Contentful Paint
csswizardry
37
3.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Un-Boring Meetings
codingconduct
0
390
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Utilizing Notion as your number one productivity tool
mfonobong
4
550
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
210
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
650
Testing 201, or: Great Expectations
jmmastey
46
8.2k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
270
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
490
Transcript
GitOps with ArgoCD Demo. Annsouke Yokoo
Speaker Introduction Profile • Hometown : 群馬 → 東京 →
神奈川(Now)→ 群馬(Tommorow 📦🚚) • Enjoy : Premier League ⚽🦁 / MLB ⚾ Career • 3-shake inc, ◦ Google Cloud や Kubernetes を中心とした SRE プラクティス導入をお 手伝いの傍ら、People Management も実施 ◦ 金融系のお客様に対して、 DevOps 改善を中心とした支援 自動車会社のお客様に対して、 LLM Infra の支援 • 2023 Japan AWS Jr.Champion / 2023-24 AWS All Certification Engineer / Google Cloud All Certifications Annosuke Yokoo Engineering Team Lead / SRE
組織のビジネス課題 課題 • 当プロダクトは、収益の多角化と、競合他社が同様のサービスを出していないためユーザーの囲い込みを 目指し、早期の市場投入 を目指している • オンプレミス上で稼働する既存プロダクトでは、組織特性や当組織に最適化されていない CI/CD プロセス
(CIOps)に伴い、リリース作業に平均6時間以上の時間を要している 課題解決の方向性 • ”迅速な” 機能追加と顧客フィードバックの反映を可能にすることで、早期の利用者拡大 や顧客満足度向 上を目指す • 市場変化への迅速な対応による収益増加 と売上損失の最小化 を実現するため、*開発生産性 を高める ことを目指す (当ケース)*開発生産性 ≒ 変更のリードタイム短縮 / 展開頻度の向上
開発生産性とビジネスインパクトの関連 近年の開発プロセス傾向 • エンジアリングのコモディティ化(≒あらゆる技術は誰でも利用可能となる) • 競争優位として生産性が重視(≒リリースタイミングの自由自在さ、機能優位性) ビジネスインパクトとの関連 • 市場変化への迅速な対応による収益増加 ・仮説検証の試行回数(機能改善)
・1施策あたりのリードタイム短縮(新機能リリース) • 売上損失の最小化 ・最小限の障害、ロールバックの素早さ
エンジニアとして 開発生産性 を高めることで ビジネスインパクトを大きくする 確率を上げることができる
(当ケースにおいては) 開発生産性 を高める開発手法とし て、GitOps が有用であり、 GitOpsを実現するための手段とし て ArgoCDが活用できる
フ ロ ン ト エ ン ド エ ン ジ
ニ ア バ ッ ク エ ン ド エ ン ジ ニ ア ビ ジ ネ ス メ ン バ プロダクト A フ ロ ン ト エ ン ド エ ン ジ ニ ア バ ッ ク エ ン ド エ ン ジ ニ ア ビ ジ ネ ス メ ン バ プロダクト B ・・・ NWチーム Secチーム サーバーチーム ・・・ XXチーム Ops Dev (当ケース)開発生産性を高める上での課題 フ ロ ン ト エ ン ド エ ン ジ ニ ア バ ッ ク エ ン ド エ ン ジ ニ ア ビ ジ ネ ス メ ン バ 新規プロダクト
(当ケース)開発生産性を高める上での課題 • 組織がサイロ化しており、 Dev/Opsが完全に分離 • 人種や役割の異なる多様な エンジニアとの調和 • 責任分界点の明確化 組織的課題
• 自動化範囲の拡大 • 潜在的なセキュリティリスク • 運用コストの増加 技術的課題 組織・技術の両面に対して継続的に改善 する必要がある
フ ロ ン ト エ ン ド エ ン ジ
ニ ア バ ッ ク エ ン ド エ ン ジ ニ ア ビ ジ ネ ス メ ン バ プロダクト A フ ロ ン ト エ ン ド エ ン ジ ニ ア バ ッ ク エ ン ド エ ン ジ ニ ア ビ ジ ネ ス メ ン バ プロダクト B ・・・ NWチーム Secチーム サーバーチーム ・・・ XXチーム 組織的課題 技術的課題 • サイロ化しており、Dev/Opsが完全に分離 • 人種や役割の異なる多様なエンジニアとの調和 • 責任分界点の明確化 • 自動化範囲の拡大 • 潜在的なセキュリティリスク • 運用コストの増加 Ops Dev GitOps を中心としたエンジニアリングによるアプローチ 👷 フ ロ ン ト エ ン ド エ ン ジ ニ ア バ ッ ク エ ン ド エ ン ジ ニ ア ビ ジ ネ ス メ ン バ 新規プロダクト
少しだけ技術的な内容を ディスカッション
Developer 👷Operator Developer 👷Operator Developer 👷Operator 出典 :「Kubernetes Native」なCI/CDとは何か https://atmarkit.itmedia.co.jp/ait/articles/2105/26/news005.html
Developer 👷Operator Developer 👷Operator Developer 👷Operator 出典 :「Kubernetes Native」なCI/CDとは何か https://atmarkit.itmedia.co.jp/ait/articles/2105/26/news005.html
既存プロダクト
Developer 👷Operator Developer 👷Operator Developer 👷Operator 出典 :「Kubernetes Native」なCI/CDとは何か https://atmarkit.itmedia.co.jp/ait/articles/2105/26/news005.html
既存プロダクト 特に CD には大規模組織特有の多くの ”人”の介入が存在する • 何重もの承認フロー • リリーサーとの調整コスト・コミュニケーション • デプロイ失敗時(ロールバック)の対応
Developer 👷Operator Developer 👷Operator Developer 👷Operator 出典 :「Kubernetes Native」なCI/CDとは何か https://atmarkit.itmedia.co.jp/ait/articles/2105/26/news005.html
新規プロダクト
GitOps がもたらす効果 • 組織がサイロ化しており、Dev/Ops が分離 • 人種や役割の異なる多様なエンジニアとの調和 • 責任分界点の明確化 組織的課題
• 自動化範囲の拡大 • 潜在的なセキュリティリスク • 運用コストの増加 技術的課題 • GitOps という共通インタフェースにより、人種 や役割の壁を作らず、 self-serve で誰でもイ ンフラ変更に関与できる • CI/CD それぞれで別の仕組みを持つことで責 任分界点が明確化 • Git にあるべき状態が全て定義されているの で、人への依存が最小限 • CI に全ての権限を持たせる必要がない • CD 単独で迅速なデプロイ・ロールバックが可 能 GitOps の本質 Git に置かれたコードを SSoT(Single Source of Truth) として CI と CD の責任分界点を明確にする システムが自律的に状態を調整するため、人の介入が減り、デプロイやロールバックにかかる時間が短縮 再掲 GitOps による効果
PipeCD CNCF Graduated Projects GUI で操作可能なため、複雑な k8sの運 用を視覚的に理解できる 初めて GitOps
を 導入したい組織向け CNCF Graduated Projects GUI やユーザー管理機能はないものの シンプルで軽量に作られている 小規模で運用コストを 増やしたくない組織向け CNCF Sandbox Projects CyberAgent が開発したOSS マルチプロバイダーでの 利用を想定する組織向け GitOps を実現する代表的なツール ArgoCD ※ Spinnaker や Jnekins X など他にもOSSはたくさんある
ArgoCD FluxCD PipeCD GUI ⚫ ✖ ⚫ CLI ⚫ ⚫
⚫ Github Star ⭐17.5k ⭐6.4k ⭐1.1k Version v2.12.3 v2.3 v0.49.0 関連Project Argo Rollouts / Argo Workflow / etc. Flagger / etc. ✖ ナレッジの豊富さ ⚫ ※GitOpsの デファクトスタンダード ⚫ ※ArgoCD ほどは無い ▲ 組織との親和性 Projects や ApplicationSet などマルチテナント を柔軟に実現できる機能が備わっている ユーザー管理機能はなく k8sのRBACで権限制御 namespace ベースでマルチテナントを実現 マスターとエージェントに分かれているため、クラスター管 理の負荷がかかる エージェントのみで動作するので横展開はしやすい 比較観点
ArgoCD FluxCD PipeCD GUI ⚫ ⚫ ⚫ CLI ⚫ ✖
⚫ Github Star ⭐17.5k ⭐6.4k ⭐1.1k Version v2.12.3 v2.3 v0.49.0 関連Project Argo Rollouts / Argo Workflow / etc. Flagger / etc. ✖ ナレッジの豊富さ ⚫ ※GitOpsの デファクトスタンダード ⚫ ▲ 組織との親和性 Projects や ApplicationSet などマルチテナント を柔軟に実現できる機能が備わっている ユーザー管理機能はなく k8sのRBACで権限制御 namespace ベースでマルチテナントを実現 マスターとエージェントに分かれているため、クラスター管 理の負荷がかかる エージェントのみで可能なので横展開はしやすい 比較観点 総合的に判断し ArgoCD 1. GUI 操作により、初めての GitOps のイメージが掴み やすい 2. K8s 上で GitOps を実現する手段として デファクトスタンダード 3. 周辺エコシステムを含めて ナレッジが豊富 4. 大規模組織でのスケールを見据えた柔軟なマルチテナ ントの実現 ※ あくまで当ケースでの選定 今後も ArgoCD を運用していくかは組織体制・成熟度を見定めながら・・・
Demo1 : GitOps を ArgoCD で体験 目的 ・GitOps(CD 部分) を見てもらい、ArgoCD
で 簡単に実現できることを知る 💡 アプリケーション ・好きな文字を入れて 🐈ミーム画像を作成できるアプリ 内容 1. build 済み image を使用し Github から image tag を変更する (新しい Ver. をリリースすることを想定) 2. Argo CD が差分を検知 3. Argo CD からデプロイ
Demo2 : Argo Rollout を使用した簡易 AB テスト 目的 ・Argo Rollout
で *ABテストを安全かつすぐに実施できること を知ってもらう💡 (*ABテスト : Canary リリースの仕組みを利用した簡易的なもの) アプリケーション ・ある地点のリアルタイムの天気を表示するアプリ ( v1: Tokyo, v2: NewYork) 内容 1. ユーザーの反応をみる ABテストとして、 v1: Tokyo, v2: NewYork の天気を表示する 2. build 済み image を使用し、 image tag を変更する 3. ArgoCD からデプロイしてみる (デプロイ方式は Canary リリース) 4. アクセスをし A/B のバージョンが共存していることを見てみる Argo Rollout とは? Argo Project で開発されている Argo CD のエコシステム 高度なデプロイ・リリース( Blue/Green , Canary など) を簡単に実現することが可能
OSS を中心に GitOps を実現するツールを見てきました では、例えば Harness などの商用製品を利用することは無しなのか? 無しではない ただし、まずはスモールかつオプショナル に実現にするには、無償の
OSS として利用から 初めてみる方が、ビジネスバリューやテクニカルバリューに直結すると考える 多くのプロダクトやテクニカルサービスがある大規模組織では、 ベンダーロックインしない GitOps からまずは初めて見るのが良いのではないだろうか OSS で実現するビジネス的メリット
最もお伝えしたいこと • ポイント💡:GitOps(ArgoCD) を導入して終わりでは無い • GitOps による組織的・技術的変革を継続的に実施し 、開発生産性を高めるこ とで、迅速なプロダクトの成長を実現し、ビジネスインパクトにつなげることが
ゴール • GitOps はエンジニアリングがビジネスインパクトにつながる最も 効果的な手法の一つ! • ArgoCD を使うことで「小さく・素早く・安全に」 GitOps を開始できる
Thank you ! Do you have any questions? https://www.linkedin.com/in/annosuke-yokoo