Blog | WeScale

AWS Re:Invent, la feuille de route d'Amazon pour 2023

Rédigé par Tanguy COMBE | 07/12/2022

Fin novembre à Las Vegas se tenait la grande conférence annuelle d’Amazon Web Services, WeScale y était et nous allons vous la raconter ! En quelques chiffres plus de 60 000 personnes, 2750 talks, 6 sites de conférences.

Dans un premier temps nous parlerons des principaux thèmes de ce Re:Invent, puis des annonces majeures ainsi que les talks qui nous ont marqué.

Les Performance d'AWS

Ce Re:Invent 2022 est placé sous le signe de la performance, le maître-mot est : 

“Good enough is not good enough” - Peter Desantis

En effet, AWS a une forte avance de la recherche dans le domaine de la performance du compute ainsi que du networking, comment faire plus avec moins, ce qui nous mène au point suivant.

Sustainability : l'impact du Cloud

Une partie importante des sujets de ce Re:Invent tourne autour de l’impact du cloud sur notre écosystème. On y a vu beaucoup d’initiatives sur la gestion de l’eau des datacenters, la performance des CPU et du network pour consommer moins d’énergie. Des investissements dans la bio-diversité et l’analyse de données induisent ces initiatives. On a vu par exemple la détection de déforestation illégale par traitement d’images satellites.

AWS a pour objectif une neutralité vis-à-vis des énergies carbonées pour 2025 et une positivité à l’eau consommée et au traitement des eaux pour réutilisation à l’horizon 2030.

Les partenariats d'AWS

Les partenariats d’AWS ont toujours eu une part importante de leur stratégie de croissance . On se rend compte aujourd’hui qu’AWS intègre de plus en plus de services pour les usages précis de ses partenaires, partagés à tous pour notre plus grand intérêt.

Here they come, le top des nouvelles annonces d’AWS ! https://aws.amazon.com/blogs/aws/top-announcements-of-aws-reinvent-2022/

Performance - Nitro v5

Nouvelle version de puces Nitro, cette nouvelle version offre des performances sur le papier bien plus importantes, avec deux fois plus de transistors, deux fois plus de puissance de calcul et 50% de vitesse mémoire en plus. Ce processeur permet d’utiliser des paquets plus gros et en plus grande quantité par seconde, le tout pour une latence supérieure de 30% et une performance par watt 40% plus importante.

Performance - AWS Graviton3 generation

Toujours plus de performance pour des coûts moins importants, cela permet de dépasser les limites actuelles, notamment sur les catégories d’instances liées au Machine Learning et à l'entraînement de modèles.

Performance - EBS on SDR

Nouvelle génération de connectivité pour les volumes EBS grâce au protocole SDR (Scalable Reliable Diagram, plus rapide que le TCP) développé pour tirer parti des interfaces réseau EFA (Elastic Fabrik Adapter).

Performance - ENA Express

Pour augmenter encore la performance des interfaces réseau sans être obligé d’adapter ses applications pour utiliser les EFA.

Performance - Lambda SnapStart

Permet de baisser le cold start des fonctions AWS Lambda en capturant l’initialisation des fonctions AWS Lambda en snapshot (tout ce qui est déclaré en-dehors du handler de la fonction). Environ 90% de gain sur les cold start constatés sur des fonctions AWS Lambda Java11 embarquant Spring.

Limitations pour le moment :

  • Uniquement sur AWS Coretto 11 (Java11)
  • Changement du SDK pour éviter de sauvegarder les secrets que l’on va chercher dans l’initialisation dans un snapshot.
  • Attention aux connexions aux DB, il faut être vigilant si l’on déclare une connexion dans l’initialisation de sa fonction AWS Lambda.

Serverless - AWS OpenSearch Serverless

Tout est dans le titre, une nouveauté intéressante si l’on veut s’abstraire de la couche serveur de ses clusters OpenSearch.

Data - AWS Zero-ETL Integration

