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

About Arm VM on Azure

About Arm VM on Azure

AzureでのArm VMについて。

KAMEGAWA Kazushi

May 13, 2023
Tweet

More Decks by KAMEGAWA Kazushi

Other Decks in Technology

Transcript

  1. Who am I? personal: name: KAMEGAWA Kazushi(Last-First) alias: kkamegawa community:

    MVP: Microsoft MVP for Developer Technologies(2009-) Users Group: Team Foundation Server Users Group URL: https://dev.azure.com/tfsug/tfsuginfo Blog: URL: https://kkamegawa.hatenablog.jp devblog radio: https://devblog.connpass.com/
  2. 今手に入るWindowsが動作するArmデバイス Lenovo ThinkPad X13s ThinkPad X13s Gen 1 | Windows

    11 とSnapdragonを搭載した13.3型ビジネス PC | レノボ・ ジャパン (lenovo.com) Surface Pro9 Surface Pro 9: 2-in-1 の汎用性、パワフルで、フレキシブル | Microsoft Surface Dell Inspiron 14(USのみ) Qualcomm Snapdragon Compute Platform for Dell Inspiron 14 | Dell USA
  3. Windows Dev Kit 2023 (Project Volterra) を提供開始 - News Center

    Japan (microsoft.com) お安いArm開発機がお手元に! ※ といっても円安でUSほどお安くは… Surface Pro 9(Arm)から バッテリー/ディスプレイを抜いて、 メモリ増設した感じ。 32GB RAM/512GB SSD
  4. WindowsでのArm ごく一部を除きx86/x64/Arm32/Arm64のバイナリーが動作 Intel x86/x64はトランスレーターで変換して実行 Office, VS Code, Visual Studioなどはネイティブ有 MS以外のものはそんなに多くない

    .NET は6以降で正式対応 WindowsのUWPでのArm32はそろそろ廃止するから移行しろ よ!とアナウンスあり Deprecated features in the Windows client - What's new in Windows | Microsoft Learn
  5. AzureでのArm 2022/9/1から一般提供開始 一般提供:Ampere Altra Arm ベースのプロセッサを搭載した新しい Azure Virtual Machines |

    Azure の更新情報 | Microsoft Azure 現在日本リージョンでは提供されていない 一番近いのは東南アジア 個人的によく使うのはWest US2/3
  6. AzureでArm VMが使えるサービス Virtual Machine / Virtual Machine Scale Set Azure

    Kubernetes Cluster ※ ほかはないと思いますが、あったら教えて
  7. Azureで使えるArm VMシリーズ Dplsv5 / Dpldsv5 (dはDドライブの有無) だいたいDlsv5シリーズと同じ構成 Dpsv5 / Dpdsv5

    (同上) だいたいDsv5シリーズと同じ構成 Epsv5 / Epdsv5(同上) だいたいEsv5シリーズと同じ構成
  8. Support OS Windows 11(Preview) – Windows E3/E5必要 Linux Ubuntu 18.04以降

    CentOS Debian 11 Red Hat Enterprise Linux SUSE AlmaLinux Flatcar Container Linux ※ 他あったらごめん
  9. やすい? Dlsv5 Dplsv5 Cost比 2vCPU / 4GiB $0.085 $0.068 80.0%

    4vCPU / 8GiB $0.170 $0.136 80.0% 8vCPU/ 16GiB $0.340 $0.272 80.0% 16vCPU/ 32Gib $0.680 $0.544 80.0% Dsv5 Dpsv5 Cost比 2vCPU/8GiB $0.096 $0.077 80.2% 4vCPU/16GiB $0.192 $0.154 80.2% 8vCPU/32GiB $0.384 $0.308 80.2% 16vCPU/64GiB $0.768 $0.616 80.2% 32vCPU/128GiB $1.536 $1.232 80.2% • 2023/5/2現在の料金 • West US2/Ubuntuでの見積もり。 • 1時間単位の料金 • 一時ストレージなし • IntelはHTありなのでvCPUと物理コアは2:1 Esv5 Epsv5 Cost比 2vCPU/16GiB $0.126 $0.101 89.3% 4vCPU/32GiB $0.252 $0.202 89.3% 8vCPU/64GiB $0.504 $0.403 89.1% 16vCPU/128GiB $1.008 $0.806 89.1%
  10. はやい? Azureのドキュメントにあるベンチマークを使って計測 Azure Linux VM のコンピューティング ベンチマーク スコア - Azure

    Virtual Machines | Microsoft Learn Armは一覧にないのでコンパイルして実測 sudo apt install build-essential ベンチマークではIntelのほうが25%くらいよい? ※ だいたい価格比相応? D2psv5 E2psv5 D2sv5 E2sv5 1回目 23663 23664 29353 29601 2回目 23601 23575 29485 29509 ※ 並列オプションなし。make で実行のみ
  11. VS Code Server 要はセルフホスト版 vscode.dev ※ただし、複数人同時利用は想定されていない VS CodeにRemote – Tunnel拡張必要

    Arm VMでVS CodeのCLI版を実行して接続 Visual Studio Code Server Remote Tunnels (visualstudio.com)
  12. Azure Pipelines / GitHub self-host agentで使う場合 古い(サポート切れ).NET SDK 5以前がない Edge/Chrome/Firefoxなどの一部のGUI依存ツール

    がない ブラウザーの互換テスト用に必要 ※ でもこんな重い処理をArmでやる必要は…
  13. Azure Pipelines で self-host agent! .NETアプリをビルドするだけ(.NET SDKのみ)ならエー ジェントの構築は簡単 1. GitHubから最新エージェントを取得(OS毎)

    2. tar.gzを展開 3. ./config.shを実行 4. (daemon実行なら)./svc.shで登録 Deploy an Azure Pipelines agent on Linux - Azure Pipelines | Microsoft Learn
  14. OrchardCoreで実測 OrchardCoreは.NET製CMS OrchardCMS/OrchardCore: Orchard Core is an open-source modular and

    multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework. (github.com) それなりの規模(ビルド対象csprojが200) OS : Ubuntu 22.04 LTS 2vCPU, 8GB RAM Standard HDD .NET 7 SDK(7.0.203) ※ あくまでも傾向程度で D2s_v5 D2ps_v5 Hosted Agent
  15. ビルドに使ったYAML steps: - task: UseDotNet@2 displayName: 'install .NET SDK 7.0.x'

    inputs: packageType: 'sdk' version: '7.x' - task: DotNetCoreCLI@2 displayName: 'build' inputs: command: 'build' arguments: '$(Build.SourcesDirectory)/OrchardCore.sln -c Release -f net7.0'