AWS re:Invent 2017, du Serverless au Monitoring AWS X-Ray

D2SI_Blog_Image_AWS_reInvent2017_Serverless-8.jpg

AWS re:Invent 2017 fut un événement hors-normes, et la team D2SI était présente en force ! J'ai eu la chance de faire partie de l'équipe présente sur place, en tant que membre de la cellule Serverless/Cloud Native. Mon objectif au sein de cette cellule étant de l'animer, d'évangéliser autour des technologies de cet éco-système, et d'aider mes collègues à monter en compétence, j'avais pour mission lors du re:Invent 2017 de capter les prochaines tendances du Serverless et de rencontrer la communauté. Et voici le compte-rendu de cette aventure extraordinaire !

Ma préparation à AWS re:Invent 2017

Le 19 Octobre 23h00, les inscriptions -ou les vannes, vu le nombre potentiel de personnes qui allait s’inscrire aux conférences- se sont ouvertes. Comme j’avais fait mes devoirs, j’avais déjà placé la plupart des conférences qui m’intéressaient dans mes favoris. Et là, c’est le drame. Les erreurs d’inscriptions s’enchaînent, mon planning ne se remplit pas, et pendant ce temps-là, le reste du monde s’inscrit, réduisant mes chances d’avoir des places intéressantes. Durant une semaine, le problème a persisté. Puis, un matin, j’ai pu m’inscrire aux conférences qui me plaisaient : c'était la délivrance !

J’ai donc réservé des conférences sur les thèmes du Serverless, du gaming, du développement… au final, voici ma liste :

  • GAM402 - Using Amazon Machine Learning and Sentiment Analysis to Identify Game Player Reaction and Emotion
  • GAM308 - Serverless Matchmaking in AWS: Matching up the Options
  • DVC301 - Evolution of Serverless Architectures through the Lens of Community
  • RC401 - Serverless Architectural Patterns and Best Practices
  • DEV204 - Monitoring Modern Applications: Introduction to AWS X-Ray
  • DEV334 - Performing Chaos at Netflix Scale
  • SRV401 - Become a Serverless Black Belt: Optimizing Your Serverless Applications

En plus de cela, j’avais également prévu de rencontrer Peter Sbarski, avec qui D2SI organise la ServerlessConf Paris 2018, mais aussi des clients, des entreprises, des partenaires, des ingénieurs de chez HashiCorp avec qui je travaille sur le provider AWS Terraform. Un planning bien chargé !

Las Vegas, nous voilà !

L’atterrissage à l’aéroport de Las Vegas le samedi 25 novembre nous met tout de suite dans l’ambiance, avec ses machines à sous au détour des tapis à bagages. Arrivés au centre ville, entre le Venetian, le Mirage, le MGM et l’Aria, la démesure et l’extravagance de Las Vegas nous plonge dans une ambiance irréelle: écrans géants, musique, débauche de lumières multicolores, personnes déguisées dans les rues...

Le dimanche soir, nous récupérons nos pass et SWAG re:Invent : vestes estampillées, documents… un petit package de bienvenue pour nous accompagner tout au long de ces 5 jours ! Le mardi matin, nous participions avec deux autres collègues au 4K 4Charity Fun Run, une course pour soutenir Girls Who Code and the American Heart Association. Cette expérience fut incroyable au vu du nombre de participants : 2000 runners ont pris part à cette course de 4km.

L’aventure du re:Invent 2017

AWS re:Invent est une conférence technologique mais également une expérience sociologique. J’ai beaucoup apprécié la mixité des ingénieurs sur place, de voir que les femmes sont de plus en plus présentes dans l’IT et que leur travail est reconnu. Le format du re:Invent laisse également la place à de nombreux moments festifs qui permettent de rencontrer des ingénieurs du monde entier : la soirée partenaires au Hakkasan Nightclub, une boite de nuit faisant partie de l'hôtel MGM Grand, le Pub Crawl (comprenez Barathon) où nous avons retrouvé certains de nos clients, et enfin la re:Play party : un évènement aussi ahurissant que Las Vegas est démesurée. Structures gonflables, dodgeball, DJs, pizzas, boissons à volonté… une soirée incroyable. Avec en guest star : DJ Snake, qui a su nous faire danser jusqu’à la fin de la soirée !

