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
870
myshoesによるself-hosted macOS runnerのオートスケーリング対応について
https://gaugt.connpass.com/event/324715/
site0801
August 12, 2024
Tweet
Share
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
What's in a price? How to price your products and services
michaelherold
246
12k
Into the Great Unknown - MozCon
thekraken
40
1.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
282
13k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Visualization
eitanlees
146
16k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
760
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