Azure News - 2026-10-10

2026-10-10
最終更新: 2026-10-11 03:59:41 JST

AI による概要

4 記事

この日は 4 件で、AKS のマルチ NIC 対応と Azure Arc 向け拡張機能の廃止予定、そしてインフラのイベント案内と GPU の実測記事でした。ネットワークブログでは、DRANET による AKS のマルチ NIC サポートがパブリックプレビューとなりました。Kubernetes は「すべての Pod がネットワークインターフェースを 1 つ持ち、同じノード上の Pod は同一のフラットなネットワークを共有する」という単純なネットワークモデルを前提に設計されており、ステートレスなマイクロサービスの多くではモデルが単純に保たれプラットフォームの可搬性も高まるため、これでうまく機能します。しかし、管理・制御・データの各トラフィックを別々のインターフェースに分けるようなネットワーク分離を必要とする一群のワークロードはこの形に収まりません。今回の対応はそうしたワークロードに向けたものです。廃止予定では、Azure Arc 対応 Kubernetes クラスター向けの Azure Key Vault Secrets Provider 拡張機能が 2027 年 10 月 9 日に廃止されると告知されました。現在この拡張機能を使っている場合は、廃止日までに Azure Key Vault Secret Store 拡張機能へ移行する必要があります。インフラでは、2026 年 10 月の OCP Global Summit 2026 における Microsoft の出展内容が案内されました。シリコンとシステムからデータセンターまで、AI をスケールさせるために必要なインフラをどう進めているかを、ブース C73 と基調講演、セッション、パネル、ワークショップで紹介するという内容です。10 月 13 日の基調講演 「Intelligence Infrastructure: Scaling AI for the Frontier Era」では、AI インフラがシリコン・システム・ソフトウェア・サイトをまたいだコデザインに依存することを前提に、技術の開発からグローバルなフリートに至る道筋、規模が変わると要件がどう変わるか、そしてクローズドループ冷却と低炭素な建設による持続可能なスケーリング、立地するコミュニティでの系統の信頼性と人材育成の役割などが扱われます。10 月 12 日のエグゼクティブセッションでは、生成 AI の急成長がコンピューティング基盤の需要を前例のない水準へ押し上げ、学習から広範な推論へワークロードが広がるなかで、電力系統やデータセンターからサーバー・シリコン・ソフトウェアまでクラウドのあらゆる層が試されていることが取り上げられます。GPU の運用では、Azure の H100 のスポット VM で Qwen3.8-27B を動かした実測の記事が公開されました。10 月 9 日の朝の 3 時間で 1 台の H100 が 1,434 リクエストを処理し、入力 1 億 6,870 万トークン、出力 127 万トークンをさばいています。その日のこのモデルの公開価格 (入力 100 万トークンあたり 0.425 ドル、キャッシュ済み入力 0.085 ドル、出力 2.55 ドル) で換算すると 24.35 ドル相当で、3 時間の VM の費用はそのリージョンのスポット価格で 4.65 ドルでした。Qwen3.8-27B は Apache 2.0 ライセンスの 270 億パラメータの密なモデルで、64 層のうち 48 層が Gated DeltaNet の線形アテンションを使ってトークンごとの KV キャッシュの代わりに固定サイズの状態を保つため、コンテキストに応じて伸びるのは残りの 16 層のフルアテンションだけで、長いコンテキストが GPU 1 枚に収まります。コンテキストウィンドウは 262,144 トークンで、YaRN でおよそ 100 万トークンまで広げる方法も文書化されています。記事では Azure の GPU VM 上での動かし方、チューニング、そして Application Insights と Grafana を使ったメトリクス・ログ・トレースによる端から端までの監視の組み方が解説されています。

主要トピック
  • コンテナ: DRANET による AKS のマルチ NIC サポートがパブリックプレビュー、管理・制御・データのトラフィック分離が必要なワークロードに対応

  • 廃止予定: Azure Arc 対応 Kubernetes 向けの Azure Key Vault Secrets Provider 拡張機能が 2027 年 10 月 9 日に廃止、Secret Store 拡張機能への移行が必要

  • インフラ: OCP Global Summit 2026 で Microsoft が AI 基盤の取り組みを紹介、10/13 の基調講演はシリコンからサイトまでのコデザインと持続可能なスケーリング

  • GPU: Azure の H100 スポット VM で Qwen3.8-27B を実測、3 時間 1,434 リクエストでトークン価値 24.35 ドルに対し VM 費用は 4.65 ドル

AI (Claude Opus 5) が生成 · 2026-10-11 08:19:50 JST

Azure Updates

Retirement: Azure Key Vault Secrets Provider Extension for Azure Arc enabled Kubernetes clusters

The Azure Key Vault Secrets Provider Extension for Azure Arc-enabled Kubernetes will be retired on October 9, 2027.Customers currently using the extension should plan to migrate to the Azure Key Vault Secret Store Extension before the retirement date. The

Azure Infrastructure Blog

Microsoft at OCP Global Summit 2026

詳細を表示
At OCP Global Summit 2026, Microsoft will showcase how we’re advancing the infrastructure needed to scale AI, from silicon and systems to the datacenter. Come visit Microsoft at Booth C73 and hear from Microsoft leaders and experts through our keynote and sessions, panels, and workshops across the summit.

Featured Sessions

KEYNOTE

Intelligence Infrastructure: Scaling AI for the Frontier Era

October 13 · 9:15 AM - 9:35 AM · SJCC, Street Level, South Hall

AI infrastructure depends on co-design across silicon, systems, software, and sites. This keynote examines how Microsoft brings those layers together to build scalable, reliable, and efficient infrastructure with security embedded throughout. It explores the path from technology development to a global fleet, how requirements change at scale, and how those lessons shape next-generation platforms. The session also considers sustainable scaling through closed-loop cooling and lower-carbon construction, the role of grid reliability and workforce development in host communities, and the challenges that call for ecosystem innovation.

EXECUTIVE SESSION

Powering the AI Era: Building Sustainable and Efficient Infrastructure at Cloud Scale

October 12 · 2:30 PM - 2:50 PM · SJCC, Concourse Level, 210AE

The explosive growth of generative AI is driving an unprecedented increase in demand for computing infrastructure. As AI workloads scale from training to widespread inference, every layer of the cloud stack is being challenged, from power grids and datacenters to servers, silicon, and software systems. Meeting this demand sustainably requires rethinking how computing infrastructure is designed, operated, and optimized.

Microsoft Breakout Sessions, Panels, and Workshops

Explore Microsoft daily sessions and hear from experts shaping the future of cloud and AI infrastructure.

Tuesday, October 13

9:55 - 10:00
AM
KEYNOTE

Women in OCP (WOCP) - Community First, AI Forward

Speakers: Sung Kim - BP Castrol, Shruti Sethi - Microsoft, Allison Boen - Alcatex and Shell Fluid, Anu Ramamurthy - Microchip
Location: SJCC - Street Level - South Hall
1:15 - 1:35 
PM
PRESENTATION | OIF Workshop

Enabling AI Scale-Up: Why Standards Matter and the Need for Industry Alignment

Speakers: Fotini Karinou - Microsoft
Location: SJCC - Lower Level - LL20BCD
1:45 - 2:00
PM
PRESENTATION | Networking

Switch Platform Architecture: A Unified Network Switch Platform Reference Design

Speakers: Tao Ren - Meta, Ying Xie - Microsoft
Location: SJCC - Concourse Level - 210AE
1:50 - 2:15
PM
PANEL | AI Open Data Center

Beyond the Build: Autonomous Robotics and the Future of Data Center Operations

Speakers: Shashank Gupta - Fleet Data Centers, Eric Xu - Meta, Rob Lawson-Shanks - Molg, Evan Johnson - Microsoft; Moderator: Joel Chakkalakal - PHS West
Location: SJCC - Concourse Level - 210CG
1:55 - 2:20
PM
PRESENTATION | Manageability Workshop

