Modèles d'architecture d'application sur AWS
Déployer des applications sur AWS
Dunieski Otano
Amazon Web Services Solutions Architect
Faites connaissance avec votre formateur
Pourquoi la bonne architecture compte
L'architecture est un ensemble de
compromis
, pas une unique bonne réponse
Trois questions guident chaque choix :
À quel point les composants sont-ils
couplés
?
Où réside l'
état
?
La communication est-elle
synchrone ou asynchrone
?
Adaptez le modèle à la
charge de travail
, pas à la mode
La cascade du vendredi soir
Une API de paiement lente fige tout le passage en caisse
Tous les services attendaient dessus de façon synchrone
La solution est architecturale, pas une API plus rapide
Pourquoi les choix d'architecture conditionnent le déploiement
Le modèle choisi détermine comment l'app
monte en charge et tombe en panne
Un fort couplage casse sous la charge
Le bon modèle rend le déploiement prévisible
Même code, comportements très différents en production
Les modèles d'architecture essentiels
Monolithique
: une unité déployable, simple au départ
Microservices
: services indépendants, déployés séparément
Orienté événements
: composants réagissent à des événements, pas à des appels directs
Le
fanout
est un sous-modèle : un événement touche de nombreux consommateurs
Avec état vs sans état
Sans état (stateless)
: aucune donnée client conservée entre requêtes
Toute instance peut traiter n'importe quelle requête
Avec état (stateful)
: l'instance se souvient des interactions
Le « sans état » permet de
monter en charge horizontalement
Externalisez l'état partagé vers
DynamoDB
ou
ElastiCache
Fort vs faible couplage
Fort couplage
: l'appelant attend la réponse de l'appelé
Un service lent bloque toute la chaîne
Faible couplage
: une file
Amazon SQS
entre les services
Le producteur continue même si le consommateur est à l'arrêt
Synchrone vs asynchrone
Synchrone
: l'appelant bloque et attend le résultat
À utiliser quand la réponse est requise immédiatement
Asynchrone
: l'appelant délègue le travail et revient
À utiliser pour des tâches lentes, en rafales, ou non urgentes
Modèles de résilience pour les appels tiers
Reprise avec backoff exponentiel
: attendre plus longtemps entre tentatives
Disjoncteur
: arrêter d'appeler un service en échec un moment
File de lettres mortes
: garer les messages qui échouent encore
Combinez-les ; des reprises aveugles aggravent les pannes
Passons à la pratique !
Déployer des applications sur AWS
Preparing Video For Download...