Bootcamp Intensif DevOps & DevSecOps – Pipeline CI/CD sur AWS





Vue d’ensemble

  • Format : 10 jours (5 week-ends), samedi & dimanche 9h–14h (5h/jour, 50h total).
  • Focus : pipeline CI/CD complet et sécurisation (DevSecOps).
  • Fil rouge :
    • Application containerisée déployée sur Kubernetes (EKS) via Helm + ArgoCD (GitOps).
    • Pipeline Jenkins : Git → Build → Tests → SAST/SCA → Docker → Scan image → Déploiement GitOps.
    • Terraform pour l’infrastructure AWS (EKS/ECR) et introduction à la sécurité IaC.

Week-end 1 – DevOps, DevSecOps & Git

Jour 1 (Samedi) – Culture DevOps & pipeline

Objectif : Comprendre la culture DevOps / DevSecOps et la structure d’un pipeline CI/CD moderne.

  • Concepts :
    • SDLC, DevOps vs traditionel, rôle de l’automatisation.
    • DevSecOps : « shift left », sécurité intégrée à chaque étape du pipeline. [web:31][web:32][web:38]
    • Pipeline type : Plan → Code → Build → Test → Release → Deploy → Operate → Monitor. [web:35][web:41]
  • Pipeline DevSecOps cible :
    • Lint & tests.
    • SAST & SCA (analyse code + dépendances). [web:31][web:33]
    • Build image Docker & scan image. [web:31][web:40]
    • Déploiement vers Kubernetes via GitOps (ArgoCD).
    • Tests DAST sur environnement staging. [web:35][web:41]
  • Atelier :
    • Setup environnement : VM ou cloud, installation git, docker, kubectl, terraform, awscli.
    • Création du monorepo devops-devsecops-bootcamp (dossiers app/, infra/, k8s/, gitops/, .jenkins/).

Jour 2 (Dimanche) – Git avancé & workflows pour CI/CD & GitOps

