---
# System prepended metadata

title: Devops Roadmap

---

```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
