cloud-solution-architect

npx skills add https://github.com/microsoft/skills --skill cloud-solution-architect

Architecte de Solution Cloud

Aperçu

Concevez des systèmes cloud production, bien architecturés, en suivant les meilleures pratiques de l'Azure Architecture Center. Cette compétence fournit :

  • 10 principes de conception pour les applications Azure
  • 6 styles d'architecture avec guidance de sélection
  • 44 modèles de conception cloud mappés aux piliers WAF
  • Frameworks de choix technologique pour le calcul, le stockage, les données, la messagerie
  • Antipatterns de performance à éviter
  • Workflow de révision d'architecture pour la validation systématique de conception

Dix Principes de Conception pour les Applications Azure

# Principe Tactiques Clés
1 Concevoir pour l'auto-guérison Retry avec backoff, circuit breaker, isolation bulkhead, monitoring d'endpoint health, dégradation gracieuse
2 Rendre tout redondant Éliminer les points de défaillance uniques, utiliser les zones de disponibilité, déployer multi-région, répliquer les données
3 Minimiser la coordination Découpler les services, utiliser la messagerie async, accepter la cohérence éventuelle, utiliser les domain events
4 Concevoir pour l'échelle horizontale Scaling horizontal, règles d'autoscaling, services stateless, éviter la session stickiness, partitionner les workloads
5 Partitionner autour des limites Partitionnement des données (shard/hash/range), respecter les limites de calcul et réseau, utiliser CDNs pour contenu statique
6 Concevoir pour l'opération Structured logging, distributed tracing, métriques & dashboards, runbook automation, infrastructure as code
7 Utiliser des services managés Préférer PaaS à IaaS, réduire la charge opérationnelle, exploiter la HA/DR/scaling intégrée
8 Utiliser un service d'identité Microsoft Entra ID, managed identity, RBAC, éviter le stockage de credentials, principes zero-trust
9 Concevoir pour l'évolution Loose coupling, APIs versionnées, backward compatibility, messagerie async pour l'intégration, feature flags
10 Construire selon les besoins métier Définir SLAs/SLOs, établir cibles RTO/RPO, domain-driven design, cost modeling, composite SLAs

Styles d'Architecture

Style Description Quand l'utiliser Services Clés
N-tier Couches horizontales (présentation, métier, données) Apps d'entreprise traditionnelles, lift-and-shift App Service, SQL Database, VNets
Web-Queue-Worker Frontend web → message queue → backend worker Apps de complexité modérée avec tâches longues App Service, Service Bus, Functions
Microservices Services autonomes petits, bounded contexts, déploiement indépendant Domaines complexes, scaling d'équipes indépendantes AKS, Container Apps, API Management
Event-driven Modèle pub/sub, producteurs/consommateurs d'événements Traitement en temps réel, IoT, systèmes réactifs Event Hubs, Event Grid, Functions
Big data Pipeline batch + stream processing Analytics, ML pipelines, données à grande échelle Synapse, Data Factory, Databricks
Big compute HPC, traitement parallèle Simulations, modélisation, rendu, génomique Batch, CycleCloud, HPC VMs

Critères de Sélection

  • Complexité du domaine → Microservices (élevée), N-tier (basse-moyenne)
  • Autonomie d'équipe → Microservices (équipes indépendantes), N-tier (équipe unique)
  • Volume de données → Big data (TB+), autres (GB)
  • Exigences de latence → Event-driven (temps réel), Web-Queue-Worker (tolérante)

Modèles de Conception Cloud

44 modèles organisés par préoccupation principale. Mapping pilier WAF : R=Reliability, S=Security, CO=Cost Optimization, OE=Operational Excellence, PE=Performance Efficiency.

Messagerie & Communication

