WIKI Retour au Portfolio

Dernière mise à jour : 23 juin 2026

1 — Core Compute Services

Les grandes familles compute Azure → VM/VMSS, App Service, ASE, Functions : choisir selon contrôle OS, coût, isolation réseau et scalabilité. (Containers → fiche 3, batch → fiche 2.)


A. Decision tree compute

Le choix entre les 4 grandes familles compute.

Quel type de workload ?
├─ Code event-driven, sporadique, sans serveur à gérer
│   └─ Serverless → Azure Functions (Flex Consumption)
│
├─ App web HTTP/S avec déploiement zip/git, sans gérer l'OS
│   ├─ Multi-tenant standard            → App Service (Premium v3)
│   ├─ Compliance stricte / VNet-only    → App Service Environment (ASE v3)
│   └─ Container web simple              → Web App for Containers / Container Apps 
│
├─ Microservices / containers complexes
│   ├─ Kubernetes managed                → AKS (fiche 3)
│   ├─ Serverless containers             → Azure Container Apps (fiche 3)
│   └─ Container unique simple           → Azure Container Instances (fiche 3)
│
├─ Control total OS / driver custom / agents tiers
│   └─ Azure Virtual Machines (IaaS)
│
└─ HPC / batch parallèle (rendu, scientifique, ML training)
    └─ Azure Batch / CycleCloud (fiche 2)

Tableau de décision rapide

Critère Serverless (Functions) PaaS (App Service) Containers (AKS/ACA) IaaS (VMs)
Gestion OS ❌ MS gère ❌ MS gère ❌ MS gère runtime Toi
Custom dependencies Limité (runtime fixé) Limité (runtime fixé) ✅ (image) ✅ (full)
Scaling Auto event-driven Auto par instance Auto (HPA, KEDA) Manuel ou VMSS
Billing Pay-per-execution Plan fixe ($/h) Plan + workload Per VM/h
Cold start Possible (Flex) Possible (ACA scale-to-zero)
Use case API REST sporadique, triggers Web app prod standard Microservices, ML inference Legacy, agents, control OS

🎯 Règle générale 305 : "sporadique" → Functions · "web app standard" → App Service · "microservices" → AKS / ACA · "control OS / legacy" → VMs.


B. Azure Virtual Machines

⚠️ Bases VMs (création, OS, NSG, etc.) = AZ-104. Ici juste angle design 305.

B.1 Familles de SKUs (à reconnaître)

