About This Course
Contact

About This Course

Votre organisation cherche-t-elle à diviser de grandes applications indivisibles en solutions basées sur des microservices ? Dans ce camp d’entraînement complet de 5 jours, les développeurs, les architectes de solutions et les chefs d’équipe technique apprendront à utiliser Spring Boot, Linux Containers et Docker pour atteindre vos objectifs de déploiement, d’automatisation et de mise à l’échelle rapide des microservices. Une combinaison de concepts théoriques et de laboratoires pratiques, ce Bootcamp de développement de microservices couvre les fondamentaux DevOps, Git Flow, les applications à douze facteurs, le développement de microservices, et bien plus encore. Le cours est conçu comme une solution pratique afin que les étudiants puissent appliquer leurs connaissances au travail immédiatement.

Objectifs

  • Introduction aux pratiques DevOps et à GitFlow
  • Décomposer les monolithes en microservices
  • Construire avec Gradle
  • Créer des services RESTful avec Spring Boot
  • Utilisation des bases de données et de JPA dans Spring Boot
  • Modèles de sécurité et meilleures pratiques dans Spring Boot
  • Déployer des services résilients et évolutifs
  • Modèles d’acheminement du trafic
  • Métriques et traçage des microservices

Chapitre 1. Les fondamentaux de DevOps

  • Pourquoi DevOps ?
  • Qu’est-ce que DevOps ?
  • Équipes collaboratives, matricielles et interfonctionnelles
  • Composants clés d’une équipe DevOps performante
  • DevOps-ification
  • Vocabulaire DevOps
  • Objectifs DevOps
  • Pas DevOps – Écrasez les mots à la mode
  • Le DevOps au service de l’entreprise
  • L’entreprise fondée sur la technologie
  • DevOps, élément clé de la transformation numérique
  • Valeurs fondamentales et mission
  • Valeurs fondamentales – Culture
  • Valeurs fondamentales – Automatisation
  • Valeurs fondamentales – Mesure
  • Valeurs fondamentales – Partage
  • Communication
  • Collaboration
  • Cartographie de la chaîne de valeur
  • Les modèles de comportement pour réussir
  • Structures organisationnelles DevOps
  • Équipe DevOps – Séparée
  • Organisation fusionnée DevOps
  • Organisation DevOps superposée
  • Structure organisationnelle Leadership
  • Qu’est-ce que la livraison continue ?
  • Pipelines de déploiement
  • Votre organisation fait du CD si …
  • La technologie pipelines pour les CD
  • Intégration continue
  • Pipeline CI
  • Méthodologies de CD et de CI
  • Catégories d’outils clés pour CI/CD
  • Résumé
Chapitre 2. Introduction au flux Git
  • Pourquoi utiliser un flux de travail SCM ?
  • Pourquoi utiliser un workflow SCM ? (Cond.)
  • Qu’est-ce que Git Flow ?
  • La branche principale
  • Avantages
  • Comment fonctionne Git Flow ?
  • Comment fonctionne Git Flow ? (suite)
  • Qu’est-ce que le Git Flow ? (suite)
  • Comment fonctionne Git Flow ? (suite)
  • Extension Git Flow
  • Initialisation du flux Git
  • Caractéristiques
  • Libération
  • Hotfixes
  • Flux Git et intégration continue
  • Git Flow – Résumé
  • Git Flow – Avantages et inconvénients
  • Git Flow – Quand cela fonctionne-t-il le mieux ?
  • Git Flow – Quand ça ne marche pas ?
  • Alternatives à Git Flow
  • Développement basé sur un tronc
  • Développement basé sur le tronc (suite)
  • Développement basé sur un tronc d’arbre – Quand ça marche ?
  • Développement basé sur un tronc – Quand ça ne marche pas ?
  • Flux GitHub
  • GitHub Flow – Avantages et inconvénients
  • Flux GitLab
  • GitLab Flow – Branches d’environnement
  • GitLab Flow – Branches de publication
  • GitLab Flow – Branches de publication (suite)
  • GitLab Flow – Avantages et inconvénients
  • Résumé
Chapitre 3. Casser les monolithes – Avantages et inconvénients
  • Les applications monolithiques traditionnelles et leur place
  • Inconvénients des monolithes
  • Les malheurs du développeur
  • Modernisation de l’architecture
  • Défis de la modernisation de l’architecture
  • L’architecture microservices n’est pas une solution miracle !
  • Qu’est-ce qui peut aider ?
  • Discussion en classe
  • Résumé