Solution managée d’intégration de données provenant d’une base de données Aurora dans Redshift.

Data - AWS Redshift Spark Integration

Plus besoin désormais de sortir de la donnée, de faire du Kafka ou de l’EMR, vous pouvez directement faire du Spark sur un cluster Redshift.

Data - AWS DataZone

Gouvernance ! Cette solution managée d’intégration de Redshift, Athena, Quicksight permet d’avoir une centralisation de l’urbanisme et du stewarding de données.

Data - AWS QuickSight Q

Solution managée de projection de metrics dans QuickSight à base de Machine Learning.

Data - AWS Omics

Solution de stockage dédiée à la donnée génétique.

Data - AWS Athena pour Apache Spark

Permettant d’explorer les workloads Spark avec AWS Athena.

Data - DocumentDB Elastic Clusters

Solution managée permettant de ne plus se soucier du scaling ou du stockage des bases de données orientées document.

Data - Geo SageMaker

Support de données géographiques pour SageMaker embarquant des modèles prêts à l’emploi.

Data - Amazon Redshift multi AZ

Maximisation de la disponibilité de vos clusters Redshift.

Data - AWS Glue Data Quality

Permet de s’assurer de la qualité des données avec AWS Glue.

Data - Centralized Access Control for Amazon Redshift

Intégration à Lake Formation, cette nouvelle fonctionnalité permet de gérer les accès à la donnée.

Data - Amazon Redshift Auto Copy

Solution managée pour mettre à disposition dans Redshift des données déposées sur un S3 de manière intégrée et sans action supplémentaire.

Data - AWS StepFunction Distributed Map

L’idée de ce service est de proposer out of the box une solution pour effectuer du MapReduce en serverless, grâce à l’utilisation de fonction AWS Lambda.

Security - GuardDuty for RDS

Permet de détecter une faille de sécurité ou d’un comportement malveillant sur vos bases de données, uniquement sur Aurora pour le moment.

Security - AWS Security Lake

Suite complète d’outils permettant d’exploiter des données de sécurité au format OCSF, provenant d’AWS ou d’ailleurs.

Security - Container Runtime threat detection pour GuardDuty

Permet grâce à GuardDuty de se prémunir des opérations malveillantes dans son cluster EKS.

Simulation - AWS SimSpace Weaver

Service managé permettant de simuler des environnements distribués en s’appuyant sur des moteurs intégrés, Unity ou Unreal Engine.

Simulation - AWS SupplyChain

Solution managée de gestion logistique, embarquant des connecteurs externes comme SAP, s’appuyant aussi sur AWS Connect, délivrant des dashboards et des indicateurs.

Networking - AWS VPC Lattice

Solution de networking service mesh pensée pour le networking cross accounts, cross VPCs, permet d’adresser plusieurs sujets comme la réconciliation des réseaux, l’authentification des services entre eux, la facilitation des rollouts entre les services, etc…

Development - AWS CodeCatalyst

Un nouveau service managé s’appuyant sur la suite complète de gestion de code et de version d’AWS; Cloud9, AWS CodePipeline, AWS CodeBuild, AWS CodeCommit, AWS CodeDeploy. Permettant d’aller toujours plus loin dans l’intégration du travail du développeur au sein de la palteforme AWS.

Les Conférences AWS Re:Invent 2022

Évidemment, avec un événement d’une telle ampleur, le nombre de conférences données par AWS mais aussi les différents partenaires présents sur site, il est impossible de tout retransmettre. Plus de 2000 conférences en 5 jours, des salles immenses pleines à craquer, des files d’attente interminables qui ne permettent pas de faire toutes les conférences souhaitées.

Nous avons eu une semaine bien chargée ! Voici les conférences qui nous ont le plus marqué.

Application integration patterns for micro-services

Breakout d’une heure exposant les différents patterns de communication des micro-services entre eux, cas d’usage classique dont la réponse n’est pas si triviale, ou en tous cas, pas unique.