Redfish Aliasing Support and Redfish Streaming Telemetry Enhancements

Speakers: Bill Scherer - HPE, Hari Ramachandran - Microsoft Corporation, Jeff Autor - Vertiv
Location: SJCC - Lower Level - LL21BC
2:20 - 2:45
PM
PANEL | AI Open Data Center

Material Handling Automation for Next-Generation Datacenter Operations

Speakers: Rachel Soukup - Google; Ben Wong - Meta; Amir Porter - Microsoft; Moderator: Evan Johnson - Microsoft
Location: SJCC - Concourse Level - 210CG
2:20 - 2:45
PM
PANEL | AI Computing Continuum

Two Years of x86 Ecosystem Collaboration: Open Infrastructure, AI Readiness, and Developer Predictability

Speakers: Jeff McVeigh - Intel, Stephen Watt - Red Hat, Andrew Wheeler - HPE, Martin Dixon - Google, Jon Lange - Microsoft; Moderator: Robert Hormuth - AMD
Location: SJCC - Concourse Level - 211
2:35 - 2:45
PM
PRESENTATION | IPEC Workshop

IPEC Presentation

Speakers: Yawei Yin - Microsoft
Location: SJCC - Concourse Level - 230A 
3:15 - 3:45 
PM
PANEL | AI Open Data Center

Automation-Ready Infrastructure Design: From Light to Compute

Speakers: Mike McKee-Hector - Microsoft, Dave Evans - Google, Ryan Olson - Meta; Moderator: Eric Xu - Meta
Location: SJCC - Concourse Level - 210CG
3:50 - 4:05 
PM
PRESENTATION | Cooling Environments

Building a Scalable Waste Heat Ecosystem: Datacenter Waste Heat, Offtakers, and Market Platforms

Speakers: Maria Viitaniemi - Microsoft, Bharath Ramakrishnan - Microsoft
Location: SJCC - Concourse Level - 220C 
4:00 - 4:20 
PM
PRESENTATION | Manageability Workshop

Using SPDM for PLDM Firmware Updates: Authorization Policy and Measurement Manifest Capabilities

Speakers: Patrick Caporale - Lenovo, Brett Henning - Broadcom Inc., Scott Phuong - Microsoft
Location: SJCC - Lower Level - LL21BC
4:10 - 4:45 
PM
PRESENTATION | Cooling Environments

Heat Reuse Sub-Project Overview and Updates + Economics Tool Contribution

Speakers: Aime Comella - DayOne; Jack Kolar - Dataquarium; Gemma Reeves - Alfa Laval; Bharath Ramakrishnan - Microsoft; Ahliana Byrd - Ascentra Innovations
Location: SJCC - Concourse Level - 220C

Wednesday, October 14

8:00 - 8:25
AM
PANEL | AI Open DC: Power Distribution

+/-400V / 800V On-Board Power Delivery Requirements

Speakers: James Sun - Microsoft, Sachin Madhusoodhanan - Google, LJ (Jian) Lu - Google, Shengwen Xu - Meta; Moderator: Michelle Badal - Google
Location: SJCC - Concourse Level - 210CG
8:15 - 9:10
AM
PANEL | Systems Management

OCP Hardware Fault Management Workstreams Status and Relationship

Speakers: Theodros Yigzaw - NVIDIA; Vilas Sridharan - AMD; Janusz Jurski - Intel; Shubhada Pugaonkar - NVIDIA; Samer El-Haj-Mahmoud - Arm; Moderator: Drew Walton - Microsoft
Location: Concourse Level - 211
8:15 - 8:35
AM
PRESENTATION | SONiC Workshop

SONiC Community Year in Review: Powering the Open Network for the AI Era

Speakers: Yanzhao Zhang - Microsoft, Xin Liu - Microsoft
Location: SJCC - Concourse Level - 230A
8:20 - 8:40
AM
PRESENTATION | Storage

Comprehensive Testing for OCP Datacenter NVMe SSD Specification Compliance

Speakers: Timothy Sharp - Microsoft Corp, Nick Kriczky - Teledyne Lecroy, Rick Walsh - SANBlaze
Location: SJCC - Concourse Level - 212
8:25 - 8:50
AM
PANEL | Market Impact & Adoption

PG25 at Scale: What We've Learned and Where We're Going

Speakers: Keegan Yaroch - DOW Chemical, Paul Artman - AMD, Jacob Paugh - ChemTreat, Cam Turner - Microsoft; Moderator: Chris Campbell - Vertiv
Location: SJCC - Lower Level - LL21DE
8:30 - 8:50
AM
PRESENTATION | OCP Special Focus: Photonics

Optical Scale-Up AI Systems: Architectures, Standards, and Resiliency Strategies

Speakers: Fotini Karinou - Microsoft, Adrian Motamedi - Microsoft
Location: SJCC - Concourse Level - 210AE
8:45 - 9:05
AM
PRESENTATION | Cooling Environments

Air vs. Liquid: Where Does Air Cooling Still Win for General Compute?

Speakers: Jayesh Shah - Microsoft, Stewart Nguyen - Lenovo
Location: SJCC - Concourse Level - 220C
9:30 - 9:45
AM
SYMPOSIUM: POSTER AND PRESENTATION | FTS: Keynotes & Awards

Poster Session Break

Speakers: Samir Rajadnya - Microsoft, Oren Benisty - UniFabriX, Konstantin Tiutin - RIVVOR Inc., Timour Paltachev - Rivvor, Nazym Paltachev - rivvor, Sangsu Park - Samsung, Tushar Krishna - Georgia Institute of Technology, Seyyed Ali Ghorashi - Danovo Energy Solutions, Daniel Bauer - LoadCrest, Weipeng Zhang - LightXcelerate Inc, Manchen Hu - LightXcelerate, Xinyu Zhang - XPerf, Rakesh Sambaraju - Infraeo Inc., Xufu Ren - University of Cambridge, Yunqi Zhang - University of Cambridge, Shawn Yan - Vulcadi Inc, David Gyulnazaryan - Impleon, ROGER BASU - Coreshell Technologies, Inc, Fanny Oukhemanou - Syensqo, Taner Dosluoglu - weeteq, Patrick McCluskey - University of Maryland at College Park, Ibaad Gandikota - University of Maryland, Sang woo Ham - Lawrence Berkeley National Laboratory, Sam Abdel-Rahman - Infineon Technologies, Shuyu Zhang - UC Berkeley
Location: SJCC - Lower Level - LL20BCD
9:45 - 10:00
AM
PRESENTATION | Server

Scaling Hyperscale Cloud Networking from 400G to 800G: System Integration Lessons and Implications for OCP Platforms

Speakers: Lucy Yu - MSFT, Faye Yang - Microsoft
Location: SJCC - Lower Level - LL21BC
9:50 - 10:10
AM
PRESENTATION | SONiC Workshop

SONiC BMC for Unified Management and Next-Generation Liquid-Cooled Networks

Speakers: Judy Joseph - Microsoft, Roger Liao - Nexthop Systems Inc.
Location: SJCC - Concourse Level - 230A
10:05 - 10:20
AM
PRESENTATION | OCP Special Focus: Photonics

System-Level Evaluation of XPO for High-Density Optical Interconnects in AI Infrastructure

Speakers: Daniel Mohaghegh - Microsoft, Sunil Priyadarshi - Arista Networks
Location: SJCC - Concourse Level - 210AE
10:05 - 10:25
AM
PRESENTATION | Market Impact & Adoption

Upgrading OCP S.A.F.E. and S.O.L.I.D. for the AI age

Speakers: Zahra Lak - Microsoft, Jeff Andersen - Google
Location: SJCC - Lower Level - LL21DE
10:10 - 10:30
AM
PRESENTATION | Systems Management

System-Level Manageability for GPU Platforms — Progress in the OCP System GPU Management Workstream

Speakers: John Leung - Intel, Hari Ramachandran - Microsoft Corporation
Location: SJCC - Concourse Level - 211
10:40 - 11:00
AM
PRESENTATION | SONiC Workshop

