Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Kubernetes Casual Talk - CyberAgent における Prow の...
Search
Mizuki Urushida
December 07, 2021
Technology
370
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.2k
CA 1Day Youth Boot Camp コンテナ技術入門編 / CA 1Day Youth Boot Camp - Introduction to Container technology
zuiurs
2
330
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
なぜAI時代に技術記事を書くのか?どう書くのか? 〜bunの場合〜
kworkdev
PRO
0
3.5k
FinOpsを導入してマルチプロダクトのコスト最適化を実現する
kworkdev
PRO
0
110
新卒エンジニア、 介護士になる
ryu1013
1
670
バイブコーディングの特徴と「コケて直す」ループ
happysamurai294
0
140
「作れる」と「リリースできる」の間にあったもの── PdMを外して見えた、PdMがやるべき仕事/Buildable ≠ Shippable: What Removing the PM Taught Me About the PM’s Job
yappli_developers
0
420
"計画的無茶振り"を通してAIネイティブ世代の新人を育てる
subroh0508
1
140
200人の配信コメント、 全部Jevが仕分けます 〜 マサカリガードを作ってみた 〜
katayamatg
1
500
ひとりで始めた AI駆動開発、チームに広げて何が変わったのか
kenichiodo
1
210
データマネジメント × 法務で作りあげる、 freeeの新しいデータガバナンスへの軌跡
freee
PRO
3
610
eBPF 簡介 2026 版
shunghsiyu
0
140
Lint の層を組み直した話
bengo4com
2
290
Copilot Coworkで「みのるん式」やってみた
minorun365
PRO
1
760
Featured
See All Featured
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
340
Into the Great Unknown - MozCon
thekraken
41
2.8k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
3k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
600
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Embracing the Ebb and Flow
colly
88
5.2k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
440
Navigating Weather and Climate Data
rabernat
0
570
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
2
990
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 です
ご清聴ありがとうございました