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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Junya Miyake
April 18, 2023
Programming
5
1.5k
GitHub Actions & オートスケールするSelf-hosted runnerで実現する KAGのみんなのCI/CD
2023-04-18 に行われたDevOpsDays Tokyo 2023の登壇資料です。
Junya Miyake
April 18, 2023
Tweet
Share
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
240
BEYOND THE RAG🚀 ~とりあえずRAG?を超えていけ! 本当に使えるAIエージェント&生成AIプロダクトを目指して~ / BEYOND-THE-RAG-Toward Practical-GenerativeAI-Products-AOAI-DevDay-2025
jnymyk
4
1.1k
LangfuseでAIエージェントの 可観測性を高めよう!/Enhancing AI Agent Observability with Langfuse!
jnymyk
1
610
完全に理解した!生成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
300
Other Decks in Programming
See All in Programming
あなたはユーザーではない #PdENight
kajitack
4
290
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
2k
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
300
CopilotKit + AG-UIを学ぶ
nearme_tech
PRO
1
110
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
330
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
230
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
7
1.2k
今更考える「単一責任原則」 / Thinking about the Single Responsibility Principle
tooppoo
3
1.2k
15年目のiOSアプリを1から作り直す技術
teakun
0
570
2026/02/04 AIキャラクター人格の実装論 口 調の模倣から、コンテキスト制御による 『思想』と『行動』の創発へ
sr2mg4
0
640
CSC307 Lecture 14
javiergs
PRO
0
440
ご飯食べながらエージェントが開発できる。そう、Agentic Engineeringならね。
yokomachi
1
270
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
130
Are puppies a ranking factor?
jonoalderson
1
3k
sira's awesome portfolio website redesign presentation
elsirapls
0
170
Code Review Best Practice
trishagee
74
20k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
2
65
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
How to Talk to Developers About Accessibility
jct
2
140
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Accessibility Awareness
sabderemane
0
71
Design in an AI World
tapps
0
160
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
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. アジャイルに⼒を与え 共に成⻑し続ける社会を創る