Il faut garder à l’esprit que tout choix d’architecture implique des compromis, le choix de passer par des API REST pour communiquer entre les micro-services est souvent le choix le plus simple mais pas toujours le plus pertinent.

Il existe beaucoup de patterns d’intégration à base de messages, ayant des avantages bien plus importants. 

Prenons par exemple le “Scatter-Gather”; pattern permettant dans un premier temps de diriger chaque message d’un topic vers plusieurs processeurs qui feront chacun une action sur la donnée, pour ensuite agréger les résultats dans une queue et un consommateur unique, le but étant de découpler au maximum chaque opération.

S’il faut garder une citation en tête : “Friends don’t let friends rely on synchronous integration”.

Practical experience with a serverless- first strategy - Capital One

Encore un Breakout.ette fois ci on commence à discuter d’échelle avec CapitalOne, qui nous parle de son expérience de “serverless-only”. Une bonne explication du fonctionnement des 3 (provisioned, reserved, maximum) Concurrency mode ?d’AWS Lambda, mais aussi comment fonctionne la mise à jour d’une application Lambda quand l’on a 1000 unités de Provisionned Concurrency par fonction ! Capital One a aussi eu la chance de tester AWS Lambda SnapStrat bien en avance et de nous faire un retour sur son utilisation.

Pour résumer, les pratiques à éviter :

  • Ne pas configurer au maximum les fonctions lambda ; la plupart du temps cela résulte en une surconsommation de mémoire non nécessaire et plutôt onéreuse
  • La Reserved Concurrency c’est bien différent de la Provisionned Concurrency, il faut connaître les deux est savoir quand les utiliser
  • Ne pas sur-allouer de Provisioned Concurrency hors des pics de trafic
  • Ne pas mettre de Reserved Concurrency sur chaque fonction, ça coûte trop cher !
  • Proscrire les appels synchrones d’une Lambda à une autre
  • Ne pas configurer les fonctions pour lire les messages provenant de SQS ou Kinesis à 1 message / fonction
  • Ne pas faire de temporisation dans les fonctions Lambda, (le sleep(10), c’est interdit !)
  • Java: Spring Boot dans Lambda sujet réglé en grande partie par AWS Lambda SnapStart

Et les pratiques à privilégier :

  • Mettre en place des politiques de rétention de log, Cloudwatch, c’est horriblement cher et, par défaut, garde les données indéfiniment
  • Optimisez votre utilisation de mémoire, https://github.com/alexcasalboni/aws-lambda-power-tuning
  • Privilégiez l’ARM au x86 si c’est possible
  • Optimisez le cold/warm start, faites en sorte de déclarer un maximum de choses dans l’initialisation
  • Estimez les coûts d’une application serverless
  • Java : appliquer les préférences de tuning de la JVM
  • Minimisez vos paquets de déploiement et dépendances
  • Faites des revues fréquentes de vos logs, métriques et performances.

How Innovators are driving more sustainable manufacturing - Northvolt

Breakout again ! Northvolt, modèle de gigafactory de fabrication et de recyclage de batteries pour automobile électrique vient nous montrer comment avec les solutions de simulation d’AWS, ils on pu modéliser leur gigafactory. 

Le but est de gérer les ressources et l'énergie de manière plus efficiente grâce au monitoring des infrastructures physiques et aux capteurs d’une gigafactory.

AWS IoT TwinMaker permet de fabriquer ce que l’on appelle un Digital Twin, une sorte de représentation numérique d’un ensemble physique. Une fois modélisé et chaque capteur renseigné, on est capable de suivre en temps réel, toutes les données qui remontent de l’environnement physique vers le Digital Twin.

Northvolt utilise cette technologie pour surveiller et piloter sa gigafactory et s’aventure à mettre à l’échelle : appliquer ce modèle à l’échelle de dizaines de gigafactories.

Multi-region design patterns and best practices