Chapitre 4. Applications à douze facteurs
  • Applications à douze facteurs
  • Douze facteurs, microservices et modernisation des applications
  • Les douze facteurs
  • Catégorisation des 12 facteurs
  • Base de code de microservices à 12 facteurs
  • Dépendances des microservices à 12 facteurs
  • Configuration des microservices à 12 facteurs
  • Services de soutien aux microservices à 12 facteurs
  • Microservice à 12 facteurs Construire, publier, exécuter
  • Processus de microservices à 12 facteurs
  • 12-Factor Microservice Port Binding
  • Concurrence des microservices à 12 facteurs
  • Disposabilité des microservices en 12 facteurs
  • 12 facteurs de parité entre le développement et la production de microservices
  • Logs de microservices à 12 facteurs
  • Processus d’administration des microservices en 12 facteurs
  • Kubernetes et les douze facteurs – 1 base de code
  • Kubernetes et les douze facteurs – 2 dépendances
  • Kubernetes et les douze facteurs – 3 Config
  • Kubernetes et les douze facteurs – 4 Services de sauvegarde
  • Kubernetes et les douze facteurs – 5 Build, Release, Run
  • Kubernetes et les douze facteurs – 6 processus
  • Kubernetes et les douze facteurs – 7 Port Binding
  • Kubernetes et les douze facteurs – 8 Concurrence
  • Kubernetes et les douze facteurs – 9 Disponibilité
  • Kubernetes et les douze facteurs – 10 Dev/Prod Parity
  • Kubernetes et les douze facteurs – 11 Logs
  • Kubernetes et les douze facteurs – 12 processus d’administration
  • Résumé
Chapitre 5. Développement de microservices
  • Qu’est-ce que les microservices ?
  • Microservices vs SOA classique
  • Principes de conception de l’architecture des microservices
  • Conception pilotée par domaine
  • Conception pilotée par les domaines – Avantages
  • Microservices et conception pilotée par les domaines
  • Concevoir pour l’échec
  • Architecture microservices – Avantages
  • Architecture Microservices – Inconvénients
  • Docker et Microservices
  • Déploiement de microservices avec Docker – Workflow
  • Écrire un fichier Docker
  • Kubernetes
  • Qu’est-ce qu’OpenShift ?
  • Architecture OpenShift
  • Microservices et applications diverses
  • Applications Web
  • Applications Web – Architecture de référence
  • Applications Web – Quand les utiliser ?
  • Applications à page unique
  • Applications à page unique – Avantages
  • Architecture traditionnelle des applications d’entreprise
  • Exemple d’architecture microservices
  • Microservice sans serveur et piloté par les événements – AWS Lambda
  • Résumé
Chapitre 6. gRPC
  • Qu’est-ce que gRPC ?
  • Tampons de protocole
  • REST vs. gRPC
  • Protobuf vs. JSON
  • HTTP/2 vs. HTTP 1.1
  • HTTP/2 vs. HTTP 1.1 (suite)
  • Messages vs. ressources et verbes
  • Streaming vs. Request-Response
  • Typage fort et sérialisation
  • Support des navigateurs web
  • REST vs. gRPC – En bref
Chapitre 7. Introduction à Spring Boot
  • Qu’est-ce que Spring Boot ?
  • Cadre de travail Spring
  • En quoi Spring Boot est-il lié à Spring Framework ?
  • Spring Boot 2
  • Caractéristiques principales de Spring Boot
  • Spring Boot sur le PaaS
  • Comprendre les annotations Java
  • Annotations Spring MVC et REST
  • Exemple de service Web RESTful basé sur Spring MVC
  • Spring Booting Votre Service Web RESTful
  • Exemple d’application squelettique Spring Boot
  • Débutants
  • Maven – Le fichier pom.xml
  • Plugin Maven Spring Boot
  • Gradle – Le fichier ‘build.gradle’ (en anglais)
  • Plugin Spring Boot Gradle
  • HOWTO : Créer une application Spring Boot
  • Initialisateur Spring
  • Résumé
