myshoesによるself-hosted macOS runnerのオートスケーリング対応について
by
site0801
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
myshoesによるself-hosted macOS runnerのオートス ケーリング対応について CyberAgent Infrastructure Unit / K.Saito 1
Slide 2
Slide 2 text
齋藤 健太 (Saito Kenta / @site0801) ● 入社年度 ○ 2022 年 新卒入社 ● 所属 ○ CIU > Development Div ● 最近の業務 ○ プライベートクラウド運用 ○ マネージドサービスの開発・運用 ● 趣味 ○ ゲーム・漫画 2
Slide 3
Slide 3 text
self-hosted runnerの運用して る方〜〜〜 👋 3
Slide 4
Slide 4 text
self-hosted macOS runnerの運 用してる方〜〜〜 👋 4
Slide 5
Slide 5 text
macOS版self-hoted runnerを動かす方法 ● 基本的にはLinux版と同様 ● まずはactions/runner をmac筐体上で実行 5
Slide 6
Slide 6 text
macOS版self-hoted runnerを動かす方法 ● 基本的にはLinux版と同様 ● まずはactions/runner をmac筐体上で実行 ● 以上! 6
Slide 7
Slide 7 text
もしかしてauto scaling とかいらなくない?? 7
Slide 8
Slide 8 text
actions/runner単体運用の懸念点 ● macOSの設定やライブラリバージョンが不安定 ○ 自動バージョンアップグレードによる環境の変化 ○ XCodeのバージョンアップ対応 ● 環境を使い回すことによる影響 ○ 前に使われていたジョブによるmac環境の汚染 8
Slide 9
Slide 9 text
actions/runner単体運用の懸念点 ● macOSの設定やライブラリバージョンが不安定 ○ 自動バージョンアップグレードによる環境の変化 ○ XCodeのバージョンアップ対応 ● 環境を使い回すことによる影響 ○ 前に使われていたジョブによるmac環境の汚染 →実行時に毎回環境が同じじゃないのはつらい ... 9
Slide 10
Slide 10 text
やっぱり環境再作成が できて欲しいかも 🧐 10
Slide 11
Slide 11 text
Auto Scalingどこまでやるか ● VMの再作成まで自動化 ○ VM上でmacOS Runner環境を作ってジョブごとに再作成 ○ Cycloud-hosted Runnerではこっちを実現 ● mac筐体をプール追加するまで自動化 ○ NW上に配置しておくだけで自動でプールに追加 ○ 対応コストがめちゃくちゃ高い😨 11
Slide 12
Slide 12 text
Auto Scalingどこまでやるか ● VMの再作成まで自動化 ○ VM上でmacOS Runner環境を作ってジョブごとに再作成 ○ Cycloud-hosted Runner ではこっちを実現 ● mac筐体をプール追加するまで自動化 ○ NW上に配置しておくだけで自動でプールに追加 ○ 対応コストがめちゃくちゃ高い😨 12
Slide 13
Slide 13 text
myshoes? Cycloud-hosted runner? 13
Slide 14
Slide 14 text
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
Slide 15
Slide 15 text
[PR]Cycloud-hosted Runnerとは ● Cy(berAgent)Cloud-hosted Runner ● Cycloud ○ CyberAgent社内向けプライベートクラウド ○ Compute・KaaS・PaaSなどなど ● 内部ではwhywaita/myshoesを用いている 15
Slide 16
Slide 16 text
現在の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]
Slide 17
Slide 17 text
現在の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に関係
Slide 18
Slide 18 text
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
Slide 19
Slide 19 text
自動でVM再作成 できてるしよくない? 19
Slide 20
Slide 20 text
自動でVM再作成 できてるしよくない? 全然だめだったので 現在対応してます 😨 20
Slide 21
Slide 21 text
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が 現在どの状態なの かわからない問題
Slide 22
Slide 22 text
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が ・起動中 ・ジョブ実行待ち ・ジョブ実行中 ・ジョブ実行完了 どの状態なのか?
Slide 23
Slide 23 text
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
Slide 24
Slide 24 text
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
Slide 25
Slide 25 text
今後も改善頑張っていきます 25
Slide 26
Slide 26 text
そういえば 本家のmac Runnerは どうしてるんだろう? 🧐 26
Slide 27
Slide 27 text
macOS12から ~~~.anka.pkr.hcl というファイルが? 27
Slide 28
Slide 28 text
~~~.anka.pkr.hcl って何だろう ...???(初心者の妄想 ) 28 ● Veertu社が開発・販売しているAnkaシリーズに関係してそう ● Anka Build : macOS上でのVM管理をうまいことやってくれる ○ GitHub Actionsやその他CIサービスとのインテグレーション⭕ ○ Apple Siliconの対応⭕ ○ Apple SiliconとIntelで価格が違いそう? ● ただ、一応本家macOS Runnerは 全部AzureのDCにありそう 🧐 ● しかも、Veertu社はAWSと仲が良さそう 🧐
Slide 29
Slide 29 text
ご清聴ありがとうございました 29