Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

🎋 Bamboo (Atlassian) — Guide CI/CD DevOps

Bamboo automatise build, tests et déploiements (CI/CD) avec une forte intégration Atlassian (Jira/Bitbucket).

1.1

Vue d’ensemble

Ce qu’est Bamboo, quand l’utiliser, positionnement vs Jenkins/GitLab CI.

DevOpsCI/CDAtlassian
1.2

Concepts CI/CD

Pipelines, build/test/deploy, artefacts, triggers, branches, variables.

PipelineArtefactsTriggers
1.3

Architecture Bamboo

Server vs Agents, queues, capacités, isolation, HA/Data Center.

AgentsQueueHA
2.1

Plans / Stages / Jobs

Modùle Bamboo: Plan → Stages → Jobs → Tasks. Exemples concrets.

PlanStageJob
2.2

Déploiements (CD)

Deployment Projects, environnements (dev/stage/prod), permissions, rollback.

DeployEnvRelease
2.3

Intégrations Atlassian

Jira/Bitbucket, traçabilitĂ© commit→build→ticket, notifications & webhooks.

JiraBitbucketTrace
3.1

Stacks & écosystÚme

Java, Node, Python/Django, Docker, Kubernetes, Terraform, AWS


DockerAWSDjango

Sécurité & Gouvernance

Secrets, variables, permissions, audit, séparation des environnements.

RBACSecretsAudit
3.2

Performance & Scalabilité

ParallĂ©lisme, file d’attente, agents, cache, tuning, Data Center.

ScaleParallelTuning
3.3

Bonnes pratiques

Branches, templates, rĂ©utilisabilitĂ©, artefacts immuables, “promote” builds.

ImmutablePromoteReuse
4.1

Dépannage

Agents offline, builds bloqués, variables, timeouts, caches, droits.

LogsAgentsTimeout

Migration Jenkins → Bamboo

Mapping conceptuel, piÚges, stratégie de bascule, checklist entreprise.

MigrationCI/CDChecklist
1.1 Bamboo — dĂ©finition, usages, positionnement
Bamboo en 30 secondes

Bamboo est une plateforme CI/CD (Continuous Integration / Continuous Delivery) qui automatise les Ă©tapes build → test → package → deploy. Elle s’intĂšgre fortement avec Jira (traçabilitĂ©) et Bitbucket (Git).

But : transformer un “push Git” en un artefact livrable et potentiellement un dĂ©ploiement.
Idéal en entreprise Atlassian-first (Jira/Bitbucket déjà en place).
Catégorisation IDEO-Lab
DevOps CI/CD Automation Release Engineering
Diagramme “commit → prod”
                            Développeur
                            └─ git push / PR
                            │
                            ▌
                            Repo (Bitbucket/Git)
                            │  (trigger)
                            ▌
                            Bamboo Plan (CI)
                            ├─ Stage 1: Build
                            ├─ Stage 2: Tests
                            ├─ Stage 3: Package
                            └─ Artefacts (zip, jar, image docker)
                            │
                            ▌
                            Bamboo Deployment Project (CD)
                            ├─ Env: DEV
                            ├─ Env: STAGING
                            └─ Env: PROD
                            │
                            ▌
                            Infra (VM / K8s / Cloud)
                        
Ce que Bamboo “apporte”
  • Automatisation + standardisation du delivery
  • TraçabilitĂ© (tickets ↔ commits ↔ builds ↔ releases)
  • Gouvernance via permissions et environnements
Quand Bamboo est un bon choix ?
✅ Trùs pertinent si

  • Ton SI est dĂ©jĂ  outillĂ© avec Jira + Bitbucket (et Confluence).
  • Tu veux une CI/CD on-prem ou “entreprise” avec gouvernance.
  • Tu as besoin d’une sĂ©paration claire CI (Plans) vs CD (Deployments).
  • Tu veux des agents dĂ©diĂ©s (capacitĂ©s) sur des environnements contrĂŽlĂ©s.
⚠ Moins pertinent si

  • Tu veux un CI/CD ultra flexible et “script-first” type Jenkins + plugins.
  • Tu es 100% GitHub/GitLab (Actions / GitLab CI intĂ©grĂ©s nativement).
  • Tu cherches une solution “trĂšs cloud-native” sans serveur central (selon contexte).
