Published by

Il y a 6 ans -

Temps de lecture 14 minutes

AWS re:Invent 2016 – Annonces de la 2nde keynote

Après une première journée marathon d’annonces lors de l’événement annuel d’Amazon Web Services animée par Andy Jassy, CEO d’Amazon Web Services, nous voici prêts pour démarrer une seconde journée d’annonces cette fois-ci animée par Wernel Vogels, CTO d’Amazon.com qui arbore un T-Shirt Transformers. Un message à faire passer ? Bon, ok, ce n’est pas très fin peut-être, mais Werner veut nous parler de transformation de l’IT. Pour développer ses nouveaux services Amazon Web Services s’appuie sur les retours faits par ses clients. L’objectif est d’être l’entreprise IT la plus au centre des besoins de ses clients. Pour cela, il donne 4 moyens:

  • Ecouter avec attention les besoins des clients
  • Donner aux clients le choix
  • Travailler depuis les besoins clients
  • Aider les clients à se transformer

Finalement, rien que du bon sens, mais des éléments qui peuvent faire la différence vis-à-vis de la concurrence. Werner Vogels pense qu’AWS peut aider chaque entreprise à être un « transformer » en terme de développement, data et compute *. Le développement est en train de changer et le Développement & le Test sont les éléments clés là où l’agilité vit. Pour transformer le développement, cela commence par un framework bien architecturé. Pour cela, il fait référence au Twelve Factor App. Un framework bien architecturé repose sur 4 piliers:

  • la sécurité,
  • la fiabilité,
  • la performance et l’efficience, ainsi que
  • l’optimisation des coûts.

L’excellence opérationnelle passe par l’automatisation et la préparation avec des outils tels qu’Amazon CloudFormation. Les premières annonces démarrent avec de nouveaux sets d’outils liés au déploiement. Vient tout d’abord AWS OpsWorks for Check Automate qui n’est autre qu’un server Chef complètement managé, puis Amazon EC2 Systems Manager qui est une collection d’outils AWS pour packager les installations, les patcher, gérer la configuration de resources, et l’automatisation des tâches. Ces deux nouveautés sont disponibles dès aujourd’hui.

aws-reinvent

AWS Code Build

Un 3ème outil accompagne les 2 précédents, il s’agit d’AWS CodeBuild. C’est un service de compilation de code source et d’exécution de tests unitaires. Entendons-nous, il s’agit d’une usine de build logiciel. AWS souhaite être présent sur le marché de ce type d’outils car, c’est un « enabler » de changements dans la façon dont on produit et on fait fonctionner du logiciel. Le Continuous Delivery apporte des avantages qui changent les façons de fonctionner en se basant sur le principe de livrer de plus petits changements / incréments, avec moins de risques et à un coût moindre. L’exécution de tests automatisés augmente la fiabilité et la capacité à scaler. L’idée est de livrer moins de fonctionnalités à chaque fois, mais des updates plus fiables avec moins de lignes de code et une sécurité améliorée.

Monitoring

On nous parle maintenant de pratique en rappelant les outils disponibles: CloudWatch Metrics, CloudWatch Events, CloudWatch Logs, ainsi que CloudTrail. Mais pour avoir une meilleure compréhension de ce qui se passe dans l’exécution des services applicatifs, les clients d’AWS peuvent maintenant s’appuyer sur AWS X-Ray qui permet d’analyser et débugger en production des applications de type distribué. Il est par exemple possible de faire un drill down sur la latence des éléments constitutifs de l’applicatif.

 

reinvent-1     reinvent-2

 

Répondre

Réagir aux événements systèmes

On nous a parlé de monitorer, mais comment répondre à des événements en production. Bien entendu, il est possible de positionner des alarmes et de répondre en réaction à une notification d’alarme, mais pourquoi ne pas mettre en relation des événement d’alarme (Real-Time Alarming avec CloudTrail et CloudWatch) à des capacités de réponse automatique et des chemin d’escalade automatisés ?

Pour répondre également, il est essentiel d’avoir une vue sur la santé des services. Wernel Vogels annonce en réponse à ce besoin, un nouveau service appelé: AWS Personal Health Dashboard qui permet d’avoir une vue personnalisée des resources utilisées, et d’y automatiser les réponses aux notifications d’événements systèmes en utilisant des fonctions de type AWS Lambda.