Modèle Résumé Piliers
Asynchronous Request-Reply Découpler requête/réponse avec polling ou callbacks R, PE
Claim Check Scinder grands messages ; stocker payload séparément, passer référence R, PE
Choreography Services coordonnés via événements sans orchestrateur central R, OE
Competing Consumers Plusieurs consommateurs traitent messages de queue partagée concurremment R, PE
Messaging Bridge Connecter systèmes de messagerie incompatibles R, OE
Pipes and Filters Décomposer traitement complexe en étapes filter réutilisables R, OE
Priority Queue Prioriser requêtes pour traiter travail haute priorité en premier R, PE
Publisher/Subscriber Découpler senders de receivers via topics/subscriptions R, PE
Queue-Based Load Leveling Buffer requêtes avec queue pour lisser charges intermittentes R, PE
Sequential Convoy Traiter messages liés dans l'ordre tout permettant groupes parallèles R, PE

Fiabilité & Résilience

Modèle Résumé Piliers
Bulkhead Isoler ressources par workload pour prévenir défaillance en cascade R
Circuit Breaker Arrêter appel service défaillant ; échouer rapidement pour protéger ressources R
Compensating Transaction Annuler étapes commit antérieures quand étape ultérieure échoue R
Health Endpoint Monitoring Exposer health checks pour load balancers et orchestrateurs R, OE
Leader Election Coordonner instances distribuées en élisant un leader R
Retry Gérer fautes transitoires en retry avec exponential backoff R
Saga Gérer cohérence données cross-microservices avec transactions compensatrices R
Scheduler Agent Supervisor Coordonner actions distribuées avec retry et gestion défaillances R

Gestion des Données

Modèle Résumé Piliers
Cache-Aside Charger données on-demand en cache depuis data store PE
CQRS Séparer modèles lecture et écriture pour scaling indépendant PE, R
Event Sourcing Stocker état comme séquence append-only domain events R, OE
Index Table Créer indexes sur champs fréquemment interrogés dans data stores PE
Materialized View Pré-calculer vues sur données pour requêtes efficaces PE
Sharding Distribuer données cross-partitions pour scale et performance PE, R
Static Content Hosting Servir contenu statique directement depuis cloud storage/CDN PE, CO
Valet Key Accorder clients accès direct limité aux ressources storage S, PE

Design & Structure

Modèle Résumé Piliers
Ambassador Décharger cross-cutting concerns vers proxy sidecar helper OE
Anti-Corruption Layer Traduire entre modèles nouveau et legacy système OE, R
Backends for Frontends Créer backends séparés par type frontend (mobile, web, etc.) OE, PE
Compute Resource Consolidation Combiner multiples workloads en instances compute moins nombreuses CO
External Configuration Store Externaliser configuration depuis packages déploiement OE
Sidecar Déployer composants helper aux côtés du service principal OE
Strangler Fig Migrer systèmes legacy incrementalement en remplaçant pièces OE, R

Sécurité & Accès

Modèle Résumé Piliers
Federated Identity Déléguer authentification à fournisseur identité externe S
Gatekeeper Protéger services utilisant broker dédié validant requêtes S
Quarantine Isoler et valider assets externes avant autoriser utilisation S
Rate Limiting Contrôler taux consommation ressources par consommateurs R, S
Throttling Contrôler consommation ressources pour sustain SLAs sous charge R, PE

Déploiement & Scaling

Modèle Résumé Piliers
Deployment Stamps Déployer copies multiples indépendantes composants application R, PE
Edge Workload Configuration Configurer workloads différemment cross edge devices divers OE
Gateway Aggregation Agréger appels multiples backend en requête client unique PE
Gateway Offloading Décharger fonctionnalité partagée (SSL, auth) vers gateway OE, S
Gateway Routing Router requêtes vers multiples backends via endpoint unique OE
Geode Déployer backends multiples régions pour serving active-active R, PE

Voir Design Patterns Reference pour guidance implémentation détaillée.


Choix Technologiques

Framework de Décision

Pour chaque domaine technologie, évaluer : exigences → contraintes → tradeoffs → sélectionner.