Famille Use case
D-series General purpose équilibré CPU/RAM/IO (default)
E-series Memory-optimized (DB, cache, analytics)
F-series Compute-optimized (web servers, ML inference, batch)
M-series Memory-intensive massif (SAP HANA, in-memory DB jusqu'à TB de RAM)
HB / HC / HX HPC (calcul parallèle, voir fiche 2)
N-series (NC/ND/NV) GPU (ML training, rendu, VDI)

🎯 Question 305 type : "App standard web tier"D. "SQL Server gros workload mémoire"E ou M. "ML training"N (ND/NC). "HPC simulation" → fiche 2.

B.2 Security features VMs

Feature Quoi
Trusted Launch Secure Boot + vTPM (anti-rootkit). Default sur nouvelles VMs Gen2 (GA via portail/PowerShell/CLI)
Confidential VMs RAM chiffrée via AMD SEV-SNP — encryption in-use (workloads ultra-sensibles)
Encryption at Host Encryption disks + caches niveau hyperviseur (recommandé prod 305 vs ADE legacy)
Azure Disk Encryption (ADE) BitLocker/DM-Crypt OS-level (legacy mais audit visible)

B.3 Spot VMs

  • Jusqu'à -90% sur prix on-demand.
  • Azure peut évincer la VM à tout moment (30s warning).
  • Use case : batch tolérants à l'interruption, dev/test, CI/CD runners, calcul scientifique avec checkpoints.

B.4 HA / Distribution

Option Scope SLA
Availability Set (AS) (legacy) Même DC, fault/update domains 99.95% (2+ VMs)
Availability Zone (AZ) 3 DCs physiques dans la région 99.99% (1 VM par AZ)
VMSS Flexible N VMs auto-scaled across AZ 99.99%
Proximity Placement Group VMs très proches physiquement (low latency)

🎯 Au 305 : AZ > AS quasi-systématique en prod. AS = legacy/régions sans AZ.

B.5 VDI / Desktops distants — AVD & Windows 365 (awareness)

Le scope "Recommend a compute solution per workload requirements" peut inclure le VDI / postes distants. À reconnaître, pas à maîtriser en profondeur.

Azure Virtual Desktop (AVD) Windows 365 (Cloud PC)
Modèle VDI managé, Windows 10/11 Enterprise multi-session (ou single-session) Cloud PC par-utilisateur, dédié/persistant
Host pools Pooled (sessions partagées, FSLogix) vs Personal (1 VM/user) N/A (1 Cloud PC par user)
Gestion infra Toi : tu gères les session hosts (VMs), images, scaling Zéro infra : MS provisionne/gère le Cloud PC
Facturation Consommation (compute VMs + licences) Prix fixe mensuel par user (prévisible)
Use case Postes distants, apps legacy centralisées, BYOD sécurisé, scale/contrôle coût fin Cloud PC simple par user, prévisibilité budgétaire, faible overhead

🎯 Mémo design 305 :

  • "VDI flexible multi-session, contrôle coût/scale, je gère les session hosts"AVD
  • "Cloud PC simple par utilisateur, prix fixe mensuel prévisible, zéro gestion d'infra"Windows 365

C. App Service Web Apps (PaaS)

C.1 C'est quoi

PaaS managé pour apps web HTTP/S (.NET / Java / Node / Python / PHP / Ruby / containers). MS gère OS, runtime, patching, scaling. Tu déploies juste ton code.

C.2 Tiers / Plans

Tier Use case
Free / Shared Dev/test, multi-tenant strict
Basic (B1-B3) Dev/staging, pas d'autoscale
Standard (S1-S3) Prod basique, autoscale, slots, custom domain
Premium v3 (P0v3-P5v3) Prod moderne, zone-redundancy, VNet integration, autoscale rapide
Isolated v2 (I1v2-I6v2) ASE v3 : single-tenant, isolation hardware

🎯 Mémo 305 :

  • "Prod standard sans compliance stricte"Premium v3
  • "VNet integration + zone-redundant"Premium v3
  • "Compliance PCI/HIPAA + single-tenant"Isolated v2 (ASE v3)
  • "Dev/test" → Basic ou Standard

C.3 Features clés design 305

Feature Quoi Tier requis
Deployment slots Blue-green deployment, swap zero downtime, rollback Standard+
Autoscale Scale rules CPU/RAM/custom metrics Standard+
VNet Integration (outbound) App → ressources VNet privées Standard+
Private Endpoint (inbound) App = privée, accès VNet only Premium v3+
Zone redundancy 3 AZ, SLA 99.99% Premium v3+
Easy Auth (Entra) Auth Entra/OIDC sans coder Tous
App Service Backup Backup auto vers Storage Standard+
Custom domain + TLS Cert KV-managed (rotation auto via MI) Basic+ (TLS sni : Standard+)
Hybrid Connections Reach 1 endpoint on-prem sans VPN Premium

C.4 Multi-tenant Premium v3 vs Single-tenant ASE v3

Premium v3 + PE + VNet Integration ASE v3 (Isolated v2)
Isolation Multi-tenant hardware partagé Single-tenant stamp dédié
Coût ~$70-150/mois/app ~$1k/mois fixe stamp + $/instance
Use case 99% des cas Compliance PCI/HIPAA strict ou 20+ apps
Provisioning Minutes 2-4h

🎯 "Web app prod avec VNet privée + zone-redundant"Premium v3 + PE + VNet Integration (suffit 99% des cas). 🎯 "PCI-DSS / HIPAA / FedRAMP isolation hardware"ASE v3.

C.5 Pièges App Service 305

  • 🚨 Slots = Standard+ (pas Basic ni Free).
  • 🚨 Private Endpoint inbound = Premium v3+.
  • 🚨 Zone redundancy = Premium v3+.
  • 🚨 ASE v3 = dernière option sauf compliance ou >20 apps : trop cher sinon.

D. App Service Environment (ASE) v3

D.1 C'est quoi

App Service single-tenant déployé dans ton VNet : isolation hardware, compliance stricte, "zero public" via ILB (Internal Load Balancer).

D.2 Architecture rapide

  • Subnet dédié dans ton VNet (/24 recommandé).
  • Internal ASE (ILB) ou External ASE (public isolé).
  • Provisioning : 2-4h.
  • Multiples plans Isolated v2 dans le même ASE (mutualisation).

D.3 Multi-tenant vs ASE

Critère Multi-tenant (Premium v3) ASE v3
Isolation Partagée Single-tenant stamp dédié
Coût $/instance $/h fixe + $/instance (~$1k base)
Network VNet integration Déployé DANS ton VNet
SKU apps F1/B/S/P Isolated v2 (I1v2-I6v2)
Inbound Public optionnel ILB (internal) ou external
  • Max 200 instances Isolated v2 par ASE.

D.4 Quand l'utiliser

Besoin ASE v3 ?
Compliance stricte (PCI-DSS, HIPAA, FedRAMP)
Zero public apps VNet-only via ILB
Forced tunneling outbound (UDR)
Très gros workloads mutualisés (20+ apps prod)
Petites apps standards ❌ → Premium v3 + PE

D.5 HA / DR

Zone redundancy (intra-region) :

  • Option à la création (irréversible), min 3 instances → distribue auto sur 3 AZ.

DR cross-region :

  • Pas de réplication native d'ASE.
  • Pattern : 2 ASEs + Front Door + données geo-replicated.

E. Azure Functions (serverless)

E.1 C'est quoi

Compute serverless event-driven : code exécuté en réponse à un trigger, billing à l'exécution.

E.2 Hosting Plans

Plan Cold start Scale Timeout Slots Billing
Flex Consumption Quasi nul Scale-to-zero, event-driven (jusqu'à 1000) Configurable Pay-per-use (GB-sec)
Premium Pre-warmed dédié (jusqu'à 100) Illimité possible $/h fixe (payé même idle)
Dedicated (App Service Plan) Autoscale du plan Illimité Inclus dans coût du plan
Consumption legacy Oui Event-driven 10 min max 🚨 Linux sunset 30 sept 2028

🎯 Choix 305 :

  • "Sporadique, minimize cost"Flex Consumption
  • "Latence critique, VNet strict, long-running"Premium
  • "Plan App Service existant sous-utilisé"Dedicated (coût marginal nul)

E.3 Triggers / Bindings

Trigger Use case
HTTP API REST, webhook
Timer CRON (archive logs nocturne)
Blob Réagir upload (génère thumbnails)
Queue / Service Bus Worker pattern
Event Grid Événement Azure (Blob deleted → notif)
Event Hub Streaming massif IoT
Cosmos DB Change Feed React new doc

1 trigger par function. Bindings input/output = N (lire Blob + push Queue déclaré dans config, sans coder les SDK).

E.4 Durable Functions

Extension qui rend les Functions stateful : workflows long-running, reprise sur crash, attente d'événements (heures/jours).

Pattern Quand
Function chaining Séquence F1 → F2 → F3
Fan-out / Fan-in N tasks parallèles + agrégation
Async HTTP API Réponse 202 + statusUrl à poll
Monitor Poll périodique d'un état externe
Human interaction Pause pour approbation humaine

🎯 Au 305 : "Workflow long-running orchestré code-first + reprise crash + parallèle"Durable Functions. "Workflow low-code SaaS connectors"Logic Apps

E.5 Functions vs Logic Apps

Critère Functions Logic Apps
Approche Code (.NET/Node/Python/Java) Designer visuel low-code
Audience Devs Devs + IT Pros
Connecteurs À coder 1000+ prêts (SaaS, on-prem)
Pricing Pay-per-exec ou plan Pay-per-action ou plan

E.6 Networking

Méthode Direction Use case
VNet Integration Outbound (Function → VNet) Function appelle DB privée
Hybrid Connections Outbound (Function → host:port on-prem) 1 endpoint on-prem TCP sans VPN (Premium/Dedicated only)
Private Endpoint Inbound (VNet → Function) Function privée, zero public

E.7 HA / DR

Zone redundancy :

  • Flex Consumption : ✅ par défaut sur régions supportées.
  • Premium / Dedicated v3 : ✅ option à la création (irréversible, min 3 instances).

Cross-region DR : 2 Function Apps + Front Door + données geo-replicated.

E.8 Pièges Functions 305

  • 🚨 Slots = Premium/Dedicated uniquement.
  • 🚨 Hybrid Connections = Premium/Dedicated uniquement.
  • 🚨 Workflow low-code SaaS → Logic Apps, pas Functions.
  • 🚨 Long-running stateful → Durable Functions.
  • 🚨 Détail sécurité (keys, authLevel) = AZ-204, hors scope 305.

F. Scénarios 305 → solution

Scénario business Réponse
"API REST sporadique event-driven, minimize cost" Functions Flex Consumption
"Workflow long-running parallèle + reprise crash" Durable Functions (Premium)
"Workflow low-code Email → SharePoint + Teams + SAP" Logic Apps (fiche 5)
"Web app prod multi-region + zone-redundant + VNet integration" App Service Premium v3 + PE + VNet Integration + Front Door (fiche 6)
"Web app compliance PCI-DSS isolation hardware" ASE v3 (Isolated v2)
"Web app dev/test pas cher" App Service Basic ou Standard
"Blue-green deployment zero downtime + rollback" App Service Slots (Standard+)
"Migration SAP HANA in-memory massif" VM M-series
"ML training GPU" VM ND/NC series (N-series)
"Web tier prod scale auto across 3 AZ" VMSS Flexible zone-distributed
"Batch tolérant interruption -90% coût" Spot VMs
"Workload ultra-sensible avec RAM chiffrée" Confidential VMs (fiche 9)
"App moderne containerisée microservices" AKS ou Container Apps (fiche 3)
"HPC simulation parallèle MPI" Azure Batch ou HBv4 (fiche 2)
"Legacy app avec drivers custom OS-level" Azure VMs (IaaS)
"Function appelle DB privée Azure SQL" Functions Premium + VNet Integration
"App globale 24/7 multi-region avec failover auto" App Service x2 régions + Front Door (fiche 6)
"Function publique sans coder l'auth" Easy Auth (Entra) sur la Function

🏢 Scénarios d'entreprise (CAF/WAF)

Scénario 1 : Assurance — App web réglementée zone-redundant (least cost vs ASE)

Contexte business : Un assureur santé migre son portail de sinistres vers Azure. Il veut : accès public filtré, lien privé vers la base SQL, et haute dispo dans la région. Le RSSI réclamait un ASE v3 par réflexe « isolation ». Choix architectural : App Service Premium v3 (zone-redundant), exposé via App Gateway + WAF, base SQL jointe en privé via Private Endpoint. → pas besoin d'ASE v3 (trop cher) ici. Architecture / pattern :

  • App Service Premium v3 réparti sur 3 zones → SLA 99.99%.
  • App Gateway WAF_v2 = seule porte d'entrée publique ; il joint l'app en privé (Private Endpoint).
  • L'app joint SQL, Key Vault, Storage en privé (VNet Integration + Private Endpoints). Certif TLS dans Key Vault. Trade-offs assumés :
  • Gain : ~10x moins cher qu'un ASE v3, déploiement en minutes (vs 2-4h), même HA 99.99%.
  • Perte : hardware partagé (multi-tenant). Insuffisant si la compliance exige une isolation physique (PCI-DSS/FedRAMP strict). Pièges à éviter :
  • Private Endpoint entrant + zone redundancy = Premium v3+ seulement.
  • Zone redundancy = à activer à la création du plan, irréversible.
  • Ne pas laisser l'app aussi accessible en public : n'autoriser que l'IP de l'App Gateway. 📐 Réf. WAF — Baseline highly available zone-redundant web application : architecture de référence WAF qui valide précisément ce pattern (App Service zone-redundant + App Gateway/WAF + Private Link vers PaaS), en privilégiant le multi-tenant zone-redondant avant d'envisager l'isolation ASE. Lien

Scénario 2 : Média — Pipeline de traitement de fichiers serverless (fan-out/fan-in)

Contexte business : Studio média : à chaque livraison, des milliers de fichiers doivent être traités en parallèle puis agrégés en un rapport. Charge sporadique (rien entre deux livraisons), objectif coût minimal, et reprise après crash sans tout relancer. Choix architectural : Azure Functions Flex Consumption + Durable Functions (pattern fan-out/fan-in), déclenché par upload Blob. Architecture / pattern :

  • Flex Consumption : scale-to-zero (coût nul à l'idle), montée jusqu'à 1000 instances selon la charge.
  • Durable Functions : un orchestrateur lance N tâches en parallèle (1 par fichier) puis agrège les résultats. Checkpoint auto → reprise au point d'arrêt après un crash.
  • Accès privé au Storage / base de métadonnées via VNet Integration. Trade-offs assumés :
  • Gain : facturé à l'usage (GB-sec), résilient aux redémarrages, pas de file d'attente à gérer à la main.
  • Perte : Flex Consumption = Linux only, pas de slots, et un quota régional (cores) qui peut brider le scale avant 1000. Pièges à éviter :
  • maximum-instance-count < 40 sur du HTTP → throttling sous charge.
  • Le plafond 1000 est théorique : le quota régional de cores est atteint avant → le surveiller / demander une hausse.
  • Ne pas recoder la coordination à la main : c'est tout l'intérêt de Durable Functions. 📐 Réf. Durable Functions — Fan-out/fan-in pattern : pattern officiel de parallélisation + agrégation avec durable execution, alternative au couple file d'attente + 2 functions. Lien

Scénario 3 : Recherche — Calcul batch tolérant aux interruptions (cost optimization Spot)

Contexte business : Labo de génomique : analyses massivement parallèles (jobs de quelques heures, découpés en milliers de tâches indépendantes). Délai flexible, priorité = réduire la facture compute. Choix architectural : VMSS Flexible avec mix Spot/dédié (Spot Priority Mix), tâches courtes et checkpointées. Architecture / pattern :

  • VMSS Flexible réparti sur les zones ; Spot Priority Mix = un socle de VMs dédiées (le job avance toujours) + un complément Spot (jusqu'à -90%).
  • Avant éviction, Azure prévient (~30s via Scheduled Events) → on sauvegarde l'avancement.
  • Spot Placement Score pour choisir région/SKU où le Spot est le plus dispo. Trade-offs assumés :
  • Gain : jusqu'à -90% sur le compute interruptible, le socle dédié garantit la progression même sans Spot.
  • Perte : aucun SLA/HA sur les nœuds Spot, éviction à tout moment. Inadapté au prod stateful ou aux jobs MPI (1 VM évincée = tout le job à relancer). Pièges à éviter :
  • Pas de Spot pour des tâches longues non checkpointées : une éviction = tout reperdu.
  • Pas de 100% Spot pour un job critique en délai : garder un socle dédié.
  • VMSS Uniform (legacy) → préférer Flexible pour le mix Spot/dédié et le cross-AZ. 📐 Réf. WAF — Architecture best practices for Azure Virtual Machines (Cost Optimization) : recommandation WAF d'utiliser Spot pour les workloads batch interruptibles et de mixer dédié/Spot via Flexible orchestration + Spot Placement Score. Lien

DEMO

Demo Portail — Function App (Flex Consumption)

  1. Function App > Create > Hosting plan: Flex Consumption
  2. Onglet Basics :
    • Subscription / Resource Group : rg-functions
    • Function App name : func-orders (FQDN unique)
    • Region : East US
    • Runtime stack : Node 20 (ou Python / .NET / Java)
  3. Onglet Storage : Storage Account stfuncorders (requis)
  4. Onglet Networking : Toggle Enable VNet integration : On → choisir VNet + subnet délégué
  5. Onglet Monitoring : Application Insights : On
  6. Onglet Deployment :
    • Always Ready instances : 0 (ou N pour réduire cold start)
    • Maximum instance count : 100
    • Instance memory : 2048 MB
  7. Review + Create

CLI équivalent (pour IaC) :

az functionapp create -g rg-functions -n func-orders \
  --flexconsumption-location eastus --runtime node --runtime-version 20 \
  --storage-account stfuncorders --instance-memory 2048 --maximum-instance-count 100

ASE v3 (Internal)

  1. App Service Environments > Create
  2. Basics : name + region
  3. Hosting : Virtual IP type: Internal (ILB) ou External
  4. Networking : VNet existant + subnet dédié vide (/24 recommandé)
  5. Create → 2-4h provisioning
  6. Puis : App Service Plans > Create > Pricing: Isolated v2 dans l'ASE
  7. Web App / Function App attachée au plan
  8. Internal ASE → DNS privé à configurer pour résolution