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(dossiersapp/,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.
- Branches :
- 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.
- Configuration du repo : protections sur
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-builddans 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-scanetdocker-pushdans 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]