Domaine Options Clés Critères Sélection
Compute App Service, Functions, Container Apps, AKS, VMs, Batch Modèle hosting, scaling, coût, compétences équipe
Storage Blob Storage, Data Lake, Files, Disks, Managed Lustre Patterns accès, throughput, tier coût
Data stores SQL Database, Cosmos DB, PostgreSQL, Redis, Table Storage Modèle cohérence, patterns requête, scale
Messaging Service Bus, Event Hubs, Event Grid, Queue Storage Ordering, throughput, pub/sub vs queue
Networking Front Door, Application Gateway, Load Balancer, Traffic Manager Global vs régional, L4 vs L7, WAF
AI services Azure OpenAI, AI Search, AI Foundry, Document Intelligence Besoins modèles, data grounding, orchestration
Containers Container Apps, AKS, Container Instances Contrôle opérationnel vs simplicité

Voir Technology Choices Reference pour arbres décision détaillés.


Meilleures Pratiques

Pratique Guidance Clé
API design Conventions RESTful, URIs resource-oriented, HATEOAS, versioning via URL path ou header
API implementation Opérations async, pagination, PUT/DELETE idempotents, content negotiation, caching ETag
Autoscaling Scale sur métriques (CPU, queue depth, custom), cool-down periods, predictive scaling, scale-in protection
Background jobs Utiliser queues ou scheduled triggers, traitement idempotent, poison message handling, graceful shutdown
Caching Pattern cache-aside, policies TTL, stratégies cache invalidation, cache distribué pour multi-instance
CDN Offloading assets statiques, cache-busting avec URLs versionnées, geo-distribution, HTTPS enforcement
Data partitioning Horizontal (sharding), vertical, functional partitioning ; sélection partition key pour distribution uniforme
Partitioning strategies Hash-based, range-based, directory-based ; approche rebalancing, cross-partition query avoidance
Host name preservation Préserver original host header via proxies/gateways pour cookies, redirects, auth flows
Message encoding Schema evolution (Avro/Protobuf), backward/forward compatibility, schema registry
Monitoring & diagnostics Structured logging, distributed tracing (W3C Trace Context), métriques, alerts, dashboards
Transient fault handling Retry avec exponential backoff + jitter, circuit breaker, idempotency keys, timeout budgets

Voir Best Practices Reference pour détails implémentation.


Antipatterns de Performance

Éviter ces patterns courants dégradant performance sous charge :

Antipattern Problème Solution
Busy Database Déléguer trop traitement à base de données Déplacer logique vers tier application, utiliser caching
Busy Front End Travail resource-intensive sur threads requête frontend Décharger vers workers background/queues
Chatty I/O Nombreuses petites requêtes I/O au lieu de moins grandes Batch requêtes, utiliser bulk APIs, buffer writes
Extraneous Fetching Récupérer plus données que nécessaire Projeter uniquement champs requis, paginer, filter server-side
Improper Instantiation Recréer objets coûteux par requête Utiliser singletons, connection pooling, HttpClientFactory
Monolithic Persistence Single data store pour tous types données Polyglot persistence — bon store pour chaque workload
No Caching Récupérer répétitivement données inchangées Pattern cache-aside, CDN, output caching, Redis
Noisy Neighbor Un tenant consommant toutes ressources partagées Isolation bulkhead, quotas per-tenant, throttling
Retry Storm Retries agressifs submergant service en récupération Exponential backoff + jitter, circuit breaker, retry budgets
Synchronous I/O Bloquer threads sur opérations I/O Async/await, non-blocking I/O, reactive streams

Conception Mission-Critique

Pour workloads ciblant SLO 99,99%+, adresser ces domaines conception :

