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
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Statistics for Hackers
jakevdp
799
230k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
200
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
78
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
0
67
What the history of the web can teach us about the future of AI
inesmontani
PRO
0
380
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Optimizing for Happiness
mojombo
379
70k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5k
Building the Perfect Custom Keyboard
takai
1
660
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