Faire du design multi-région découle souvent d’un besoin bien spécifique, que ce soit pour maintenir une très haute disponibilité ou pour réduire au maximum la latence d’une application en la répliquant autour du monde. De toutes manières, il est préférable de prendre du recul sur le besoin et de mettre en place le bon pattern d’architecture pour éviter la surfacturation induite.

Dans ce talk d’une heure, plusieurs patterns nous sont proposés, mais surtout une matrice de choix, quel est le pattern à utiliser et  ses adhérences à identifier

Dans un premier temps, il nous faut comprendre la donnée. Quelles sont les opérations intensives, comment la répliquer entre les régions, le choix du synchrone ou asynchrone etc. 

Ensuite les adhérences externes, avec le SI propriétaire de votre contexte, avec d’autres third parties, entre les applications de différentes régions.

Pour terminer, plusieurs patterns sont possibles, actif/passif, actif/actif et leurs déclinaisons en fonction des besoins identifiés pour trouver la solution qui vous convienne !

En takeaway voici quelques idées notables :

  • Ne partez pas vers le multi-région pour des questions de résilience.
  • Le multi-région n’est pas une décision technologique, c’est une décision orientée business
  • Ne négligez pas les dépendances qu’elles soient internes ou externes.
  • Utilisez les régions pour ce qu’elles sont : des domaines d’isolation des erreurs
  • Appuyez vous sur l’observabilité, le bouton rouge de bascule d’une région à l’autre doit être pressé au bon moment
  • Le multi-région c’est complexe, choisissez le bon pattern pour votre besoin

AWS S3 Retrospective, Storing hidden ideas

Un des services qui est devenu un pilier d'AWS aujourd'hui : S3. Avec Andrew Pohl, Gayla Beasley d'Amazon Web Services (AWS) et Kaushik L. de Stripe qui nous proposent un retour d’expérience sur l'usage optimal de S3, en particulier sur les différents types de classes de stockages disponibles pour différent type de données. Avec un focus sur l'usage de la classe Intelligent-Tiering qui permet avec une mise en place simple des économies en basculant automatiquement les objets sur des classes d'archives. 

À noter, S3 compte maintenant 10 ans d'existence.

Petit take away sur cette cession : 

  • Le modèle de facturation de S3 fait qu'il n’est pas intéressant de faire de l'archivage sur des petits objets (<128ko) on va préférer faire des archives (eg zip) avant de passer en archive. 
  • Les performances du service S3 sur la sortie d'archive des données sont en nette hausse depuis la mise à jour de ce service. AWS annonce maintenant plus d'un PB sortie des classes d'archivage S3 quotidiennement.

AWS Graviton Adoption by Honeycomb.io using Amazon EC2 and AWS Lambda

REX de la part de Pierre Tessier de Honeycomb.io sur migration vers Graviton.

La motivation était la maîtrise des coûts. Les impacts de la migration sont toutefois allés plus loin, avec consommation de ressources moindres et une augmentation de performances des Lambdas. Côté Compute, on observe une baisse sensible des coûts mais pour une plus grande efficience énergétique. L'applicatif développé en GO n'a pas nécessité d'adaptations particulières. A l'heure actuelle presque une quinzaine de services proposent du Graviton. Si les impacts ne sont pas forcément évident à maîtriser côté Compute, foncez-y pour vos migrations de bases de données.

Conclusion

On se rend compte qu’encore une fois l’innovation chez AWS est à la pointe, dans tous les domaines et à tous les niveaux. La trajectoire empruntée tend à basculer vers une approche “réponse à un besoin” plutôt que l’habituelle "boîte à outils”. Quand on regarde les nouvelles annonces, AWS tente de répondre de plus en plus aux problématiques de niches et à fournir des solutions de bout en bout à leurs partenaires. Cela se voit au travers de SupplyChain, SimSpace, SecurityLake et Lattice, mais sans renoncer à favoriser l’amélioration continue de leurs services et à l’amélioration de la performance de ces derniers.

Si l’on peut vous laisser un dernier conseil, ne loupez pas la soirée Re:Play un moment incroyable de jeux et de rencontres !