Découvertes au re:Invent 2017

Le monde de l’IT est un monde vaste, composé de nombreux domaines de connaissances. Il était déjà extrêmement compliqué de suivre tous les domaines en parallèle il y a quelques années, c’est désormais certain : on peut seulement accepter de n’avoir que des connaissances de bases dans plusieurs domaines, et se spécialiser dans d’autres.

J’ai étudié le développement pendant mes années d'étude puis mes premières expériences professionnelles, et depuis deux ans je me focalise sur le monde de l’Ops, afin de lier les deux mondes, et ainsi avoir cette mentalité DevOps. Je suis quelqu’un qui travaille énormément, et je profite de mon temps libre pour découvrir et expérimenter. J’ai donc rejoins le re:Invent avide de nouvelles connaissances ! J’y ai découvert le Chaos Engineering, ce qu’était le Machine Learning, l’IoT appliquée aux entreprises, et j’ai été surpris, souvent ravi, et parfois effrayé de ce que je pouvais voir. Par exemple, une machine développée par IoT Systems, Inc. qui permet le test de 3500 firmwares par heure, ce qui remplacerait deux chaines d’employés en usine, réduisant les coûts de 80%. Une fantastique avancée pour les entreprises, mais des perspectives bien plus sombres pour le marché de l’emploi.

A contrario, le Chaos Engineering est un domaine de l’observabilité surprenant de par sa nature : casser des parties d’une infrastructure, de manières diverses, et voir comment le système réagit, et s’il peut remonter correctement, dans un temps convenable.

A noter d’un point de vue pratique, les talks sont répartis entre l’Aria, le Venetian, le MGM Grand. Or, le temps de marche entre deux hôtels peut atteindre jusqu’à 45min ! Il est donc parfois nécessaire de ré-agencer les plannings, afin de ne pas perdre trop de temps, et donc éviter de rater des conférences (sans parler des files d’attente). Conseil pour le prochain re:Invent : bien s’organiser en fonction des hôtels, et prévoir de bonnes chaussures de marche !

Le Serverless au re:Invent… et autres sujets

Les différentes conférences auxquelles j’ai assisté confirment l’omniprésence du paradigme Serverless, sa démocratisation, ses atouts, comme par exemple “Evolution of Serverless Architectures through the Lens of Community” (DVC301) par Peter Sbarski, Sam Kroonenburg et Hernan Garcia, ou bien “Serverless Architectural Patterns and Best Practices” (RC401) par Drew Dennis et Maitreya Ranganath.

https://www.youtube.com/watch?v=Xi_WrinvTnM

J’ai pu me rendre compte que les designs patterns mis en place chez D2SI étaient ceux utilisés par le reste du monde (applications Web, autorisation des APIs, Data Lakes, interactions aux Edge Points, recherches dans des catalogues de données, Batch Processing…), que les pratiques que nous appliquons sont bonnes, et je suis donc plus confiant sur le fait d’évangéliser tout cela.

Cependant, “Become a Serverless Black Belt: Optimizing Your Serverless Applications” (SRV401) par Ajay Nair et Peter Sbarski, confirme le fait que beaucoup de travail et d’optimisations sont encore nécessaires afin de correctement tracer le cheminement des Lambdas, de les monitorer convenablement, de s’assurer de la bonne performance de celles-ci.

Concernant la partie Gaming, j’ai pu réaliser, au travers du Chalk Talk “Using Amazon Machine Learning and Sentiment Analysis to Identify Game Player Reaction and Emotion” (GAM402) par Dhruv Thukral et Konstantin Wilms, que la R&D participe de plus en plus à l’amélioration de l’expérience de jeu. Dans cette session, le Machine Learning était utilisé pour analyser les testeurs, leurs émotions, leurs visages au cours de périodes de jeu données. Cela permet de détecter si l’univers dans lequel le futur joueur sera placé est cohérent : il serait anormal de sourire dans un jeu d’horreur, ou de pleurer sur un jeu pour enfant. Cela apporte une nouvelle vérité, autre que la franchise d’un testeur. En effet, un testeur peut tout-fait-dire “j’ai apprécié le jeu”, tandis que son visage et l’analyse de son gameplay prouvent tout le contraire !

