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
myshoesによるself-hosted macOS runnerのオートスケーリング対応について
Search
site0801
August 12, 2024
0
1k
myshoesによるself-hosted macOS runnerのオートスケーリング対応について
https://gaugt.connpass.com/event/324715/
site0801
August 12, 2024
Tweet
Share
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
140
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
51k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Darren the Foodie - Storyboard
khoart
PRO
0
2.1k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
89
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
120
Exploring anti-patterns in Rails
aemeredith
2
220
Skip the Path - Find Your Career Trail
mkilby
0
37
Transcript
myshoesによるself-hosted macOS runnerのオートス ケーリング対応について CyberAgent Infrastructure Unit / K.Saito
1
齋藤 健太 (Saito Kenta / @site0801) • 入社年度
◦ 2022 年 新卒入社 • 所属 ◦ CIU > Development Div • 最近の業務 ◦ プライベートクラウド運用 ◦ マネージドサービスの開発・運用 • 趣味 ◦ ゲーム・漫画 2
self-hosted runnerの運用して る方〜〜〜 👋 3
self-hosted macOS runnerの運 用してる方〜〜〜 👋 4
macOS版self-hoted runnerを動かす方法 • 基本的にはLinux版と同様 • まずはactions/runner をmac筐体上で実行
5
macOS版self-hoted runnerを動かす方法 • 基本的にはLinux版と同様 • まずはactions/runner をmac筐体上で実行
• 以上! 6
もしかしてauto scaling とかいらなくない?? 7
actions/runner単体運用の懸念点 • macOSの設定やライブラリバージョンが不安定 ◦ 自動バージョンアップグレードによる環境の変化 ◦ XCodeのバージョンアップ対応 •
環境を使い回すことによる影響 ◦ 前に使われていたジョブによるmac環境の汚染 8
actions/runner単体運用の懸念点 • macOSの設定やライブラリバージョンが不安定 ◦ 自動バージョンアップグレードによる環境の変化 ◦ XCodeのバージョンアップ対応 •
環境を使い回すことによる影響 ◦ 前に使われていたジョブによるmac環境の汚染 →実行時に毎回環境が同じじゃないのはつらい ... 9
やっぱり環境再作成が できて欲しいかも 🧐 10
Auto Scalingどこまでやるか • VMの再作成まで自動化 ◦ VM上でmacOS Runner環境を作ってジョブごとに再作成 ◦
Cycloud-hosted Runnerではこっちを実現 • mac筐体をプール追加するまで自動化 ◦ NW上に配置しておくだけで自動でプールに追加 ◦ 対応コストがめちゃくちゃ高い😨 11
Auto Scalingどこまでやるか • VMの再作成まで自動化 ◦ VM上でmacOS Runner環境を作ってジョブごとに再作成 ◦
Cycloud-hosted Runner ではこっちを実現 • mac筐体をプール追加するまで自動化 ◦ NW上に配置しておくだけで自動でプールに追加 ◦ 対応コストがめちゃくちゃ高い😨 12
myshoes? Cycloud-hosted runner? 13
whywaita/myshoesとは Auto-scaling VirtualMachine runner for GitHub Actions • myshoesとshoes(Provider)の2つのコンポーネント
• myshoes ◦ GitHub Appsとrunnerの管理をGitHubAPI経由で処理 • shoes(Provider) ◦ Openstack・LXD・UTM等とVMの作成・削除 14
[PR]Cycloud-hosted Runnerとは • Cy(berAgent)Cloud-hosted Runner • Cycloud ◦
CyberAgent社内向けプライベートクラウド ◦ Compute・KaaS・PaaSなどなど • 内部ではwhywaita/myshoesを用いている 15
現在のCycloud-hosted Runnerのざっくり構成図 16 Linux Runner myshoes MacOS Runner shoes
(Linux Provider) shoes (MacOS Provider) shoes (label router) Runnerの登録 ジョブ情報の取得 VMの作成 [self-hosted, Linux] [self-hosted, macOS]
現在のCycloud-hosted Runnerのざっくり構成図 17 Linux Runner myshoes MacOS Runner shoes
(Linux Provider) shoes (MacOS Provider) shoes (label router) Runnerの登録 ジョブ情報の取得 VMの作成 [self-hosted, Linux] [self-hosted, macOS] ココがmacOSに関係
mac mini 0001 Cycloud-hosted macOS Runnerの詳細構成 18 UTM MacOS
Runner (VM) shoes (MacOS Provider) mac mini 0002 UTM MacOS Runner (VM) VM-Create.sh VM-Delete.sh VM-Create.sh VM-Delete.sh
自動でVM再作成 できてるしよくない? 19
自動でVM再作成 できてるしよくない? 全然だめだったので 現在対応してます 😨 20
mac mini 0001 問題: VMのステートがわからない ... 21 UTM MacOS Runner
(VM) shoes (MacOS Provider) mac mini 0002 UTM MacOS Runner (VM) VM-Create.sh VM-Delete.sh VM-Create.sh VM-Delete.sh actions/runnerが 現在どの状態なの かわからない問題
mac mini 0001 問題: VMのステートがわからない ... 22 UTM MacOS Runner
(VM) shoes (MacOS Provider) mac mini 0002 UTM MacOS Runner (VM) VM-Create.sh VM-Delete.sh VM-Create.sh VM-Delete.sh actions/runnerが ・起動中 ・ジョブ実行待ち ・ジョブ実行中 ・ジョブ実行完了 どの状態なのか?
mac mini 0001 問題: VMのステートがわからない ... 23 UTM MacOS Runner
(VM) shoes (MacOS Provider) mac mini 0002 UTM VM-Create.sh VM-Create.sh VM-Delete.sh actions/runnerのログ を一定間隔でパース →メトリクス出力 VM-State-exporter.sh
mac mini 0001 問題: VMのステートがわからない ... 24 UTM MacOS Runner
(VM) shoes (MacOS Provider) mac mini 0002 UTM VM-Create.sh VM-Create.sh VM-Delete.sh 今後はagentを作成し常 に監視できるようにして いきたい! agent
今後も改善頑張っていきます 25
そういえば 本家のmac Runnerは どうしてるんだろう? 🧐 26
macOS12から ~~~.anka.pkr.hcl というファイルが? 27
~~~.anka.pkr.hcl って何だろう ...???(初心者の妄想 ) 28 • Veertu社が開発・販売しているAnkaシリーズに関係してそう • Anka
Build : macOS上でのVM管理をうまいことやってくれる ◦ GitHub Actionsやその他CIサービスとのインテグレーション⭕ ◦ Apple Siliconの対応⭕ ◦ Apple SiliconとIntelで価格が違いそう? • ただ、一応本家macOS Runnerは 全部AzureのDCにありそう 🧐 • しかも、Veertu社はAWSと仲が良さそう 🧐
ご清聴ありがとうございました 29