Les microservices structurent une application comme un ensemble de services faiblement couplés. Elles nécessitent une grande maturité dans les pratiques de développement, de déploiement et de maintien en conditions opérationnelles. Vous mettrez en œuvre, les technologies essentielles pour bâtir une telle architecture.

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 :

  • Définir une architecture basée sur les microservices
  • Développer et consommer des services REST
  • Mettre en place des microservices à l’aide d’un framework Java
  • Déployer des microservices dans des conteneurs Docker
  • Administrer et surveiller des microservices

Travaux pratiques

PROGRAMME DE FORMATION

Introduction

  • Regard sur l’évolution logicielle et organisationnelle.
  • Avantages et inconvénients des applications monolithiques.
  • Méthodologies Agiles et pratiques DevOps.
  • Processus d’intégration continue et de déploiement continu.

Les architectures microservices

  • Définition d’une architecture microservices.
  • Caractéristiques des microservices.
  • L’émergence des architectures microservices.
  • Les principaux acteurs.
  • Quelques exemples des géants du Web.

Communications dans une architecture microservices

  • Choix du style de collaboration : REST request/reply versus Publish-Subscribe Messaging.
  • Principes de base et rappels HTTP.
  • Mettre en œuvre des services REST avec Java.
  • Le principe HATEOAS.
  • Documenter un service REST avec Swagger.
  • Tester un service REST.

Travaux pratiques
Définition d’une API Rest avec Swagger et implémentation des services avec Jersey. Tester un service REST avec SoapUI.

Développer un microservice en Java

  • Présentation de frameworks Java « tout en un ».
  • Comparaison entre SpringBoot et Dropwizard.
  • Développer une application avec Dropwizard ou SpringBoot.
  • Packager une application production-ready.

Travaux pratiques
Développer une application avec Dropwizard ou SpringBoot.

Exécuter un micrcoservice à l’aide de conteneurs

  • Présentation de Docker.
  • Fonctionnement des conteneurs avec Docker.
  • Concevoir des images personnalisées.
  • Configurer et démarrer des conteneurs.

Travaux pratiques
Création d’un conteneur personnalisé avec Docker.

Déploiement d’une architecture microservices

  • Techniques d’optimisation de déploiement.
  • Mettre en œuvre une application multi-conteneurs avec Docker Compose.
  • Solutions d’infrastructure pour les microservices (Kubernetes, Mesos, Swarm).
  • Solutions Cloud (Cloud Foundry, Heroku).

Travaux pratiques
Mise en place d’une architecture multi-conteneurs avec Docker Compose.

Administration et Monitoring

  • Centralisation des logs.
  • Le monitoring de microservices.
  • Métriques et Health Check.

Travaux pratiques
Mise en place de métriques d’une application pour les visualiser.