Democratizing DPU High Availability with a SONiC-Driven DASH HA Control Plane

Speakers: Changrong Wu - Microsoft, Sudharsan Dhamal Gopalarathnam - NVIDIA
Location: SJCC - Concourse Level - 230A
10:50 - 11:10
AM
PRESENTATION | Server

Accelerating High-Power Server Design Through Board-Level Electro-Thermal Co-Simulation of VRMs and PDNs

Speakers: Steven Chien - Wiwynn Corporation, Zi Ping Wu - Microsoft
Location: SJCC - Lower Level - LL21BC
11:30 AM -
1:00 PM
PANEL | Meals & Breaks

Women in AI Luncheon presented by Women in OCP (WOCP) - Sponsored by Lenovo & NVIDIA

Speakers: Casey Moran - Lenovo, Cathie Deal - IREN, Shruti Koparkar - NVIDIA, Shruti Sethi - Microsoft; Moderator: Allison Boen - Alcatex and Shell Fluid
Location: San Jose Marriott - Level 2 - Salon III & IV
11:45 AM - 
12:00 PM
Expo Hall Sessions | SONiC

Open, Trusted, and Secure SONiC at Scale presented by Cisco

Speakers: Will Eatherton - Cisco; Dina Papagiannaki - Microsoft
Location: SJCC – Concourse Level – Expo Hall Theater
12:30 - 12:50
PM
PRESENTATION | SONiC Workshop

Beyond the T2 PIN: Pizza-Box Disaggregation for Next-Gen Regional Hubs

Speakers: Kamini Santhanagopalan - Broadcom, Rita Hui - Microsoft
Location: SJCC - Concourse Level - 230A
12:55 - 1:15
PM
PRESENTATION | Systems Management

Runtime SBOMs: Extending DMTF Redfish to Connect Build-Time and Live Software State

Speakers: Harsh Bhuwania - Microsoft, Prashant Dewan - Microsoft
Location: SJCC - Concourse Level - 211
1:20 - 1:40
PM
PRESENTATION | SONiC Workshop

6–12x Route Programming Acceleration in SONiC: A Collaborative Profiling and Optimization Journey

Speakers: Deepak Singhal - Microsoft, Amol Rawal - Nokia
Location: SJCC - Concourse Level - 230A
1:20 - 1:50
PM
PRESENTATION | Systems Management

GPU & CPU Diagnostics and RAS Standardization Advances for Hyperscale Infrastructure

Speakers: Rama Bhimanadhuni - Microsoft, Taniya Siddiqua - Advanced Micro Devices, Inc.
Location: SJCC - Concourse Level - 211
1:35 - 1:55
PM
PRESENTATION | AI Open DC: Power Distribution

Designing Safe 800 VDC Systems: Protection, Fault Management, and Operations

Speakers: Mike Tu - NVIDIA, Xianyong Feng - Microsoft
Location: SJCC - Concourse Level - 210CG
3:15 - 3:35
PM
PRESENTATION | Systems Management

From Lab to Fleet: A Secure, Unified Debug Framework for Cloud Systems

Speakers: Suresh Duthiraru - Microsoft, Rolf Kuehnis - Lauterbach Inc.
Location: SJCC - Concourse Level - 211
3:15 - 3:55
PM
PANEL | Storage

OCP Storage Specifications Update and What Customers Care About

Speakers: David Black - Dell Technologies, Timothy Sharp - Microsoft Corp., Chris Sabol - Google, Jeff Wolford - HPE, Vineet Parekh - Meta; Moderator: Ross Stenfort - SanDisk
Location: SJCC - Concourse Level - 212
3:40 - 4:00
PM
PRESENTATION | SONiC Workshop

Extending Community SONiC for Advanced Optics Telemetry Aligned with OCP Standards

Speakers: Rajan Pai - Credo, Prince George - Microsoft
Location: SJCC - Concourse Level - 230A
3:54 - 5:00
PM
SYMPOSIUM: PRESENTATION ONLY | FTI Workshop: Short Reach Optical Interconnects

Scale-up optical reliability and GPU/system resiliency to optical link flaps

Speakers: Eduard Roytman - Microsoft, Lenin Patra - Marvell, Ashwin Gumaste - NVIDIA, Greg Link - Microsoft, Jeffrey Hutchins - Ranovus
Location: SJCC - Lower Level - LL21BC
4:00 - 4:20
PM
PRESENTATION | Storage

Adopting high-capacity HDDs, navigating throughput and IOPS Limits using SAS/NVME interfaces for the AI Cloud

Speakers: Hariharan Kumar - Microsoft, Balaji Natrajan - Microsoft
Location: SJCC - Concourse Level - 212
4:10 - 4:30
PM
PRESENTATION | Systems Management

Operating OpenBMC at Hyperscale: What Works, What Breaks, and What Needs to Change

Speakers: Thirupathaiah Annapureddy - Microsoft, Hari Ramachandran - Microsoft Corporation
Location: SJCC - Concourse Level - 211
4:30 - 4:50
PM
PRESENTATION | SONiC Workshop

FIPS 140-3 Support in SONiC

Speakers: Kenneth Cheung - Arista Networks, Qi Luo - Microsoft
Location: SJCC - Concourse Level - 230A
4:30 - 5:00
PM
PANEL | AI Clusters

Scale-across Networking: Panel discussion on routing and transport equipment implications

Speakers: Jeff Rahn - Meta, Yawei Yin - Microsoft, Xiguang - Henry Wu - Broadcom, Tad Hofmeister - Google; Moderator: Vijay Vusirikala - Arista Networks
Location: SJCC - Concourse Level - 220B
4:35 - 5:00
PM
PRESENTATION | Systems Management

From Scale to Security: Evolving GPU Management Standards in 2026

Speakers: Krishna Sugumaran - AMD, Sujoy Sen - Google, Akkiah (Choudary) Maddukuri - Microsoft, Qian Wang - NVIDIA, Balaji Vembu - Meta
Location: SJCC - Concourse Level - 211

Thursday, October 15

8:00 - 8:20
AM
PRESENTATION | AI Clusters

MX v1.1: Advancing Open Standards for Low-Precision AI with MicroXcaling formats

Speakers: Partha Maji - Microsoft
Location: SJCC - Concourse Level - 220B
8:00 - 8:25
AM
PANEL | Sustainability

Updates from an exciting year with the OCP Sustainability Project, DCF Sustainability Project & Roadmap ahead

Speakers: Alexander Rakow - Schneider Electric, Sung Kim - BP Castrol, Shruti Sethi - Microsoft, Priya Chhiba - Google
Location: SJCC - Lower Level - LL21DE
8:20 - 8:40
AM
PRESENTATION | Security

Integrated HSM: Bringing Silicon-Level Key Security to the Server Tray

Speakers: Craig Barner - Marvell, Vishal Soni - Microsoft, Mohan Kumar - Oracle Cloud Infrastructure
Location: SJCC - Concourse Level - 212
8:45 - 9:05
AM
PRESENTATION | Test & Validation

AI-Native Hardware Validation: Building a Local-Context Agentic Test and Debug Platform

Speakers: Wenxi Yan - Microsoft
Location: SJCC - Lower Level - LL20BCD
8:50 - 9:05
AM
PRESENTATION | Sustainability

Performance-Normalized Embodied Rack Carbon Intensity for Next-Generation Hardware

Speakers: Kali Frost - Microsoft
Location: SJCC - Lower Level - LL21DE
9:10 - 9:30
AM
PRESENTATION | Networking

ESUN: Open Ethernet for the AI Scale-Up Era

Speakers: Pratik Marolia - Microsoft, Manoj Wadekar - Meta
Location: SJCC - Concourse Level - 210AE
9:10 - 9:30
AM
PRESENTATION | Test & Validation

From Spec to Sign-off - How Microsoft is transforming the platform validation workflow leveraging AI-powered, agent-driven solutions.