Un peu de sécurité

La sécurité est selon Werner Vogels la première priorité d’AWS, et l’automatisation y joue un rôle important. Parmis les éléments de sécurité classiques sur lesquels nous appuyer, nous retrouvons: CloudHSM, CloudTrail, IAM, Config, ou encore KMS. Toutefois aborder la sécurité par l’automatisation, nous protège également via, par exemple, l’usage de WAF (Web Application Firewall), ou encore en utilisant Amazon Inspector qui permet d’effectuer de façon automatisée des évaluations de sécurité pour améliorer la sécurité.

Un enjeu grandissant dans le domaine de la sécurité est la capacité à se prémunir d’attaques de type DDOS. Elles peuvent s’attaquer à la disponibilité des services sous plusieurs forme: par une volumétrie massive (réseau) submergeant les capacités, par un épuisement des resources, ou encore en s’attaquant à des faiblesses plus spécifiques du design applicatif. Pour répondre à cette menace, AWS propose à ses clients le service AWS Shield disponible par défaut et sans action particulière. Toutefois, il existe une version avancée qui permet de se prémunir d’attaques larges et sophistiquées.

La data, un différentiateur dans la compétition

Depuis plusieurs années maintenant, la maîtrise et l’exploitation de la Data sont devenus des éléments différentiateurs dans la compétition. AWS l’a mis au coeur de sa stratégie en proposant une large gamme d’outils permettant d’adresser tous les domaines classiques de la Data: le data processing, le data warehousing, le reporting, le processing temps réel, ou encore les analyses prédictives. La qualité de la data est en particulier un élément clé.

Amazon Pinpoint

Dans le sujet de la Data et du Mobile, manquait une brique importante, qui était l’apanage de spécialistes du domaine comme Urban Airship: la capacité à réaliser du targeting de notification push pour mobile. Il était jusqu’à présent possible d’envoyer des notifications à des devices, mais il fallait passer par un outil tiers, si nous souhaitions pouvoir cibler des segments d’utilisateurs via des campagnes. Pour cela, il est nécessaire de comprendre les comportements utilisateurs que nous souhaitons engager, avoir un outil qui permette de délivrer les notifications, mais également des outils qui permettent de traquer l’efficacité et les résultats des campagnes lancées. Amazon Pinpoint accompagnés des différents autres outils Data est censé apporter cet élément de réponse.

Architecture Data modernes

Wernel Vogels présente les éléments clés de ce qui fait une architecture Data moderne, cela passe par un nombre de points, tels que:

  • La capacité à ingérer de façon automatisée et sûre de la donnée
  • Préserver la version originale des sources
  • Manager la gouvernance, la sécurité et la privacy des données

Pour gérer la donnée, en particulier l’ingestion, vous pouvez vous appuyer sur différents composants, tels que : S3 Upload, S3 Acceleration, Kinesis, Snowball ou encore DynamoDB Streams. Pour la préservation des données originales, vous pouvez de même vous appuyer sur: S3, EFS, EBS, DynamoDB ou encore RDS. Des outils tels que S3 Storage Management et Glacier vous permettent de mieux gérer le cycle de vie de la donnée tout comme le storage à froid, alors que des outils comme AWS Config, CloudTrail, KMS permettent de manager la gouvernance, la sécurité, et privacy des données.

Amazon Glue

Pour faire le liens entre différents composant, il est nécessaire d’avoir des outils sur lesquels s’appuyer pour ne pas avoir à réinventer la roue en permanence. C’est ce à quoi se propose de répondre AWS Glue, un nouveau service. AWS Glue est ni plus ni moins qu’un ETL managé qui a pour objectif premier de permettre d’alimenter les data stores d’Amazon. AWS Glue est intégré en particulier avec S3, RDS, Redshift, et tout data store compatible JDBC. L’outil permet de scheduler et exécuter des jobs, mais également de construire un catalogue de données, ou encore de générer et éditer des scripts de transformation.

 

reinvent-3 reinvent-4 reinvent-5

Pour se faire une idée de la big picture d’une architecture data moderne selon AWS, voici un schéma de synthèse qui permet d’avoir une vue globale des service orientés données, comment ils interagissent entre eux, et comment les classer :

 

reinvent-6

