Prérequis
Les participants doivent avoir des connaissances en développement.
Objectifs
- Comprendre l’implication de DevOps dans le développement des applications modernes.
- Comprendre les concepts de CI/CD.
- Comprendre les caractéristiques et concepts des microservices, API REST, cloud et stockage de données.
- Mettre en oeuvre un projet Git en mode collaboratif.
- Savoir containeuriser les applications dans des images Docker.
- Comprendre le déploiement et l’orchestration des conteneurs sur un cluster.
- Découvrir le fonctionnement et l’architecture de Kubernetes
- Savoir initialiser un cluster sous Kebernetes.
- Savoir gérer les objets et les contrôleurs Kubernetes.
- Identifier les étapes de l’intégration continue
- Comprendre l’architecture et le fonctionnement de Jenkins
- Savoir installer et configurer Jenkins.
- Savoir créer des jobs avec Jenkins.
- Comprendre le fonctionnement des outils SonarQube, Maven et Nexus.
- Mise en oeuvre d’un projet d’intégration continue.
Programme
1. Présentation de DevOps
- Introduction à DevOps
- Qu’est ce que DevOps
- Relation DevOps/Agile
- Aspect organisationnel
- Les pratiques DevOps
- Les outils DevOps
2. Développement des applications modernes
- L’architecture à microservices
- Les API REST
- Plateformes et concepts de données
- Les plateformes Cloud
- Les stratégies de déploiement
3.Gestion des version avec Git
- Apports et types des solutions de gestion des version.
- Structure des dépôts Git
- Les commandes de base Git
- Les branches Git
- Résolution de conflits
- Travaux pratiques : Gestion des dépôts Git.
4.Gestion des conteneurs avec Docker
- La technologie de conteneurisation
- Docker et les conteneurs
- Gestion des images docker
- Gestion des réseaux de conteneurs
- Gestion des volumes persistants.
5.Conteneurisation des applications
- Pourquoi et comment ?
- Etude des besoins de conteneurisation
- Les instructions Dockerfile
- Travaux pratiques : conteneurisation d’une application web.
6. Mise en place de pipelines CI/CD
- Jenkins et CI/CD
- Travaux pratiques : projet de CI/CD