Le DevOps est une pratique technique visant à l’unification du developpement logiciel et de l’administration des infrastructures informatiques.
A travers ce module nous reprendrons les concepts fondamentaux du DevOps. Nous présenterons les méthodes Agile associées. Enfin, nous reviendrons sur l’ensemble des techonologies de cette approche.
Introduction au DevOps
- Qu’est-ce que le DevOps, quel en est l'intérêt ?
- Les composantes du DevOps (planification, développement agile, intégration continue, …)
- Partage des responsabilités (Environnements hors production / production)
Les méthodes agiles
- Pourquoi développer en agile
- Organisation agile
- Les intervenants
- Focus sur le Product Owner et le Scrum master
- Les différentes méthodes agiles
- Les rituels
- Les outils
La gestion en configuration du code source
- Pourquoi la gestion en configuration du code source
- Le travail en mode collaboratif
- Le travail en mode collaboratif
- Les solutions du marché (git, …)
- Focus sur Git
- Accéder à Git et naviguer dans le code source
- La notion de repository et de branches
- Identifier les metadatas (commentaires, modifications, …)
- Les commandes importantes (pull, commit, push, …)
- Pourquoi la gestion en configuration du code source
- Le travail en mode collaboratif
- La conservation des sources
- Les solutions du marché (git, …)
- Focus sur Git
- Accéder à Git et naviguer dans le code source
- La notion de repository et de branches
- Identifier les metadatas (commentaires, modifications, …)
- Les commandes importantes (pull, commit, push, …)
Les containers
- Pourquoi packager une application sous forme de containers
- Les composants associés aux containers
- Les différents moteurs de container (Docker, podman, ...)
- Les orchestrateurs de containers (Kubernetes, Openshift, GKE,...)
- Le Dockerfile et les images Docker
- Les Registries Docker
- Comment construire une image Docker
- Docker vs les orchestrateurs (que choisir ?)
L'intégration continue
- Pourquoi l'intégration continue
- Les composantes de l'intégration continue
- la plateforme d'intégration continue (Jenkins, GitLab, Bamboo, ...)
- les outils de build (Maven, Npm, ...)
- La gestion des dépendances (Nexus, Artifactory)
- Les tests (tests unitaires, tests de navigation, …)
- La qualité du code (SonarQube)
- Focus sur Jenkins
- Comment se connecter
- Naviguer dans Jenkins
- Comment créer un job Maven et produire une image Docker
- Construction du package XL Deploy en prévision du déploiement
- Les pipelines (Niveau 2/3)
Le déploiement continu
- Le déploiement continu
- Qu’est-ce que c’est ?
- Responsabilités
- Déploiement automatique
- Externalisation de l'environnement
- Déploiement d'un même package sur tous les environnements
- Fonctionnalité de gestion des variables en fonction de l'environnement
- Déploiement sur Kubernetes
- Architecture Kubernetes
- Les principaux objets Kubernetes
- Présentation de l'interface et du client mode commande (kubectl)
- Architecture XL Deploy
- Qu’est-ce qu’XL Deploy ?
- Notion d’application, d’environnement, de dictionnaire et d’infrastructure
- Comment se connecter à XL Deploy
- Naviguer dans l’interface
- Configurer le déploiement d'une application
- Déploiement du package en production sur Kubernetes
- Utilisation des TAGS (Niveau 2)
- Les orchestrateurs (Niveau 3)
Le monitoring/la supervision
- Pourquoi monitorer/superviser une application
- La collecte des données
- S'assurer du bon fonctionnement de l’application
- Identifier les anomalies sur une application
- Monitorer une application
- Mettre en place la supervision
- Identifier les améliorations possibles
- Identifier les erreurs
Amélioration continue
- Pourquoi l'amélioration continue
- Comment opérer l'amélioration continue
- La collecte les données
- La collecte des logs applicatives
- La consolidation des données et leur analyse
- Les outils de consolidation de données (ELK, Splunk, ...)
- Focus sur la stack ELK
- Comment se connecter
- Naviguer dans l'interface
- Accéder aux données et les analyser



