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
520
myshoesによるself-hosted macOS runnerのオートスケーリング対応について
https://gaugt.connpass.com/event/324715/
site0801
August 12, 2024
Tweet
Share
Featured
See All Featured
Producing Creativity
orderedlist
PRO
341
39k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Automating Front-end Workflow
addyosmani
1366
200k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Building Applications with DynamoDB
mza
91
6.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
270
Designing for humans not robots
tammielis
250
25k
Fireside Chat
paigeccino
34
3.1k
How to train your dragon (web standard)
notwaldorf
88
5.7k
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