Avec tous ces outils adaptés à chaque besoin, le but d’AWS est de permettre à ses clients ne plus être dans 80% de préparation de données et 20% d’analytique, mais plutôt l’inverse: utiliser 20% de son temps à la préparation des données et 80% de son temps à leur analyse.

AWS Batch

Partons maintenant pour un one more thing non négligeable sur l’axe de la data: Amazon Web Services en a encore sous la pédale, et présente un dernier service data clé qui risque de faire mouche auprès des clients: AWS Batch.

AWS Batch est un service managé qui a permet de lancer des traitements batch à n’importe quelle échelle. Il n’est plus nécessaire de provisionner de resources pour effectuer des traitements. AWS Batch provisionne lui-même les quantités nécessaires de resources pour exécuter les traitements en fonction des pré-requis qui ont été soumis avec le job. Il n’y a plus besoin d’installer et d’exploiter de logiciel spécifique ni même de cluster. Ainsi, il est possible de se focaliser sur l’analyse des résultats et la résolution de problèmes (cf: 80% d’analyse vs 20% de setup). AWS Batch est capable d’exécuter du travail sur l’ensemble des services et fonctionnalités de de calcul, telles que les instances EC2 et plus spécifiquement les instances Spot, ce qui permettra de tirer partides prix les plus bas.

AWS Batch n’ajoute pas de charges aux services utilisés. On ne paie que pour les resources AWS utilisées pour stocker et exécuter les jobs de batch. Le service est disponible dès aujourd’hui.

Serverless et containers

Le focus de la keynote passe à présent sur le serverless. Werner Vogels fait une entrée en matière en présentant les différents niveaux de compute disponibles au travers de leurs services :

reinvent-7

Containers

Plusieurs nouveautés autour du compute ont déjà été présentées dans la keynote du jour précédent, et il est temps de parler maintenant d’Amazon ECS avant de passer à Lambda dans un second temps.

Werner rappelle que le sujets des containers soulèvent de nombreux challenges:

  • La gestion de containers
  • Les pipelines d’intégration
  • La gestion d’infrastructure
  • L’accès aux resources
  • La sécurité
  • Le scheduling de tâches
  • Le service discovery, ou encore
  • La haute disponibilité

Toutefois Amazon ECS répond à plusieurs problématiques, et en particulier: la gestion de cluster, l’orchestration de container, mais également sur la capacité être intégré et tirer parti fortement des autres building blocks qui constituent le coeur des services autour du compute. Néanmoins, tout n’est pas complètement parfait, et certains sujets restent non adressés comme le service discovery. Gageons qu’AWS aura sûrement de nouvelles réponses à apporter aux challenges précédemment listés.

La première amélioration apportée par AWS à leur service ECS est un nouveau moteur de placement. Ce qu’on peut dire, c’est qu’il était un peu rudimentaire dans sa configuration. Visiblement, il est possible maintenant de s’appuyer sur un plus grand nombre de critères pour placer les containers:

reinvent-8

 

En complément, des d’événements relatifs à l’état des instances seront bientôt disponibles, tout comment des événements associés au tâches. Ils auront pour objects de donner un meilleur contrôles au développeurs. Ces derniers auront d’ailleurs la possibilité de créer des schedulers custom, ou encore d’intégrer des schedulers tiers pour répondre à des besoins spécifiques, en exploitant des schedulers autres que ceux fournis par défaut par AWS. Enfin, il sera possible de développer et tester localement ces schedulers custom.

Pour faciliter le travail des développeurs, AWS met à disposition via GitHub une collection de projets open source pour la gestion et l’orchestration des containers. Cette collection de projets s’appelle Blox. Comme point de départ, deux projets sont immédiatement disponibles:

  • cluster-state-service, d’une part, qui donne la possibilité de consommer des stream d’événements relatifs aux changement des containers et instances Amazon des cluster ECS.
  • daemon-scheduler, d’autre part, qui permet d’exécuter exactement une tâche par hôte sur chaque noeud du cluster. Chose qui n’était pas possible jusqu’à présent sans bidouiller avec les ports allouer pour forcer le déploiement d’une instance de container uniquement sur des machines qui disposent d’un port donné libre.

L’outil ligne de commande ECS CLI est maintenant proposé sous le chapeau du projet Blox, pour donner de la cohérence en proposant toutes les resources relatives à ECS en un point d’accès unique.

Serverless

