Definir ma roadmap avec le AWS Well-Architect framework

5 Pilliers well-architected framework

Lors des révisions en vue de ma certification AWS Solutions Architect, j'ai découvert un outil/framework proposé par AWS qui s'appelle: "AWS Well-Architected"

Je vais bientôt commencer dans une nouvelle entreprise et l'une de mes missions va être de définir (avec l'équipe) une nouvelle architecture puis de la déployer.

Afin de réussir cet objectif sur la durée, j'aimerais m'appuyer sur le framework AWS Well Architected et l'outil associé: "Well-Architected Tool"

Le point positif est qu'il ne s'applique pas nécessairement à AWS, ce qui est important car la société en question n'est actuellement pas sur AWS.

WellArchitected-Tool Capture d'écran montrant qu'il est possible de travailler sur des ressources qui ne sont pas sur AWS

Les 5 pilliers du framework

  • Excellence opérationnelle
  • Sécurité
  • Fiabilité
  • Efficacité des performances
  • Optimisation des coûts

Excellence opérationnelle

Qui se découpe en cinq principes:

  • Limiter les erreurs humaines en utilisant le principe d'"Infrastructure as Code" qui permet de définir toute opérations en code.
  • Faire des changements fréquents, petits et réversibles
  • Ré-affiner les procédures régulièrement au fur et à mesure que l'environnement évolue.
  • Anticiper les pannes : Réaliser des analyses port-mortem après incident pour identifier les sources et les éliminer. Tester des scénarios de défaillances afin de valider la compréhension des équipes sur l'impact
  • Tirer des leçons de toutes les défaillances. Partagez ce qui a été appris avec les équipes et toute l'organisation

source: Operational Excellence Pillar - Design Principles

Sécurité

Qui se découpe en plusieurs principes

  • Mettez en œuvre une base d'identité solide: mettez en œuvre le principe du moindre privilège (least privilege) et appliquez la séparation des tâches avec l'autorisation appropriée pour chaque interaction avec vos ressources AWS. Centralisez la gestion des identités et essayez d'éliminer la dépendance aux informations d'identification statiques à long terme.
  • Activez la traçabilité: surveillez, alertez et auditez les actions et les modifications de votre environnement en temps réel. Intégrez la collecte de journaux et de métriques aux systèmes pour enquêter automatiquement et prendre des mesures.
  • Appliquez la sécurité à tous les niveaux: appliquez une approche de défense en profondeur avec plusieurs contrôles de sécurité.
  • Automatisez les meilleures pratiques de sécurité: les mécanismes de sécurité logiciels automatisés améliorent votre capacité à évoluer en toute sécurité plus rapidement et à moindre coût. Créez des architectures sécurisées, y compris la mise en œuvre de contrôles définis et gérés sous forme de code dans des modèles contrôlés par version.
  • Protégez les données en transit et au repos: classez vos données en niveaux de sensibilité et utilisez des mécanismes tels que le chiffrement, la tokenisation et le contrôle d'accès, le cas échéant.
  • Éloignez les gens des données: utilisez des mécanismes et des outils pour réduire ou éliminer le besoin d'accès direct ou de traitement manuel des données. Cela réduit le risque de mauvaise gestion ou de modification et d'erreur humaine lors de la manipulation de données sensibles.
  • Préparez-vous aux événements de sécurité: préparez-vous à un incident en ayant une politique et des processus de gestion des incidents et d'enquête qui correspondent aux exigences de votre organisation. Exécutez des simulations de réponse aux incidents et utilisez des outils automatisés pour augmenter votre vitesse de détection, d'investigation et de récupération.

source: Security Pillar - Design Principles

Fiabilité

Qui se découpe en plusieurs principes

  • Récupérer automatiquement après une panne: en surveillant une charge de travail pour les indicateurs de performance clés (KPI), vous pouvez déclencher l'automatisation lorsqu'un seuil est dépassé. Ces indicateurs de performance clés doivent être une mesure de la valeur commerciale et non des aspects techniques de l'exploitation du service. Cela permet une notification et un suivi automatiques des pannes, ainsi que des processus de récupération automatisés qui contournent ou réparent la panne. Avec une automatisation plus sophistiquée, il est possible d'anticiper et de remédier aux pannes avant qu'elles ne surviennent.
  • Tester les procédures de récupération: dans un environnement sur site, des tests sont souvent effectués pour prouver que la charge de travail fonctionne dans un scénario particulier. Les tests ne sont généralement pas utilisés pour valider les stratégies de récupération. Dans le cloud, vous pouvez tester la façon dont votre charge de travail échoue et vous pouvez valider vos procédures de récupération. Vous pouvez utiliser l'automatisation pour simuler différentes échecs ou pour recréer des scénarios qui ont conduit à des échecs auparavant. Cette approche expose les chemins de défaillance que vous pouvez tester et corriger avant qu'un scénario de défaillance réel ne se produise, réduisant ainsi les risques.
  • Évoluez horizontalement pour augmenter la disponibilité de la charge de travail globale: remplacez une grande ressource par plusieurs petites ressources pour réduire l'impact d'une seule panne sur la charge de travail globale. Répartissez les demandes sur plusieurs ressources plus petites pour vous assurer qu'elles ne partagent pas un point de défaillance commun.
  • Arrêtez de deviner la capacité: une cause courante d'échec dans les charges de travail sur site est la saturation des ressources, lorsque les demandes imposées à une charge de travail dépassent la capacité de cette charge de travail (c'est souvent l'objectif des attaques par déni de service). Dans le cloud, vous pouvez surveiller la demande et l'utilisation de la charge de travail, et automatiser l'ajout ou la suppression de ressources pour maintenir le niveau optimal pour satisfaire la demande sans sur ou sous-provisionnement. Il y a encore des limites, mais certains quotas peuvent être contrôlés et d'autres peuvent être gérés (voir Gérer les quotas et les contraintes de service).
  • Gérer les changements dans l'automatisation: les modifications de votre infrastructure doivent être effectuées à l'aide de l'automatisation. Les modifications à gérer incluent les modifications apportées à l'automatisation, qui peuvent ensuite être suivies et examinées.