Speakers: Rahul Shah - Microsoft, Vikram Vemulapalli - Microsoft
Location: SJCC - Lower Level - LL20BCD
9:10 - 9:30
AM
PRESENTATION | Rack & Power

Scaling Hyperscale Power Delivery: Managing Aggregated and Cascaded Power Shelf Architectures for High-Density GPU Systems

Speakers: Praveen Kumar Velpuri - Microsoft, Yang Hsiung - Microsoft
Location: SJCC - Concourse Level - 230A
9:45 - 10:20
AM
PANEL | Server: Composable Memory Systems

Addressing Memory Wall challenge for AI and General Compute platforms (CMS Sub-Project Technical Update)

Speakers: Anjaneya "Reddy" Chagam - Microsoft Corporation, Grant Mackey - XCENA, Mohamad El-Batal - Seagate, Samir Rajadnya - Microsoft
Location: SJCC - Lower Level - LL21BC
9:45 - 10:10
AM
PANEL | AI Clusters

USB to Rule Them All: One Manageability Interface for AI Platforms

Speakers: MARIUSZ ORIOL - NVIDIA, Bharat Pillili - Microsoft, Samer El-Haj-Mahmoud - Arm, Mohan Kumar - Oracle Cloud Infrastructure, Supreeth Venkatesh - AMD; Moderator: Kasper Wszolek - NVIDIA
Location: SJCC - Concourse Level - 220B
10:45 - 11:30
AM
PANEL | Cooling: Cold Plate

Pushing the Single-Phase Cold Plate Limit: Design Practice, Field Learnings, and the Runway Before Two-Phase Scales

Speakers: Weihua Tang - Google, REMCO VAN ERP - Corintis, Oscar Farias Moguel - Microsoft, Yin Hang - Meta; Moderator: Joel Chakkalakal - Guardian Data- LLC
Location: SJCC - Concourse Level - 220C
10:50 - 11:05
AM
PRESENTATION | Networking

Scaling AI Beyond the Cloud Boundary: High-Capacity Interconnects Between Hyperscalers and GPUaaS NeoClouds

Speakers: Krithika Moorthy - Cisco, Anish Narsian - Microsoft
Location: SJCC - Concourse Level - 210AE
10:50 - 11:05
AM
PRESENTATION | Security

Upgrading OCP S.A.F.E. and S.O.L.I.D. for the AI age

Speakers: Zahra Lak - Microsoft, Jeff Andersen - Google
Location: SJCC - Concourse Level - 212
11:00 - 11:25
AM
PRESENTATION | Test & Validation

Product Intercept learnings and Compliance measurement for Diagnostics Standardization

Speakers: Rajat Madhusudan - Microsoft, Jennifer Lee - Intel
Location: SJCC - Lower Level - LL20BCD
11:15 - 11:30
AM
PRESENTATION | Sustainability

Enabling Scalable Waste Heat Recovery: Operational Realities, Design Principles, and Value from the Datacenter Perspective

Speakers: Emily Matys - Microsoft
Location: SJCC - Lower Level - LL21DE
12:30 - 12:45
PM
PRESENTATION | Security

Baremetal Security Architecture

Speakers: Bharat Pillili - Microsoft, Darpana Munjal Loodu - Microsoft
Location: SJCC - Concourse Level - 212
12:30 - 12:50
PM
PRESENTATION | Rack & Power

Mitigating AI Training Power Oscillations: Utility Requirements and In-Rack Power Filtering

Speakers: Bo Wen - Microsoft, Xianyong Feng - Microsoft
Location: SJCC - Concourse Level - 230A
1:15 - 1:30
PM
PRESENTATION | Sustainability

From Silicon to System: Embedding Power Efficiency as a Core Design Principle for Scalable AI and Compute Infrastructure

Speakers: Devang Soparkar - Microsoft, Nilanjan Palit - Intel
Location: SJCC - Lower Level - LL21DE
1:45 - 2:00
PM
PRESENTATION | Open Platform Firmware (OPF)

Dynamic Platform Abstraction for BMC Firmware via Host-Delivered Libraries

Speakers: Sarathy Jayakumar - AMD, Rama Bhimanadhuni - Microsoft
Location: SJCC - Lower Level - LL20BCD
1:55 - 2:10
PM
PRESENTATION | Sustainability

Closing the Loop: Structural Steel Reuse in Hyperscale Datacenter Construction — A Scalable Blueprint from Microsoft's Newport Imperial Park Datacenter (CWL01)

Speakers: John O’Sullivan - Microsoft, Anjali Bhagat - Microsoft
Location: SJCC - Lower Level - LL21DE
1:55 - 2:10
PM
PRESENTATION | Security

Package-Aware Integrity: From Source-Agnostic Publication to Full-System Attestation

Speakers: Felipe Zimmerle da Nobrega Costa - KonaSense, Dhananjay Phadke - Microsoft
Location: SJCC - Concourse Level - 212
2:15 - 2:30
PM
PRESENTATION | Networking

MRC: A Purpose-Built RDMA Transport for AI Training Networks

Speakers: Abdul Kabbani - Microsoft, Wael Noureddine - Microsoft
Location: SJCC - Concourse Level - 210AE
2:45 - 3:00
PM
PRESENTATION | Security

BMC-Mediated Platform Composite Attestation via Redfish

Speakers: Xiling Sun - Microsoft, Roksana Golizadeh Mojarad - Microsoft
Location: SJCC - Concourse Level - 212
2:45 - 3:10
PM
PANEL | Sustainability

Product Category Rule-style Specification for Life Cycle Assessment on Datacenter ICT-Equipment: Collaborative Progress & Draft publication

Speakers: Lisa Rivalin - Meta, Stephan Benecke - Google, Ines Sousa - Microsoft, Vincenzo Ferrero - Amazon; Moderator: Chris Eckstein - Fraunhofer
Location: SJCC - Lower Level - LL21DE
2:45 - 3:15
PM
PANEL | Open Platform Firmware (OPF)

Scaling Memory Safe Security Across Firmware Stack

Speakers: Giri Mudusuru - Microsoft, Tim Lewis - Insyde Software, Bertrand Achard - Google, Raj Kapoor - AMD, Oleg Ilyasov - American Megatrends (AMI); Moderator: Murugasamy Nachimuthu - Oracle
Location: SJCC - Lower Level - LL20BCD
2:45 - 3:05
PM
PRESENTATION | AI Open Data Center

The Future of Fuel Cells in Datacenters - High Temperature Fuel Cells.

Speakers: Afshin Majd - Microsoft, Priya Chhiba - Google, Alberto Ravagni - Net Zero Innovation Hub
Location: SJCC - Concourse Level - 210CG
3:05 - 3:20
PM
PRESENTATION | Security

Caliptra Subsystem 2.2: USB 2.0 and OCP Streaming Boot

Speakers: Caleb Whitehead - Microsoft, Bart Vertenten - NXP Semiconductors
Location: SJCC - Concourse Level - 212
3:25 - 3:40
PM
PRESENTATION | Security

Architectural Masking for PQC: Adam’s Bridge 3.0 Leveraging NTT Linearity

Speakers: Mojtaba Bisheh-Niasar - Microsoft, Kiran Upadhyayula - Microsoft
Location: SJCC - Concourse Level - 212
3:35 - 4:00
PM
PANEL | Sustainability

Increasing Rigor in Data Center Carbon Disclosure

Speakers: Andrea Desimone - Schneider Electric, Lalit Joshi - Microsoft, Malcolm Hegeman - Google, Miranda Gardiner - iMasons Climate Accord; Moderator: Nalintip Suwannakarn - Meta
Location: SJCC - Lower Level - LL21DE
3:45 - 4:00
PM
PRESENTATION | Security

Beyond Static Identity: Enabling Secure Certificate Refresh in Silicon Roots of Trust

Speakers: Emre Karabulut - Microsoft, VISHAL MHATRE - Microsoft
Location: SJCC - Concourse Level - 212

Offsite Microsoft Workshops

8:00 AM - 3:00 PM
WORKSHOP