Chapitre 8. Vue d’ensemble de l’intégration de la base de données Spring Boot
  • Support DAO dans Spring
  • Modules d’accès aux données Spring
  • Module Spring JDBC
  • Module Spring ORM
  • Exception d’accès aux données
  • Annotation @Référentiel
  • Utilisation des sources de données
  • Modèles DAO
  • Modèles et rappels DAO
  • Support des outils ORM dans Spring
  • Résumé
Chapitre 9. Utilisation de Spring avec JPA
  • Spring JPA
  • Avantages de l’utilisation de Spring avec ORM
  • Spring @Repository
  • Utilisation de JPA avec Spring
  • Configurer Spring Boot JPA EntityManagerFactory
  • Code de l’application JPA
  • Considérations sur Spring Boot
  • Référentiels Spring Data JPA
  • Migration des schémas de base de données
  • Migration des schémas de base de données pour CI/CD avec Liquibase
  • Comment fonctionne Liquibase ?
  • Changelogs dans Liquibase
  • Les conditions préalables dans les modifications (Changelogs)
  • Exemple d’un journal de bord vide
  • Exemple de précondition dans le Changelog
  • Exemple de jeu de modifications dans le journal des modifications
  • Exécution de Liquibase
  • Commandes Liquibase
  • Résumé
Chapitre 10. Services Spring REST
  • Transfert d’état représentationnel
  • Principes des services RESTful
  • Comprendre REST
  • Exemple REST – Créer
  • Exemple REST – Récupérer
  • Exemple REST – Mise à jour
  • Exemple REST – Supprimer
  • Exemple REST – ID généré par le client
  • Exemple REST – JSON
  • Annotation @RestController
  • Mappage des méthodes de requête HTTP
  • Variables de chemin et paramètres de requête
  • RequestBody et ResponseBody
  • JAX-RS vs Spring
  • Clients Java utilisant RestTemplate
  • Méthodes RestTemplate
  • Exemple de modèle RestTemplate
  • Tester avec Postman
  • Résumé
Chapitre 11. L’écriture de scripts dans Postman
  • Scripts du facteur
  • Organisation
  • Ordre d’exécution
  • Scripts de pré-demande
  • Scripts post-demande
  • Sortie de la console
  • Tests
  • Exemples d’affirmations
  • Exemple de test multiple
  • Résultats des tests
  • Variables
  • Champ d’application variable
  • Définition des variables globales
  • Définition des variables globales
  • Utilisation des variables d’environnement
  • Variables dynamiques
  • Résumé
Chapitre 12. Sécurité de Spring
  • Sécuriser les applications web avec Spring Boot 2
  • Sécurité du printemps
  • Authentification et autorisation
  • Sécurité programmatique ou déclarative
  • Ajouter Spring Security à un projet
  • Configuration de la sécurité de Spring
  • Exemple de configuration de Spring Security
  • Gestionnaire d’authentification
  • Utilisation de l’authentification de l’utilisateur de la base de données
  • Authentification LDAP
  • Qu’est-ce que le langage de marquage des assertions de sécurité (SAML) ?
  • Qu’est-ce qu’un fournisseur SAML ?
  • Authentification Spring SAML2.0 Web SSO
  • Configuration d’un fournisseur SSO
  • Ajouter des dépendances SAML à un projet
  • SAML et OAuth2
  • Vue d’ensemble d’OAuth2
  • Exemple de flux OAuth – Facebook
  • Versions d’OAuth
  • Composants OAuth2
  • OAuth2 – Points finaux
  • OAuth2 – Jetons
  • OAuth – Subventions
  • Authentification par rapport à une API OAuth2
  • OAuth2 avec Spring Boot – Dépendances
  • OAuth2 avec Spring Boot – application.yml
  • OAuth2 avec Spring Boot – Classe principale
  • OAuth2 à l’aide de Spring Boot – Application client à page unique
  • Jetons Web JSON
  • Architecture du jeton Web JSON
  • Comment fonctionne JWT
  • En-tête JWT
  • Charge utile JWT
  • Exemple de charge utile JWT
  • Exemple de signature JWT
  • Utilisation des jetons JWT
  • Ajouter un JWT à l’en-tête HTTP
  • Comment le serveur utilise les jetons JWT
  • Que sont les « Scopes » ?
  • JWT avec Spring Boot – Dépendances
  • JWT avec Spring Boot – Classe principale
  • Résumé