source: Reliability Pillar - Design Principles

Efficacité des performances

Qui se découpe en plusieurs principes

  • Démocratisez les technologies avancées: simplifiez la mise en œuvre de technologies avancées pour votre équipe en déléguant des tâches complexes à votre fournisseur de cloud. Plutôt que de demander à votre équipe informatique de se renseigner sur l'hébergement et la gestion d'une nouvelle technologie, envisagez de la consommer en tant que service. Par exemple, les bases de données NoSQL, le transcodage multimédia et l'apprentissage automatique sont toutes des technologies qui nécessitent une expertise spécialisée. Dans le cloud, ces technologies deviennent des services que votre équipe peut utiliser, permettant à votre équipe de se concentrer sur le développement de produits plutôt que sur l'approvisionnement et la gestion des ressources.
  • Passez à la mondialisation en quelques minutes: le déploiement de votre charge de travail dans plusieurs régions AWS à travers le monde vous permet de fournir une latence plus faible et une meilleure expérience à vos clients à un coût minimal.
  • Utilisez des architectures sans serveur: les architectures sans serveur vous évitent d'exécuter et de maintenir des serveurs physiques pour les activités de calcul traditionnelles. Par exemple, les services de stockage sans serveur peuvent agir comme des sites Web statiques (supprimant le besoin de serveurs Web) et les services d'événements peuvent héberger du code. Cela supprime la charge opérationnelle liée à la gestion des serveurs physiques et peut réduire les coûts de transaction car les services gérés fonctionnent à l'échelle du cloud.
  • Expérimentez plus souvent: avec des ressources virtuelles et automatisables, vous pouvez rapidement effectuer des tests comparatifs en utilisant différents types d'instances, de stockage ou de configurations.
  • Pensez à la "mechanical sympathy": Avoir en tête le fonctionnement détaillé d'un outil/logiciel pour en tirer le meilleur. Utilisez l'approche technologique qui correspond le mieux à vos objectifs.

source: Performance Efficiency Pillar - Design Principles

Optimisation des coûts

Qui se découpe en plusieurs principes

  • Mettre en œuvre la gestion financière du cloud: pour réussir financièrement et accélérer la réalisation de la valeur commerciale dans le cloud, vous devez investir dans Cloud Financial Management. Votre organisation doit consacrer le temps et les ressources nécessaires au renforcement des capacités dans ce nouveau domaine de la technologie et de la gestion de l'utilisation. À l'instar de votre capacité de sécurité ou d'exploitation, vous devez renforcer vos capacités grâce au renforcement des connaissances, aux programmes, aux ressources et aux processus pour vous aider à devenir une organisation rentable.
  • Adoptez un modèle de consommation: payez uniquement pour les ressources informatiques que vous consommez et augmentez ou diminuez l'utilisation en fonction des besoins de l'entreprise. Par exemple, les environnements de développement et de test ne sont généralement utilisés que huit heures par jour pendant la semaine de travail. Vous pouvez arrêter ces ressources lorsqu'elles ne sont pas utilisées pour une économie potentielle de 75% (40 heures contre 168 heures).
  • Mesurer l'efficacité globale: mesurez le rendement commercial de la charge de travail et les coûts associés pour un service. Utilisez ces données pour comprendre les gains que vous faites en augmentant la production, en augmentant les fonctionnalités et en réduisant les coûts.
  • Arrêtez de dépenser de l'argent pour des tâches lourdes indifférenciées: AWS s'occupe du gros du travail des centres de données comme le rack, l'empilage et l'alimentation des serveurs. Il supprime également le fardeau opérationnel de la gestion des systèmes d'exploitation et des applications avec des services gérés. Cela vous permet de vous concentrer sur vos clients et vos projets commerciaux plutôt que sur l'infrastructure informatique.
  • Analyser et attribuer les dépenses: le cloud facilite l'identification précise du coût et de l'utilisation des charges de travail, ce qui permet ensuite une attribution transparente des coûts informatiques aux flux de revenus et aux propriétaires de charges de travail individuels. Cela permet de mesurer le retour sur investissement (ROI) et donne aux propriétaires de charges de travail la possibilité d'optimiser leurs ressources et de réduire les coûts.

source: Cost Optimization Pillar - Design Principles

Comment cela se présente

C'est assez simple, rendez-vous dans la console sur le service Well Architected Tool et crééez une nouvelle "Charge de travail"

Ensuite cela ressemble à QCM:

Debut de l'examen Apercu de l'examen

Une fois deux évaluations terminées (consécutives), je vous ferais un retour d'expérience sur l'outil :)


Chargement en cours

Ajouter un commentaire

Photo Thibault Cordier

Thibault Cordier

Freelance DevOps & Cloud