myshoesによるself-hosted macOS runnerのオートスケーリング対応について
by
site0801
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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