Formation Architecture Microservices avec Spring Cloud et Spring Cloud Kubernetes
5 JoursDescription de la formation Architectures Microservice Spring Cloud Kubernetes
Cette formation est divisée en deux parties; Spring Cloud et Spring Cloud Kubernetes.
Spring Cloud fournit tous les services techniques nécessaires à la mise en place d’une architecture micro-service. Généralement associé à Spring Boot, il permet de rapidement composer des applications à partir de services unitaires et de les déployer sur une architecture de production nécessitant scalabilité et monitoring en temps-réel.
De son côté, la société Pivotal propose depuis plusieurs années l’environnement Spring Cloud dédié à l’élaboration d’architecture microservices. Ce framework se base sur Spring, Spring Boot et des API définissant les services techniques nécessaires à une architecture microservices (discovery, load-balancing, circuit-breaker pattern…).
Les applications développées via ce framework sont naturellement adaptées aux infrastructures de déploiement basées sur les orchestrateurs de conteneurs. Le projet Spring Cloud Kubernetes fournit des implémentations de l’API via des services natifs Kubernetes ainsi que de nombreux ourtils facilitant le déploiement sur ce type de plateforme.
Cette formation permet, au travers de divers ateliers (voir le détails des travaux pratiques), d’implémenter une architecture micro-services composée de micro-services applicatifs et des micro-services techniques directement apportés par SpringCloud. Les aspects sécurité, monitoring et scalabilité de l’architecture sont démontrés. Puis, après un des rappels sur l’environnement Spring Cloud, sa common API et l’infrastructure Kubernetes, elle poursuit avec la mise en place d’un environnement de développement basé sur des distributions minimales de Kubernetes ou des serveurs mockés. Enfin, l’ensemble des starters Spring Cloud Kubernetes et leurs APIs sont présentés.
Objectifs
Concrètement, à l’issue de cette formation Architectures Microservice Spring Cloud Kubernetes, vous serez en mesure de:
- Mettre en oeuvre une configuration centralisée et maitriser le service de discovery
- Connaitre les clients des microservices
- Maitriser le monitoring et la mise en production
- Connaitre la sécurité dans Spring Cloud
- Connaître les bonnes pratiques de développement liées à Spring Cloud Kubernetes
- Comprendre les diférentes approches disponibles pour l’implémentation des services techniques liés aux architectures microservices
À qui s’adresse cette formation ?
Public :
Ce cours s’adresse à des programmeurs, des développeurs et des chefs de projets, ainsi qu’aux équipes de développement envisageant de déployer leurs microservices Spring Cloud sur des infrastructures Kubernetes.
Prérequis :
Pour suivre ce stage, il est nécessaire de connaître le langage Javat et de posséder un certain niveau de connaissance Spring Core.
Contenu du cours Architectures Microservice Spring Cloud Kubernetes
Introduction à Spring Cloud
L’approche DevOps et les architecture micro-services
Découpage d’une application monolithique
Pré-requis sur l’infrastructure
Patterns de composition des services
Identification des services techniques
L’offre SpringBoot/SpringCloud
Configuration centralisée et service de discovery
Configuration centralisée
Service Eureka
Scalabilité, tolérance aux pannes
Travaux Pratiques :
Architecture avec 2 micro-services applicatifs et les services config et eureka
Clients des microservices
Pré-requis pour le client : Répartition de charge et résilience
Client Feign
Répartion de charge avec Ribbon
Disjoncteurs avec Hystrix
Routing et Proxy avec Zuul
Travaux Pratiques :
Ajout d’un micro-srvice « back-end » dans l’architecture. Répartion de charge et résilence. Ajout d’une gateway dans l’architecture
Monitoring et mise en production
Tableaux de bord Hystrix
L’agrégateur Turbine
Centralisation des traces avec ELK
Déploiement sur une infrastructure Docker, alternatives Kubernetes, Docker Swarm
Travaux Pratiques :
Mise en place de turbine et ElasticStack
Création d’un docker-compose, démarrage de l’architecture sur une infrastructure Docker
Sécurité
Alternatives pour l’implémentation de la sécurité
Rappels oAuth2
SpringBoot et oAuth2
Spring Cloud Security
Travaux Pratiques :
Déploiements d’images Docker sur une infrastructure cloud
Rappels sur Spring Cloud Microservices
Architecture microservices et bénéfices attendus
Services techniques nécessaires
Les projets Spring Cloud et l’API common
L’orchestrateur Kubernetes : architecture, types de ressources
Service Kubernetes : DNS, Config Map, Sécurité, Helm, Ingress, Istio, Promotheus
Spring Cloud Kubernetes : objectifs et starter disponibles
Environnement de développement
Profil Kubernetes de l’application Spring Boot
Mock d’un serveur Kubernetes
Kubernetes pour le développement
Intégration avec les outils de build, plugins Maven et Gradle
Atelier
Mise en place de l’environnement de développement
Discovery
DiscoveryClient pour Kubernetes
Gestion des namespaces
Rechergement dynamique
Service natif Kubernetes de découverte
Répartition de charge côté client avec Ribbon
Atelier
Comparaison des différentes approches pour le service de Discovery
Configuration
Utilisation de ConfigMap, gestion des namespaces, des profils
Gestion des secrets
Rechargement dynamique
Atelier
ConfigMap, Secrets, Rechergement, Gestion des profils
Istio
Le profil Istio
L’API istio-client
Atelier
Profil Istio et découverte des règles
Travaux Pratiques
Ce cours propose 75% d’ateliers pratiques pour une meilleure assimilation des connaissances.
Les travaux pratiques s’appuient sur l’IDE Spring Tools Suite. Voici quelques détails des travaux pratiques mis en place durant la formation:
- Architecture avec Eureka et le serveur de configuration.
- Ajout d’un micro-services.
- Utilisation des clients Feign et des capacités Ribon et Hystrix.
- Mise en place de Zuul.
- Monitoring Turbine ELK.
- Déploiement sur une infrastructure Docker.
- Mise en place de la sécurité.