Chapitre 13. Introduction à Docker
  • Qu’est-ce que Docker ?
  • Où puis-je exécuter Docker ?
  • Installation du moteur de conteneurs Docker
  • Machine Docker
  • Docker et la conteneurisation sur Linux
  • Fonctionnalités du noyau Linux : cgroups et espaces de noms
  • Les interfaces du noyau Docker-Linux
  • Conteneurs Docker contre virtualisation traditionnelle
  • Intégration Docker
  • Services Docker
  • Référentiel public du conteneur d’application Docker
  • Systèmes concurrents
  • Ligne de commande Docker
  • Démarrer, inspecter et arrêter les conteneurs Docker
  • Volume Docker
  • Fichier Docker
  • Docker Compose
  • Utilisation de Docker Compose
  • Disséquer docker-compose.yml
  • Spécifier les services
  • Dépendances entre les conteneurs
  • Injection de variables d’environnement
  • runC Vue d’ensemble
  • Caractéristiques de runC
  • Utilisation de runC
  • Exécuter un conteneur à l’aide de runC
  • Résumé
Chapitre 14. Introduction à Kubernetes
  • Qu’est-ce que Kubernetes ?
  • Qu’est-ce qu’un conteneur ?
  • Conteneur – Utilisations
  • Conteneur – Avantages
  • Conteneur – Cons
  • Composition d’un conteneur
  • Groupes de contrôle
  • Espaces de noms
  • Systèmes de fichiers de l’Union
  • Logiciels de conteneurisation populaires
  • Microservices
  • Microservices et conteneurs / clusters
  • Microservices et orchestration
  • Microservices et Infrastructure-as-Code
  • Mise en réseau de conteneurs Kubernetes
  • Options de mise en réseau de Kubernetes
  • Mise en réseau de Kubernetes – Conception équilibrée
  • Résumé
Chapitre 15. Modèles d’acheminement du trafic
  • Serveur proxy Edge
  • Traitement des demandes
  • Filtres
  • Architecture du filtre
  • Passerelle API pour l’acheminement des demandes
  • Passerelle API pour l’acheminement des demandes (suite)
  • Passerelle API – Exemple
  • Limitation du taux
  • Limitation des taux – Études de cas
  • Configuration de la limitation du débit dans NGINX
  • Disjoncteur
  • Principes de conception
  • Principes de conception (suite)
  • Défaillances en cascade
  • Modèle de cloison
  • Modèle de disjoncteur
  • Mise en commun des fils
  • Mise en cache des requêtes
  • Demande d’effondrement
  • Fail-Fast
  • Repli
  • Solutions pour les disjoncteurs
  • Équilibrage de la charge dans les microservices
  • Équilibre de charge côté serveur
  • Équilibre de charge côté client
  • L’architecture
  • Service Mesh
  • Service Mesh (suite)
  • Solutions de maillage de services
  • Réseau de diffusion de contenu (CDN)
  • Comment fonctionne un CDN ?
  • Avantages de l’utilisation d’un CDN
  • Solutions CDN
  • Résumé
Exercices en laboratoire

Labo 1. Utilisation du flux de travail GitFlow
Labo 2. Conception monolithique ou microservices
Labo 3. Une API RESTful simple dans Spring Boot
Labo 4. Utilisez le Spring JDBCTemplate sous Spring Boot
Labo 5. Utilisez Spring Data JPA sous Spring Boot
Lab 6. Créez une API RESTful avec Spring Boot
Lab 7. Activez la sécurité de base
Lab 8. Créer un compte Docker et obtenir un jeton d’accès
Lab 9. Démarrer avec Docker
Labo 10. Équilibrage de charge avec Kubernetes
Labo 11. Démarrer avec Istio

Prerequisites

Who Should Attend

What You’ll Learn

Course Materials and Fees

Additional Notes

Contact

For more information about individual or group registration or to be notified of upcoming dates, please contact us.

Call: 1-833-282-6852

Email: training@algonquincollege.com

$
5 Days
Select a Session
Quantity

If you are registering 8 or more participants in one class, please contact us for group registration.

Courses are posted up to 12 months in advance.

Government of Canada Employees

Take advantage of our Standing Offers and Supply Arrangements with the Government of Canada to receive a discount when you register for training.