```mermaid graph TD A[Fondamentaux] -->|Compréhension de DevOps, Développement logiciel, OS| B[Outils de Version Control] B -->|Git, GitHub/GitLab| C[CI/CD] C -->|Continuous Integration| D[Continuous Integration] D -->|Gitlab-ci, Github-Actions, Jenkins, Travis CI| E[Continuous Delivery] E --> |Deploy|I E -->|Gitlab-ci, Github-actions, Docker| F[Conteneurisation et Orchestration] F -->|Docker, Kubernetes| I G[Infrastructure as Code] G -->|Terraform, Ansible| I H[Monitoring et Logging] -->|Prometheus, Grafana, Dynatrace| I[Services Cloud] I -->|AWS, Azure, Google Cloud| J[DevSecOps] J -->|Principes de Sécurité, Outils de Sécurité| Z[FIN] ``` # Cursus de Formation ## 0. Prérequis - Créer compte gitlab - Comprendre git "push pull commit merge..." - Application backend en Java/spring-boot (ou autre langage/framework) - Java 17 - Controller REST - Un petit service qui fait quelque chose ## 1. Fondamentaux - **Objectif** : Comprendre les principes de base du DevOps, du développement logiciel et des systèmes d'exploitation. - **Sujets** : - Philosophie DevOps - Cycles de vie du développement logiciel ## 2. Outils de Version Control - **Objectif** : Maîtriser les outils de contrôle de version. - **Sujets** : - Git (commandes de base, branches, fusion...) - Utilisation de GitLab (gestion de dépôts, merge requests...) ## 3. Continuous Integration (CI) - **Objectif** : Comprendre et mettre en oeuvre l'intégration continue. - **Sujets** : - Configuration de pipelines CI avec GitLab-ci - Un fichier gitlab-ci.yml - Build - Test - Package ## 4. Continuous Delivery (CD) - **Objectif** : Apprendre à déployer automatiquement le code en production. - **Sujets** : - Automatisation du déploiement avec GitLab-ci - Deploy sur EC2 ## 5. Services Cloud - **Objectif** : Comprendre et utiliser les services cloud. - **Sujets** : - AWS, gestion des ressources, meilleures pratiques - EC2, ECS, EKS, RDS, Route53, CloudFront, IAM, VPC, Lambda... ## 6. Conteneurisation et Orchestration - **Objectif** : Acquérir des compétences en conteneurisation et orchestration. - **Sujets** : - Utilisation de Docker pour la conteneurisation - Kubernetes pour l'orchestration des conteneurs ## 7. Infrastructure as Code (IaC) - **Objectif** : Gérer et provisionner l'infrastructure via le code. - **Sujets** : - Terraform pour la création et la gestion de l'infrastructure - Ansible pour l'automatisation des configurations ## 8. Monitoring et Logging - **Objectif** : Mettre en place des systèmes de monitoring et de logging. - **Sujets** : - Configuration et utilisation de Prometheus et Grafana pour le monitoring - Dynatrace pour le monitoring avancé des performances ## 9. DevSecOps - **Objectif** : Intégrer la sécurité dans le cycle DevOps. - **Sujets** : - Principes de sécurité en DevOps - Utilisation d'outils pour sécuriser l'infrastructure et les applications