Upgrade to Pro — share decks privately, control downloads, hide ads and more …

myshoesによるself-hosted macOS runnerのオートスケーリング対応について

site0801
August 12, 2024
520

myshoesによるself-hosted macOS runnerのオートスケーリング対応について

site0801

August 12, 2024
Tweet

Transcript

  1. 齋藤 健太 (Saito Kenta / @site0801) 
 
 • 入社年度


    ◦ 2022 年 新卒入社
 • 所属
 ◦ CIU > Development Div
 • 最近の業務 
 ◦ プライベートクラウド運用
 ◦ マネージドサービスの開発・運用
 • 趣味
 ◦ ゲーム・漫画
 2

  2. actions/runner単体運用の懸念点 
 • macOSの設定やライブラリバージョンが不安定 
 ◦ 自動バージョンアップグレードによる環境の変化
 ◦ XCodeのバージョンアップ対応
 •

    環境を使い回すことによる影響 
 ◦ 前に使われていたジョブによるmac環境の汚染
 →実行時に毎回環境が同じじゃないのはつらい ...
 9

  3. Auto Scalingどこまでやるか 
 • VMの再作成まで自動化 
 ◦ VM上でmacOS Runner環境を作ってジョブごとに再作成
 ◦

    Cycloud-hosted Runnerではこっちを実現
 • mac筐体をプール追加するまで自動化 
 ◦ NW上に配置しておくだけで自動でプールに追加
 ◦ 対応コストがめちゃくちゃ高い😨
 11

  4. Auto Scalingどこまでやるか 
 • VMの再作成まで自動化 
 ◦ VM上でmacOS Runner環境を作ってジョブごとに再作成
 ◦

    Cycloud-hosted Runner ではこっちを実現
 • mac筐体をプール追加するまで自動化 
 ◦ NW上に配置しておくだけで自動でプールに追加
 ◦ 対応コストがめちゃくちゃ高い😨
 12

  5. 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

  6. [PR]Cycloud-hosted Runnerとは
 • Cy(berAgent)Cloud-hosted Runner 
 • Cycloud 
 ◦

    CyberAgent社内向けプライベートクラウド
 ◦ Compute・KaaS・PaaSなどなど
 • 内部ではwhywaita/myshoesを用いている 
 15

  7. 現在の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]
  8. 現在の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に関係
  9. 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
  10. 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が 現在どの状態なの かわからない問題
  11. 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が ・起動中 ・ジョブ実行待ち ・ジョブ実行中 ・ジョブ実行完了 どの状態なのか?
  12. 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
  13. 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
  14. ~~~.anka.pkr.hcl って何だろう ...???(初心者の妄想 )
 28
 • Veertu社が開発・販売しているAnkaシリーズに関係してそう 
 • Anka

    Build : macOS上でのVM管理をうまいことやってくれる 
 ◦ GitHub Actionsやその他CIサービスとのインテグレーション⭕
 ◦ Apple Siliconの対応⭕
 ◦ Apple SiliconとIntelで価格が違いそう?
 • ただ、一応本家macOS Runnerは 全部AzureのDCにありそう 🧐
 • しかも、Veertu社はAWSと仲が良さそう 🧐