RAS Workshop (at capacity)

Hyperscalers, silicon vendors, and ecosystem partners will collaborate on RAS, Debug, Diagnostics, and Manageability initiatives, focused on aligning current requirements, sharing implementations and tools, and discussing the future direction of key specifications and workstreams.

Location: MTV Campus
8:30 AM - 2:00 PM; 
2:00 - 
5:00 PM
WORKSHOP

Caliptra and BoF Workshops (at capacity)

Members of the open-source silicon security community will collaborate on hardware root of trust technologies and secure silicon initiatives through discussions on ongoing technical work, ecosystem collaboration, implementation experiences, roadmap planning, community engagement, and related open-source security efforts
Location: MTV Campus

Azure Networking Blog

Multi-NIC Support on AKS powered by DRANET – Now in Public Preview

詳細を表示

Kubernetes was designed around a simple networking model, every pod gets one network interface, and every pod on a node shares the same flat network. For most stateless microservices, this works well as it keeps the model simple and the platform portable.

But a large class of workloads don't fit that shape. Some need network separation, with management, control, and data traffic on separate and isolated networks rather than multiplexed over one interface. Other workloads need predictable performance, a dedicated path for high-throughput or latency-sensitive traffic. Until now, meeting these requirements on Kubernetes meant adding and manually integrating multiple components, or keeping the workload on VMs.

Today we're announcing the public preview of multi-NIC support for pods on AKS, powered by the AKS managed DRANET driver. You can now provision worker nodes with multiple network interfaces connected to different subnets, and attach a dedicated interface directly to a pod using standard upstream Kubernetes APIs, with no Multus, no custom CNI extensions, and no manual interface wiring.

Two ways to use multi-NIC on AKS

Use case 1: A dedicated NIC attached directly to a pod

“As a networking engineer, I want to attach a dedicated network interface directly to a Kubernetes pod so the workload can connect to different networks and route traffic natively, without relying on host-level DPDK/VPP forwarding, custom routing rules, or gateway-based NAT.”
“I also want the secondary interface on my pod to send and receive traffic on a specific, known public IP address, so that downstream partners can allow-list my traffic by IP and no NAT hop adds latency to time-sensitive streams."

This is the pattern where the workload itself expects to see multiple interfaces. The pod asks for a network device the same way it would ask for any other resource, and the interface shows up inside the container alongside the standard CNI interface. No host-level forwarding layer, no NAT gateway in the middle.

What you get

  • The DRANET driver is deployed automatically. Once a node pool is configured with secondary interfaces, AKS installs and manages the driver for you; there is no add-on to install and no CRDs to author by hand.
  • Declarative, scheduler-aware requests. Interfaces are advertised to Kubernetes as allocatable devices, so a pod that asks for one is placed on a node that can actually provide it, using standard Dynamic Resource Allocation (DRA) objects rather than vendor-specific annotations.
  • A predictable interface lifecycle. The driver handles attach, release, and recovery as pods are rescheduled or restarted.
  • A public IP address can be assigned directly to a secondary interface, configured at node pool creation time using IP tags. The pod's secondary interface talks to the outside world without going through the load balancer or any address translation layer.
  • Both IPv4 and IPv6 addresses are supported on the secondary interface.

What to plan around

  • Interfaces are dedicated, not shared. When a NIC is attached to a pod, it moves into that pod's network namespace and is no longer available to the node or to any other pod. Sharing a secondary NIC across pods isn't supported in this release.
  • Because of that, pod density on a multi-NIC node pool is bounded by the number of interfaces on the node.
  • All interfaces must be attached to the same virtual network as the primary NIC. On a bring-your-own VNet cluster, different subnets within that VNet are supported, but different VNets are not, in this preview. On an AKS-managed VNet, secondary interfaces are currently limited to the same subnet as the primary NIC , since creating a new subnet on a managed VNet isn't supported yet.
  • Each pod's secondary interface gets its own dedicated public IP, so plan node pool sizing around how many pods need a tagged public IP of their own. Public IP assignment is configured at node pool creation time through IP tags, so decide your IP range and tagging strategy before you provision the node pool.
  • Kubernetes network policy is enforced on the primary interface only. Plan isolation for secondary interfaces at the subnet and NSG layer.

Use Case 2: Multi-NIC nodes with your own NIC management

“As a platform/networking engineer, I want to provision Kubernetes worker nodes with multiple network interfaces connected to different networks and use my own  VPP, DPDK, or any custom routing logic to steer traffic at the node level, without attaching additional interfaces to pods.”  

This is the pattern for teams who already own their dataplane. The node is multi-homed, each interface lands on its own subnet, and your own software decides which traffic goes where. Pods keep a single CNI-assigned interface and stay unaware of the underlying topology.

What you get

  • Depending on the selected SKU size, you can configure nodes with multiple network interfaces.
  • Full control, and full ownership of the additional nics. AKS provisions the interfaces and keeps them attached to the node. How traffic is steered across them is entirely yours to design, configure, operate, and support. That includes your routing rules, your userspace dataplane, and any troubleshooting of the forwarding path itself.
  • The same-VNet constraint applies here too, secondary interfaces can span subnets, but not virtual networks. This applies to bring-your-own VNet clusters. On an AKS-managed VNet, secondary interfaces are restricted to the primary NIC's subnet for now.

Both patterns start from the same node pool configuration. The difference is whether you stop there and manage the interfaces yourself, or let the DRANET hand them to your pods.

How it works

Multi-NIC on AKS starts with a single configuration step: you add secondary network interfaces to a node pool. AKS provisions the NICs on every VM in the pool and installs the DRANET driver alongside them. From there, what happens to those NICs depends on your workload. Reference a resource claim in your pod spec, and DRANET moves an interface into the pod Or Leave them on the node and steer traffic yourself with VPP, DPDK, or custom routing.

Step 1: Provision the node pools with secondary NICs

Secondary interfaces are declared when you create the node pool. The agent pool's network profile carries a secondaryNetworkInterfaces array, and each entry points at a subnet in the same virtual network as the primary NIC:

"networkProfile": { "secondaryNetworkInterfaces": [ { "type": "Standard", "vnetSubnetId": "<VNET_SUBNET_ID>" } { "type": "Standard", "vnetSubnetId": "<VNET_SUBNET_ID>" } ] }

AKS extends VMSS provisioning to attach those NICs to every VM in the pool. Add more entries for more interfaces, up to what the VM SKU allows. The array length is validated against the SKU at creation time, so a pool with mixed sizes has to be planned around the smallest one.

The node is now multi-homed and the interfaces are visible on the host. If you are building for use case 2, this is where you stop. AKS provisions and keeps the interfaces attached to the node, and how traffic is steered across them, the routing rules, the userspace dataplane, the troubleshooting of the forwarding path, is yours to design, operate, and support.

Step 2: Using AKS managed DRANET driver to hand an interface to the pod

Once a node pool has secondary interfaces configured, and the cluster is using AKS-managed CNI (Azure CNI or Azure CNI Powered by Cilium), AKS automatically installs the DRANET driver as a DaemonSet, packaged and delivered through an AKS-managed Helm chart. There is nothing to deploy yourself and no CRDs to author by hand.
If you're running a BYO CNI cluster, AKS still provisions the secondary NICs, but you're responsible for deploying DRANET (or your own driver of choice) yourself.

The driver does three things:

  • Discovers the additional interfaces present on each node.
  • Advertises them to Kubernetes as allocatable DRA devices, published in a ResourceSlice.
  • Manages the lifecycle: exclusive per-pod allocation, attachment, release, and recovery as pods move or restart.

Inspect the DRANET deamonset, pods, and deviceclass using the following commands:

kubectl get deviceclasses kubectl get daemonset -A kubectl get pods -A -o wide

Now you can create a “ResourceClaimTemplate” that defines how each pod requests a device.

apiVersion: resource.k8s.io/v1 kind: ResourceClaimTemplate metadata: name: nic-dev-template spec: spec: devices: requests: - name: nic exactly: deviceClassName: standard-secondary-nic allocationMode: ExactCount count: 1