RĂšgle simple : Bamboo brille dans un Ă©cosystĂšme Atlassian, Jenkins brille dans l’hyper-custom & plugins, GitLab/GitHub brillent dans l’intĂ©gration “repo-centric”.
Bamboo vs Jenkins vs GitLab CI (lecture rapide)
CritĂšreBambooJenkinsGitLab CI
PhilosophieUI + intĂ©gration Atlassian“tout est script” + pluginsRepo + YAML + plateforme intĂ©grĂ©e
Time-to-valueRapide si stack AtlassianVariable (setup lourd)TrĂšs bon si GitLab
GouvernanceBonne (permissions, env)Dépend config/pluginsBonne (RBAC, protected env)
CoĂ»tPayant (produit entreprise)OSS mais coĂ»t d’exploitationLicence selon Ă©dition
1.2 Concepts CI/CD (pipelines, artefacts, triggers)
Le pipeline : une chaüne “deterministic”

Un pipeline CI/CD est une suite d’étapes reproductibles. Le but est de rendre le delivery prĂ©dictible (mĂȘmes entrĂ©es → mĂȘmes sorties).

Étapes typiques
                            1) Checkout code
                            2) Restore cache (optionnel)
                            3) Install deps
                            4) Build / compile
                            5) Tests (unit, integration)
                            6) Quality gates (lint, coverage, SAST)
                            7) Package artefact (zip/jar/docker image)
                            8) Publish artefact (repo / registry)
                            9) Deploy (dev → stage → prod)
                        
Diagramme “quality gates”
                            Commit
                            │
                            ├─ Build ✅
                            ├─ Tests ✅
                            ├─ Lint ✅
                            ├─ Coverage >= 80% ? ✅
                            ├─ SAST critical ? ❌ -> STOP
                            └─ Publish artefact ✅
                        
IdĂ©e recrutement : “j’ai mis des quality gates” = tu parles la langue DevOps / production.
Artefacts : la sortie “immuable” du build

Un bon pipeline produit un artefact versionnĂ© et immuable (zip, wheel, jar, image docker). Ensuite, on promeut le mĂȘme artefact en dev → stage → prod (plutĂŽt que reconstruire).

ArtefactExemplesPourquoi c’est bien
Archive.zip (frontend build), .tar.gzSimple, rapide, facile Ă  publier
PackagePython wheel, npm packageDistribution interne / versionning strict
Image Dockerregistry/app:1.2.3DĂ©ploiement reproductible (mĂȘme runtime)
                    Exemple “promote” :
                    - Build produit: app:1.2.3
                    - Deploy DEV : app:1.2.3
                    - Validation QA
                    - Promote STAGE : app:1.2.3
                    - Promote PROD : app:1.2.3  (zéro rebuild)
                
