Formation
Architecture Microservices
Décryptage de l’écosystème
Une formation
Fabien BRISSONNEAU
Une formation
Cursus de formation
Une formation
Introduction
1. Les architectures microservices
2. La communication entre micro-services
3. Développer un micro-service
4. Exécuter un micro-service
5. Déployer une architecture
6. Utiliser Kubernetes
7. Administration et monitoring
Conclusion
Plan
Une formation
Développeurs
Pratiquants devops
Chefs de projet
Public concerné
Une formation
Langage de programmation
Connaissances requises
Présentation du projet
Une formation
Fabien BRISSONNEAU
Une formation
Définir les besoins de l’application « Net BNB »
Dessiner l’architecture micro-services
Créer les web services REST
Conteneuriser avec Docker
Déployer avec Kubernetes
Mettre en œuvre Google KE et Microsoft AKS
Plan
Une formation
IntelliJ
Visual Studio
Docker Desktop sur le poste local
Un compte Google Cloud
Un compte Microsoft Azure
Les outils
Décrire un processus
de développement
Une formation
Fabien BRISSONNEAU
Une formation
Rôle d’un processus
Les points critiques
Les difficultés
Plan
Une formation
Ensemble ordonné d’étapes visant la
réalisation d’un objectif
Réussite en terme de budget, délais,
fonctionnalités… traçabilité …
Processus
Une formation
La conception
Une formation
Les échanges entre utilisateur et
développeur
Les échanges entre développeur et
exploitant
Où se trouve la valeur ajoutée ?
Les points critiques
Utiliser l’agilité
Une formation
Fabien BRISSONNEAU
Une formation
Origine des démarches agiles
Principes et pratiques
Conséquences
Plan
Une formation
Le mouvement Agile est né au tournant
des années 2000
Le Manifeste Agile (2001) énonce valeurs et
principes
Les personnes et leurs interactions sont plus importantes
que les processus et les outils
Un logiciel qui fonctionne prime sur la documentation
La collaboration est plus importante que le suivi d’un
contrat
La réponse au changement passe avant le suivi d’un plan
Le manifeste
Une formation
Satisfaire le client en livrant tôt et régulièrement des
logiciels utiles, qui offrent une valeur ajoutée véritable
Accepter les changements, même tard dans le
développement
Livrer fréquemment une application qui fonctionne
Collaborer quotidiennement entre clients et développeurs
Bâtir le projet autour de personnes motivées en leur
fournissant environnement et support et leur faisant
confiance
Communiquer par des conversations en face à face
Les principes
Une formation
Mesurer la progression avec le logiciel qui
fonctionne
Garder un rythme de travail durable
Rechercher l’excellence technique et la qualité de la
conception
Laisser l’équipe s’auto-organiser
Rechercher la simplicité
A intervalles réguliers, réfléchir aux moyens de
devenir plus efficace
Les principes
Une formation
Livrer fréquemment et régulièrement le
logiciel
Faire des cycles courts et limités dans le
temps
Constituer une équipe complète pour un
développement
Gérer les membres de l’équipe en les
responsabilisant
Les pratiques anciennes
Une formation
Avoir le représentant des utilisateurs sur le
même site que l’équipe
Produire des plans à plusieurs niveaux :
détaillés pour le court terme, généraux pour le
moyen terme
Développer en intégrant le code de façon
continue
Faire des bilans dans le but d’améliorer la façon
de travailler
Les pratiques anciennes
Une formation
Avoir un backlog de produit tenant compte des
priorités
Suive l’avancement avec une réunion quotidienne
Ecrire les tests avant d’écrire le code
Pratiquer de temps en temps le travail en binôme
Remarque : les méthodes agiles ou semi-agiles
existaient avant le Manifeste ( Scrum, XP, Lean
Software, …)
Les pratiques spécifiques
Une formation
Pas de barrière entre utilisateur et
développeur
Tâches de développement de petite taille
Livraison continue
Intégration continue
Production fréquente et régulière du
logiciel
Les conséquences
Pratiquer le DevOps
Une formation
Fabien BRISSONNEAU
Une formation
Définitions du DevOps
Principes et pratiques
Conséquences
Plan
Une formation
Le mouvement DevOps est né en 2008/2009
Pas de définition initiale, mais :
« C’est un ensemble de pratiques multi-disciplinaires
consacrées à l’étude de la construction, de la
maintenance évolutive et de l’exploitation des systèmes
informatiques de toutes tailles, qui doivent pouvoir être
modifiés rapidement sans défaillir. »
-Jez Humble
Ou bien : « Réduire la friction organisationnelle entre
devs et ops »
Historique
Une formation
L’objectif opérationnel poursuivi est de
diminuer la durée comprise entre la
demande de modification d’un service IT et
sa mise en ligne, tout en améliorant la
qualité et en diminuant le coût
Apparu chez les géants du net qui ont
conçu des systèmes marchands, à grande
échelle et à forte évolution
Historique
Une formation
Les pratiques DevOps visent à garder
développement et opérations dans la même
sphère
On augmente l’automatisation et le travail est
incorporé dans la fonction de développement
Déploiements et tests automatiques
augmentent l’agilité de l’équipe
Méthodes agiles et DevOps
Une formation
Le mot devops vient de (développement) et
opérations (exploitation)
DevOps, c’est une stratégie opérationnelle qui vise
à améliorer la communication entre les études et
l’exploitation afin de réduire le temps de mise sur
le marché d’un produit
C’est aussi un ensemble de bonnes pratiques
destiné à répondre au besoin croissant
d’industrialisation et de normalisation du système
d’information
DevOps
Une formation
La livraison continue
Processus d’intégration et de production visant à
livrer
L’intégration continue
Processus orienté études visant à compiler, tester et
déployer
Le déploiement continu
Processus de production visant à compiler, tester et
déployer en production
Processus DevOps
Une formation
Plus petit, plus vite, plus souvent
Travailler sur des développements plus petits, les installer
en production plus vite, augmenter la fréquence des mises
en production
Des équipes intégrées multicompétentes et autonomes
En charge de l’ensemble du cycle de vie d’une release
applicative
Modèle « build et run »
Une architecture agile
Le système doit être modulaire
Préconisations
Une formation
Motivation des équipes, autonomie et subsidiarité
L’engagement de développement porte sur le plus
petit incrément de développement de nature à
satisfaire un besoin
DevOps est essentiellement une démarche de
maintenance évolutive
Ne pas confondre projets financiers et projets
d’ingénierie
Le management des équipes « feature teams » ou
« équipes responsables » fait appel à la notion de
« servant leader »
DevOps et équipes
Une formation
Brise la barrière entre développeurs et
exploitants
Etend l’agilité jusqu’à la livraison
opérationnelle
Vise la valeur ajoutée de la production d’un
logiciel utilisé
Conséquences
Utiliser Jenkins
Une formation
Fabien BRISSONNEAU
Une formation
Installation et configuration
Tâches de build
Tâches de test
Lien avec le dépôt de sources
Lien avec le déploiement
Plan
Utiliser Azure DevOps
Une formation
Fabien BRISSONNEAU
Une formation
Configuration
Tâches de build
Tâches de test
Lien avec le dépôt de sources
Lien avec le déploiement
Plan
Mettre en place
une architecture monolithique
Une formation
Fabien BRISSONNEAU
Une formation
Définition
Caractéristiques
Les points critiques
Plan
Une formation
Toujours construite comme une seule unité
autonome
Dans un modèle client-serveur, l’application
cliente gère le HTTP, exécute la logique et
récupère et met à jour les données dans la base
de données
Tous les changements sont liés, changer une
petite partie suppose de regénérer la totalité
Définition
Une formation
Fortement couplée et un seul gros
exécutable
Le couplage entre équipes de développement
Difficultés avec le déploiement fréquent
Planification de plus en plus difficile entre
équipe de développement
Caractéristiques
Une formation
Problèmes avec la livraison continue
Long déploiement, car concerne la totalité
Difficultés en maintenance et gestion
Manque de diversité technologique
Cycle de développement plus long
Evolutivité d’un seul composant compliquée
Recherche de bugs et corrections plus difficiles
Caractéristiques
Une formation
Les développeurs ont l’impression de
la simplicité
Les couplages logiques sont
invisibles
Le déploiement est complexe et long
Les points critiques
Créer un découpage logique
Une formation
Fabien BRISSONNEAU
Une formation
Les bonnes règles de découpage
Le résultat
Plan
Une formation
Les développeurs appliquent des règles de
découpage du code
Afin de simplifier l’évolution du code
Mais au moment de la création du binaire,
tout est regroupé
Les bonnes règles
Une formation
Le découpage logique ne garantit pas
l’indépendance physique des modules
La discipline du développeur est mise en
cause
Le déploiement reste long et complexe
Le résultat
Savoir utiliser
Des Micro-services
Une formation
Fabien BRISSONNEAU
Une formation
Définition
Caractéristiques des micro services
Avantages
Inconvénients
Plan
Une formation
Architecture consistant à créer une suite de
services modulables et indépendants
Chaque service exécute un processus
unique et communique à travers un
mécanisme léger
Chaque service peut être modifié, déployé
indépendamment des autres
Un service peut échouer sans
compromettre les services voisins
Définition
Une formation
Une application devient plus simple à construire
et à maintenir lorsqu’elle est divisée en petits
morceaux
Un microservice est :
Basé sur une seule fonctionnalité
Déployable individuellement
Auto contenu
Indépendant
Caractéristiques
Une formation
Avantages
Possibilité de développer et déployer de
manière indépendante
Un microservice peut être développé par
une équipe assez petite
Les microservices peuvent être écrits dans
différents langages
Une formation
Avantages
Intégration facile et déploiement
automatique
Facile à comprendre et à modifier
Code organisé autour du métier
Meilleure isolation de pannes
Pas d’engagement à long terme quant aux
technologies
Une formation
Inconvénients
Les tests peuvent devenir compliqués et
fastidieux
Complexité complémentaire due à la
tolérance aux pannes, la latence du réseau
Possibilité de doubles emplois
Intégration et gestion de produits entiers
compliqués
Une formation
Inconvénients
Complexité supplémentaire d’un système
distribué
Efforts supplémentaires pour la communication
entre services
Pour les cas d’utilisation mettant en œuvre plus
d’un service, obligation de collaboration entre
équipes
Pas simple de fractionner l’application en
services
Faire communiquer des
services entre eux
Une formation
Fabien BRISSONNEAU
Une formation
Le besoin de communication
Les modèles
Les points critiques
Plan
Une formation
Les micro-services doivent pouvoir
échanger leurs informations
Besoin d’appeler un service à partir d’un
autre
Besoin de partager des configurations
Besoin de stocker des informations
Le besoin de communication
Une formation
Publish Subscribe Messaging
Representational State Transfer
Les modèles
Une formation
Architecture légère
Découple consommateur du producteur
Permet l’utilisation de cache
Permet un système en couche
Fournit une interface uniforme
REST
Une formation
Pub/Sub Pattern
Communication asynchrone de service à service
Un message publié est reçu immédiatement par tous
les abonnés
Exemple : Amazon Simple Notification Service, pour
livrer des messages à services, à du matériel mobile.
Publish Subscribe
Messaging
Une formation
Sans couplages forts entre services
Format souple et non dépendant du
langage de programmation
Simplicité de mise en œuvre
Les points critiques
Mettre en œuvre la
conception RESTful
Une formation
Fabien BRISSONNEAU
Une formation
Définition
Conception
Les points critiques
Plan
Une formation
Un web service RestFul est une application
exposant des ressources via HTTP
plutôt que des services via une API
plutôt que des pages HTML
REST est souvent qualifié de style
d'architecture
Définition
Une formation
Hypermedia As The Engine of Application State
Le client n’a pas besoin de connaissance sur la
façon d’interagir avec le serveur
Toutes les actions que le client peut
entreprendre sont découvertes dans les
ressources retournées par le serveur
Les actions possibles dépendent de l’ état de la
ressource
Conception
Une formation
Définir les URL
Une stricte conception RESTFul est rare
Respecter des conventions de nommage
des ressources
Les points critiques
Décrire avec Swagger
Une formation
Fabien BRISSONNEAU
Une formation
Swagger
La description des webservices
L’interface graphique
Plan
Une formation
Initiative indépendante
Tentative de description des webservices
REST
Aujourd’hui OAS
Swagger
Une formation
Spécification OAS v2
Décrit les points d’entrée, les
paramètres
Fichier de description compatible
avec d’autres outils (SOAPUI, …)
La description des services
Une formation
Swagger peut être installé localement
Possibilité de créer un compte
Swagger Hub
Description standard et interface
graphique
Démonstration et documentation
graphique
L’interface graphique
Mettre en œuvre en Java avec
SpringBoot
Une formation
Fabien BRISSONNEAU
Une formation
Démarrer le projet SpringBoot
Créer un point d’entrée
Les points critiques
Plan
Une formation
Utiliser le site start.spring.io
Sélectionner la bibliothèque web
Générer le projet
Démarrer avec SpringBoot
Une formation
Créer une classe contrôleur
Créer une méthode par accès
Créer un point d’entrée
Une formation
Les bibliothèques sont complexes
Le site start.spring.io simplifie le démarrage
L’écriture des services est rapide
Les points critiques
Mettre en œuvre en C# avec
ASP.Net
Une formation
Fabien BRISSONNEAU
Une formation
Démarrer le projet ASP.Net
Créer un point d’entrée
Les points critiques
Plan
Une formation
Utiliser Visual Studio
Sélectionner une API Web
Générer le projet
Démarrer avec ASP.Net
Une formation
Créer une classe contrôleur
Créer une méthode par accès
Créer un point d’entrée
Une formation
Les projets Web ASP.Net sont nombreux
Un projet API Web simplifie le codage
L’écriture des services est rapide
Les points critiques
Créer un compte DockerHub
Une formation
Fabien BRISSONNEAU
Une formation
Accéder à dockerhub.com
Créer son compte
Les points critiques
Plan
Une formation
Un site de dépôt des images
Créer son compte pour uploader
Gérer ses images
Accéder à dockerhub.com
Une formation
Créer le compte
Utiliser le compte pour login
Créer son compte
Une formation
Un compte dockerhub est nécessaire
Pour nommer les images
Pour uploader des images
Les points critiques
Utiliser une image Docker
Une formation
Fabien BRISSONNEAU
Une formation
Un conteneur encapsule une
application
Une image décrit l’état initial
Le compte permet de se connecter
Les points critiques
Plan
Une formation
Un conteneur est un système de
fichiers
Un conteneur est indépendant
Les modifications peuvent être
commitées
Un conteneur encapsule
Une formation
L’image est construite en couches
Seule une couche est modifiable
Une image est l’état initial
Une formation
La connexion à dockerhub.com
Le upload des images
Nécessaire pour utiliser des
plateformes
Le compte permet la
connexion
Une formation
Un conteneur est créé à partir d’une image
Le conteneur peut échanger avec l’hôte
Les données peuvent être sauvées
Les points critiques
Créer son image Docker
Une formation
Fabien BRISSONNEAU
Une formation
Créer par commit d’une image
Créer avec un dockerfile
Les points critiques
Plan
Une formation
Modifier un conteneur
Sauvegarder dans une image
Donner un nom à l’image
Créer par commit
Une formation
Le fichier dockerfile décrit les modifs
Les directives essentielles
Le point d’entrée
Créer par un dockerfile
Une formation
Une image peut être générée
Un fichier dockerfile décrit la construction
L’image est uploadée sur dockerhub
Les points critiques
Conteneuriser le microservice
Une formation
Fabien BRISSONNEAU
Une formation
Générer l’exécutable
Créer avec un dockerfile
Points critiques
Plan
Une formation
Le projet produit un exécutable
Le dockerfile référence ce point
Avec ou sans paramètres
Générer l’exécutable
Une formation
Le dockerfile propose une image
Crée les volumes
Copie les exécutables
Créer avec un dockerfile
Une formation
Une image de base est choisie
L’exécutable est copié
Les fichiers partagés et ports exportés
Les points critiques
Exécuter avec docker-compose
Une formation
Fabien BRISSONNEAU
Une formation
Utiliser docker-compose
Décrire les conteneurs
Les points critiques
Plan
Une formation
Pour créer une infrastructure
Pour démarrer plusieurs conteneurs
Utiliser docker-compose
Une formation
Un fichier de description
Les images
Les paramètres
Décrire les conteneurs
Une formation
L’outil est docker-compose
Il permet de gérer des déploiements
Mais l ’état n’est pas garanti
Les points critiques
Exécuter avec kubernetes
Une formation
Fabien BRISSONNEAU
Une formation
Rôle de Kubernetes
Variantes d’installation
Description d’un déploiement
Les points critiques
Plan
Une formation
Maintenir un état du déploiement
Suivre les changements d’états
Instancier les nœuds du réseau
Rôle de Kubernetes
Une formation
Cluster docker desktop
Installation ad-hoc
Infrastructure cloud
Variantes d’installation
Une formation
Un déploiement est décrit
L’infrastructure s’assure du maintien
Des services exposent les pods
Description du déploiement
Une formation
Une infrastructure qui garanti un état
Le déploiement est maintenu
Les conteneurs sont placés dans
des pods
Les points critiques
Mettre en œuvre Google
Kubernetes Engine
Une formation
Fabien BRISSONNEAU
Une formation
Le cloud de Google
L’infrastructure
L’exposition
Les points critiques
Plan
Une formation
Un grand nombre de services
Le paiement à l’utilisation
Le cloud de Google
Une formation
La création …
L’infrastructure
Une formation
Exposer…
L’exposition
Une formation
L’infrastructure Kubernetes
Avec des services en plus
Mise en œuvre standard
Services de monitoring
Les points critiques
Mettre en œuvre
Azure Kubernetes Service
Une formation
Fabien BRISSONNEAU
Une formation
Le cloud de Microsoft
L’infrastructure
L’exposition
Les points critiques
Plan
Une formation
Un grand nombre de services
Le paiement à l’utilisation
Le cloud de Microsoft
Une formation
La création …
L’infrastructure
Une formation
Exposer…
L’exposition
Une formation
L’infrastructure Kubernetes
Avec des services en plus
Mise en œuvre standard
Services de monitoring
Les points critiques
Monitorer
Google Kubernetes Engine
Une formation
Fabien BRISSONNEAU
Une formation
Le monitoring
L’utilisation des ressources
L’accès aux logs
Plan
Une formation
La récupération des infos
L’affichage des consommations
Le monitoring
Une formation
Les cas anormaux
Changer le déploiement
Les cas d’erreur
L’utilisation des ressources
Une formation
En cas de problèmes
Par conteneur
L’accès aux logs
Monitorer
Azure Kubernetes Service
Une formation
Fabien BRISSONNEAU
Une formation
Le monitoring
L’utilisation des ressources
L’accès aux logs
Plan
Une formation
La récupération des infos
L’affichage des consommations
Le monitoring
Une formation
Les cas anormaux
Changer le déploiement
Les cas d’erreur
L’utilisation des ressources
Une formation
En cas de problèmes
Par conteneur
L’accès aux logs
Conclusion
Une formation
Fabien BRISSONNEAU
Une formation
Introduction
1 Les architectures microservices
2 La communication entre micro-services
3 Développer un micro-service
4 Exécuter un micro-service
5 Déployer une architecture
6 Utiliser Kubernetes
7 Administration et monitoring
Conclusion
Bilan
Une formation
Prochaine formation
Alphorm.com Formation Architecture Microservices : Décryptage de l'écosystème