Configure the pod references the template, and the scheduler places it on a node that has a matching NIC available:

apiVersion: v1 kind: Pod metadata: name: multi-nic-test spec: containers: - name: multi-nic image: nicolaka/netshoot resources: claims: - name: nic resourceClaims: - name: nic resourceClaimTemplateName: nic-dev-template

A pod referencing a claim comes up with its usual CNI-assigned eth0 plus the allocated secondary interface, and you can confirm both from inside the container.

When DRANET attaches a secondary NIC to a pod, that interface moves into the pod's network namespace and is no longer available on the node or to any other pod. It returns to the node's pool of available devices when the pod terminates. That gives you a clean isolation boundary and deterministic performance, with the trade-off that pod density on a multi-NIC pool is bounded by interface count, not just CPU and memory.


For the full walkthrough including feature flag registration, more examples visit https://aka.ms/aks/multi-nic.

Try it now

Multi-NIC support for pods on AKS is available now in public preview. Start with the documentation for the full walkthrough: provisioning a node pool with secondary interfaces, defining a resource claim, and validating that both interfaces appear inside the pod. 

Preview is when your input can actually shape the feature. If you hit a limitation or have a use case we haven’t covered, comment below and share your feedback.

Apps on Azure Blog

Qwen3.8-27B on a $2 H100 Azure Spot VM: does it pay off?

詳細を表示

For three hours on the morning of October 9, a single H100 in Azure served 1,434 requests to Qwen3.8-27B: 168.7 million input tokens in, 1.27 million output tokens out. At a public list price for this model that day ($0.425 per million input tokens, $0.085 per million cached input tokens and $2.55 per million output tokens), those tokens are worth $24.35. The three hours of VM time cost $4.65 at that region's Spot price; the dashboard below counts them at a round $2 an hour.

This post is the guide I'd have wanted before I started: how to run Qwen3.8-27B on an Azure GPU VM, how to tune it, and how to monitor it end to end, with metrics, logs and traces, using Application Insights and Grafana. The answer to the title comes at the end. The dashboard that measured it comes from the monitoring setup in the middle.

What you're running

Qwen3.8-27B is a 27-billion-parameter dense model from Qwen, released under the Apache 2.0 license. A few of its properties shape how you serve it:

  • Hybrid attention. 48 of its 64 layers use Gated DeltaNet linear attention, which keeps a fixed-size state instead of a per-token KV cache. Only the 16 full-attention layers grow with the context, which is why long contexts fit on one GPU.
  • A 262,144-token context window, which Qwen documents how to extend to about one million tokens with YaRN.
  • Thinking on by default, with a per-request switch to turn it off.
  • Multi-token prediction (MTP) layers, which vLLM can use for speculative decoding.
  • Vision: it reads images and video as well as text.

The GPU is a Standard_NC40ads_H100_v5: one H100 NVL with 94 GB of memory and 40 vCPUs. Both official checkpoints fit on it:

 BF16 (Qwen/Qwen3.8-27B)FP8 (Qwen/Qwen3.8-27B-FP8)
Download55.6 GB30.9 GB
Weights in GPU memory51.9 GiB29.0 GiB
KV cache left over805K tokens1.45M tokens
One request, 512 tokens, thinking off124 tok/s172 tok/s

Use FP8. The H100 runs FP8 natively, each decode step reads fewer bytes, and the memory the smaller weights free up nearly doubles the KV cache. The NVFP4 builds you'll see in vLLM's recipes target Blackwell GPUs, since the H100 has no FP4 tensor cores.

Step 1: Get a Spot H100 VM

Azure Spot Virtual Machines sell spare capacity at a discount, with no SLA, and Azure can evict them with 30 seconds' notice. In October 2026 this size cost $1.55 to $1.84 an hour on Spot in the regions I settled on, which this post rounds to $2 (prices change; check the pricing page). Spot draws on your regional low-priority vCPU quota, 40 vCPUs for this size, not on the H100 family quota, which was zero in my subscription.

Pick the region with data rather than habit. The sample's infra/spot-regions.sh lists each region's eviction-rate bucket and Spot price history, and the current placement score per zone; there's more on that in the Spot section below. Then create the VM with infra/provision-spot-vm.sh:

LOCATION=southeastasia ZONE=2 IDENTITY_RG=rg-llm-telemetry infra/provision-spot-vm.sh

In about five minutes that gives you:

  • a resource group, a VNet and a network security group with only the default rules, which deny inbound traffic from the internet
  • a NAT gateway for outbound traffic: Docker images, Hugging Face downloads and telemetry
  • the VM: Ubuntu 24.04 and no public IP. It uses Trusted Launch with Secure Boot off, because Secure Boot rejects the unsigned NVIDIA kernel modules. It has a 512 GB data disk for weights and images, the Spot Deallocate eviction policy so an eviction keeps the disks, and a managed identity for telemetry

With no public IP and no SSH, you administer the VM through az vm run-command, which the sample's scripts/vm-run.sh wraps: scripts/vm-run.sh <script> runs a local script on the VM as root and prints the output.

Step 2: Prepare the host

scripts/vm-run.sh scripts/bootstrap-host.sh

The bootstrap takes about four minutes. It mounts the data disk at /data, installs the NVIDIA datacenter driver (the 595 branch with open kernel modules, which loads without a reboot), installs Docker Engine with its data root on /data, and registers the NVIDIA Container Toolkit with Docker. At the end, nvidia-smi should report one H100 NVL with 95,830 MiB.

Step 3: Serve the model with vLLM

The stack is a Docker Compose project: a one-shot job that downloads the pinned checkpoint, vLLM, a LiteLLM gateway, and optional overlays for telemetry and a public URL. The sample's scripts/deploy.sh, run with up, copies the folder to the VM through run-command and starts it in the background. On a new VM everything is healthy about 20 minutes later. Most of that is image pulls and the 31 GB download, and later restarts of the model take a few minutes.

The model runs in NVIDIA's NGC vLLM container, release 26.07 (vLLM 0.24). One fix was needed there: tool calls failed with HTTP 500 because the bundled xgrammar 0.2.0 lacks a function vLLM's frontend imports, so the sample's image adds xgrammar 0.2.3. The checkpoint is pinned to a revision and downloaded once to the data disk, so restarts don't depend on Hugging Face.

This is the serve command:

vllm serve /models/Qwen3.8-27B-FP8 \
  --served-model-name qwen3.8-27b \
  --trust-remote-code \
  --max-model-len 262144 \
  --gpu-memory-utilization 0.93 \
  --max-num-seqs 32 \
  --max-num-batched-tokens 16384 \
  --kv-cache-dtype fp8 \
  --enable-prefix-caching \
  --spec-method mtp --spec-tokens 3 \
  --reasoning-parser qwen3 \
  --enable-auto-tool-choice --tool-call-parser qwen3_coder \
  --limit-mm-per-prompt '{"image":{"count":4,"width":1024,"height":1024},"video":0}'
FlagWhy
--max-model-len 262144The native context window.
--gpu-memory-utilization 0.93Lets vLLM use 93% of the GPU's memory. After the weights, that leaves 1.5 million tokens of KV cache, about 5.7 full-length requests at once.
--max-num-seqs 32Throughput barely grows beyond 32 concurrent requests on this GPU (measured below).
--max-num-batched-tokens 16384The prefill chunk per step. 32K gained nothing and cost 5% of the KV cache.
--kv-cache-dtype fp8Halves the KV cache's memory compared with BF16.
--enable-prefix-cachingReuses the KV blocks of a repeated prefix instead of recomputing them. Agentic traffic resends long prefixes, so this matters: 88% of the input tokens in the busy window below came from the cache.
--spec-method mtp --spec-tokens 3Speculative decoding with the model's own MTP layers. vLLM's Qwen3.8 recipe writes the same setting as --speculative-config '{"method":"mtp","num_speculative_tokens":3}'.
--reasoning-parser qwen3Returns the thinking separately from the answer, so clients get a clean reply.
--enable-auto-tool-choice --tool-call-parser qwen3_coderOpenAI-style tool calls.
--limit-mm-per-promptUp to four images per prompt, and no video.

