ms-ai-architect/skills/ms-ai-infrastructure/references/hybrid-edge/azure-local-ai-workloads.md
Kjell Tore Guttormsen baa2d0220b feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command
Add /ultraresearch-local for structured research combining local codebase
analysis with external knowledge via parallel agent swarms. Produces research
briefs with triangulation, confidence ratings, and source quality assessment.

New command: /ultraresearch-local with modes --quick, --local, --external, --fg.
New agents: research-orchestrator (opus), docs-researcher, community-researcher,
security-researcher, contrarian-researcher, gemini-bridge (all sonnet).
New template: research-brief-template.md.

Integration: --research flag in /ultraplan-local accepts pre-built research
briefs (up to 3), enriches the interview and exploration phases. Planning
orchestrator cross-references brief findings during synthesis.

Design principle: Context Engineering — right information to right agent at
right time. Research briefs are structured artifacts in the pipeline:
ultraresearch → brief → ultraplan --research → plan → ultraexecute.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 08:58:35 +02:00

399 lines
14 KiB
Markdown

# Azure Local for Edge AI Workloads
**Last updated:** 2026-02
**Status:** GA
**Category:** Hybrid Cloud & Edge AI
---
## Introduksjon
Azure Local (tidligere Azure Stack HCI) er Microsofts hyperkonvergerte infrastrukturlosning for a kjore Azure-tjenester lokalt. For AI-arbeidsbelastninger tilbyr Azure Local GPU-akselerasjon, Kubernetes-stotte via AKS enabled by Arc, og lokal tilgang til Azure-tjenester — alt administrert fra Azure Portal.
For norsk offentlig sektor representerer Azure Local en unik mulighet: organisasjoner kan plassere AI-infrastruktur i egne datarom eller hos godkjente driftspartnere, samtidig som de far tilgang til Azures ML-plattform, overvaking og governance-verktoy. Dette gir data residency i Norge uten a ga pa kompromiss med moderne AI-kapabiliteter.
Azure Local stotter et bredt utvalg av NVIDIA GPU-er for AI-inferens og trening, inkludert T4, A2, A16, L4, L40 og L40S. Sammen med AKS enabled by Arc og KAITO (Kubernetes AI Toolchain Operator) kan organisasjoner kjore open-source LLM-er som Phi-4, Mistral og Llama direkte pa egen infrastruktur.
---
## Arkitekturoversikt
```
┌───────────────────────────────────────────────┐
│ Azure Control Plane │
│ Azure Portal │ ML Workspace │ Azure Monitor │
└───────────────────────┬───────────────────────┘
│ Azure Arc
┌───────────────────────▼───────────────────────┐
│ Azure Local Cluster │
│ ┌─────────────────────────────────────────┐ │
│ │ AKS enabled by Arc │ │
│ │ ┌──────────┐ ┌──────────┐ │ │
│ │ │ CPU Node │ │ GPU Node │ │ │
│ │ │ Pool │ │ Pool │ │ │
│ │ │ │ │ NVIDIA │ │ │
│ │ │ Services │ │ T4/A2/L4 │ │ │
│ │ └──────────┘ └──────────┘ │ │
│ └─────────────────────────────────────────┘ │
│ ┌───────────────┐ ┌─────────────────────┐ │
│ │ Azure Arc VMs │ │ Storage Spaces │ │
│ │ (DDA/GPU-P) │ │ Direct (S2D) │ │
│ └───────────────┘ └─────────────────────┘ │
└───────────────────────────────────────────────┘
```
---
## GPU-stotte i Azure Local
### GPU-tilordningsmetoder
Azure Local stotter to metoder for GPU-bruk:
| Egenskap | Discrete Device Assignment (DDA) | GPU Partitioning (GPU-P) |
|----------|----------------------------------|--------------------------|
| Ressursmodell | Hel GPU til en VM | Delt GPU mellom flere VM-er |
| VM-tetthet | Lav (1 GPU = 1 VM) | Hoy (1 GPU = mange VM-er) |
| Appkompatibilitet | Full (DX12, OpenGL, CUDA) | Full (DX12, OpenGL, CUDA) |
| VRAM | Opp til full GPU VRAM | Per partisjon |
| Driver i gjest | Leverandor-driver (NVIDIA) | Leverandor-driver (NVIDIA) |
| AKS-stotte | Ja | Nei (kun VM-er) |
| Best for | AI-trening, stor inferens | Lettere inferens, delt bruk |
### Stottede NVIDIA GPU-er
| GPU-modell | DDA (Arc VMs) | DDA (AKS) | GPU-P (VMs) | Typisk bruk |
|------------|---------------|-----------|-------------|-------------|
| NVIDIA T4 | Ja | Ja | Nei | Inferens, lette modeller |
| NVIDIA A2 | Ja | Ja | Ja | Inferens, mellomstore modeller |
| NVIDIA A10 | Ja (unmanaged) | Nei | Ja | Trening og inferens |
| NVIDIA A16 | Ja | Ja | Ja | Multi-bruker inferens |
| NVIDIA A40 | Ja (unmanaged) | Nei | Ja | Tung trening |
| NVIDIA L4 | Ja | Ja | Ja | Moderne inferens |
| NVIDIA L40 | Ja | Ja | Ja | Stor modell-inferens |
| NVIDIA L40S | Ja | Ja | Ja | High-end AI workloads |
### GPU-klargjoring
```powershell
# Sjekk GPU-status pa Azure Local-noder
Get-PnpDevice | Select-Object Status, Class, FriendlyName, InstanceId |
Where-Object { $_.FriendlyName -match "Nvidia" }
# Installer mitigation driver for DDA
# (Kreves for Azure Local 23H2+)
pnputil /add-driver oem_mitigation.inf /install
# Verifiser GPU er dismounted og klar for DDA
Get-VMHostAssignableDevice
```
---
## Cluster-felles ML Stack
### AKS enabled by Azure Arc pa Azure Local
AKS pa Azure Local gir en fullt administrert Kubernetes-opplevelse med GPU-stotte:
**Oppretting av klynge med GPU:**
```bash
# Opprett AKS-klynge pa Azure Local
az aksarc create \
--resource-group ai-edge-rg \
--name ai-edge-cluster \
--custom-location my-custom-location \
--vnet-ids /subscriptions/.../virtualNetworks/ai-vnet
# Legg til GPU node pool
az aksarc nodepool add \
--cluster-name ai-edge-cluster \
--name gpu-pool \
--resource-group ai-edge-rg \
--node-count 2 \
--node-vm-size Standard_NC4_A2 \
--os-type Linux
```
**GPU VM SKU-er tilgjengelige:**
| VM SKU | GPU | vCPU | Minne (GB) | GPU-minne |
|--------|-----|------|------------|-----------|
| Standard_NK6 | T4 (1x) | 6 | 56 | 16 GB |
| Standard_NC4 | A2 (1x) | 4 | 28 | 16 GB |
| Standard_NC8 | A2 (1x) | 8 | 56 | 16 GB |
| Standard_NC16 | A16 (1x) | 16 | 112 | 16 GB |
| Standard_NC32 | A16 (2x) | 32 | 224 | 32 GB |
### KAITO pa Azure Local
Kubernetes AI Toolchain Operator (KAITO) kjorer som en cluster extension:
```bash
# Opprett klynge med KAITO aktivert
az aksarc create \
--resource-group ai-edge-rg \
--name ai-kaito-cluster \
--custom-location my-custom-location \
--vnet-ids /subscriptions/.../virtualNetworks/ai-vnet \
--enable-ai-toolchain-operator
# Aktiver KAITO pa eksisterende klynge
az aksarc update \
--resource-group ai-edge-rg \
--name ai-edge-cluster \
--enable-ai-toolchain-operator
```
**Deploy LLM med KAITO:**
```yaml
# workspace-phi4-mini.yaml
apiVersion: kaito.sh/v1alpha1
kind: Workspace
metadata:
name: workspace-phi-4-mini
spec:
resource:
instanceType: Standard_NC8
labelSelector:
matchLabels:
apps: llm-inference
inference:
preset:
name: phi-4-mini-instruct
```
```bash
# Deploy modellen
kubectl apply -f workspace-phi4-mini.yaml
# Sjekk status
kubectl get workspace -w
# Test inferens
export SERVICE_IP=$(kubectl get svc workspace-phi-4-mini \
-o jsonpath='{.spec.clusterIP}')
kubectl run -it --rm curl --image=curlimages/curl -- \
curl -X POST http://$SERVICE_IP/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "phi-4-mini-instruct",
"prompt": "Forklar fordelene med edge AI for offentlig sektor",
"max_tokens": 200
}'
```
---
## Local Azure Services
### Azure-tjenester som kjorer lokalt
Azure Local gir tilgang til et voksende utvalg Azure-tjenester direkte pa lokale servere:
| Tjeneste | Tilgjengelighet | AI-relevans |
|----------|-----------------|-------------|
| AKS (Arc) | GA | Container-basert ML og inferens |
| Azure Arc VMs | GA | GPU-akselererte VM-er for AI |
| Azure Monitor | GA | Overvaking av AI-arbeidsbelastninger |
| Azure Policy | GA | Governance for AI-deployments |
| Azure Key Vault | GA | Hemmelighetshaandtering for modeller |
| Azure Container Registry | Preview | Lokal container-lagring (disconnected) |
| Azure Arc Data Services | GA | SQL og PostgreSQL for AI-data |
### Lokal Container Registry for disconnected drift
```bash
# Opprett lokal ACR for disconnected miljoer
# (Azure Local med autonome operasjoner)
az acr create \
--name myedgeregistry \
--resource-group ai-edge-rg \
--location autonomous \
--sku Standard
```
---
## Storage-optimalisert inferens
### Storage Spaces Direct (S2D)
Azure Local bruker S2D for distribuert lagring med hoy ytelse:
| Lagringstype | Best for | Ytelse |
|-------------|----------|--------|
| NVMe + SSD tiered | Modell-lasting | <100ms load for 7B modell |
| All-flash NVMe | Real-time inferens | Sub-ms I/O |
| SSD + HDD tiered | Modell-arkiv, batch | Kostnadsoptimalt |
### Persistent Volume for ML-modeller
```yaml
# persistent-volume-claim.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ai-model-storage
namespace: ai-workloads
spec:
accessModes:
- ReadWriteMany
storageClassName: azure-local-ssd
resources:
requests:
storage: 100Gi
---
# Pod med modell-lagring
apiVersion: v1
kind: Pod
metadata:
name: model-server
namespace: ai-workloads
spec:
containers:
- name: inference
image: myregistry/model-server:v1
volumeMounts:
- name: model-data
mountPath: /models
resources:
limits:
nvidia.com/gpu: 1
volumes:
- name: model-data
persistentVolumeClaim:
claimName: ai-model-storage
```
### Caching-strategier for modeller
| Strategi | Beskrivelse | Fordel |
|----------|-------------|--------|
| Pre-load til NVMe | Last modeller ved oppstart | Raskest cold start |
| Shared PVC | ReadWriteMany for flere pods | Effektiv lagring |
| InitContainer | Last modell for main container starter | Paalitelig sekvensering |
| Model sidecar | Egen container for modell-lasting | Separasjon av ansvar |
---
## Hybrid Resilience Patterns
### High Availability for AI pa Azure Local
```
┌─────────────────────────────────────────┐
│ Azure Local HA Cluster │
│ │
│ Node 1 ────────── Node 2 │
│ GPU: L4 GPU: L4 │
│ AI Workload AI Workload │
│ (Active) (Standby) │
│ │ │ │
│ └──── S2D ───────┘ │
│ Replicated Storage │
└─────────────────────────────────────────┘
```
| Resilience-moenster | Beskrivelse | RTO |
|---------------------|-------------|-----|
| Active-Passive GPU | Standby node med GPU ready | 2-5 min |
| Active-Active load balanced | Inferens fordelt pa noder | 0 (graceful) |
| N+1 redundancy | Ekstra node for failover | 1-3 min |
| Stretched cluster | Klynge over to lokasjoner | Automatisk |
### Failover-konfigurasjon
```powershell
# Konfigurer VM failover med GPU re-assignment
# Krever at GPU-er er tilgjengelige pa failover-noden
# Sett foretrukket eier for AI VM
Set-ClusterGroup -Name "AI-Inference-VM" `
-PreferredOwner "Node1", "Node2"
# Aktiver automatisk failback
(Get-ClusterGroup "AI-Inference-VM").AutoFailbackType = 1
```
### Cloud-fallback for Azure Local
Nar lokal kapasitet er utilstrekkelig:
```yaml
# Hybrid inference med sky-fallback
apiVersion: v1
kind: ConfigMap
metadata:
name: inference-config
data:
routing: |
primary:
endpoint: http://local-model-svc:8080/v1/completions
timeout: 5s
fallback:
endpoint: https://my-foundry.openai.azure.com/v1/completions
condition: local_gpu_util > 95% OR local_unavailable
```
---
## Nettverksarkitektur
### Anbefalte nettverkstopologier
| Topologi | Bruk | Krav |
|----------|------|------|
| Converged | Enkle deployments | Min 10 Gbps |
| Hyper-converged | Standard AI-klynge | 25 Gbps + RDMA |
| Switched | Stor skala, mange noder | 25-100 Gbps fabric |
### Minimum nettverkskrav for AI
| Trafikk | Minimum | Anbefalt |
|---------|---------|----------|
| Management (Arc) | 1 Gbps + internett | 10 Gbps |
| Storage (S2D) | 10 Gbps RDMA | 25 Gbps RDMA |
| Compute (GPU) | 10 Gbps | 25 Gbps |
| Client (inferens) | 1 Gbps | 10 Gbps |
---
## Sizing-guide for AI-arbeidsbelastninger
### Anbefalte konfigurasjoner
| Arbeidsbelastning | Noder | GPU per node | Minne per node | Lagring |
|-------------------|-------|-------------|----------------|---------|
| Liten inferens (Phi-3) | 2 | 1x A2 | 64 GB | 1 TB NVMe |
| Medium inferens (Phi-4, Mistral-7B) | 3 | 1x A16 | 128 GB | 2 TB NVMe |
| Stor inferens (Llama-70B) | 4 | 2x L40S | 256 GB | 4 TB NVMe |
| Trening + inferens | 4+ | 2x A40/L40S | 512 GB | 8 TB NVMe |
### Kostnadsestimat (Azure Local)
| Komponent | Estimert kost (NOK) |
|-----------|---------------------|
| 3-node Azure Local cluster | 300,000 - 600,000 |
| NVIDIA A2 GPU (per stk) | 15,000 - 25,000 |
| NVIDIA L4 GPU (per stk) | 25,000 - 40,000 |
| NVIDIA L40S GPU (per stk) | 80,000 - 120,000 |
| Azure Local lisens | Inkludert i Azure-abonnement |
| Azure Arc management | Inkludert (basis) |
| Azure ML extension | Inkludert |
**Merk:** Priser er estimater og varierer med leverandor og konfigurasjon.
---
## For Cosmo
- **Azure Local er den primaere plattformen for on-premises AI i Microsoft-okosystemet** — fullt integrert med Azure Arc for sentralisert styring, men med all databehandling pa egen infrastruktur.
- **GPU-stotten er bred med NVIDIA T4/A2/A16/L4/L40/L40S** — bade DDA (hel GPU) og GPU-P (delt GPU) er tilgjengelig, noe som gir fleksibilitet fra lette inferensoppgaver til tung trening.
- **KAITO pa AKS Arc forenkler LLM-deployment drastisk** — fra GPU-klargjoring til modell-serving med OpenAI-kompatibelt API pa noen fa kubectl-kommandoer.
- **For norsk offentlig sektor gir Azure Local data residency i Norge** med full Azure-administrasjon fra Norway East-regionen — data forlater aldri lokale servere.
- **Hybrid resilience med sky-fallback** sikrer at AI-tjenester forblir tilgjengelige selv ved lokal kapasitetsmangel, med automatisk routing til Azure-endepunkter.