Alphorm.com Formation Architecture Microservices : Décryptage de l'écosystème

  • 1.
    Formation Architecture Microservices Décryptage del’écosystème Une formation Fabien BRISSONNEAU
  • 2.
  • 3.
    Une formation Introduction 1. Lesarchitectures microservices 2. La communication entre micro-services 3. Développer un micro-service 4. Exécuter un micro-service 5. Déployer une architecture 6. Utiliser Kubernetes 7. Administration et monitoring Conclusion Plan
  • 4.
  • 5.
    Une formation Langage deprogrammation Connaissances requises
  • 7.
    Présentation du projet Uneformation Fabien BRISSONNEAU
  • 8.
    Une formation Définir lesbesoins de l’application « Net BNB » Dessiner l’architecture micro-services Créer les web services REST Conteneuriser avec Docker Déployer avec Kubernetes Mettre en œuvre Google KE et Microsoft AKS Plan
  • 9.
    Une formation IntelliJ Visual Studio DockerDesktop sur le poste local Un compte Google Cloud Un compte Microsoft Azure Les outils
  • 10.
    Décrire un processus dedéveloppement Une formation Fabien BRISSONNEAU
  • 11.
    Une formation Rôle d’unprocessus Les points critiques Les difficultés Plan
  • 12.
    Une formation Ensemble ordonnéd’étapes visant la réalisation d’un objectif Réussite en terme de budget, délais, fonctionnalités… traçabilité … Processus
  • 13.
  • 14.
    Une formation Les échangesentre utilisateur et développeur Les échanges entre développeur et exploitant Où se trouve la valeur ajoutée ? Les points critiques
  • 15.
  • 16.
    Une formation Origine desdémarches agiles Principes et pratiques Conséquences Plan
  • 17.
    Une formation Le mouvementAgile est né au tournant des années 2000 Le Manifeste Agile (2001) énonce valeurs et principes Les personnes et leurs interactions sont plus importantes que les processus et les outils Un logiciel qui fonctionne prime sur la documentation La collaboration est plus importante que le suivi d’un contrat La réponse au changement passe avant le suivi d’un plan Le manifeste
  • 18.
    Une formation Satisfaire leclient en livrant tôt et régulièrement des logiciels utiles, qui offrent une valeur ajoutée véritable Accepter les changements, même tard dans le développement Livrer fréquemment une application qui fonctionne Collaborer quotidiennement entre clients et développeurs Bâtir le projet autour de personnes motivées en leur fournissant environnement et support et leur faisant confiance Communiquer par des conversations en face à face Les principes
  • 19.
    Une formation Mesurer laprogression avec le logiciel qui fonctionne Garder un rythme de travail durable Rechercher l’excellence technique et la qualité de la conception Laisser l’équipe s’auto-organiser Rechercher la simplicité A intervalles réguliers, réfléchir aux moyens de devenir plus efficace Les principes
  • 20.
    Une formation Livrer fréquemmentet régulièrement le logiciel Faire des cycles courts et limités dans le temps Constituer une équipe complète pour un développement Gérer les membres de l’équipe en les responsabilisant Les pratiques anciennes
  • 21.
    Une formation Avoir lereprésentant des utilisateurs sur le même site que l’équipe Produire des plans à plusieurs niveaux : détaillés pour le court terme, généraux pour le moyen terme Développer en intégrant le code de façon continue Faire des bilans dans le but d’améliorer la façon de travailler Les pratiques anciennes
  • 22.
    Une formation Avoir unbacklog de produit tenant compte des priorités Suive l’avancement avec une réunion quotidienne Ecrire les tests avant d’écrire le code Pratiquer de temps en temps le travail en binôme Remarque : les méthodes agiles ou semi-agiles existaient avant le Manifeste ( Scrum, XP, Lean Software, …) Les pratiques spécifiques
  • 23.
    Une formation Pas debarrière entre utilisateur et développeur Tâches de développement de petite taille Livraison continue Intégration continue Production fréquente et régulière du logiciel Les conséquences
  • 24.
    Pratiquer le DevOps Uneformation Fabien BRISSONNEAU
  • 25.
    Une formation Définitions duDevOps Principes et pratiques Conséquences Plan
  • 26.
    Une formation Le mouvementDevOps est né en 2008/2009 Pas de définition initiale, mais : « C’est un ensemble de pratiques multi-disciplinaires consacrées à l’étude de la construction, de la maintenance évolutive et de l’exploitation des systèmes informatiques de toutes tailles, qui doivent pouvoir être modifiés rapidement sans défaillir. » -Jez Humble Ou bien : « Réduire la friction organisationnelle entre devs et ops » Historique
  • 27.
    Une formation L’objectif opérationnelpoursuivi est de diminuer la durée comprise entre la demande de modification d’un service IT et sa mise en ligne, tout en améliorant la qualité et en diminuant le coût Apparu chez les géants du net qui ont conçu des systèmes marchands, à grande échelle et à forte évolution Historique
  • 28.
    Une formation Les pratiquesDevOps visent à garder développement et opérations dans la même sphère On augmente l’automatisation et le travail est incorporé dans la fonction de développement Déploiements et tests automatiques augmentent l’agilité de l’équipe Méthodes agiles et DevOps
  • 29.
    Une formation Le motdevops vient de (développement) et opérations (exploitation) DevOps, c’est une stratégie opérationnelle qui vise à améliorer la communication entre les études et l’exploitation afin de réduire le temps de mise sur le marché d’un produit C’est aussi un ensemble de bonnes pratiques destiné à répondre au besoin croissant d’industrialisation et de normalisation du système d’information DevOps
  • 30.
    Une formation La livraisoncontinue Processus d’intégration et de production visant à livrer L’intégration continue Processus orienté études visant à compiler, tester et déployer Le déploiement continu Processus de production visant à compiler, tester et déployer en production Processus DevOps
  • 31.
    Une formation Plus petit,plus vite, plus souvent Travailler sur des développements plus petits, les installer en production plus vite, augmenter la fréquence des mises en production Des équipes intégrées multicompétentes et autonomes En charge de l’ensemble du cycle de vie d’une release applicative Modèle « build et run » Une architecture agile Le système doit être modulaire Préconisations
  • 32.
    Une formation Motivation deséquipes, autonomie et subsidiarité L’engagement de développement porte sur le plus petit incrément de développement de nature à satisfaire un besoin DevOps est essentiellement une démarche de maintenance évolutive Ne pas confondre projets financiers et projets d’ingénierie Le management des équipes « feature teams » ou « équipes responsables » fait appel à la notion de « servant leader » DevOps et équipes
  • 33.
    Une formation Brise labarrière entre développeurs et exploitants Etend l’agilité jusqu’à la livraison opérationnelle Vise la valeur ajoutée de la production d’un logiciel utilisé Conséquences
  • 34.
  • 35.
    Une formation Installation etconfiguration Tâches de build Tâches de test Lien avec le dépôt de sources Lien avec le déploiement Plan
  • 36.
    Utiliser Azure DevOps Uneformation Fabien BRISSONNEAU
  • 37.
    Une formation Configuration Tâches debuild Tâches de test Lien avec le dépôt de sources Lien avec le déploiement Plan
  • 38.
    Mettre en place unearchitecture monolithique Une formation Fabien BRISSONNEAU
  • 39.
  • 40.
    Une formation Toujours construitecomme une seule unité autonome Dans un modèle client-serveur, l’application cliente gère le HTTP, exécute la logique et récupère et met à jour les données dans la base de données Tous les changements sont liés, changer une petite partie suppose de regénérer la totalité Définition
  • 41.
    Une formation Fortement coupléeet un seul gros exécutable Le couplage entre équipes de développement Difficultés avec le déploiement fréquent Planification de plus en plus difficile entre équipe de développement Caractéristiques
  • 42.
    Une formation Problèmes avecla livraison continue Long déploiement, car concerne la totalité Difficultés en maintenance et gestion Manque de diversité technologique Cycle de développement plus long Evolutivité d’un seul composant compliquée Recherche de bugs et corrections plus difficiles Caractéristiques
  • 43.
    Une formation Les développeursont l’impression de la simplicité Les couplages logiques sont invisibles Le déploiement est complexe et long Les points critiques
  • 44.
    Créer un découpagelogique Une formation Fabien BRISSONNEAU
  • 45.
    Une formation Les bonnesrègles de découpage Le résultat Plan
  • 46.
    Une formation Les développeursappliquent des règles de découpage du code Afin de simplifier l’évolution du code Mais au moment de la création du binaire, tout est regroupé Les bonnes règles
  • 47.
    Une formation Le découpagelogique ne garantit pas l’indépendance physique des modules La discipline du développeur est mise en cause Le déploiement reste long et complexe Le résultat
  • 48.
    Savoir utiliser Des Micro-services Uneformation Fabien BRISSONNEAU
  • 49.
    Une formation Définition Caractéristiques desmicro services Avantages Inconvénients Plan
  • 50.
    Une formation Architecture consistantà créer une suite de services modulables et indépendants Chaque service exécute un processus unique et communique à travers un mécanisme léger Chaque service peut être modifié, déployé indépendamment des autres Un service peut échouer sans compromettre les services voisins Définition
  • 51.
    Une formation Une applicationdevient plus simple à construire et à maintenir lorsqu’elle est divisée en petits morceaux Un microservice est : Basé sur une seule fonctionnalité Déployable individuellement Auto contenu Indépendant Caractéristiques
  • 52.
    Une formation Avantages Possibilité dedévelopper et déployer de manière indépendante Un microservice peut être développé par une équipe assez petite Les microservices peuvent être écrits dans différents langages
  • 53.
    Une formation Avantages Intégration facileet déploiement automatique Facile à comprendre et à modifier Code organisé autour du métier Meilleure isolation de pannes Pas d’engagement à long terme quant aux technologies
  • 54.
    Une formation Inconvénients Les testspeuvent devenir compliqués et fastidieux Complexité complémentaire due à la tolérance aux pannes, la latence du réseau Possibilité de doubles emplois Intégration et gestion de produits entiers compliqués
  • 55.
    Une formation Inconvénients Complexité supplémentaired’un système distribué Efforts supplémentaires pour la communication entre services Pour les cas d’utilisation mettant en œuvre plus d’un service, obligation de collaboration entre équipes Pas simple de fractionner l’application en services
  • 56.
    Faire communiquer des servicesentre eux Une formation Fabien BRISSONNEAU
  • 57.
    Une formation Le besoinde communication Les modèles Les points critiques Plan
  • 58.
    Une formation Les micro-servicesdoivent pouvoir échanger leurs informations Besoin d’appeler un service à partir d’un autre Besoin de partager des configurations Besoin de stocker des informations Le besoin de communication
  • 59.
    Une formation Publish SubscribeMessaging Representational State Transfer Les modèles
  • 60.
    Une formation Architecture légère Découpleconsommateur du producteur Permet l’utilisation de cache Permet un système en couche Fournit une interface uniforme REST
  • 61.
    Une formation Pub/Sub Pattern Communicationasynchrone de service à service Un message publié est reçu immédiatement par tous les abonnés Exemple : Amazon Simple Notification Service, pour livrer des messages à services, à du matériel mobile. Publish Subscribe Messaging
  • 62.
    Une formation Sans couplagesforts entre services Format souple et non dépendant du langage de programmation Simplicité de mise en œuvre Les points critiques
  • 63.
    Mettre en œuvrela conception RESTful Une formation Fabien BRISSONNEAU
  • 64.
  • 65.
    Une formation Un webservice RestFul est une application exposant des ressources via HTTP plutôt que des services via une API plutôt que des pages HTML REST est souvent qualifié de style d'architecture Définition
  • 66.
    Une formation Hypermedia AsThe Engine of Application State Le client n’a pas besoin de connaissance sur la façon d’interagir avec le serveur Toutes les actions que le client peut entreprendre sont découvertes dans les ressources retournées par le serveur Les actions possibles dépendent de l’ état de la ressource Conception
  • 67.
    Une formation Définir lesURL Une stricte conception RESTFul est rare Respecter des conventions de nommage des ressources Les points critiques
  • 68.
    Décrire avec Swagger Uneformation Fabien BRISSONNEAU
  • 69.
    Une formation Swagger La descriptiondes webservices L’interface graphique Plan
  • 70.
    Une formation Initiative indépendante Tentativede description des webservices REST Aujourd’hui OAS Swagger
  • 71.
    Une formation Spécification OASv2 Décrit les points d’entrée, les paramètres Fichier de description compatible avec d’autres outils (SOAPUI, …) La description des services
  • 72.
    Une formation Swagger peutêtre installé localement Possibilité de créer un compte Swagger Hub Description standard et interface graphique Démonstration et documentation graphique L’interface graphique
  • 73.
    Mettre en œuvreen Java avec SpringBoot Une formation Fabien BRISSONNEAU
  • 74.
    Une formation Démarrer leprojet SpringBoot Créer un point d’entrée Les points critiques Plan
  • 75.
    Une formation Utiliser lesite start.spring.io Sélectionner la bibliothèque web Générer le projet Démarrer avec SpringBoot
  • 76.
    Une formation Créer uneclasse contrôleur Créer une méthode par accès Créer un point d’entrée
  • 77.
    Une formation Les bibliothèquessont complexes Le site start.spring.io simplifie le démarrage L’écriture des services est rapide Les points critiques
  • 78.
    Mettre en œuvreen C# avec ASP.Net Une formation Fabien BRISSONNEAU
  • 79.
    Une formation Démarrer leprojet ASP.Net Créer un point d’entrée Les points critiques Plan
  • 80.
    Une formation Utiliser VisualStudio Sélectionner une API Web Générer le projet Démarrer avec ASP.Net
  • 81.
    Une formation Créer uneclasse contrôleur Créer une méthode par accès Créer un point d’entrée
  • 82.
    Une formation Les projetsWeb ASP.Net sont nombreux Un projet API Web simplifie le codage L’écriture des services est rapide Les points critiques
  • 83.
    Créer un compteDockerHub Une formation Fabien BRISSONNEAU
  • 84.
    Une formation Accéder àdockerhub.com Créer son compte Les points critiques Plan
  • 85.
    Une formation Un sitede dépôt des images Créer son compte pour uploader Gérer ses images Accéder à dockerhub.com
  • 86.
    Une formation Créer lecompte Utiliser le compte pour login Créer son compte
  • 87.
    Une formation Un comptedockerhub est nécessaire Pour nommer les images Pour uploader des images Les points critiques
  • 88.
    Utiliser une imageDocker Une formation Fabien BRISSONNEAU
  • 89.
    Une formation Un conteneurencapsule une application Une image décrit l’état initial Le compte permet de se connecter Les points critiques Plan
  • 90.
    Une formation Un conteneurest un système de fichiers Un conteneur est indépendant Les modifications peuvent être commitées Un conteneur encapsule
  • 91.
    Une formation L’image estconstruite en couches Seule une couche est modifiable Une image est l’état initial
  • 92.
    Une formation La connexionà dockerhub.com Le upload des images Nécessaire pour utiliser des plateformes Le compte permet la connexion
  • 93.
    Une formation Un conteneurest créé à partir d’une image Le conteneur peut échanger avec l’hôte Les données peuvent être sauvées Les points critiques
  • 94.
    Créer son imageDocker Une formation Fabien BRISSONNEAU
  • 95.
    Une formation Créer parcommit d’une image Créer avec un dockerfile Les points critiques Plan
  • 96.
    Une formation Modifier unconteneur Sauvegarder dans une image Donner un nom à l’image Créer par commit
  • 97.
    Une formation Le fichierdockerfile décrit les modifs Les directives essentielles Le point d’entrée Créer par un dockerfile
  • 98.
    Une formation Une imagepeut être générée Un fichier dockerfile décrit la construction L’image est uploadée sur dockerhub Les points critiques
  • 99.
    Conteneuriser le microservice Uneformation Fabien BRISSONNEAU
  • 100.
    Une formation Générer l’exécutable Créeravec un dockerfile Points critiques Plan
  • 101.
    Une formation Le projetproduit un exécutable Le dockerfile référence ce point Avec ou sans paramètres Générer l’exécutable
  • 102.
    Une formation Le dockerfilepropose une image Crée les volumes Copie les exécutables Créer avec un dockerfile
  • 103.
    Une formation Une imagede base est choisie L’exécutable est copié Les fichiers partagés et ports exportés Les points critiques
  • 104.
    Exécuter avec docker-compose Uneformation Fabien BRISSONNEAU
  • 105.
    Une formation Utiliser docker-compose Décrireles conteneurs Les points critiques Plan
  • 106.
    Une formation Pour créerune infrastructure Pour démarrer plusieurs conteneurs Utiliser docker-compose
  • 107.
    Une formation Un fichierde description Les images Les paramètres Décrire les conteneurs
  • 108.
    Une formation L’outil estdocker-compose Il permet de gérer des déploiements Mais l ’état n’est pas garanti Les points critiques
  • 109.
    Exécuter avec kubernetes Uneformation Fabien BRISSONNEAU
  • 110.
    Une formation Rôle deKubernetes Variantes d’installation Description d’un déploiement Les points critiques Plan
  • 111.
    Une formation Maintenir unétat du déploiement Suivre les changements d’états Instancier les nœuds du réseau Rôle de Kubernetes
  • 112.
    Une formation Cluster dockerdesktop Installation ad-hoc Infrastructure cloud Variantes d’installation
  • 113.
    Une formation Un déploiementest décrit L’infrastructure s’assure du maintien Des services exposent les pods Description du déploiement
  • 114.
    Une formation Une infrastructurequi garanti un état Le déploiement est maintenu Les conteneurs sont placés dans des pods Les points critiques
  • 115.
    Mettre en œuvreGoogle Kubernetes Engine Une formation Fabien BRISSONNEAU
  • 116.
    Une formation Le cloudde Google L’infrastructure L’exposition Les points critiques Plan
  • 117.
    Une formation Un grandnombre de services Le paiement à l’utilisation Le cloud de Google
  • 118.
    Une formation La création… L’infrastructure
  • 119.
  • 120.
    Une formation L’infrastructure Kubernetes Avecdes services en plus Mise en œuvre standard Services de monitoring Les points critiques
  • 121.
    Mettre en œuvre AzureKubernetes Service Une formation Fabien BRISSONNEAU
  • 122.
    Une formation Le cloudde Microsoft L’infrastructure L’exposition Les points critiques Plan
  • 123.
    Une formation Un grandnombre de services Le paiement à l’utilisation Le cloud de Microsoft
  • 124.
    Une formation La création… L’infrastructure
  • 125.
  • 126.
    Une formation L’infrastructure Kubernetes Avecdes services en plus Mise en œuvre standard Services de monitoring Les points critiques
  • 127.
    Monitorer Google Kubernetes Engine Uneformation Fabien BRISSONNEAU
  • 128.
    Une formation Le monitoring L’utilisationdes ressources L’accès aux logs Plan
  • 129.
    Une formation La récupérationdes infos L’affichage des consommations Le monitoring
  • 130.
    Une formation Les casanormaux Changer le déploiement Les cas d’erreur L’utilisation des ressources
  • 131.
    Une formation En casde problèmes Par conteneur L’accès aux logs
  • 132.
    Monitorer Azure Kubernetes Service Uneformation Fabien BRISSONNEAU
  • 133.
    Une formation Le monitoring L’utilisationdes ressources L’accès aux logs Plan
  • 134.
    Une formation La récupérationdes infos L’affichage des consommations Le monitoring
  • 135.
    Une formation Les casanormaux Changer le déploiement Les cas d’erreur L’utilisation des ressources
  • 136.
    Une formation En casde problèmes Par conteneur L’accès aux logs
  • 137.
  • 138.
    Une formation Introduction 1 Lesarchitectures microservices 2 La communication entre micro-services 3 Développer un micro-service 4 Exécuter un micro-service 5 Déployer une architecture 6 Utiliser Kubernetes 7 Administration et monitoring Conclusion Bilan
  • 139.