Step 4: Call it

vLLM serves an OpenAI-compatible API, and so does the LiteLLM gateway in front of it, under one stable alias, local-llm, so clients don't change when the model does:

curl http://127.0.0.1:4000/v1/chat/completions -H 'Content-Type: application/json' -d '{
  "model": "local-llm",
  "messages": [{"role": "user", "content": "Explain prefix caching in two sentences."}],
  "temperature": 0.7, "top_p": 0.8, "presence_penalty": 1.5,
  "chat_template_kwargs": {"enable_thinking": false}
}'

Thinking is on unless a request turns it off with chat_template_kwargs. Qwen's model card recommends temperature 1.0, top_p 0.95 and top_k 20 with thinking on, and temperature 0.7, top_p 0.8, top_k 20 and presence_penalty 1.5 with it off. Tool calls work as they do with OpenAI: send tools, and the parser turns the model's tool-call markup into tool_calls.

The sample's smoke test (scripts/vm-run.sh scripts/smoke-test.sh) checks an exact answer, a required tool call and the decode speed. On this VM, one request generates about 166 tokens a second with thinking off.

The VM has no public IP, so the gateway is published through an ngrok tunnel with an IP allow-list. The gateway has no authentication of its own, so that allow-list is the only access control on the public URL. That suited my own tests. For anything more, add a LiteLLM key or an authentication policy at the tunnel.

Step 5: Tune it

Two settings were worth measuring.

How many tokens to draft. Speculative decoding drafts tokens with the MTP layers and verifies them in one pass. On natural-language prompts with 512-token replies:

Draft tokens1234
One request (tok/s)105131151146
32 requests (tok/s)1,4971,5461,5481,342

Three came out on top at both ends. vLLM warns that drafting more than one token reuses the same MTP layer and can lower acceptance, so watch the acceptance rate on the dashboard rather than trusting the setting.

How many requests at once. On synthetic 2,000-token prompts, output grows to 32 concurrent requests and then flattens: 150 tokens a second at 1, 821 at 16, 1,187 at 32 and 1,212 at 48, while each stream slows from 150 to 25 tokens a second. On natural text, where more drafts are accepted, 32 requests reach about 1,550 output tokens a second. That's the measured ceiling: 5.6 million output tokens an hour, worth $14.23 an hour at $2.55 per million.

Step 6: Monitor it: metrics, logs and traces

A self-hosted model has no provider status page. When it's slow, you need to know whether the cause is the queue, the cache, the GPU or the client, and when it's idle, you're still paying for it. Azure Monitor ingests OpenTelemetry natively (generally available since June 2026), so one Application Insights resource can receive all three signals.

Create the destination

  1. Create an Application Insights resource with OTLP support set to On. That provisions a Log Analytics workspace for logs and traces, an Azure Monitor workspace that stores metrics as Prometheus data, and the data collection endpoint and rule that route OTLP into them. Ingest OTLP data into Azure Monitor with the OpenTelemetry Collector walks through it.
  2. On the resource's Overview page, copy the OTLP connection info: the endpoint URLs for traces, logs and metrics, and the data collection rule ID.
  3. Give the VM's managed identity the Monitoring Metrics Publisher role on that data collection rule. The collector signs in with Microsoft Entra ID, so you don't have to store a key on the VM. The sample's infra/telemetry-identities.sh creates one identity per region you run in and assigns the role.

Point a collector at it

One OpenTelemetry Collector (the contrib distribution) runs next to the model and gathers everything:

  • Metrics: it scrapes vLLM's and LiteLLM's Prometheus endpoints and NVIDIA's DCGM exporter for the GPU, and reads host and container statistics.
  • Traces: LiteLLM sends its spans to the collector over OTLP. Each model call is a span with the token counts, time to first token and finish reason as gen_ai.* attributes.
  • Logs: it tails every container's log, plus the host's syslog, where GPU Xid errors and out-of-memory kills appear.