Monitoring Modern Applications: Introduction to AWS X-Ray” (DEV204) m’a permis de découvrir ce service de tracing et d’analyse de requête fourni par Amazon, permettant de débugger des applications. Tout bon développeur connait le `fmt.Printf(...)`, le `console.log(...)`, le `print(...)`, le… bon vous avez l’idée ! Mais quand il s’agit de comprendre le système dans sa globalité, c’est tout de suite plus compliqué. Venant du monde PHP, je connaissais Blackfire, un service de performance testing PHP permettant la découverte des goulots d’étranglements, d’identification des latences, de consommation mémoire / CPU, réseau, etc, et ce en visualisant un graph de services et les timelines... X-Ray m’a semblé très similaire !

https://www.youtube.com/watch?v=kFsIZsaqpzE

Son intégration très bien fournie avec Lambda en un clic, ou sa facilité d’intégration dans un code donné m’ont vraiment impressionné. Lors de la live démo, il a été possible en quelques minutes de tracer du code, voir qu’un souci provenait de la base de données, de le corriger et de passer aux éléments suivants. Il y a encore quelques années, cela aurait pris des heures, voire des jours !

Une des mes conférences préférées, si ce n’est ma préférée de ce re:Invent, reste celle sur “Performing Chaos at Netflix Scale” (DEV334), par Nora Jones. Le Chaos Engineering est un sujet que je ne connaissais que trop peu, ou de trop loin. L’ingénierie du Chaos est la “discipline d'expérimentation sur un système distribué afin de renforcer confiance dans la capacité du système à résister aux conditions turbulentes de production” (source).

Autrement dit, cela consiste à trouver les faiblesses d’un système par l’utilisation d’expérimentations contrôlées. Cette session expliquait la nécessité d’une solution d’ingénierie du Chaos, les éléments de socialisation et d'évangélisation nécessaires qui ne font souvent pas ou trop peu partie du processus de mise en place du Chaos, mais aussi sur le besoin de susciter l'intérêt des développeurs sur les problèmes remontés. Nora expliquait qu’il y a plusieurs différents "niveaux" de chaos qu’une entreprise peut mettre en place avant de déclencher le chaos total. Tout d’abord, définir ce qu’est le rythme normal d’une application. Ensuite, mettre en place deux systèmes : un contrôlé et un autre expérimental. Introduire des éléments perturbateurs dans le système expérimental, et y associer une partie du trafic utilisateur. Cela se termine en la comparaison des résultats du système expérimental et celui de contrôle et soit la prise de conscience, soit une prise de confiance !

Une phrase qui est restée dans mon esprit, et qui s’apparente beaucoup au testing en développement est : “Chaos All the things and run all the time”, ce qui donnerait en Français “Expérimenter le Chaos partout et le faire tout le temps”. Netflix dispose de plusieurs outils afin de tester vos infrastructures, votre résilience, vos services et la bonne cohésion de votre système, et a ainsi exposé au cours de cette conférence une manière intéressante de prendre confiance et de renforcer son architecture. Au final, un must-see !

https://www.youtube.com/watch?v=LaKGx0dAUlo

Capitaliser sur les enseignements du re:Invent

Durant toute cette semaine, nous avons beaucoup échangé avec les différentes personnes de D2SI présentes sur place, mais également via Slack avec nos collègues de France. Nous souhaitons vraiment partager au maximum ce que nous avons appris avec les membres de nos équipes, afin de démocratiser les usages, les bonnes pratiques, pour que cela profite à tous. L’heure est donc maintenant aux articles de blog, aux retours d’expérience, aux partages de connaissances internes… et à l’expérimentation ! De mon côté, je vais contribuer des nouveautés à Terraform, afin de faire en sorte que tous puissent utiliser ces nouvelles ressources dès que possible.