Branches, PR, déclencheurs
Patterns classiques
  • Trunk-based : main + feature branches courtes
  • GitFlow : develop/release/hotfix (plus lourd)
  • Release branches : release/* + tags
Déclencheurs (triggers)
  • Push sur branche
  • CrĂ©ation / update de Pull Request
  • Schedule (nightly build)
  • Trigger downstream (pipeline chain)
Exemple “policy” simple
                            Branche feature/*
                            - CI rapide: lint + unit tests
                            Branche main
                            - CI complet: unit + integration + build image
                            Tag vX.Y.Z
                            - Release: publish + deploy staging + approval + prod
                        
Pro-tip : plus tu différencies les pipelines (rapide vs complet), plus tu gagnes en coût/temps.
Variables & Secrets (principes non négociables)
Variables
  • ParamĂ©trer environnements (URL API, flags, versions)
  • Centraliser des chemins, timeouts, options
  • Éviter le “copier-coller” de scripts
Secrets
  • Ne jamais committer de secrets
  • Utiliser vault/secret store si possible
  • Limiter la portĂ©e (par env)
Anti-patterns
                            ❌ AWS_SECRET_ACCESS_KEY dans un script
                            ❌ Mot de passe DB en clair dans un repo
                            ❌ MĂȘme secret pour DEV et PROD
                            ❌ Logs qui affichent les tokens (echo $TOKEN)
                        
Bon pattern
                            ✅ Variables par environnement
                            ✅ Rotation des secrets
                            ✅ Permissions minimales (least privilege)
                            ✅ Audit des accùs
                        
1.3 Architecture Bamboo (Server, Agents, Queue, HA)
Les briques
  • Bamboo Server : orchestration, UI, scheduler, permissions, stockage configs
  • Agents : exĂ©cutent rĂ©ellement les jobs (shell, docker, build tools)
  • Queue : tampon pour jobs en attente (quand agents occupĂ©s)
  • DB : mĂ©tadonnĂ©es, historique builds, rĂ©sultats
  • Artefacts : build outputs Ă  publier/consommer
À retenir : si les builds “rament”, le goulot est souvent agents (CPU/RAM/I/O) ou concurrence (trop de jobs).
SchĂ©ma d’architecture
                            +-------------------+
                            |   Bamboo Server   |
                            |  UI + Scheduler   |
                            +---------+---------+
                            |
                            job assignment
                            |
                            +-------------+--------------+
                            |                            |
                            +-------v--------+           +-------v--------+
                            |  Agent #1      |           |  Agent #2      |
                            | (docker, mvn)  |           | (node, pytest) |
                            +-------+--------+           +-------+--------+
                            |                            |
                            artefacts                    artefacts
                            |                            |
                            +-------------+--------------+
                            |
                            +-------v-------+
                            | Artefact store|
                            +---------------+
                        
Agents : le “compute layer” de Bamboo
Types d’agents
  • Local agent : sur le mĂȘme host que le server (dev / POC)
  • Remote agents : machines dĂ©diĂ©es (pattern entreprise)
  • Capacities : tags/capacitĂ©s dĂ©clarĂ©es (ex: “docker”, “java17”, “python3.12”)
Pourquoi les capacités sont cruciales ?
  • Garantit que les jobs partent sur le bon runtime
  • Évite les builds “flaky” (dĂ©pendances absentes)
  • Permet de contrĂŽler les licences/outils (Maven, JDK, Android SDK
)
Exemple de capacitĂ©s “pro”
                            Agent: build-linux-01
                            - docker=true
                            - java=17
                            - node=20
                            - python=3.12
                            - terraform=1.7
                            - awscli=2.x
                            - memory_gb=32
                        
Politique d’exĂ©cution
                            Job "Build Docker Image"
                            - requires: docker=true, memory_gb>=16
                            Job "Backend Tests"
                            - requires: python=3.12
                            Job "Terraform Plan"
                            - requires: terraform=1.7, awscli=2.x
                        
Scalabilité & haute disponibilité (vision)

En entreprise, l’objectif est de rendre la CI/CD rĂ©siliente (pannes) et scalable (pics de builds). La stratĂ©gie la plus simple : multiplier les agents + bien dimensionner le serveur.

BesoinApprocheIndicateurs
Pics de buildsAjouter des agents / augmenter la parallélisationQueue length, wait time
FiabilitéDB robuste, sauvegardes, monitoring, redondanceMTTR, disponibilité
Perf UI/APITuning JVM, I/O DB, purge historiquelatence UI, CPU server
Artefacts & stockage
Rùgles d’or
  • Artefacts = outputs du build, versionnĂ©s
  • Ne pas reconstruire entre env : on promeut le mĂȘme artefact
  • Nettoyage/purge : Ă©viter explosion stockage
Artefacts typiques
                            frontend-dist.zip
                            backend-wheel.whl
                            app.jar
                            docker image: registry/app:1.2.3
                            terraform plan file (si politique autorise)
                        
2.1 Plans / Stages / Jobs / Tasks — le modùle Bamboo
La hiérarchie
                    PLAN (pipeline CI)
                    ├─ STAGE 1
                    │    ├─ JOB A
                    │    │    ├─ Task 1 (checkout)
                    │    │    ├─ Task 2 (install deps)
                    │    │    └─ Task 3 (tests)
                    │    └─ JOB B (parallùle possible)
                    ├─ STAGE 2
                    │    └─ JOB C (build/package)
                    └─ ARTEFACTS (publish)
                
Lecture : un Stage est une “barriĂšre” (tout le stage doit rĂ©ussir pour passer au suivant), un Job s’exĂ©cute sur un Agent, une Task est une unitĂ© (script, plugin, test runner
).
Exemple complet : App Django + Front React + Docker
Stage 1 — CI rapide
                            JOB: backend-tests
                            - checkout
                            - python -m venv venv
                            - pip install -r requirements.txt
                            - pytest -q

                            JOB: frontend-tests
                            - checkout
                            - npm ci
                            - npm test
                        
Stage 2 — Build artefacts
                            JOB: package
                            - docker build -t registry/app:${bamboo.buildNumber} .
                            - docker push registry/app:${bamboo.buildNumber}
                            - publish artefact: build-metadata.json
                        
Artefacts (immutables)
                            registry/app:1234
                            build-metadata.json
                            - git_sha
                            - build_number
                            - timestamp
                            - dependencies digest
                        
Pro-tip : stocke le git_sha dans l’artefact (ou image label), pour remonter du prod vers le commit en 3 secondes.
Quality gates : Ă©viter le “green build” trompeur
GateOutilSeuilImpact
Lintflake8/ruff, eslint0 erreurQualité & standardisation
Coveragepytest-cov≄ 80%RĂ©duction risques rĂ©gression
SASTTrivy/Sonar/etc.0 criticalFail fast sécurité
Versionner proprement : buildNumber vs semver
Approche A (simple)
                            version = buildNumber
                            image = app:${buildNumber}
                        

Trùs pratique, mais moins “marketing”.

Approche B (SemVer)
                            tag Git: v1.8.0
                            image: app:1.8.0
                            image: app:1.8.0+build1234
                        

Plus “release engineering”, mieux pour produits/clients.

2.2 DĂ©ploiements (Deployment Projects) — dev/stage/prod
CI vs CD
Plans = CI
  • Build + tests + package
  • Produit des artefacts
  • DĂ©clenchĂ© par push/PR
Deployment Projects = CD
  • Prend un artefact “release”
  • DĂ©ploie sur plusieurs environnements
  • Gestion permissions & validations
                    Plan CI: build image docker + publish
                    │
                    └── Release R1234
                    ├─ Deploy DEV
                    ├─ Deploy STAGE (approval)
                    └─ Deploy PROD  (approval + window)
                
Environnements : isolation et gouvernance
EnvObjectifRĂšgles typiques
DEVFeedback rapideAuto-deploy, secrets “dev”, logs verbeux
STAGINGPré-prod réalisteApproval QA, données anonymisées, monitoring
PRODDisponibilitĂ©/risqueApproval Ops, fenĂȘtres, rollback, least privilege
Approvals, “promotion”, rollback
Approvals
  • Validation manuelle avant prod
  • RĂŽles (QA, Release manager, Ops)
  • Audit trail : qui a validĂ© quoi
Promotion (recommandé)
                            - MĂȘme artefact R1234
                            - Promu DEV → STAGE → PROD
                            - Pas de rebuild
                        
Rollback (stratégies)
  • Rollback rapide : redeploy artefact R1233
  • Feature flags : dĂ©sactiver fonctionnalitĂ© sans redeploy
  • DB migrations : plan “forward-only” + compat
PiĂšge classique : migrations DB non rĂ©tro-compatibles → rollback impossible.
Solution : migrations “expand/contract” et compat applicative.
Exemple de déploiement AWS (pattern)
                    Artefact: docker image registry/app:R1234

                    DEV:
                    - deploy ECS service (desiredCount=1)
                    - run smoke tests

                    STAGE:
                    - deploy ECS service (blue/green)
                    - approval QA

                    PROD:
                    - deploy blue/green (canary 10%)
                    - monitoring + auto rollback si erreurs
                

Tu peux remplacer ECS par EC2 (pull image + restart), ou K8s (kubectl apply / helm upgrade).

2.3 Intégrations Atlassian (Jira, Bitbucket, traçabilité)
Le “graal” entreprise : ticket → commit → build → release
                    Jira Issue: DEV-428
                    └─ Commit message: "DEV-428 add caching layer"
                    └─ Bamboo build #1234
                    └─ Release R1234
                    └─ Deployed to PROD
                
Valeur : audit, compliance, RCA (root cause analysis), post-mortems beaucoup plus simples.
Notifications (pattern)
  • Slack / Teams : build failed, deployment succeeded
  • Email : release approvals, incidents
  • Jira : transition automatique du ticket (selon policy)
Webhooks (pattern)
                    - Trigger build on push
                    - Notify external system on release
                    - Update status dashboards (Grafana/Statuspage-like)
                
3.1 Technologies supportées & exemples (Django, Docker, K8s
)
Stacks fréquentes en entreprise
StackBuild/TestPackagingDeploy
JavaMaven/Gradle + JUnitjar/warVM/K8s
Nodenpm/yarn + jestdist/zipCDN/K8s
Python (Django)pytest + ruffwheel / image dockerGunicorn/Nginx, ECS, K8s
Exemple pipeline Django “pro”
                    # backend job (agent: python=3.12)
                    python -m venv venv
                    source venv/bin/activate
                    pip install -r requirements.txt
                    ruff check .
                    pytest -q --maxfail=1
                    python manage.py check --deploy
                
Nice touch : manage.py check --deploy met une vibe “prod-ready”.
Docker build & publish (pattern)
                    docker build -t registry/ideolab-app:${bamboo.buildNumber} .
                    docker push registry/ideolab-app:${bamboo.buildNumber}

                    # option: tag "latest" seulement sur main
                
Infrastructure as Code (Terraform) — pattern safe
                    terraform fmt -check
                    terraform validate
                    terraform plan -out plan.tfplan

                    # apply seulement aprĂšs approval (staging/prod)
                    terraform apply plan.tfplan
                
Sécurité & Gouvernance (RBAC, secrets, audit)
RBAC : permissions par projets / plans / env
  • DĂ©finir qui peut voir, builder, dĂ©ployer, approuver
  • Verrouiller PROD : approvals + groupes restreints
  • Isoler secrets par environnement
Gestion des secrets : rùgles d’entreprise
                    ✅ Secrets par env (DEV != PROD)
                    ✅ Rotation + expiration
                    ✅ Accùs minimal (least privilege)
                    ✅ Masquage dans logs
                    ❌ Jamais de secrets dans le repo
                
Audit & conformité
  • Qui a lancĂ© un build ?
  • Qui a approuvĂ© une release ?
  • Quel commit exact est en prod ?
Bonus CV : “mise en place d’audit trail release” = trùs enterprise.
3.2 Performance & Scalabilité (agents, parallélisme, tuning)
KPIs Ă  monitorer
KPIPourquoiAction
Queue lengthJobs en attenteAjouter agents / réduire temps jobs
Build durationCoût + feedback loopParalléliser, cache deps, split pipelines
Flaky rateInstabilitéIsoler env, fix tests, deterministic builds
Stratégie agents (pragmatique)
  • 2 pools : fast CI (petits agents) + heavy builds (gros agents)
  • CapacitĂ©s strictes (docker/java/node/python)
  • Éviter la dĂ©rive : agents “pet” vs “cattle” (reprovision)
Cache : gagner x2 Ă  x10 sur le temps CI
                    Caches utiles:
                    - pip cache / wheels
                    - npm cache
                    - maven/gradle cache
                    - docker layer cache (si architecture le permet)
                
Attention : un cache mal gĂ©rĂ© peut crĂ©er des builds non reproductibles → purge rĂ©guliĂšre.
3.3 Bonnes pratiques CI/CD (enterprise-ready)
Les 10 rùgles qui font “pro”
  1. Builds déterministes (versions figées, lockfiles).
  2. Artefacts immuables et promotion entre env.
  3. Pipelines différenciés (rapide vs complet).
  4. Quality gates (lint/coverage/security).
  5. Secrets externalisés (pas dans repo).
  6. Observabilité (logs, métriques, alertes).
  7. Approvals prod + audit trail.
  8. Rollback plan documenté et testé.
  9. Templates / réutilisabilité (éviter duplication).
  10. Durée build optimisée (cache, parallélisme).
Release engineering : version, tags, changelog
                    - Tag Git = vérité (vX.Y.Z)
                    - Build produit artefact versionné
                    - Changelog auto (conventional commits)
                    - Déploiement prod = approval + window + monitoring
                
Une ligne “CV-ready” (Bamboo)
                    Mise en place de pipelines CI/CD Bamboo (build, tests, quality gates, artefacts immuables)
                    et déploiements multi-environnements (dev/stage/prod) avec traçabilité Jira/Bitbucket.
                

Tu peux rajouter la stack : Docker, AWS, Terraform, Python/Django, Node
 selon ton contexte.

4.1 Dépannage Bamboo (cas fréquents + actions)
Agents offline / jobs en attente
  • VĂ©rifier connectivitĂ© agent→server (ports, DNS, proxy)
  • VĂ©rifier capacitĂ©s (job exige docker=true mais agent ne l’a pas)
  • CPU/RAM saturĂ©s : augmenter ressources ou ajouter agents
Builds qui “flaky” ou timeouts
  • Isoler dĂ©pendances (versions figĂ©es)
  • Éviter reliance “rĂ©seau” instable (mirror, caches)
  • Augmenter timeouts uniquement aprĂšs avoir compris le goulot
AccÚs refusé / deploy impossible
  • VĂ©rifier RBAC sur Plan et Deployment project
  • VĂ©rifier droits “approval” (prod)
  • VĂ©rifier tokens/credentials (scopes minimaux)
Cache qui casse la reproductibilité
                    SymptĂŽmes:
                    - build OK hier, KO aujourd'hui sans changement
                    - dépendance différente installée
                    Actions:
                    - purge cache
                    - lockfiles stricts
                    - pin versions
                
Migration Jenkins → Bamboo (stratĂ©gie + mapping + checklist)
Mapping conceptuel
JenkinsBambooCommentaire
Pipeline (Jenkinsfile)Plan (Stages/Jobs/Tasks)Moins “code”, plus UI / templates
Agent/NodeAgent + capacitiesLes capacités remplacent beaucoup de logique
ArtifactsArtifactsPromote immuable recommandé
EnvironmentsDeployment projectsDécouplage CI/CD plus net
Stratégie de migration (safe)
  1. Commencer par 1 pipeline “pilote” (service non critique)
  2. Reproduire build+tests à l’identique (comparaison outputs)
  3. Mettre en place artefacts immuables + promotion
  4. Déployer DEV puis STAGE, et prod en dernier
  5. Basculer “repo triggers” progressivement
Conseil : garde Jenkins en “shadow mode” quelques semaines pour comparer et rassurer.
PiÚges fréquents
  • Scripts Jenkins trop spĂ©cifiques aux nodes (chemins, outils non standard)
  • Secrets gĂ©rĂ©s “à la main” → Ă  normaliser
  • Builds non dĂ©terministes (versions non figĂ©es)
  • Absence d’artefacts immuables (rebuild Ă  chaque env)
Checklist entreprise
ItemOK ?Notes
Agents dimensionnĂ©s (CPU/RAM) + capacities dĂ©finies⬜
Secrets externalisĂ©s + scopes minimaux⬜
Quality gates (lint/coverage/security)⬜
Artefacts immuables + promotion env⬜
Approvals prod + audit trail⬜
Cheat-sheet Bamboo (résumé opérationnel)
TL;DR
                Bamboo = CI/CD Atlassian

                CI:
                - Plans → stages → jobs → tasks
                - outputs = artefacts immuables

                CD:
                - Deployment projects → environments (dev/stage/prod)
                - approvals + audit

                Ops:
                - agents = compute (capacities)
                - monitor queue length, build duration, flaky rate
            
Une phrase “manager / recruteur”
“J’ai industrialisĂ© la chaĂźne de delivery avec Bamboo” : build/test/quality gates, production d’artefacts immuables, et dĂ©ploiements multi-environnements avec traçabilitĂ© Jira/Bitbucket.