AWS Lambda représente sûrement l’un des assets majeurs d’AWS en 2016, son intégration avec différents services AWS ne fait que se renforcer avec le temps, comme le résume ce slide:

 

reinvent-9

 

Il faut s’attendre à de nombreuses nouveautés à ce re:Invent en lien avec AWS Lambda. La première annoncée, sans doute majeure, et qui fera plaisir aux fans du monde DotNet, est la capacité nouvelle de coder des Lambda avec C# ! Et bonne nouvelle, cette capacité est disponible dès aujourd’hui. L’intégration avec C# se base sur .NET Core 1.0 release. Elle supporte les fonctions packagées et les DLL, ainsi que NuGet, et fin du fin, il est possible de développer et déployer des Lambda C# depuis Visual Studio.

Comme aime à le rappeler Werner Vogels, il n’y a pas uniquement le bétail, il y a tout le troupeau. Ainsi, le serverless n’est pas représenté uniquement par AWS Lambda, c’est un éco-système complet de services qu’AWS fournit pour le concrétiser:

  • Amazon Api Gateway
  • S3
  • DynamoDB
  • ElastiCache
  • Athena
  • SQS
  • SNS
  • SES
  • Kinesis
  • ElasticSearch
  • X-Ray, ou encore
  • CloudFront.

AWS Lambda doit d’ailleurs également être vu comme un mécanisme d’extension des services existants: C’est le « tissu connectant » des environnements AWS.

 

reinvent-10

 

Lambda est d’ailleurs intégré sur des services que l’on n’attend pas forcement, tels que AWS Greengrass, AWS Snowball Edge, ou encore Alexa Skills Kit.

Plus étonnant encore, AWS lambda@Edge permet d’exécuter des fonctions sur les Edge locations de CloudFront. Concrètement, cela démultiplie les zones de calcul disponibles au-delà des régions classiques.

La véritable nouveauté relative à AWS Lambda, annoncée cette année 2016, sera sûrement toutefois, AWS Step Functions, dont l’objet est de rendre facile la coordination des composants d’applications distribuées et de microservices au travers l’utilisation de workflows visuels. Step Functions fournit une console graphique qui permet d’arranger et visualiser les composants constituant les applications comme une série d’étapes, rendant simple la construction et l’exécution d’applications multi-étapes.

 

reinvent-11

En regardant de plus près, il est possible de voir ce nouveau service comme une machine à états hautement scalable et disponible, permettant la création de workflows de traitements dont l’exécution peut être suivie visuellement, ou comme encore un orchestrateur de fonctions Lambda. Ce service permet concrètement d’imaginer de nouveaux cas d’utilisation de Lambda comme le présente le slide suivant:

 reinvent-12

Mais également de manipuler les Lambda d’une manière qu’il n’était pas possible d’imaginer avant :

reinvent-13

Synthèse des 2 premiers jours

Il est temps de faire la synthèse de ces 2 premiers jours, et il est presque impossible de ne pas se dire qu’on n’a pas oublié de parler de quelque chose tant les nouveautés sont nombreuses. L’indigestion n’est pas loin, mais ce sont autant de nouveautés qui vont nous faciliter la création de services à valeur ajoutée qui représenteraient de véritables challenges à relever si ces nouveaux services n’existaient pas. On peut le dire ainsi: aussitôt présentés, aussitôt indispensables ! AWS semble avoir visé juste et risque de donner quelques cheveux blancs à la concurrence.

Vous retrouverez sur ce slide la synthèse des nouveautés des 2 jours de keynote :

reinvent-14

Bonne digestion à vous ! Si le Cloud vous passionne et AWS fait partie de votre boîte à outil du quotidien, venez échanger avec nous, nous recrutons des passionnées du développement !

* En parlant de « transformers », est-ce que le Snowball Truck se transforme en Optimus Prime ?

Published by

Publié par Alexis Kinsella

Alexis Kinsella est un consultant Xebia passionné aussi bien par les problématiques frontend (web et mobile) que backend. Après de longues années passées sur les technologies Java, Alexis a fait d'iOS, Node.js et du Cloud ( AWS Certified Solutions Architect - Associate ) ses nouveaux terrains d'expérimentation lui permettant d'explorer les architectures web et mobiles ainsi que leurs problématiques associées.

Commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Sapient, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.