14 — Pièges & Commandes
À relire avant l'exam : pièges de décision + distinctions + repères clés. AZ-305 = examen de DESIGN → focus mots-clés énoncé → bonne réponse.
PARTIE 1 — Pièges récurrents (par thème)
Compute
- 🚨 AKS vs VM : "control infra + customization + scale natif + gros data/compute" → AKS. VM = control OS only, pas de scale natif (sauf VMSS).
- 🚨 Oracle WebLogic on Azure → AKS (WebLogic K8s Operator). PAS App Service (Tomcat/Jetty), PAS ACI.
- 🚨 Functions timeout : Consumption = 10 min max non configurable | Premium = 30 min default, illimité via host.json.
- 🚨 Function authLevel Anonymous : OK pour API publique read-only (couplé Easy Auth/APIM). Function key = partenaire. Sur-précaution = piège.
- 🚨 ASE v3 : facturé même vide (~$1k/mois), provisioning 2-4h. À éviter sauf compliance/isolation forte.
- 🚨 AKS Kubenet retraite 31 mars 2028 → Azure CNI Overlay. Private cluster → API en PE (besoin VPN/Bastion). KEDA pour scale-to-zero (HPA seul ne le fait pas).
- 🚨 Batch parallélisme :
taskSlotsPerNode (default 1 task/node). Spot nodes = eviction → workloads idempotents. CycleCloud = lift-shift Slurm/PBS (pas greenfield).
Data / SQL / Cosmos
- 🚨 SQL MI = pas de Hyperscale (GP/BC, cap ~16 TB). Scénario >16 TB → SQL DB Hyperscale jamais MI. Hyperscale single DB = 128 TB (2026).
- 🚨 Hyperscale Fsv2-series retraite 1er oct 2026 → Premium/Standard-series.
- 🚨 BC read scale-out gratuit (replicas Always On AG inclus, readable). GP = PAS de read replica. "AZ-fail + read scale-out + min cost" → BC zone-redundant (pas GP malgré "cost").
- 🚨 In-memory OLTP : full sur BC vCore (Premium DTU) | NONE sur GP | SUBSET sur Hyperscale.
- 🚨 Cosmos partition key : modifier = recréer container. Cardinalité élevée + distribution équitable. Logical partition 20 GB max.
- 🚨 Cosmos Strong + multi-write = IMPOSSIBLE (Strong = single-write region). Multi-write : Eventual/Consistent Prefix/Session/Bounded Staleness (le plus fort dispo).
- 🚨 Cosmos auth : SAS = storage only, PAS Cosmos. Entra RBAC prod, ou resource token (per-user TTL). Primary key = full admin, ne pas distribuer.
- 🚨 Cosmos Serverless : max 5000 RU/s + 1 TB, pas de multi-region writes, pas de PITR continuous.
- 🚨 MySQL/PG Flex : Burstable = pas de HA. DR régional → backup GRS (pas ZRS = intra-region only). Backup = LRS/ZRS/GRS only (pas GZRS ; GZRS = option Storage Account).
- 🚨 Always Encrypted Randomized : pas de queries (sauf Secure Enclaves). Secure Enclaves = computation in-use server-side (VBS/SGX + attestation). DDM ≠ chiffrement (DBAs voient tout).
Storage / Data Protection
- 🚨 Azure Files tiers (≠ Blob) : Premium / Transaction Optimized / Hot / Cool (infrequent, lowest cost). "infrequent + lowest storage cost" → Cool (PAS Transaction Optimized).
- 🚨 HNS (ADLS Gen2) : activer à la création, irréversible.
- 🚨 Stored Access Policy : grouper SAS au container level → révoquer/changer perms sans régénérer storage key. SAS ad-hoc = révocable seulement par rotation key. Distractors : RBAC (users Entra), ReadOnly lock (bloque resource pas contenu).
- 🚨 User Delegation SAS (2026) : Blob + Queue + Table + Files (élargi). SAS + Storage Firewall = defense-in-depth (token + IP/VNet).
Network
- 🚨 Remote workers → P2S (VPN client/device), jamais S2S (LAN-to-VNet datacenter entier).
- 🚨 ExpressRoute Global Reach multi-site → BGP pour failover auto. Static = manuel. "Premium Direct" = SKU Premium (global geo) + modèle Direct (10/100 Gbps, sans provider).
- 🚨 VNet CIDR overlap Azure ≠ on-prem (routing cassé silencieusement). GatewaySubnet = nom exact (case-sensitive), /27 mini (VpnGw1+).
- 🚨 Network Watcher : VPN Troubleshoot = seul outil VPN-aware. Packet Capture = trafic VM. NSG diagnostics = règles NSG. Connection Monitor = probing E2E.
- 🚨 L7/LB radar : global L7+WAF+CDN → Front Door Premium | régional L7+WAF+path → App Gateway v2 | non-HTTP global → Traffic Manager.
Identity & Gouvernance
- 🚨 Application permissions : admin consent OBLIGATOIRE (sinon 403 client_credentials). Implicit flow déprécié → Auth Code + PKCE (SPA). MI > SP (pas de secret).
- 🚨 CAE (Continuous Access Evaluation) : Entra invalide tokens quasi temps-réel sur événement critique (CAEP protocol). PAS Conditional Access (eval initiale), PAS MFA.
- 🚨 SSO + device restriction : App Registration (SSO Entra) + Conditional Access (filter Entra-joined device). App Proxy = piège (app on-prem only).
- 🚨 Multi-tenant RBAC : 1 user/group = 1 tenant. N tenants = N role assignments min (pas d'héritage cross-tenant).
- 🚨 Azure Policy remediation : D-A-R (Definition → Assignment + MI + role → Remediation task).
audit/deny n'ont PAS besoin de remediation. Oublier MI/role = fail silencieux.
- 🚨 Activity Log = timeline "qui/quoi/quand" (90j, audit) | Resource Graph = inventaire current state KQL (PAS timeline) | Advisor = reco.
- 🚨 Diagnostic Settings cross-subscription OK (LAW Sub B, ressources Sub A) — même tenant obligatoire. Pattern ALZ central.
App Integration / Messaging
- 🚨 Queue Storage 64 KB vs Service Bus 256 KB (Premium 100 MB) → gros payload = SB Premium.
- 🚨 Service Bus Sessions vs Partitioning : Sessions = FIFO par session key. Partitioning = throughput (perd ordre global). "FIFO order" → Sessions.
- 🚨 SB Premium Geo-DR : réplique la structure (queues/subs), pas les messages en attente.
- 🚨 Event Grid = discrete events (1 MB) | Event Hub = streaming massif (partitions immutables : Standard 32 / Premium 1024). Kafka compat → Event Hub.
Migration (CAF / WAF)
- 🚨 DB migration tool : "SQL Server → Azure SQL DB/MI" = Azure Data Studio + ext Azure SQL Migration (ou SSMS 22+). Azure Migrate = serveur entier IaaS. DMS = orchestrateur backend.
- 🚨 Performance-based assessment (sizing optimisé) vs As-on-prem (oversized). Discovery 24-48h pour perf counters fiables.
- 🚨 Data Box family 2026 : Heavy RETIRÉ. SKUs = Data Box 525 (525 TB) / Data Box 120 (120 TB). 500 TB → 1× Data Box 525. Disk = 35 TB.
- 🚨 HCX migration AVS : Bulk = parallèle (gros parcs) | vMotion = série (<30 VMs critiques) | RAV = zéro downtime gros volumes | Cold = VM éteinte.
- 🚨 Cross-region move : pas natif → Resource Mover ou ASR.
- 🚨 Azure Arc K8s : projeter EKS/GKE/on-prem comme ressources ARM (RBAC, GitOps Flux, Policy uniformes). Multi-location K8s.
- 8R : Rehost · Refactor · Rearchitect · Rebuild · Replace · Retire · Retain · Relocate.
HA / DR
- 🚨 VM Backup RPO : Standard policy = 1×/jour (RPO 24h) | Enhanced = jusqu'à 4×/jour (RPO 4h). Yearly retention max = 99 ans.
- 🚨 Auto-failover Group : DNS endpoint STABLE, auto failover, RPO <5s (pas zéro). vs Active Geo-Replication : DNS change, manuel, multi read replicas.
- 🚨 Zone-redundant SQL : BC + Hyperscale (PAS General Purpose Gen5). PITR 7-35j (default 7), LTR jusqu'à 10 ans.
- 🚨 SQL VM tempdb sur disque éphémère D:\ (perf I/O µs, recréée au reboot, économise Premium SSD).
Monitoring
- 🚨 App Insights Workspace-based (Classic = legacy). URL ping tests dépréciés → Standard tests. Sampling adaptive recommandé prod.
- 🚨 SQL Audit Server-level couvre toutes les DBs (préféré à DB-level). Defender for SQL = VA + ATP (coût/DB).
Mots-pièges de l'énoncé → réflexe
| Mot-clé scenario |
Réponse réflexe |
| "minimum administrative effort" |
PaaS, MI, built-in |
| "lift and shift" SQL Server |
SQL Managed Instance |
| "100% SQL Server compat" |
Managed Instance |
| "very large DB 100+ TB" |
SQL Hyperscale |
| "globally distributed multi-master" |
Cosmos multi-region writes |
| "must encrypt with own keys" |
TDE CMK + Key Vault |
| "data invisible to DBAs" |
Always Encrypted (Secure Enclaves si queries) |
| "minimum downtime DR" |
Auto-failover Group / Cosmos multi-region |
| "near real-time analytics on OLTP" |
Synapse Link (HTAP) |
| "global L7 + WAF + CDN" |
Front Door Premium |
| "regional L7 + WAF + path routing" |
App Gateway v2 + WAF v2 |
| "non-HTTP global LB" |
Traffic Manager |
| "users without VPN" |
App Proxy / Front Door + Private Link / Bastion |
| "remote workers VPN" |
Point-to-Site (P2S) |
| "real-time streaming millions/sec" |
Event Hub + Stream Analytics/Databricks |
| "FIFO message ordering" |
Service Bus Sessions |
| "K8s without managing nodes" |
Container Apps |
| "K8s full control" |
AKS |
| "lift-and-shift HPC Slurm/PBS" |
CycleCloud |
| "Hadoop on-prem migration" |
ADLS Gen2 + Databricks/Synapse Spark |
| "compliance HIPAA/PCI/régulé" |
Defender + Policy initiatives + Audit + CMK + PE |
| "infrequent + lowest storage cost" (files) |
Azure Files Cool |
| "revoke SAS without rotating key" |
Stored Access Policy |
Confusions classiques (X vs Y)
|
X |
Y |
| Failover SQL |
Auto-failover Group (DNS stable, auto) |
Active Geo-Replication (DNS change, manuel) |
| Cosmos vs SQL DR |
Cosmos multi-region = active-active |
Auto-failover Group = active-passive |
| Audit |
Activity Log (timeline qui/quoi) |
Resource Graph (inventaire state) |
| VPN remote |
P2S (par device) |
S2S (datacenter entier) |
| Messaging |
Service Bus Sessions (FIFO) |
Partitioning (throughput, perd ordre) |
| Eventing |
Event Grid (discrete events) |
Event Hub (streaming massif) |
| Encryption |
Always Encrypted (client-side, DBA aveugle) |
TDE/DDM (TDE=at-rest, DDM=affichage) |
| Migration DB |
Azure Data Studio + ext (DB only) |
Azure Migrate (serveur IaaS entier) |
| Consent |
Application perm (admin consent obligatoire) |
User delegated (selon perm) |
| Logic Apps |
Standard (single-tenant + VNet) |
Consumption (multi-tenant) |
Dates de retraite à connaître
| Feature |
Date |
| Hyperscale Fsv2-series |
1er oct 2026 |
| Azure Blueprints (déprécation) |
11 juil 2026 |
| AKS Kubenet |
31 mars 2028 |
| Functions Linux Consumption |
30 sept 2028 |
| Data Box Heavy |
Retiré (2026) |
PARTIE 2 — Commandes / repères essentiels
AZ-305 = peu de CLI. Voici les rares commandes utiles + les chiffres clés à mémoriser.
Chiffres clés (SLA / RTO/RPO / limites)
| Élément |
Valeur |
| Auto-failover Group RPO |
<5s (pas zéro) |
| PITR retention SQL |
7-35 jours (default 7) |
| LTR retention SQL |
jusqu'à 10 ans |
| VM Backup RPO |
24h (Standard) / 4h (Enhanced) |
| Cosmos partition logique |
20 GB max |
| Cosmos Serverless |
5000 RU/s + 1 TB |
| SQL Hyperscale single DB |
128 TB (2026) |
| SQL MI max |
~16 TB (pas de Hyperscale) |
| Service Bus message |
Standard 256 KB / Premium 100 MB |
| Queue Storage message |
64 KB |
| Event Grid / Event Hub event |
1 MB max |
| Event Hub partitions |
32 Standard / 1024 Premium |
| Function timeout |
Consumption 10 min / Premium illimité |
| GatewaySubnet |
/27 mini (VpnGw1+) |
Commandes (les plus probables)
# Cosmos multi-region writes + consistency
az cosmosdb create -g rg -n cosmos --kind GlobalDocumentDB \
--default-consistency-level Session \
--locations regionName=eastus failoverPriority=0 \
--locations regionName=westeurope failoverPriority=1 \
--enable-multiple-write-locations true
az cosmosdb update -g rg -n cosmos --backup-policy-type Continuous # PITR
# Azure SQL Hyperscale + zone-redundant + Geo backup
az sql db create -g rg --server srv -n db \
--service-objective HS_Gen5_2 --backup-storage-redundancy Geo --zone-redundant true
# Entra-only auth
az sql server update -g rg -n srv --enable-ad-only-auth true
# Auto-failover Group (DNS stable, auto failover)
az sql failover-group create -g rg --server srv -n fg \
--partner-server srv-sec --failover-policy Automatic --grace-period 1 --add-db db
# Long-term retention
az sql db ltr-policy set -g rg --server srv --database db \
--weekly-retention P12W --monthly-retention P12M --yearly-retention P10Y --week-of-year 1
# Functions Flex Consumption (moderne)
az functionapp create -g rg -n fn --flexconsumption-location eastus \
--runtime node --runtime-version 20 --storage-account st --instance-memory 2048
# Service Bus Premium + Geo-DR (réplique structure, pas messages)
az servicebus namespace create -g rg -n ns --sku Premium --capacity 1
az servicebus georecovery-alias set -g rg --namespace-name ns --alias geo \
--partner-namespace /subscriptions/.../ns-sec
# Workspace-based App Insights
az monitor app-insights component create -g rg --app ai -l eastus \
--workspace /subscriptions/.../law --kind web --application-type web
# DMS (orchestrateur backend, piloté via Azure Data Studio)
az dms create -g rg -n dms -l eastus --sku-name Premium_4vCores \
--subnet /subscriptions/.../subnets/dms
PARTIE 3 — Quick wins (mémorisation)
Choix DB
Relationnel + ACID ?
├─ Mission-critical low-latency → SQL Business Critical
├─ Volume énorme (TB-PB) + read scale → SQL Hyperscale
├─ Compat 100% SQL Server (PaaS) → SQL Managed Instance
├─ Cloud-first standard → SQL Database (GP)
└─ Compat 100% + control OS → SQL Server on VM
NoSQL global low-latency → Cosmos DB (NoSQL / Mongo / Gremlin / Cassandra API)
Multi-tenant scale horizontal → Cosmos for PostgreSQL
Choix Compute
Web HTTP → App Service Pv3 | compliance/isolation → ASE v3 Iv2 | statique+API → SWA
Container → ACI (ad-hoc) | Container Apps (microservices serverless) | AKS (K8s complet)
Serverless → Functions Flex Consumption | Logic Apps (low-code)
Batch/HPC → Azure Batch (greenfield) | CycleCloud (lift-shift Slurm/PBS)
Choix DR / HA SQL
RTO<60s + auto + DNS stable → Auto-failover Group
Manual control + multi read replicas → Active Geo-Replication
DR budget restreint, OK perdre jours → PITR/LTR
HA intra-region → Zone-redundant (BC/Hyperscale)
Choix Encryption SQL
Compliance avec ta clé → TDE with CMK (Key Vault)
Invisible aux DBAs + queries riches → Always Encrypted Secure Enclaves
Invisible aux DBAs + simple lookup → Always Encrypted Deterministic
Affichage masqué cosmétique → Dynamic Data Masking
Choix Messaging / Eventing
Commande/tâche → Queue Storage (simple) | Service Bus (FIFO/transactions/sessions)
Notification changement → Event Grid (discrete) | Event Hub (streaming massif/IoT)
Réflexes transverses
- Lire les contraintes : cost / RTO-RPO / compliance / hybrid / multi-region → déterminent le service. Même question + contrainte différente → service différent.
- PaaS > IaaS sauf compat 100% requise. Managé > self-hosted (KV, MI, ASR, Backup, Defender).
- Multi-region : Front Door + Cosmos multi-region / SQL Auto-failover Group.
- Zero-trust : Private Endpoints + Entra-only auth + RBAC + KV CMK.
- Cost opt : Autoscale, Spot, Reserved Instances, Hybrid Benefit, pause/resume Synapse.