Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Étape 2 : Conception et mise en œuvre
Cette section explique comment transformer vos objectifs de résilience en réalité. Vous avez défini ce qui compte le plus pour votre entreprise, et il est maintenant temps de le développer. Comment renforcer la résilience sans ralentir l'innovation ?
Considérez les services AWS gérés comme un raccourci vers la résilience. Au lieu de perdre de précieuses heures d'ingénierie à entretenir l'infrastructure, utilisez des services qui s'occupent de la redondance à votre place. Prenons l'exemple d'Amazon Simple Storage Service (Amazon S3). Il stocke automatiquement plusieurs copies de vos données dans un Région AWS souci de durabilité. Il ne nécessite pas de code supplémentaire ni de droits de téléavertisseur tard le soir.
Qu'en est-il des principaux composants de votre application ? Des choix intelligents peuvent accroître l'impact de votre équipe. Pensez à une base de données qui constitue l'épine dorsale de votre service. Au lieu de créer votre propre système de réplication, pensez à utiliser Amazon Aurora, qui gère automatiquement le basculement. Ces fonctionnalités peuvent coûter plus cher, mais elles permettent à votre équipe de se concentrer sur la résolution des problèmes commerciaux plutôt que sur la maintenance de l'infrastructure. Ce coût peut être compensé par une diffusion plus rapide des fonctionnalités et par des pertes de revenus évitées en cas de panne.
Parfois, les startups ont besoin de créer des solutions personnalisées. C'est la nature des startups innovantes. Lorsque vous le faites, restez simple mais intelligent. Répartissez votre application sur plusieurs zones de disponibilité à l'aide des groupes Elastic Load Balancing et Amazon EC2 Auto Scaling. Définissez la capacité minimale du groupe Auto Scaling pour gérer votre trafic de base même en cas de défaillance d'une zone de disponibilité. Cela garantit la résilience face aux défaillances localisées sans modèles architecturaux complexes. À mesure que votre start-up se développe et que les clients exigent une plus grande résilience, vous pouvez adopter des approches plus sophistiquées.
Nous vous recommandons de séparer vos environnements de production et de développement Comptes AWS. Il est tentant de les mélanger lorsque vous vous déplacez rapidement, mais cette limite constitue votre filet de sécurité. Cela empêche qu'une expérience bien intentionnée ne mette fin à votre service de production. Considérez-le comme une assurance pour votre culture de développement qui consiste à « agir vite et à innover », c'est-à-dire à innover dans le développement, à maintenir la stabilité de la production.
Si votre application dépend de services tiers, planifiez leurs défaillances. Lorsque votre processeur de paiement rencontre des problèmes, votre système peut-il les gérer correctement ? Construisez des disjoncteurs simples et des options de secours. Vous pouvez mettre ces transactions en file d'attente au lieu d'afficher des messages d'erreur. Vos clients apprécieront que vous ayez fait en sorte que les choses fonctionnent, même si ce n'est pas parfaitement le cas.
Documentez au fur et à mesure que vous créez, mais restez pratique. Concentrez-vous sur l'enregistrement des raisons qui sous-tendent les décisions clés et créez des plans de rétablissement simples. Il est important de les avoir à portée de main en cas d'incident.
Vous ne bâtissez pas pour une résilience parfaite ; vous bâtissez pour une résilience appropriée. Chaque heure consacrée à l'ingénierie excessive de la résilience est une heure non consacrée aux fonctionnalités demandées par les clients. Utilisez les services AWS gérés comme base, ajoutez une résilience ciblée là où c'est le plus important et créez des moyens clairs pour renforcer la résilience au fur et à mesure que votre entreprise se développe.
Le chapitre suivant explique comment valider ces choix de conception sans épuiser les ressources d'ingénierie. Pour les startups, les tests doivent être une solution raisonnable et un investissement intelligent dans la résilience de votre application.