Ce cours vous montrera comment tirer parti du Cloud AWS pour déployer des applications scalables et résilientes. Vous verrez comment AWS ouvre la voie à la conception d’applications innovantes (persistance polyglotte, serverless…) ainsi que les bonnes pratiques de conception d’une application pour ces environnements.

Description

Durée : 28 heures
Modalités techniques d’évaluation : Évaluation des connaissances par QCM, évaluation des compétences au travers de travaux pratiques et de cas d’études. Contrôle de l’acquisition des connaissances et des compétences pendant la formation par le formateur.
Moyens pédagogiques : Apports théoriques réalisés en classe et complétés par de nombreux travaux pratiques permettent aux participants de disposer d’une expérience concrète. A l’issue des sessions magistrales, réalisation de cas d’études tutorés.

Objectifs pédagogiques

À l’issue de la formation, le participant sera en mesure de :

  • Mettre en place des architectures résilientes
  • Comprendre les principes des applications événementielles avec AWS Lambda
  • Mettre en place une approche polyglotte de la persistance de données avec DynamoDB et ElasticSearch
  • Stocker des fichiers sur Amazon S3 et contrôler leur diffusion avec Amazon Cloudfront
  • Appliquer le zero downtime deployment dans un processus d’intégration et de livraison continue
  • Appréhender le coût total de possession d’un environnement cloud et réduire la dépendance aux technologies propriétaires d’une offre cloud

Travaux pratiques

Déployer une application sur un environnement fonctionnel (S3, Cloudfront, ElasticSearch, DynamoDB, Beanstalk, Lambda, API Gateway, ECS).

Méthodes pédagogiques

Présentation théorique accompagnée de travaux pratiques sur de cas donnant lieu à des discussions et des réflexions collectives.
PROGRAMME DE FORMATION

Introduction

  • Comprendre une offre Cloud : infrastructure, plateforme…
  • Dépendance des applications vis à vis d’une offre Cloud.
  • Bonnes pratiques de conception.
  • Mesure du coût d’opportunité d’utilisation d’une offre Cloud.

Travaux pratiques
Mise en application de RDS, DynamoDB, Cloudsearch, Redshift et de Kinesis.

Les applications

  • EC2 : une infrastructure élastique.
  • Exigence d’applications stateless, conséquences sur les choix de conception.
  • Surcouche Beanstalk.
  • Dockerisation avec ECS Container Service et EC2 Kubernetes Services.
  • Surcouches EMR pour les Jobs Hadoop et Spark.
  • Alternative serverless avec AWS Lambda, couplage avec API Gateway.

Travaux pratiques
Déploiements d’une API Rest sur EC2 avec AWS Beanstalk, déploiement de composants sur AWS Lambda.

Sites statiques et single page application

  • S3 pour héberger un site statique ou une single page application.
  • Problématiques spécifiques des SPA.
  • Diffusion avec Cloudfront.
  • Gestion du cache et invalidations.

Travaux pratiques
Déploiement d’une single page application Angular sur S3 et diffusion sur CloudFront.

Stockage de données

  • Principe de la persistance polyglotte.
  • Principes d’une BDD distribuée.
  • BDD NoSQL d’AWS : DynamoDB, Elasticsearch as a Service…
  • BDD relationnelles avec Amazon RDS.
  • Synchronisation entre BDD via le streaming.

Travaux pratiques
Création d’une base DynamoDB, création d’un cluster Elasticsearch.

Stockage des fichiers

  • Archivage avec Glacier.
  • Stockage de fichiers avec S3.
  • Requétage des fichiers avec Athena.
  • Diffusion de fichiers avec le CDN CloudFront.

Travaux pratiques
Création de buckets S3, couplage avec CloudFront, sécurisation des contenus.

Messages

  • Pattern pub/sub avec SNS.
  • Communication point à point avec SQS.
  • Alternatives Open Source.

Travaux pratiques
Création de topics SNS, couplage avec Lambda.

Services techniques

  • Utilisation de services techniques AWS par une application.
  • Sécurité avec IAM, la chaîne d’authentification.
  • Utilisation du SDK.
  • Isolation du code dépendant d’AWS.

Travaux pratiques
Utilisation d’AWS Elastic Transcoder.

Intégration continue et livraison continue avec la CLI

  • Command line interface (CLI).
  • Chaîne d’authentification.
  • Types de livrables selon l’environnement.
  • Livraison et intégration continue vers Beanstalk, Lambda, S3 et ECS.

Travaux pratiques
Déploiement des composants applicatifs sur leurs environnements respectifs avec la CLI.