Les 6 secrets d'Amazon pour innover rapidement sans complexifier
C'est la keynote attendue chaque année par les passionnés de tech sur re:Invent. Chaque année, Werner Vogels directeur de la technologie chez Amazon (CTO) dresse les tendances à venir, les innovations majeures et les meilleures pratiques pour exploiter pleinement le potentiel des solutions du cloud et de l'IA. L'édition 2024 de re:Invent n'y coupe pas. Accueilli en rockstar dans un show à l'américaine, le Dr Werner Vogels a partagé 6 conseils clés à destination des entreprises pour innover rapidement en évitant de complexifier à outrance les systèmes et process. Des grands principes fondés sur les 30 ans d'expérience d'Amazon.
1. Faire de l'évolution une exigence dès le départ
Le premier conseil de Werner Vogels est catégorique : il faut anticiper l'évolution des systèmes dès leur conception. "Les systèmes deviennent obsolètes s'ils n'évoluent pas", rappelle le CTO d'Amazon qui définit l'évolutivité comme "la capacité d'un système à s'adapter facilement aux changements futurs".
Pour Amazon, l'évolutivité implique des changements structurels radicaux sur le long terme. Le géant du e-commerce en a fait l'expérience avec son service de stockage S3 : lancé il y a 18 ans avec seulement 6 microservices, il en compte aujourd'hui plus de 300. Une transformation en profondeur réalisée sans impact sur le service aux clients. Pour garantir cette évolutivité, Werner Vogels recommande de construire des composants indépendants avec des interfaces bien définies.
2. Décomposer les projets en petits éléments
Le deuxième conseil de Werner Vogels s'inspire directement de l'expérience d'Amazon avec CloudWatch, son service de surveillance et d'observabilité. Face à la complexité grandissante de ce service devenu un méga-service, Amazon a dû le décomposer en composants plus petits et indépendants. "Lorsqu'un microservice prend plus de deux heures à être compris, ou qu'une équipe ne peut plus garder son fonctionnement en tête, c'est qu'il devient trop complexe", souligne le CTO. La solution ? Décomposer les services en unités cohérentes, faiblement couplées et dotées d'API bien définies.
3. Limiter la taille des équipes
Le troisième conseil s'articule autour de la célèbre "règle des deux pizzas" d'Amazon. Selon Werner Vogels, les équipes doivent rester suffisamment petites pour être nourries avec seulement deux pizzas, soit environ 6 à 8 personnes. L'approche est devenue un principe fondamental chez Amazon. Elle permet d'assurer une meilleure agilité, une communication plus fluide et une prise de décision plus rapide. "Les équipes plus petites sont plus autonomes et peuvent évoluer plus rapidement", explique Vogels. AWS applique ce principe en organisant ses services en "cellules" indépendantes, chacune gérée par une équipe réduite.
4. Utiliser des unités indépendantes
Pour son quatrième conseil, Werner Vogels prône une architecture cellulaire pour maîtriser la complexité des systèmes à grande échelle. Le principe est simple : plutôt que d'avoir une architecture centralisée où toute perturbation affecte l'ensemble des utilisateurs. AWS recommande de diviser le système en "cellules" isolées et indépendantes. L'approche est utilisée chez AWS par de nombreux services comme CloudFront ou Route 53. Elle permet de contenir l'impact des incidents et d'optimiser les performances. La taille idéale d'une cellule, précise Vogels, doit être suffisamment grande pour bénéficier des économies d'échelle, mais assez petite pour limiter l'impact des incidents.
5. Concevoir des systèmes prévisibles
Pour Werner Vogels, la prévisibilité est essentielle pour maîtriser la complexité. AWS privilégie les processus constants plutôt que réactifs : ses load balancers consultent périodiquement des fichiers de configuration au lieu de répondre à des événements aléatoires. Cette approche évite les pics de charge inattendus et simplifie la maintenance. Une stratégie simple mais efficace qui illustre parfaitement le principe du CTO : "L'incertitude est difficile à gérer, nous devons la réduire dès la conception".
6. Automatiser, automatiser, automatiser !
L'automatisation doit être la norme, pas l'exception, insiste Werner Vogels. Le CTO d'Amazon prône l'automatisation de tout ce qui ne nécessite pas de jugement humain. Au sein d'AWS, le conseil s'applique à grande échelle : de la construction de nouvelles régions cloud à la détection des menaces de sécurité, où des réseaux neuronaux analysent automatiquement des milliers de domaines suspects chaque jour. "La bonne question n'est pas 'que devrions-nous automatiser ?' mais plutôt 'que ne devrions-nous pas automatiser ?'", souligne Vogels. Cette philosophie s'étend désormais au support client, où AWS expérimente des workflows basés sur des agents IA pour résoudre automatiquement les tickets les plus simples.