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
GitHub Actions & オートスケールするSelf-hosted runnerで実現...
Search
Junya Miyake
April 18, 2023
Programming
1.6k
5
Share
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
570
BEYOND THE RAG🚀 ~とりあえずRAG?を超えていけ! 本当に使えるAIエージェント&生成AIプロダクトを目指して~ / BEYOND-THE-RAG-Toward Practical-GenerativeAI-Products-AOAI-DevDay-2025
jnymyk
4
1.2k
LangfuseでAIエージェントの 可観測性を高めよう!/Enhancing AI Agent Observability with Langfuse!
jnymyk
1
640
完全に理解した!生成AI自社プロダクトのアジャイル開発の進め方!/ Fully understood! Agile tips for developing our generative AI product!(AOAI Dev Day)
jnymyk
5
2.7k
AzureでRAGをガンガン試行錯誤してみて得たナレッジを紹介します!/Azure RAG knowledge share
jnymyk
25
9.5k
KDDIのTech blogを爆速レスポンスでつくったよ
jnymyk
3
320
Other Decks in Programming
See All in Programming
Claude Code × Gemini × Ebitengine ゲーム制作素人WebエンジニアがGoでゲームを作った話
webzawa
0
160
PHPer、Cloudflare に引っ越す
suguruooki
1
110
クラウドネイティブなエンジニアに向ける Raycastの魅力と実際の活用事例
nealle
2
220
Vibe NLP for Applied NLP
inesmontani
PRO
0
470
의존성 주입과 모듈화
fornewid
0
150
From Formal Specification to Property Based Test
ohbarye
0
320
ドメインイベントでビジネスロジックを解きほぐす #phpcon_odawara
kajitack
3
800
SkillがSkillを生む:QA観点出しを自動化した
sontixyou
6
3.5k
JOAI2026 1st solution - heron0519 -
heron0519
0
150
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
3
170
GoogleCloudとterraform完全に理解した
terisuke
1
150
🦞OpenClaw works with AWS
licux
1
230
Featured
See All Featured
Odyssey Design
rkendrick25
PRO
2
580
A Modern Web Designer's Workflow
chriscoyier
698
190k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
The browser strikes back
jonoalderson
0
990
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
530
Unsuck your backbone
ammeep
672
58k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
280
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
340
First, design no harm
axbom
PRO
2
1.2k
Thoughts on Productivity
jonyablonski
76
5.1k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
210
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. アジャイルに⼒を与え 共に成⻑し続ける社会を創る