Domaine Conception Considérations Clés
Platform application Multi-région active-active, availability zones, Container Apps ou AKS avec zone redundancy
Application design Services stateless, opérations idempotentes, graceful degradation, isolation bulkhead
Networking Azure Front Door (global LB), DDoS Protection, private endpoints, connectivité redondante
Data platform Multi-région Cosmos DB, SQL zone-redundant, replication async, conflict resolution
Deployment & testing Blue-green deployments, canary releases, chaos engineering, automated rollback
Health modeling Composite health scores, dependency health tracking, automated remediation, SLI dashboards
Security Zero-trust, managed identity partout, key rotation, WAF policies, threat modeling
Operational procedures Automated runbooks, incident response playbooks, game days, postmortems

Voir Mission-Critical Reference pour guidance détaillée.


Framework Bien-Architecturé (WAF) Piliers

Chaque décision architecture doit être évaluée contre tous cinq piliers :

Pilier Focus Questions Clés
Reliability Résilience, disponibilité, disaster recovery Quel est le RTO/RPO ? Comment gère-t-il défaillances ? Y a-t-il redondance ?
Security Threat protection, identité, data protection Identité managée ? Données chiffrées ? Y a-t-il contrôles réseau ?
Cost Optimization Cost management, efficacité, right-sizing Compute right-sized ? Y a-t-il reserved instances ? Y a-t-il gaspillage ?
Operational Excellence Monitoring, déploiement, automation Déploiement automatisé ? Y a-t-il observabilité ? Y a-t-il runbooks ?
Performance Efficiency Scaling, load testing, performance targets Peut-il scaler horizontalement ? Y a-t-il baselines performance ? Caching utilisé ?

Matrice Tradeoff WAF

Optimiser pour... Peut impacter...
Reliability (redondance) Cost (plus de ressources)
Security (isolation) Performance (latence ajoutée)
Cost (consolidation) Reliability (shared failure domains)
Performance (caching) Cost (cache infrastructure), Reliability (données obsolètes)

Workflow Révision Architecture

En révisant ou concevant un système, suivre cette approche structurée :

Étape 1 : Identifier Exigences

Fonctionnelles : Que doit faire le système ?
Non-fonctionnelles :
  - Cible disponibilité (ex : 99,9%, 99,99%)
  - Exigences latence (p50, p95, p99)
  - Throughput (requêtes/sec, messages/sec)
  - Data residency et compliance
  - Cibles récupération (RTO, RPO)
  - Contraintes coût

Étape 2 : Sélectionner Style Architecture

Matcher exigences avec style architecture utilisant table critères sélection ci-dessus.

Étape 3 : Choisir Stack Technologique

Utiliser framework décision choix technologiques. Préférer services managés (PaaS) à IaaS.

Étape 4 : Appliquer Modèles Conception

Sélectionner modèles pertinents des 44 modèles conception cloud basés préoccupations identifiées.

Étape 5 : Adresser Préoccupations Cross-Cutting

  • Identity & access — Microsoft Entra ID, managed identity, RBAC
  • Monitoring — Application Insights, Azure Monitor, Log Analytics
  • Security — Network segmentation, encryption at rest/in transit, Key Vault
  • CI/CD — GitHub Actions, Azure DevOps Pipelines, infrastructure as code

Étape 6 : Valider Contre Piliers WAF

Réviser chaque pilier systématiquement. Documenter tradeoffs explicitement.

Étape 7 : Documenter Décisions

Utiliser Architecture Decision Records (ADRs) :

# ADR-NNN: [Titre Décision]

## Status: [Proposed | Accepted | Deprecated]

## Context
[Quel est l'enjeu que nous adressons ?]

## Decision
[Qu'avons-nous décidé et pourquoi ?]

## Consequences
[Quels sont les impacts positifs et négatifs ?]

Références


Source

Contenu issu de l'Azure Architecture Center — Guidance officielle Microsoft pour architecture solution cloud sur Azure. Couvre principes conception, styles architecture, modèles conception cloud, choix technologiques, meilleures pratiques, antipatterns performance, conception mission-critique, et Well-Architected Framework.

Skills similaires