The part that talks to Azure Monitor is short (abridged from the sample's observability/otelcol/config.yaml, collector 0.161):

extensions:
  azure_auth:
    managed_identity:
      client_id: ${env:TELEMETRY_UAMI_CLIENT_ID}
    scopes: [https://monitor.azure.com/.default]

processors: resource: attributes: - {key: microsoft.applicationId, value: "${env:AZMON_APPLICATION_ID}", action: upsert}

exporters: otlp_http/azuremonitor: traces_endpoint: ${env:AZMON_TRACES_ENDPOINT} logs_endpoint: ${env:AZMON_LOGS_ENDPOINT} metrics_endpoint: ${env:AZMON_METRICS_ENDPOINT} auth: authenticator: azure_auth

Here's where each signal lands and how you query it:

SignalSourcesStored inQuery with
MetricsvLLM, LiteLLM, GPU (DCGM), host, containersAzure Monitor workspacePromQL
TracesLiteLLM request and model-call spansApplication Insights (Log Analytics)KQL, or the Application Insights transaction view
Logsevery container, host syslogApplication Insights (Log Analytics)KQL

Four things that tripped me up

  • Set microsoft.applicationId on everything you send. The data collection rule that Application Insights creates routes data on that resource attribute, which is why the processor above sets it on every resource.
  • Metrics keep only a few resource attributes. The metrics rule keeps service.*, host.name and cloud.region, and drops the rest, so per-container series merged into one until a transform processor copied the container name onto each data point. The sample does the same for an upstream_model label, so a second model on the same VM shows up as its own series. In logs, fields you want to filter on also belong on the record, not the resource.
  • OTLP histograms arrive as native histograms. histogram_quantile takes the bare metric name, with no _bucket suffix and no le label, and OpenTelemetry-native names keep their dots, so you write {__name__="system.cpu.utilization"}.
  • Check what your spans carry. LiteLLM records the useful parts of each call (token counts, time to first token, finish reason) without prompts or responses when message capture is off. It still records every tool definition the client declares, though. Decide whether that's acceptable in your Application Insights resource, and choose the fields carefully before you share a dashboard.

Build the dashboard in Grafana

In Azure Managed Grafana, connect the Azure Monitor workspace as a Prometheus data source for the metrics (Connect Grafana to Azure Monitor managed service for Prometheus), and use the built-in Azure Monitor data source for KQL over the logs and traces. If you'd rather not run a Grafana instance, Azure Monitor dashboards with Grafana work in the Azure portal.

You don't have to build the dashboard yourself. The one in these screenshots is in the sample repository as h100-llm.json. To use it:

  1. In Grafana, go to Dashboards > New > Import and upload the file.
  2. When it asks, enter your Application Insights resource ID.
  3. At the top of the dashboard, pick your Azure Monitor workspace's Prometheus data source and your Azure Monitor data source.

It has ten rows: overview, token economics, throughput, the gateway, traffic and latency, cache and scheduling, the GPU, host and containers, the telemetry pipeline itself, and traces and logs. These are the questions I look at first:

QuestionPromQL
How long until the first token?histogram_quantile(0.95, sum(rate(vllm:time_to_first_token_seconds[5m])))
How fast does one request generate?1 / histogram_quantile(0.5, sum(rate(vllm:inter_token_latency_seconds[5m])))
Is the KV cache full?max(vllm:kv_cache_usage_perc): near 1, vLLM starts preempting requests
Are requests queuing?sum(vllm:num_requests_waiting) next to sum(vllm:num_requests_running)
Is prefix caching working?sum(rate(vllm:prefix_cache_hits_total[5m])) / sum(rate(vllm:prefix_cache_queries_total[5m]))
Is speculative decoding paying off?sum(rate(vllm:spec_decode_num_accepted_tokens_total[5m])) / sum(rate(vllm:spec_decode_num_draft_tokens_total[5m]))
Is the GPU doing work?max(dcgm_fi_prof_sm_active)

Metrics tell you that something is slow. Traces and logs tell you which request and why. The dashboard's last row has both. LLM calls lists one row per model call from the LiteLLM spans, with its time to first token, input tokens, finish reason and trace ID. Model server log shows vLLM's own log lines: the engine stats it prints every ten seconds (throughput, running and waiting requests, KV cache usage, prefix cache hit rate) and any warning.

There's one more step I haven't taken yet: vLLM can export its own spans over OTLP with --otlp-traces-endpoint, and NVIDIA's container already includes the OpenTelemetry SDK. Pointed at the same collector, that would add vLLM's own timing for each request, such as time in the queue, next to the gateway's spans.

Change the dashboard and ask the data with an agent

You don't have to edit dashboard JSON or write every query by hand. Azure Managed Grafana instances in the Azure public cloud include a remote MCP server at https://<grafana-endpoint>/api/azure-mcp (Configure an Azure Managed Grafana Remote MCP server). Connect an MCP client to it, and an AI agent can work with this dashboard and the telemetry behind it. GitHub Copilot in Visual Studio Code signs in with Microsoft Entra ID; Claude Code and other clients can use a Grafana service account token.

  • Author and change dashboards. amgmcp_dashboard_inspect reads a dashboard's panels, variables and queries, and amgmcp_dashboard_update creates a dashboard or patches one panel, query or title at a time. A request such as "add a panel for preemptions per minute next to KV cache usage" becomes a targeted patch instead of a JSON edit.
  • Query the telemetry. amgmcp_prometheus_query runs PromQL against the Azure Monitor workspace, amgmcp_query_resource_log runs KQL against Application Insights, and amgmcp_query_application_insights_trace fetches a trace. Questions like "which requests waited longest for their first token this morning?" or "how many output tokens did the model generate per VM hour this week?" come back with numbers from the same data the dashboard shows.

The agent acts with the Grafana permissions of the identity it signs in with, so give that identity the role the job needs: Grafana Viewer to ask questions, Grafana Editor to change dashboards. My previous post, Dashboards are for AI agents too, not just humans, shows the other half: how an agent uses a dashboard's queries and descriptions as context.

What the dashboard showed

The traffic in these screenshots is a real agentic workload: long-running sessions that call tools and send the whole conversation back with each request. In the busy window it looked nothing like the benchmark:

  • Prompts were long. The median request carried about 120,000 input tokens, and the 95th percentile 186,000.
  • Most of it was cached. 88% of input tokens were prefix-cache hits.
  • Output was small. There were 133 input tokens for every output token, and 62% of the output tokens were reasoning.
  • Concurrency was low. At most 10 requests ran at once, with room for 32.

Output averaged 117 tokens a second, under 8% of the 1,550 ceiling, yet the GPU was busy 77% of the time. The work went into prefill (19.9 million computed input tokens in three hours) and into attention over contexts of 100,000 tokens and more. A single request saw about 34 tokens a second at the median, not 166.

Long contexts also fill the KV cache with only a few requests. Around 08:00 the cache reached 88.6%, and at the same moment the 95th-percentile time to first token jumped to 2.6 minutes: new requests were waiting for memory, not compute. The traces show it request by request, with 200,000-token prompts waiting 40 seconds or more for their first token. About 60 of the window's 64 failed requests were prompts that had outgrown the 262K-token context window, which is where the dashboard's 4.47% error rate comes from.

Measure the shape of your own traffic, not the shape of a benchmark. For this workload the numbers that matter are prefill throughput, the cache hit rate and how many long contexts fit in memory at once.

Spot, honestly

Here is what one VM met in its first week:

#Region (eviction-rate bucket)Ran before eviction
1West US 3 (5–10%)about a minute, just after a restart
2West US 3 (5–10%)2 h 01 min
3West US 3 (5–10%)2 h 16 min
4UK South (0–5%)2 h 36 min
5UK South (0–5%)5 h 34 min
6North Europe (0–5%)8 h 28 min
7UAE North (0–5%)2 h 58 min

Seven evictions in about 40 hours of running, and five attempts to create or restart a VM in UK South that failed for lack of capacity. An eviction deallocates the VM with the model still on its disk, so a restart in place brings the stack back in a few minutes once capacity returns.

I pick regions with two public data sources, which infra/spot-regions.sh combines:

  • The SpotResources table in Azure Resource Graph has the eviction-rate bucket and recent Spot price history for each size and region.
  • Spot Placement Score rates how likely a Spot request is to succeed right now, per zone, and shows zones where the size is restricted for your subscription. It needs the Compute Recommendations Role.
region               eviction  usd/h    since    min-max
northeurope          0-5       1.55     2026-02  1.55-1.55
uksouth              0-5       1.61     2026-09  1.61-2.06
southeastasia        0-5       1.68     2026-09  1.68-2.28
...
Region         Zone    Score                      QuotaAvailable
southeastasia  1       Low                        True
southeastasia  2       Low                        True
southeastasia  3       RestrictedSkuNotAvailable  True

My rule is the lowest eviction bucket, then the lower price, then a zone that isn't restricted. For this size the placement score was Low in almost every unrestricted zone I checked, all week. Low isn't a refusal, though: VMs scored Low in West US 3, North Europe, UAE North and Southeast Asia all allocated on the first try.

Two things I got wrong at first:

  • The eviction rate is per hour. Microsoft Learn describes the eviction rate in the portal as the chance of being evicted within the next hour, based on recent history. At 5% an hour, an eight-hour run has roughly a one-in-three chance of being evicted. Read 0–5% as "plan for evictions", not "evictions are rare".
  • Changing zones didn't change much. The first five evictions were all in zone 1, so I moved to other zones. North Europe zone 3 and UAE North zone 2 were evicted too.

Spot fits workloads that can wait for a restart. For steady serving, request quota for regular capacity and drop the Spot flags: the same scripts work, at the regular price.

Does it pay off?

The token economics row at the top of this post turns the dashboard into a running answer. VM hours are the minutes in which the collector could scrape vLLM, so stopped or evicted time doesn't count. The prices are dashboard variables: the VM's hourly price and the per-million prices for input, cached input and output, defaulting to the list prices above. Every stat is an instant query, so after an eviction it reads "Off" instead of holding its last value.

Over the busiest three hours it reads $8.12 of tokens per VM hour, about four times the VM's price. Over the first week it's a different story:

 Busiest 3 hours (Oct 9, 05:35–08:35 UTC)First week (Oct 3–10)
Hours the model server was up3.037.9
Requests1,4345,469
Input tokens (share served from the prefix cache)168.7M (88%)564.2M (88%)
Output tokens1.27M6.11M
Worth at the list price$24.35$85.94
Per hour the model server was up$8.12$2.27

The VMs actually ran about 46 hours that week, counting setup, model loading, benchmarks and the first runs before the telemetry existed. At each region's Spot price that was about $98 of compute, plus a little for disks and the NAT gateway, against $86 of tokens. The first nine and a half hours ran in West US 3 at $3.95 an hour, before I started choosing regions with the data above; the rest averaged $1.67 an hour.

Look at where the value comes from, too. In the busy window, cached input brought in 52% of it ($12.65), computed input 35% ($8.48) and output only 13% ($3.23). Benchmarks measure output tokens per second, but for this workload output was less than a fifth of the value.

So the answer to the title is: it pays off when it's busy. At $8.12 of tokens per busy hour against about $2 of VM, the H100 needs to be busy roughly a quarter of the time to break even, and it can't earn while it's evicted, loading or idle. Self-hosting on an H100 Spot VM makes sense when:

  • traffic is steady and its prompts share long prefixes, which is where prefix caching makes input cheap to serve
  • you want control over the exact checkpoint, the serving flags and where requests go
  • the workload tolerates an occasional restart, or you pay for regular capacity

It makes less sense for bursty traffic that leaves the GPU idle most of the day, or for anything that needs an SLA on a Spot VM.

Try it

Then keep it busy.