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
660
myshoesによるself-hosted macOS runnerのオートスケーリング対応について
https://gaugt.connpass.com/event/324715/
site0801
August 12, 2024
Tweet
Share
Featured
See All Featured
Designing for humans not robots
tammielis
250
25k
GraphQLとの向き合い方2022年版
quramy
44
14k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
RailsConf 2023
tenderlove
29
1k
Site-Speed That Sticks
csswizardry
4
400
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Code Review Best Practice
trishagee
67
18k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Become a Pro
speakerdeck
PRO
26
5.2k
How to Ace a Technical Interview
jacobian
276
23k
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