- Critical bucket (9 files): substantive content updates basert på MCP-fetch - enterprise-governance: DSPM front door, AI-app-kategorier (3), single-tenant Entra ID - rag-cost-optimization, observability, ai-services-enterprise, multi-model-strategy: dato-bump - deterministic-cost: Copilot Credits offisiell common currency (2025-09-01), CCCU prepurchase - gpt5-gpt41-pricing: utvidet Copilot Studio modell-lineup (GPT-5.2, GPT-5.3, Claude 4.6, Grok 4.1) - vector-storage, request-batching: dato-bump (DS allerede dekkende) - High batch 1 (21 files, 10-30): Last updated 2026-04→2026-05 dato-bump Substantive Microsoft Learn-endringer var marginale per fetch — kosmetiske oppdateringer. Resterende: high batch 2 (filer 31-53, 23 filer) i ny sesjon. Se NEXT-SESSION-PROMPT.local.md.
566 lines
26 KiB
Markdown
566 lines
26 KiB
Markdown
# Azure AI Services - Enterprise Architecture Patterns
|
|
**Last updated:** 2026-05 | Verified: MCP 2026-05
|
|
**Status:** GA
|
|
**Category:** Azure AI Services (Foundry Tools)
|
|
|
|
---
|
|
|
|
## Introduksjon
|
|
|
|
Azure AI Services (tidligere Cognitive Services) krever robuste enterprise-arkitekturmønstre for å sikre høy tilgjengelighet, disaster recovery og effektiv skalering i produksjonsmiljøer. Dette dokumentet dekker arkitekturmønstre for multi-region deployment, load balancing, failover og infrastrukturdesign for AI-tjenester i Microsoft-stakken.
|
|
|
|
**Sentrale utfordringer:**
|
|
- Regional failover og business continuity
|
|
- Load balancing mellom flere Azure OpenAI-instanser
|
|
- Kostnadsoptimalisering vs. tilgjengelighet
|
|
- Network isolation og security perimeter
|
|
- Kvotestyring og throttling-håndtering
|
|
|
|
**Scope:** Dette dokumentet fokuserer på arkitekturmønstre for Azure OpenAI (del av Foundry Models, tidligere "OpenAI in Azure" — nå konsolidert under Foundry Tools), Azure AI Search, og støttetjenester som Azure API Management og Azure Front Door. Mønstrene gjelder både Foundry-baserte løsninger og standalone AI Services.
|
|
|
|
---
|
|
|
|
## Kjernekomponenter
|
|
|
|
### 1. Azure AI Services (Foundry Models)
|
|
|
|
**Deployment-typer:**
|
|
| Type | Beskrivelse | Bruksområde |
|
|
|------|-------------|-------------|
|
|
| **Global Standard** | Automatisk routing til regioner med kapasitet | Høyeste resilience, ingen data residency-krav |
|
|
| **Data Zone Standard** | Processing innenfor geografisk sone (US/EU) | Data residency-krav, god resilience |
|
|
| **Regional Standard** | Én spesifikk region | Lav latency, manuell failover |
|
|
| **Provisioned (PTU)** | Dedikert kapasitet, SLA på latency | Mission-critical workloads, predictable load |
|
|
|
|
**Multi-region strategi:**
|
|
- Minimum 2 regioner for produksjon (active-active eller active-passive)
|
|
- Data Zone deployments deler kapasitetspool på tvers av regioner i samme sone
|
|
- Separat subscription per region unngår kvote-konflikter
|
|
- Full quota allocation per endpoint gir høyest throughput
|
|
|
|
### 2. Generative AI Gateway (Azure API Management)
|
|
|
|
**Funksjonalitet:**
|
|
- **Load balancing:** Round-robin, weighted, priority-based, session-aware
|
|
- **Circuit breaker:** Automatisk deteksjon av 429-errors, dynamisk trip duration basert på `Retry-After`-header
|
|
- **Spillover:** Automatic failover til sekundære backends ved throttling
|
|
- **Managed identity:** Eliminerer API key management
|
|
|
|
**Backend pool configuration:**
|
|
- Inntil 30 backends per pool
|
|
- Priority groups: PTU som Priority 1, standard deployments som Priority 2+
|
|
- Session affinity for conversational agents
|
|
- Health probes og automatic retry uten client-side delay
|
|
|
|
**VIKTIG:** APIM circuit breaker for Azure OpenAI må håndtere `429 Too Many Requests` og respektere `Retry-After`-headeren (kan være opptil 24 timer).
|
|
|
|
### 3. Azure AI Search
|
|
|
|
**Zone redundancy:**
|
|
- Standard tier eller høyere + minimum 3 replicas
|
|
- Automatisk distribusjon på tvers av availability zones
|
|
- Ingen built-in disaster recovery — krever manuell gjenoppbygging eller support-kontakt
|
|
- Semantic ranker og advanced features øker kostnad
|
|
|
|
**Multi-region:**
|
|
- Separat service per region (ingen native multi-region replication)
|
|
- Geo-replication strategy må implementeres selv
|
|
- Index rebuilding fra separate source of truth ved data loss
|
|
|
|
### 4. Global Load Balancers
|
|
|
|
**Azure Front Door:**
|
|
- Global HTTP(S) load balancing og failover
|
|
- Latency-based routing
|
|
- Web Application Firewall (WAF) integration
|
|
- Health probes på application-nivå
|
|
|
|
**Azure Traffic Manager:**
|
|
- DNS-basert global routing
|
|
- Performance, priority, weighted, geographic routing
|
|
- Health endpoint monitoring
|
|
- Brukes ofte foran search-enabled clients (ikke direkte til AI Search)
|
|
|
|
---
|
|
|
|
## Arkitekturmønstre
|
|
|
|
### Mønster 1: Active-Active med Priority-Based Load Balancing
|
|
|
|
**Scenario:** Enterprise med PTU-deployment + standard deployments som fallback.
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────┐
|
|
│ Azure API Management (Multi-region eller Frontend) │
|
|
│ - Backend pool med circuit breaker │
|
|
│ - Session affinity for chat │
|
|
└─────────┬───────────────────────────────────────────────┘
|
|
│
|
|
┌─────┴─────┐
|
|
│ Priority │
|
|
│ Routing │
|
|
└─────┬─────┘
|
|
│
|
|
┌─────┴──────────────────────────────────────┐
|
|
│ │
|
|
┌───▼─────────────────┐ ┌───────────▼──────────┐
|
|
│ Priority 1: PTU │ │ Priority 2: Standard │
|
|
│ Region A │ │ Multi-region (US/EU) │
|
|
│ - Dedicated capacity│ │ - Data Zone │
|
|
│ - Fixed cost │ │ - Pay-per-token │
|
|
│ - SLA latency │ │ - Spillover │
|
|
└─────────────────────┘ └──────────────────────┘
|
|
```
|
|
|
|
**Fordeler:**
|
|
- Maksimal utnyttelse av PTU (fast kostnad)
|
|
- Automatisk spillover til standard ved PTU-overload
|
|
- Ingen client-side retry logic nødvendig
|
|
|
|
**Ulemper:**
|
|
- Kompleks konfigurasjon
|
|
- APIM koster ekstra
|
|
- Ikke transparent failover ved regional outage (krever DNS/Front Door)
|
|
|
|
---
|
|
|
|
### Mønster 2: Multi-Region med Azure Front Door
|
|
|
|
**Scenario:** Global applikasjon med latency-sensitive workloads.
|
|
|
|
```
|
|
┌──────────────────┐
|
|
│ Azure Front Door │
|
|
│ + WAF │
|
|
└────────┬─────────┘
|
|
│
|
|
┌────────────┴────────────┐
|
|
│ │
|
|
┌───────▼────────┐ ┌────────▼───────┐
|
|
│ Region 1 (US) │ │ Region 2 (EU) │
|
|
│ - APIM │ │ - APIM │
|
|
│ - OpenAI │ │ - OpenAI │
|
|
│ - AI Search │ │ - AI Search │
|
|
│ - Cosmos DB │ │ - Cosmos DB │
|
|
└────────────────┘ └────────────────┘
|
|
```
|
|
|
|
**Komponenter:**
|
|
- **Front Door:** Global routing, instant failover, health probes
|
|
- **Per-region:** Komplett stack (APIM, AI Services, data)
|
|
- **Data replication:** Cosmos DB global distribution, Storage GRS/GZRS
|
|
|
|
**Fordeler:**
|
|
- Minimal latency for globale brukere
|
|
- Transparent failover ved regional outage
|
|
- Høy SLA (multi-region SLA composite)
|
|
|
|
**Ulemper:**
|
|
- Høy kostnad (dobbel infrastruktur minimum)
|
|
- Data consistency-utfordringer
|
|
- Kompleks deployment og drift
|
|
|
|
---
|
|
|
|
### Mønster 3: Hot/Warm med Data Zone Deployments
|
|
|
|
**Scenario:** Compliance-krav (data residency i EU/US) med cost optimization.
|
|
|
|
```
|
|
Primary Region (Hot) Secondary Region (Warm)
|
|
┌──────────────────┐ ┌──────────────────┐
|
|
│ Full capacity │ │ Reduced capacity │
|
|
│ - OpenAI (PTU) │ │ - OpenAI (Std) │
|
|
│ - AI Search (3x) │ ──────> │ - AI Search (1x) │
|
|
│ - Cosmos DB │ replica │ - Cosmos DB │
|
|
│ - Active traffic │ │ - Standby │
|
|
└──────────────────┘ └──────────────────┘
|
|
│ ▲
|
|
└──────────────────────────────┘
|
|
Manual DNS failover
|
|
```
|
|
|
|
**Failover-strategi:**
|
|
1. Detekter outage via health monitoring
|
|
2. Scale up secondary region capacity
|
|
3. DNS cutover (eller APIM backend pool update)
|
|
4. Validate service restoration
|
|
|
|
**RTO/RPO:**
|
|
- RTO: 5-15 minutter (avhenger av scaling speed)
|
|
- RPO: Nær null (Cosmos DB continuous backup, AI Search rebuild required)
|
|
|
|
**Fordeler:**
|
|
- 50-70% kostnadssparing vs. full hot/hot
|
|
- Data residency compliance
|
|
- Raskere failover enn cold standby
|
|
|
|
**Ulemper:**
|
|
- Ikke transparent failover
|
|
- Capacity scaling under outage er risikabelt
|
|
- Manual intervention required
|
|
|
|
---
|
|
|
|
### Mønster 4: Foundry Agent Service med Standard Setup
|
|
|
|
**Scenario:** Enterprise chat application med network isolation.
|
|
|
|
```
|
|
┌────────────────────────────────────────────────────┐
|
|
│ Virtual Network │
|
|
│ ┌────────────────────────────────────────────────┐ │
|
|
│ │ App Service (Web UI) │ │
|
|
│ │ - VNet integration │ │
|
|
│ │ - Managed identity │ │
|
|
│ └─────────┬──────────────────────────────────────┘ │
|
|
│ │ Private Endpoint │
|
|
│ ┌─────────▼──────────────────────────────────────┐ │
|
|
│ │ Foundry Agent Service │ │
|
|
│ │ - Agent runtime │ │
|
|
│ │ - Private endpoint access only │ │
|
|
│ └─────────┬──────────────────────────────────────┘ │
|
|
│ │ Delegated subnet │
|
|
│ ┌─────────▼──────────────────────────────────────┐ │
|
|
│ │ Private Endpoints: │ │
|
|
│ │ - Azure OpenAI │ │
|
|
│ │ - AI Search │ │
|
|
│ │ - Cosmos DB (conversation state) │ │
|
|
│ │ - Storage (file uploads) │ │
|
|
│ └────────────────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ┌──────────▼─────────┐ │
|
|
│ │ Azure Firewall │ │
|
|
│ │ - FQDN filtering │ │
|
|
│ │ - Egress control │ │
|
|
│ └────────────────────┘ │
|
|
└────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
**Zone redundancy:**
|
|
- **Cosmos DB:** Zone-redundant (ZRS) eller global distribution
|
|
- **Storage:** ZRS eller GZRS
|
|
- **AI Search:** 3+ replicas med automatic zone distribution
|
|
- **App Service:** Zone-redundant (minimum 3 instances)
|
|
|
|
**Disaster recovery:**
|
|
- Cosmos DB: Continuous backup (7-day PITR)
|
|
- AI Search: Ingen native backup — rebuild fra source of truth
|
|
- Storage: Customer-managed failover for geo-redundant accounts
|
|
- Agent definitions: Infrastructure as Code (deploy from source control)
|
|
|
|
**Fordeler:**
|
|
- Enterprise-grade security (zero trust network)
|
|
- Full audit trail via NSG flow logs og Firewall logs
|
|
- Managed identity eliminerer secrets
|
|
- Foundry Agent Service håndterer orchestration og state (Microsoft Agent Framework koordinerer multi-agent orkestrasjon). Verified (MCP 2026-04).
|
|
|
|
**Ulemper:**
|
|
- Høyere kompleksitet
|
|
- Ikke multi-region (krever separate deployments)
|
|
- Foundry portal krever jump box eller VPN-tilgang
|
|
|
|
---
|
|
|
|
## Beslutningsveiledning
|
|
|
|
### 1. Velge Deployment Type
|
|
|
|
| Krav | Anbefaling |
|
|
|------|------------|
|
|
| Høyeste resilience, ingen data residency-krav | **Global Standard** |
|
|
| EU/US data residency | **Data Zone Standard** |
|
|
| Lavest latency, eksisterende regional infra | **Regional Standard** (+ manuell multi-region) |
|
|
| Predictable latency SLA, mission-critical | **Provisioned (PTU)** |
|
|
| Kostnadsoptimalisering, variabel load | **Standard** med APIM spillover til PTU |
|
|
|
|
### 2. Velge Load Balancing Strategy
|
|
|
|
| Scenario | Løsning |
|
|
|----------|---------|
|
|
| Single region, multiple Azure OpenAI instances | **Azure API Management** (backend pool + circuit breaker) |
|
|
| Multi-region global routing | **Azure Front Door** + regional APIM |
|
|
| Latency-sensitive, DNS-based | **Traffic Manager** + health probes |
|
|
| DIY, containerized | **YARP** (C# reverse proxy) på Azure Container Apps |
|
|
|
|
### 3. Velge RTO/RPO Strategi
|
|
|
|
| RTO/RPO Mål | Mønster | Relative Cost |
|
|
|-------------|---------|---------------|
|
|
| RTO < 1 min, RPO = 0 | Active-active (hot/hot) | 2.0x |
|
|
| RTO < 15 min, RPO < 5 min | Active-warm | 1.4x |
|
|
| RTO < 1 hour, RPO < 1 hour | Active-cold | 1.1x |
|
|
|
|
**Konfidensgradering:** 🟢 **Høy** — Basert på Microsoft Learn offisiell dokumentasjon (2026-02).
|
|
|
|
---
|
|
|
|
## Integrasjon med Microsoft-stakken
|
|
|
|
### Azure AI Foundry Integration
|
|
|
|
**Foundry Agent Service Dependencies (Standard Setup):**
|
|
- **Cosmos DB for NoSQL:** Agent state og conversation history (krever zone redundancy)
|
|
- **Azure Storage:** File uploads og static files (krever ZRS/GZRS)
|
|
- **Azure AI Search:** Chunked index av filer (krever 3+ replicas)
|
|
|
|
**Multi-project isolation:**
|
|
- Separate Foundry project per agent med distinct access patterns
|
|
- Project-level connections (ikke account-level) for least privilege
|
|
- User-assigned managed identity for project identity (survival ved accidental deletion)
|
|
|
|
**Disaster recovery:**
|
|
- Agent definitions som Infrastructure as Code
|
|
- Continuous backup på Cosmos DB (7-day PITR)
|
|
- Transactional consistency: Restore alle dependencies til samme point-in-time
|
|
|
|
### Power Platform Integration
|
|
|
|
**Copilot Studio:**
|
|
- Uses Azure OpenAI via Foundry Models
|
|
- Separate per-environment deployments anbefales
|
|
- Gateway-pattern mulig via custom connectors
|
|
|
|
**Power Automate:**
|
|
- AI Builder actions bruker dedikerte AI Services
|
|
- Premium connectors kan kalle APIM-fronted Azure OpenAI
|
|
- Regional availability varierer (sjekk [Products by Region](https://azure.microsoft.com/global-infrastructure/services/))
|
|
|
|
### M365 Copilot
|
|
|
|
**Ikke direkte integrasjon med custom Azure OpenAI:**
|
|
- M365 Copilot bruker Microsoft-managed AI infrastructure
|
|
- Grounding via Microsoft Graph, SharePoint, OneDrive
|
|
- Copilot Studio kan utvide med custom skills som kaller Azure OpenAI via gateway
|
|
|
|
---
|
|
|
|
## Offentlig sektor (Norge)
|
|
|
|
### Compliance og Data Residency
|
|
|
|
**Azure OpenAI i Norge:**
|
|
- Ingen Azure OpenAI-region i Norge per 2026-02
|
|
- **Nærmeste regioner:** Sweden Central, West Europe
|
|
- **Data residency:** Bruk **Data Zone EU** for GDPR-compliance
|
|
- **Schrems II:** Data Zone deployments prosesserer data innenfor EU
|
|
|
|
**Network Isolation:**
|
|
- Private endpoints + Azure Firewall (FQDN-filtering)
|
|
- NSG per subnet med deny-all default
|
|
- Jump box + Azure Bastion for admin-tilgang
|
|
- ExpressRoute for hybrid connectivity (ikke required for cloud-only workloads)
|
|
|
|
### Anbefalte Patterns for Norsk Offentlig Sektor
|
|
|
|
**Konfidensialitet Normal (N):**
|
|
- Data Zone EU Standard deployments
|
|
- Hot/warm multi-region (West Europe + Sweden Central)
|
|
- Azure API Management for load balancing
|
|
- Zone-redundant støttetjenester
|
|
|
|
**Konfidensialitet Høy (H):**
|
|
- Som Normal + Private endpoints på alt
|
|
- Azure Firewall med strict egress rules
|
|
- Customer-managed keys (CMK) for encryption
|
|
- Audit logging til Log Analytics Workspace (Norge-region hvis tilgjengelig, ellers EU)
|
|
|
|
**Konfidensialitet Særlig Høy (SH):**
|
|
- Vurder on-premises AI Services containers (begrenset funksjonalitet)
|
|
- Eller: Data Zone EU + customer-managed VNet med zero internet egress
|
|
- Dedikert subscription per sensitivity zone
|
|
- Enhanced monitoring og Security Operations Center (SOC) integration
|
|
|
|
**Kostnadsoversikt (estimat, NOK per måned):**
|
|
|
|
| Komponent | Normal (N) | Høy (H) | Særlig Høy (SH) |
|
|
|-----------|-----------|---------|-----------------|
|
|
| Azure OpenAI (50K tokens/dag) | ~1 500 | ~3 000 (2x regions) | ~6 000 (PTU dedicated) |
|
|
| Azure API Management (Standard) | ~6 000 | ~6 000 | ~12 000 (2x regions) |
|
|
| AI Search (Standard, 3 replicas) | ~9 000 | ~18 000 (2x regions) | ~18 000 |
|
|
| Cosmos DB (zone-redundant) | ~3 000 | ~6 000 (global) | ~6 000 |
|
|
| **Total (ca.)** | **~19 500** | **~33 000** | **~42 000** |
|
|
|
|
*Disclaimer: Priser er estimater basert på moderate workloads. Faktiske kostnader avhenger av trafikk, data volume og konkrete konfigurasjon.*
|
|
|
|
---
|
|
|
|
## Kostnad og lisensiering
|
|
|
|
### Azure OpenAI Pricing Model
|
|
|
|
**Standard Deployments (Pay-per-token):**
|
|
- **Input tokens:** ~0.003 USD per 1K tokens (GPT-4o)
|
|
- **Output tokens:** ~0.006 USD per 1K tokens (GPT-4o)
|
|
- **Image input:** Per image (varierer med resolution)
|
|
- **Ingen minimum commitment**
|
|
|
|
**Provisioned (PTU):**
|
|
- **Fixed monthly cost:** ~2 500 USD per 100 PTU
|
|
- **Inkluderer:** Dedikert kapasitet, latency SLA, priority access
|
|
- **Optimalt for:** >10M tokens/måned med forutsigbar load
|
|
|
|
**Cost Optimization Strategies:**
|
|
- **Prompt optimization:** Reducer input tokens (concise prompts, efficient context)
|
|
- **Model selection:** Bruk GPT-4o-mini for enklere tasks (10x billigere)
|
|
- **Caching:** (Planlagt feature) Reduserer repeterende context-tokens
|
|
- **APIM rate limiting:** Forhindre abuse og kostnadsoverskridelse
|
|
- **Spillover strategy:** PTU for baseline, standard for peaks
|
|
|
|
### Azure API Management Pricing
|
|
|
|
| Tier | Kostnad (ca. NOK/måned) | Max requests | Features |
|
|
|------|------------------------|--------------|----------|
|
|
| Developer | ~500 | 1M calls | Ingen SLA, dev/test |
|
|
| Basic | ~1 500 | 1M calls | SLA, 1 unit max |
|
|
| Standard | ~6 000 | 10M calls | Multi-region, 4 units |
|
|
| Premium | ~30 000+ | Unlimited | Multi-region, VNet, 10+ units |
|
|
|
|
**For AI Gateway:** Standard tier minimum (circuit breaker ikke i Consumption tier).
|
|
|
|
### Azure AI Search Pricing
|
|
|
|
**Standard Tier (anbefalt for prod):**
|
|
- **S1:** ~3 000 NOK/måned per search unit
|
|
- **Zone redundancy:** Requires 3+ replicas = ~9 000 NOK/måned minimum
|
|
- **Semantic ranker:** +~1 000 NOK/månd per search unit
|
|
|
|
### Total Cost of Ownership (TCO) Example
|
|
|
|
**Scenario:** Enterprise chat application, 100 users, 50 queries/dag per user.
|
|
|
|
**Forutsetninger:**
|
|
- 5 000 queries/dag total
|
|
- Average 1 000 input tokens + 500 output tokens per query
|
|
- 2 regioner (active-warm)
|
|
|
|
**Månedlig kostnad (NOK):**
|
|
```
|
|
Azure OpenAI: ~15 000 (2.5M in + 1.25M out tokens)
|
|
APIM Standard: ~6 000 (single region)
|
|
AI Search S1 (3 replicas): ~9 000
|
|
Cosmos DB (zone-redundant): ~3 000
|
|
Storage ZRS: ~200
|
|
Front Door: ~1 500
|
|
──────────────────────────────────────────────────────
|
|
TOTAL: ~34 700 NOK/måned
|
|
```
|
|
|
|
**Med PTU optimization (100 PTU i primary region):**
|
|
```
|
|
Azure OpenAI PTU: ~25 000 (fixed)
|
|
Azure OpenAI Standard (spillover): ~3 000
|
|
[Andre komponenter samme]
|
|
──────────────────────────────────────────────────────
|
|
TOTAL: ~46 700 NOK/måned (høyere cost, men forutsigbar)
|
|
```
|
|
|
|
**Konfidensgradering:** 🟡 **Medium** — Prisene er estimater basert på publiserte prislister (2026-02). Faktiske kostnader avhenger av detaljert bruksmønster.
|
|
|
|
---
|
|
|
|
## For arkitekten (Cosmo)
|
|
|
|
### Når bruke hvilke mønstre
|
|
|
|
**Velg Active-Active (Hot/Hot) hvis:**
|
|
- RTO < 1 minutt er strengt krav
|
|
- Global user base med latency-følsomhet
|
|
- Budsjett tillater 2x infrastructure cost
|
|
- Datakonsistens kan håndteres (eventual consistency OK)
|
|
|
|
**Velg Active-Warm hvis:**
|
|
- RTO < 15 minutter er akseptabelt
|
|
- Primært regional user base
|
|
- Kostnadsoptimalisering er prioritet
|
|
- Manual failover-prosess er akseptabel
|
|
|
|
**Velg Regional + APIM hvis:**
|
|
- Single-region deployment er OK
|
|
- Throttling-håndtering viktigere enn regional failover
|
|
- Lavere kostnad og kompleksitet prioriteres
|
|
|
|
### Kritiske spørsmål å stille kunden
|
|
|
|
1. **RTO/RPO requirements:** Hva er maksimal akseptabel downtime? Data loss?
|
|
2. **Data residency:** Er det juridiske krav til hvor data prosesseres? (GDPR, Schrems II)
|
|
3. **Budget:** Hva er månedlig budsjett for AI infrastructure? (Påvirker hot/warm/cold valg)
|
|
4. **User distribution:** Global eller regional? (Påvirker multi-region strategi)
|
|
5. **Load pattern:** Forutsigbar eller spiky? (PTU vs. standard)
|
|
6. **Security posture:** Network isolation required? (Påvirker VNet/private endpoint design)
|
|
7. **Existing footprint:** Azure landing zone existing? ExpressRoute? (Påvirker integration)
|
|
|
|
### Røde flagg å unngå
|
|
|
|
❌ **Single region uten throttling-håndtering** — Garantert 429-errors under peak load
|
|
❌ **Shared APIM backend pool på tvers av environments** — Dev throttling påvirker prod
|
|
❌ **Account-level Foundry connections** — Overprivileged access på tvers av prosjekter
|
|
❌ **Ingen disaster recovery plan for AI Search** — Index-tap er ikke-recoverable uten backup strategy
|
|
❌ **PTU-deployment uten fallback** — Fast cost uten elasticity ved overload
|
|
❌ **Client-side retry uten exponential backoff** — Amplified load under throttling
|
|
❌ **Colocating workload data i Foundry Agent Service dependencies** — Reliability og security risk
|
|
|
|
### Anbefalte Deployment Sequence
|
|
|
|
1. **Fase 1 - Single Region MVP:**
|
|
- Regional Azure OpenAI (Standard)
|
|
- APIM Basic tier (gateway pattern proof)
|
|
- AI Search Standard (1 replica)
|
|
- Cost: ~10K NOK/måned
|
|
|
|
2. **Fase 2 - Production Hardening:**
|
|
- Upgrade til APIM Standard (circuit breaker)
|
|
- AI Search 3 replicas (zone redundancy)
|
|
- Add secondary region (warm standby)
|
|
- Cost: ~35K NOK/måned
|
|
|
|
3. **Fase 3 - Enterprise Scale:**
|
|
- Azure Front Door (global routing)
|
|
- PTU deployment i primary region
|
|
- Full hot/hot multi-region
|
|
- Cost: ~70K+ NOK/måned
|
|
|
|
### Monitoring og Alerting
|
|
|
|
**Kritiske metrics:**
|
|
- **Azure OpenAI:** `TotalTokens`, `GeneratedTokens`, `HTTP 429 count`, `Latency P95`
|
|
- **APIM:** `Backend response time`, `Failed requests`, `Circuit breaker trips`
|
|
- **AI Search:** `Search latency`, `Throttled requests`, `Query volume`
|
|
- **Cosmos DB:** `Request units consumed`, `Availability`, `Latency P99`
|
|
|
|
**Alert thresholds (forslag):**
|
|
- HTTP 429 count > 1% av requests → Øk quota eller add fallback region
|
|
- APIM backend latency P95 > 5s → Investigate backend health
|
|
- AI Search throttled requests > 0 → Scale up replicas/partitions
|
|
- Cosmos DB RU utilization > 80% → Scale up RU/s eller enable autoscale
|
|
|
|
**Application Insights integration:**
|
|
- Foundry Agent Service sender automatisk metrics til linked App Insights
|
|
- Custom telemetry via SDK for client-side latency tracking
|
|
- Correlation ID på tvers av alle komponenter for distributed tracing
|
|
|
|
---
|
|
|
|
## Kilder og verifisering
|
|
|
|
**Microsoft Learn Documentation (offisiell, 2026-02):**
|
|
1. [AI Ready - Cloud Adoption Framework](https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/ai/ready)
|
|
2. [BCDR for Azure OpenAI](https://learn.microsoft.com/en-us/azure/ai-foundry/openai/how-to/business-continuity-disaster-recovery)
|
|
3. [Baseline Foundry Chat Architecture (Foundry Agent Service + Microsoft Agent Framework)](https://learn.microsoft.com/en-us/azure/architecture/ai-ml/architecture/baseline-microsoft-foundry-chat) — Verified (MCP 2026-04)
|
|
4. [Azure API Management - AI Gateway Capabilities](https://learn.microsoft.com/en-us/azure/api-management/genai-gateway-capabilities)
|
|
5. [Reliability in Azure AI Search](https://learn.microsoft.com/en-us/azure/reliability/reliability-ai-search)
|
|
6. [Multi-Backend Gateway Guide](https://learn.microsoft.com/en-us/azure/architecture/ai-ml/guide/azure-openai-gateway-multi-backend) — Verified MCP 2026-04: Dokumentet bekrefter fire gateway-topologier: (1) multiple model deployments i single instance, (2) multiple instances same region/single subscription, (3) multiple instances same region/multiple subscriptions (eksplisitt som egen topologi), (4) multiple instances multi-region. Tagger eksplisitt "Foundry Tools" og "Azure OpenAI in Foundry Models". Anbefaler sterkt credential termination og reestablishment ved gateway fremfor pass-through client credentials. Gateway muliggjør client-based usage tracking for chargeback-modeller. Verified (MCP 2026-04)
|
|
7. [Load Balancing Options - Azure Architecture](https://learn.microsoft.com/en-us/azure/architecture/guide/technology-choices/load-balancing-overview)
|
|
|
|
**GitHub Samples (Microsoft-verified):**
|
|
8. [Smart Load Balancing for Azure OpenAI (APIM)](https://github.com/Azure-Samples/openai-apim-lb)
|
|
9. [Smart Load Balancing (Container Apps/YARP)](https://github.com/Azure-Samples/openai-aca-lb)
|
|
10. [Foundry Baseline Reference Implementation](https://github.com/Azure-Samples/microsoft-foundry-baseline)
|
|
|
|
**Verifikasjon:**
|
|
- ✅ Alle arkitekturdiagrammer basert på Microsoft offisiell dokumentasjon
|
|
- ✅ Deployment-typer (Global/Data Zone/Regional/PTU) verifisert mot [Deployment Types](https://learn.microsoft.com/en-us/azure/ai-foundry/foundry-models/concepts/deployment-types)
|
|
- ✅ APIM circuit breaker pattern bekreftet i [Backends Documentation](https://learn.microsoft.com/en-us/azure/api-management/backends)
|
|
- ✅ Zone redundancy requirements verifisert mot [Availability Zones Overview](https://learn.microsoft.com/en-us/azure/reliability/availability-zones-overview)
|
|
|
|
**Konfidensgradering - Samlet:** 🟢 **Høy** — Arkitekturmønstre og teknisk implementasjon er basert på Microsoft offisiell dokumentasjon (sist oppdatert april 2026). Verified (MCP 2026-04). Kostestimater er indikative og bør verifiseres mot Azure Pricing Calculator for spesifikke konfigurasjoner.
|