-Identifier les protocoles utilisés dans les microservices
-Interpréter l’apport des microservices dans une architecture répartie
-Développer vos microservices en Java
-Déployer des microservices.
-Qu’est-ce qu’une architecture microservices ?
– Liens entre microservices et SOA
– Différence entre Web Services et microservices
– Les microservices au centre du métier
– Agilité, DevOps et microservices
– La spécialisation des équipes et le gain en productivité
– Isolement et indépendance des services
– Séparation des rôles, évolutivité et modularité
– Adaptation à la montée en charge (scalabilité)
– Impact sur le déploiement
– La base des microservices : HTTP
– Rappels sur le protocole HTTP
– Exploitation de HTTP pour l’accès aux services : REST
– Les différents niveaux d’implémentation de REST
– Codes d’erreurs HTTP et verbes HTTP
– Présentation de la norme Swagger
– Décrire et documenter les endpoints avec Swagger
– Tester un service REST avec SoapUI
– Tester un service avec Postman et son extension Chrome
– 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 SpringBoot.
– Introduction au logiciel Docker
– Les conteneurs dans Docker Lancer les conteneurs
Travaux pratiques
Création d’un conteneur personnalisé avec Docker.
– 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.
– 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.
Référence : WEB037
Type de Stage : Pratique
Durée : 3 jours
Chefs de Projet et développeurs
Bonnes connaissances du langage
Java, connaissances de base de
l’administration Linux.