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
Kubernetes Casual Talk - CyberAgent における Prow の...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Mizuki Urushida
December 07, 2021
Technology
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kubernetes Casual Talk - CyberAgent における Prow の運用事例 / Kubernetes Casual Talk 2 CyberAgent
こちらで発表した資料です。
https://mercari.connpass.com/event/227362/
Mizuki Urushida
December 07, 2021
More Decks by Mizuki Urushida
See All by Mizuki Urushida
Kubernetes で実現する最先端 AI プラットフォームへの挑戦 / Challenges for advanced AI Platform by Kubernetes
zuiurs
1
1.1k
CA 1Day Youth Boot Camp コンテナ技術入門編 / CA 1Day Youth Boot Camp - Introduction to Container technology
zuiurs
2
320
Kubernetes で始める ML 基盤ハンズオン / ML Platform Hands-on with Kubernetes
zuiurs
1
1.1k
Implementation of Intelligent HPA
zuiurs
3
5.9k
Kubernetes Cluster Autoscaler Deep Dive
zuiurs
8
2.5k
Kubernetes 上で KVS をマネージドっぽく使いたい! / Managed KVS on Kubernetes
zuiurs
3
2.2k
Other Decks in Technology
See All in Technology
Atlassian Cloudサポート業務でのAIエージェント活用事例
smt7174
0
120
AIエージェントに財布を渡す日 ― 承認付き"買い物エージェント"を作って実演
yama3133
0
110
VPCセキュリティ対応の最新事情
nagisa53
2
350
GMOフィナンシャルゲートが挑む、「止まらない」決済インフラ構築の裏側【SORACOM Discovery 2026】
soracom
PRO
0
110
システム監視を 「システムを監視するだけ」で 終わらせないために
seiud
0
160
「待ち時間」の消滅と「自我消耗」の加速:生成AI時代のエンジニアを救うメンタル・リソース管理
poropinai1966
0
360
信頼できるテスティングAIをどう育てるか?
odan611
0
170
ウォーターフォール開発案件のPMとしてAI活用を模索している話
hatahata021
2
230
検索技術知識0のエンジニアが広告検索システムを内製化して運用するまで
lycorptech_jp
PRO
0
170
A Bag-of-Documents Model for Query Specificity
dtunkelang
0
180
Claude Mythos、Fable...フロンティアAIの最新動向と企業のセキュリティ対策
flatt_security
0
170
PLaMo 3.0 Primeの事後学習
pfn
PRO
0
200
Featured
See All Featured
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
190
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
240
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
760
Google's AI Overviews - The New Search
badams
0
1.1k
Deep Space Network (abreviated)
tonyrice
0
240
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
340
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
The SEO Collaboration Effect
kristinabergwall1
1
510
Transcript
CyberAgent における Prow の運用事例 @zuiurs Kubernetes Casual Talk #2 CyberAgent,
Inc.
漆田 瑞樹 (Urushida Mizuki) • CyberAgent, Inc. ◦ 2018 年度
新卒入社 ◦ 全社横断インフラ組織 CIU • インフラ & ソフトウェアエンジニア ◦ 機械学習・推論基盤の開発 ◦ Kubernetes 基盤の開発 (AKE) • 趣味 ◦ タイピング、筋トレ (と書きたい)
Prow • Kubernetes ベースの CI/CD システム ◦ Kubernetes のコミュニティで開発・使用されている ◦
/lgtm のような ChatOps による様々な Automation を提供 • 最近 GitHub App での運用が推奨になった ◦ リポジトリの追加が圧倒的に楽に ◦ 従来の Bot 用アカウントでの運用も可能
None
None
presubmits: - name: test-sample rerun_command: "/test-sample" always_run: true agent: kubernetes
decorate: true clone_uri: "
[email protected]
:<org>/<repo>.git" spec: containers: - image: golang:1.17 command: - "sh" - "-c" - "cd ./sample; go test ./... -v"
CyberAgent CIU での 運用ポイントを 4 つ紹介
① Inrepoconfig をメインで利用
Inrepoconfig をメインで利用 • Prow のジョブ定義の方法は 3 つ
• Inrepoconfig により各リポジトリにジョブ定義を移譲 ◦ 他の CI/CD システムと似ている(.circle, .github) ◦ 開発・CI/CD リポジトリの行ったり来たりがなくなる • ただし Periodic(定期実行)が使えない点は注意 タイプ 管理場所 説明 Prow Config Prow 設定管理 Repo Prow の設定と一緒に書けるもの Job Config 1 つの自由な Repo Kubernetes Org のジョブはこれで管理 Inrepoconfig ジョブを実行したい Repo .prow.config or .prow/ に定義可能
② 複雑なジョブは Tekton Pipeline で
複雑なジョブは Tekton Pipeline で • ジョブの実行方式を定義する Agent という概念が存在
◦ それぞれの Agent 用のコントローラーをデプロイする必要あり • 依存関係などが複雑なジョブは Tekton Pipeline を利用 ◦ Prow にはジョブ間の依存関係を定義することができない Agent 説明 kubernetes Pod でジョブを実行 jenkins Jenkins X でジョブを実行 tekton-pipeline Tekton Pipeline でジョブを実行
③ Hook と Deck の Ingress は分ける
Hook と Deck の Ingress は分ける • Prow のマニフェストは外部公開向けに作られている ◦
Deck (WebUI) と Hook (Webhook 受信・処理) の Ingress が同じ • 社内向けに運用するためには Ingress を分割する必要がある ◦ Deck は内部に、Hook は外部に公開 ◦ 外部・内部用の Controller (IngressClass) を用意して分割 Deck Ingress Hook Ingress Deck Hook Internal IP External IP Ingress Deck Hook External IP
④ GitHub App とリポジトリ Webhook のハ イブリッド
GitHub App とリポジトリ Webhook のハイブリッド • GitHub App になったのは便利だがセキュリティ的に心配 ◦
個人なら良いが Organization に入れるためには公開が必要 ◦ インストールされてしまうとそのリポジトリの Webhook が飛んでくる ▪ まあまあ気持ち悪い • リポジトリの Webhook も利用したハイブリッド構成 ◦ GitHub App は投稿 Bot としての役割のみに ◦ Webhook を送るには従来通りリポジトリに Webhook を追加 Repo Prow Event Chat GitHub App Repo Prow Event (Directly) Chat GitHub App
1 年半ほど使ってみて感じたメリデメ • メリット ◦ ChatOps や Prow の Automation
によるレビュー文化のさらなる浸透 ◦ Kubernetes ベースなのでスケールが容易・デバッグがしやすい • デメリット ◦ CI/CD の記述がいまいち ◦ リリースがないのでアップデートが大変(Master ブランチしかない) ◦ ドキュメントの整備状況的にコードを読む覚悟が必要
ChatOps は最高なので使っていこう! ChatOps 付き CI/CD ではなく CI/CD 付き ChatOps です
ご清聴ありがとうございました