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
GitHub Actions & オートスケールするSelf-hosted runnerで実現...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Junya Miyake
April 18, 2023
Programming
1.7k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitHub Actions & オートスケールするSelf-hosted runnerで実現する KAGのみんなのCI/CD
2023-04-18 に行われたDevOpsDays Tokyo 2023の登壇資料です。
Junya Miyake
April 18, 2023
More Decks by Junya Miyake
See All by Junya Miyake
自律型コーディングエージェントでどこまで出来るかやってみる~ Claude Code vs GitHub Copilot(Agent mode) ~ / How Far Can Autonomous Coding Agents Go? ~Claude Code vs GitHub Copilot (Agent Mode)~
jnymyk
0
950
BEYOND THE RAG🚀 ~とりあえずRAG?を超えていけ! 本当に使えるAIエージェント&生成AIプロダクトを目指して~ / BEYOND-THE-RAG-Toward Practical-GenerativeAI-Products-AOAI-DevDay-2025
jnymyk
4
1.4k
LangfuseでAIエージェントの 可観測性を高めよう!/Enhancing AI Agent Observability with Langfuse!
jnymyk
1
690
完全に理解した!生成AI自社プロダクトのアジャイル開発の進め方!/ Fully understood! Agile tips for developing our generative AI product!(AOAI Dev Day)
jnymyk
5
2.9k
AzureでRAGをガンガン試行錯誤してみて得たナレッジを紹介します!/Azure RAG knowledge share
jnymyk
25
9.7k
KDDIのTech blogを爆速レスポンスでつくったよ
jnymyk
3
380
Other Decks in Programming
See All in Programming
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
390
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
420
AmebaブログはKMPから卒業します
kmars0605
0
190
contenteditable と日本語入力に向き合う
colorful12
0
200
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
1.1k
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
920
ジョジョの世界をXRで再現する
mofurune
0
160
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
170
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
230
Featured
See All Featured
Become a Pro
speakerdeck
PRO
31
6.3k
30 Presentation Tips
portentint
PRO
1
430
Music & Morning Musume
bryan
48
7.4k
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
Documentation Writing (for coders)
carmenintech
77
5.6k
Chasing Engaging Ingredients in Design
codingconduct
0
360
Done Done
chrislema
187
17k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
Transcript
KAGのみんなのCI/CD GitHub Actions & オートスケールするSelf-hosted runnerで実現するみんなのCI/CD 2023.04.18 KDDIアジャイル開発センター株式会社(KAG) 三宅 潤也
1 KDDI Agile Development Center Corporation 三宅 潤也(@jnymyk) Who am
I ? • ソフトウェアエンジニア 兼 SMとしてホーム IoT/XR/MaaSプロジェクトを経験 • KDDI/KAGの内製開発基盤であるGitHub Enterprise(GHE)のAdminもやってます • 趣味︓深夜ラジオ、ニチアサ、オンライン英会話 • 興味︓ 全員SM/POのチームの働き⽅、AIコーディン グ⽀援ツール(GitHub Copilot, Amazon CodeWhispererなど) ソフトウェアエンジニア / スクラムマスター KDDIアジャイル開発センター株式会社(KAG) / KDDI株式会社 所属
2 KDDI Agile Development Center Corporation KDDI Agile Development Center
Corp. KDDI アジャイル開発 センター株式会社 https://kddi-agile.com/ Whatʼs KAG?
3 KDDI Agile Development Center Corporation Whatʼs starters teams? •
本案件(契約に紐づく案件)を持たずに存在するチーム • ⼯数のビジネスではなく、Scrumチームで、価値を提供することを⽬標に始 まった新たな取り組み • 新たにチームを⽴ち上げる場合は、チームビルディングなどを先にしておいて、案件にスムーズに ⼊れるようにする • 既存チームの場合は、対応中の案件が終了してもそのチームを維持する
4 KDDI Agile Development Center Corporation What is required of
the starters team? • スターターズチームに求められること ◦ お客さまや⾃社のアイディアをとにかくすぐに動く形にしたい︕ ◦ でも継続的なテスト、デプロイによる品質の担保や効率化・省⼒化を諦めたくない・・・︕ →すぐにぱっと使えるCI/CD基盤がほしい︕︕︕ • いろんなチームでよく聞くCI/CDを取り巻くリアルなお悩み お客さまのステークホルダーや⾃社POにCI/CDの価値を伝える努⼒を続けてるいるものの、理解されるま で時間・労⼒がかかる →GitHub Actionsのymlを書けばすぐに試せる︕︕︕試して動くものが出来れ ばステークホルダーに価値を⽰しやすい。
5 KDDI Agile Development Center Corporation KAGではどうやってCI/CDを実現しているか︖ • GitHub Enterprise
Server(GHES)でのソースコード管理を中⼼に各チームで独⾃にCI/CDツールを選定 • 基本はチームにおまかせで技術選定 ◦ GHEを中⼼に、GitHub Actions, CircleCI, Jenkins, DroneCI, Bitraise … ◦ Bitbucket, Bamboo … ◦ AWS Code4兄弟(CodeBuild/CodePipeline/CodeDeploy/CodeCommit), Step Functions … • 最近はGitHub Actions(Self hosted runner) に収束してきている • メインはGitHub Actionsで各チームごとにSelf Hosted Runnerを⽴てて利⽤ ◦ 各チームごとにEC2を構築・運⽤ ◦ インフラやAWSに強い⼈が少ないチームでは⽴ち上げまでの時間がネックに GHESとGHECの違い
6 KDDI Agile Development Center Corporation みんなのCI/CDに必要な要件 • 社内で溜めたノウハウを活⽤しやすいGitHub Actionsを利⽤したい
• 社内のみんなが使えるSelf-hosted runnerを構築したい • 社内でRunnerをシェアするため、需要に応じてスケールさせたい • 使わないときのコストは最低限に抑えたい Self-hosted/GitHub-hosted runnerの違い
7 KDDI Agile Development Center Corporation Self-hosted runnerをスケールさせるための選択肢 • GitHub公式ドキュメントで推奨している2つのオートスケール⽅式
◦ actions/actions-runner-controller : Actions Runnerのスケールアップ・ダウンをk8sで制御する⽅式(k8s版) ◦ philips-labs/terraform-aws-github-runner : EC2スポットインスタンスとサーバレスなアーキテクチャの⽅式(ピタゴ ラスイッチ⽅式) 機能 actions-runner-controller (k8s⽅式) terraform-aws-github-runner (ピタゴラ⽅式) ランタイム Kubernetes Linux と Windows VM サポートされているクラウド Azure、AWS、Google Cloud Platform、オンプレミス AWS ランナーをスケーリングできる 場所 Enterprise、Organization、リポ ジトリのレベル。 ランナー ラベルとランナー グ ループ別。 Organization とリポジトリのレベ ル。 ランナー ラベルとランナー グ ループ別。 ランナーをスケーリングする⽅法 Webhook イベント、スケジュー ル、プル ベース Webhook イベント、スケジュー ル (Organization レベルのラン ナーのみ)
8 KDDI Agile Development Center Corporation KAGにとってのEnterprise/Organization/Repository • GitHubの概念と対応するKAGのリソース ◦
Enterprise: KAG ◦ Organization: プロジェクト(≒各開発チーム) ◦ Repository: チーム内の各リポジトリ 機能 actions-runner-controller terraform-aws-github-runner ランタイム Kubernetes Linux と Windows VM サポートされているクラウド Azure、AWS、Google Cloud Platform、オンプレミス AWS ランナーをスケーリングできる 場所 Enterprise、Organization、リポジ トリのレベル。 ランナー ラベルと ランナー グループ別。 Organization とリポジトリのレベル。 ランナー ラベルとランナー グルー プ別。 ランナーをスケーリングする⽅法 Webhook イベント、スケジュール、 プル ベース Webhook イベント、スケジュール (Organization レベルのランナーの み)
9 KDDI Agile Development Center Corporation ピタゴラ⽅式︓ terraform-aws-github-runnerによるGitHub Actions Self-hosted
runner GitHubリポジトリ • https://github.com/philips-labs/terraform-aws- github-runner 特徴 • IaCツールであるTerraformを使ってAWS上にスケー ルするSelf-hosted runnerの構築が可能 • 定価から最⼤90%値引きの料⾦で利⽤可能なEC2ス ポットインスタンスでRunnerを作成 • スケールアップ・スケールダウンの仕組みはAPI Gateway, Lambda, SQSなどのサーバレスサービス で構成 • GitHubからのwebhookをトリガーとしてRunnerを作 成し⾃動でスケールアップ。Actionsの実⾏が終わっ たRunnerを⾃動でGitHubから削除&AWS上でインス タンスを削除することで⾃動でスケールダウン アーキテクチャ図 https://github.com/philips-labs/terraform- aws-github-runnerより引⽤
10 KDDI Agile Development Center Corporation k8s⽅式: Actions Runner Controller
(ARC)によるGitHub Actions Self-hosted runner GitHubリポジトリ • https://github.com/actions/actions-runner-controller 特徴 • 社内共通で利⽤するために必要なEnterpriseレベルの Runnerを作成可能 • k8sクラスタ上にセルフホストランナーを作成するための k8sコントローラ • 需要に応じて⾃動でスケールアップ/ダウンできるセルフホ ストランナーを作成可能 • エフェメラルでコンテナに基づいているため、ランナーの 新しいインスタンスを迅速かつクリーンに⽴ち上げ可能 アーキテクチャ図 https://github.com/actions/actions-runner-controller より引⽤
11 KDDI Agile Development Center Corporation KAGのみんなのCI/CDの現状 • 現状、専任の組織・メンバーはいないため社内コミュ ニティ活動として有志で対応
• まずは特定のチームからピタゴラ⽅式(terraform- aws-github-runner)でOrganizationレベルのSelf- hosted runnerを構築して利⽤中 ◦ ハマりポイントやノウハウを蓄積中。 • k8s⾃体の学習と並⾏してk8s⽅式Self-hosted runnerを構築中 ◦ Self-hosted runnerだけでなく、k8s⾃体の GitOps/CDツールとしてFluxから構築 ◦ 先⾏してk8s⽅式を構築して利⽤中のチームから のノウハウ共有
12 KDDI Agile Development Center Corporation まとめ • お⼿軽にスケールするActions runnerを使いた
いだけならterraform-aws-github-runner(ピタ ゴラ⽅式)で良さそう • 私たちのように会社全体でみんなで共通の CI/CDとしてを使いたい (Enterpriseレベルの Actions runner)場合、ARC(k8s⽅式)を頑張る 必要がある terraform-aws-github-runner アーキテクチャ図 https://github.com/philips- labs/terraform-aws-github- runnerより引⽤ ARC アーキテクチャ図 https://github.com/actions/actions-runner- controller より引⽤
13 KDDI Agile Development Center Corporation We are hiring! ワーケーションイキタイ︕
• KAGの開発体験をより良くしていきたい仲間を募集中︕ ◦ 開発環境改善にフォーカスしてやっていきたい⽅ ◦ k8sが⼤好きな⽅ ◦ イケてる情シス・攻める情シスにモチベーションがある⽅ ◦ AWS以外のパブリッククラウド利⽤のための環境整備にモチベーションがある⽅ • 上記に加え、ソフトウェアエンジニア、スクラムマスター、アーキテクト、UI/UXデザイナーを積極採⽤中︕ • 募集職種の詳細や、募集要項はこちら ◦ https://kddi-agile.com/recruit • まずはお気軽にカジュアル⾯談へ ◦ https://kddi-agile.com/contact-recruit • ワーケーション⽀援制度を検討中。近⽇公開予定。
14 KDDI Agile Development Center Corporation ⾃社サービスもやってます︕ワーケーションイキタイ︕ • ワーケーション検索サービス タビトシゴト
◦ コーワーキング施設/宿泊施設情報、ブログ形式でワーケーション体験記を提供 ◦ ITエンジニアがペルソナ • GitHub.comでロードマップ公開中 • https://github.com/orgs/kddi-agile/projects/1 • 使ってみて機能要望や改善のフィードバックあればぜひissueで︕ • サービスへのフィードバック、ワーケーション中のふとしたことがあればぜひSNSで#タビトシゴト を付 けてつぶやいてみてください https://tabitoshigoto.com/
IUUQTBOZDPNNVXFCBQQ
Be a Change Leader. アジャイルに⼒を与え 共に成⻑し続ける社会を創る