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 une suite de
compromis
, pas une bonne réponse unique
Trois questions guident chaque choix :
Les composants sont-ils
fortement couplés
?
Où se trouve l'
état
?
La communication est-elle
synchrone ou asynchrone
?
Alignez le modèle sur la
charge de travail
, pas sur la mode
La cascade du vendredi soir
Une API de paiement lente fige tout le passage à la caisse
Tous les services attendaient dessus de façon synchrone
La solution est architecturale, pas une API plus rapide
Pourquoi l'architecture oriente le déploiement
Le modèle choisi détermine comment l'appli
monte en charge et échoue
Un couplage fort casse sous la charge
Le bon modèle rend le déploiement prévisible
Même code, comportement en prod très différent
Les principaux modèles d'architecture
Monolithique
: une unité déployable, simple au départ
Microservices
: services indépendants, déployés séparément
Axée sur les événements
: composants réagissent à des événements, pas à des appels directs
Le
diffuseur
est un sous-modèle événementiel : un événement atteint de nombreux consommateurs
Avec état vs sans état
Sans état
: aucune donnée cliente conservée entre les requêtes
N'importe quelle instance peut traiter n'importe quelle requête
Avec état
: l'instance se souvient des interactions précédentes
Le « sans état » permet de
monter en charge horizontalement
Externalisez l'état partagé vers
DynamoDB
ou
ElastiCache
Couplage fort vs lâche
Couplage fort
: l'appelant attend la réponse de l'appelé
Un service lent bloque toute la chaîne
Couplage lâche
: une file
Amazon SQS
entre les services
Le producteur continue même si le consommateur est en panne
Synchrone vs asynchrone
Synchrone
: l'appelant se 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 du travail lent, en rafales ou non urgent
Modèles de résilience pour appels tiers
Reprise avec repli exponentiel
: attendez plus longtemps entre les tentatives
Disjoncteur
: cessez d'appeler un service en échec pendant un temps
File des lettres mortes
: mettez de côté les messages qui échouent toujours
Combinez-les ; des reprises généralisées aggravent les pannes
Passons à la pratique !
Déployer des applications sur AWS
Preparing Video For Download...