Objectif : Mettre en place un workflow Git adapté aux pipelines et au GitOps.

  • Concepts :
    • Branches : main, develop, feature/*, branches d’environnements (env/dev, env/prod).
    • GitFlow vs trunk-based, PR/MR, stratégies de merge.
    • Hooks pré-commit / pré-push pour linters et tests rapides.
  • Atelier :
    • Configuration du repo : protections sur main, règles de review, templates de PR.
    • Mise en place des hooks pré-commit (lint, tests unitaires rapides).
    • Simulation de PR de feature jusqu’au merge sur develop.

Week-end 2 – Jenkins CI & DevSecOps (Code & Build)

Jour 3 (Samedi) – Jenkins & pipeline CI

Objectif : Mettre en place Jenkins et un pipeline de base Code → Build → Test.

  • Concepts :
    • CI/CD, déclencheurs (webhooks, cron), agents Jenkins.
    • Jobs freestyle vs pipelines déclaratifs (Jenkinsfile).
  • Atelier :
    • Installation de Jenkins (Docker ou VM) et configuration initiale.
    • Connexion au repo Git (webhook GitHub/GitLab).
    • Création d’un Jenkinsfile avec stages : checkout, lint, test.
    • Exécution automatique sur chaque commit de la branche develop.

Jour 4 (Dimanche) – DevSecOps sur Code : SAST & SCA

Objectif : Intégrer la sécurité au niveau Code et dépendances dans le pipeline.

  • Concepts DevSecOps :
    • SAST : analyse statique du code à chaque PR (vulnérabilités, mauvaises pratiques). [web:31][web:35]
    • SCA : analyse des dépendances et licences (CVE). [web:33][web:38]
    • Gestion des secrets dans le code, politiques de sécurité (fail pipeline si vulnérabilité critique).
  • Atelier :
    • Intégration d’un outil SAST (ex. SonarQube/Trivy code/etc.) dans le Jenkinsfile.
    • Ajout d’un stage SCA pour scanner les dépendances de l’application.
    • Configuration des seuils : pipeline échoue si vulnérabilité de sévérité haute ou critique.

Week-end 3 – Docker, Registry & DevSecOps sur images

Jour 5 (Samedi) – Docker & images sécurisées

Objectif : Containeriser l’application avec de bonnes pratiques de sécurité.

  • Concepts :
    • Dockerfile, multi-stage builds, images minimales.
    • Utiliser un user non-root, gestion des permissions.
    • Secrets & configuration : env vars, fichiers montés, éviter les secrets hardcodés.
  • Atelier :
    • Écriture d’un Dockerfile sécurisé pour l’application.
    • Build local de l’image et tests basiques.
    • Ajout d’un stage docker-build dans le Jenkinsfile.

Jour 6 (Dimanche) – Registry, scan d’images & AWS

Objectif : Pousser les images vers ECR et scanner les vulnérabilités.

  • Concepts :
    • Registry & ECR : login, push, tags d’images.
    • Image scanning : outils type Trivy ou scanner natif ECR. [web:33][web:40]
    • Politiques DevSecOps : bloquer le déploiement si image vulnérable.
    • Introduction à AWS : IAM de base, aperçu VPC/EKS.
  • Atelier :
    • Création d’un repository ECR et configuration des credentials Jenkins.
    • Ajout de stages docker-scan et docker-push dans le pipeline.
    • Condition : push ECR uniquement si le scan d’image est OK (pas de vulnérabilité critique).

Week-end 4 – Kubernetes, Helm, ArgoCD & GitOps

Jour 7 (Samedi) – Kubernetes & Helm

Objectif : Déployer l’application sur Kubernetes (local ou EKS) via Helm.

  • Concepts :
    • Rappels Kubernetes : Pods, Deployments, Services, ConfigMaps, Secrets, Ingress.
    • Helm : structure d’un chart, templates, valeurs.
    • Environnements : values-dev.yaml, values-prod.yaml.
  • Atelier :
    • Création d’un chart Helm pour l’application.
    • Déploiement sur un cluster local (kind/minikube) ou EKS déjà provisionné.
    • Paramétrage des valeurs pour dev vs prod (repliques, ressources, URLs…).

Jour 8 (Dimanche) – ArgoCD & GitOps

Objectif : Mettre en place GitOps sur Kubernetes avec ArgoCD.

  • Concepts :
    • GitOps : Git comme source de vérité, reconciliation loop, gestion du drift. [web:24][web:28]
    • ArgoCD : Applications, App of Apps, sync policies (auto / manuel). [web:27]
    • Sécurité : RBAC ArgoCD, approbations manuelles, promotion via PR entre branches env.
  • Atelier :
    • Installation d’ArgoCD sur le cluster.
    • Création d’une Application ArgoCD pointant vers le repo Git (chart Helm + valeurs).
    • Scénario GitOps : modification du tag d’image dans le repo → ArgoCD déploie automatiquement sur EKS.

Week-end 5 – Terraform, IaC Security & Pipeline DevSecOps complet

Jour 9 (Samedi) – Terraform sur AWS & sécurité IaC

Objectif : Provisionner l’infra AWS avec Terraform et sécuriser l’IaC.

  • Concepts :
    • Terraform : providers, state, modules, backend distant (S3 + DynamoDB). [web:21]
    • Modules pour VPC, EKS, ECR, IAM (patterns standard). [web:22][web:25]
    • DevSecOps sur IaC : scans Terraform (tflint, checkov…), policy as code. [web:34][web:38][web:43]
  • Atelier :
    • Écriture (ou utilisation) d’un module Terraform minimal pour EKS/ECR.
    • Ajout d’un job Jenkins pour valider Terraform (format, validate, plan).
    • Intégration d’un scanner IaC dans le pipeline (fail si ressources non conformes).

Jour 10 (Dimanche) – Pipeline DevSecOps de bout en bout (projet final)

Objectif : Assembler tous les composants en un pipeline DevSecOps complet.

  • Pipeline final :
    • Déclenchement sur PR/commit dans Git.
    • Stages :
      • Lint & tests unitaires.
      • SAST & SCA sur le code.
      • Build Docker & scan image.
      • Push vers ECR si image OK.
      • Mise à jour des manifests/values GitOps (tag image) dans le repo.
      • ArgoCD déploie sur EKS (auto ou après approbation).
      • Tests DAST sur l’environnement staging/preprod. [web:35][web:41]
  • Atelier :
    • Écriture d’un Jenkinsfile complet intégrant qualité + sécurité + déploiement.
    • Simulation de bout en bout : changement de code → déploiement sécurisé sur cluster.
    • Discussion finale : monitoring, alerting, logs, et amélioration continue en DevSecOps. [web:31][web:40]