đ Bamboo (Atlassian) â Guide CI/CD DevOps
Bamboo automatise build, tests et déploiements (CI/CD) avec une forte intégration Atlassian (Jira/Bitbucket).
Vue dâensemble
Ce quâest Bamboo, quand lâutiliser, positionnement vs Jenkins/GitLab CI.
DevOpsCI/CDAtlassianConcepts CI/CD
Pipelines, build/test/deploy, artefacts, triggers, branches, variables.
PipelineArtefactsTriggersArchitecture Bamboo
Server vs Agents, queues, capacités, isolation, HA/Data Center.
AgentsQueueHAPlans / Stages / Jobs
ModĂšle Bamboo: Plan â Stages â Jobs â Tasks. Exemples concrets.
PlanStageJobDéploiements (CD)
Deployment Projects, environnements (dev/stage/prod), permissions, rollback.
DeployEnvReleaseIntégrations Atlassian
Jira/Bitbucket, traçabilitĂ© commitâbuildâticket, notifications & webhooks.
JiraBitbucketTraceStacks & écosystÚme
Java, Node, Python/Django, Docker, Kubernetes, Terraform, AWSâŠ
DockerAWSDjangoSécurité & Gouvernance
Secrets, variables, permissions, audit, séparation des environnements.
RBACSecretsAuditPerformance & Scalabilité
ParallĂ©lisme, file dâattente, agents, cache, tuning, Data Center.
ScaleParallelTuningBonnes pratiques
Branches, templates, rĂ©utilisabilitĂ©, artefacts immuables, âpromoteâ builds.
ImmutablePromoteReuseDépannage
Agents offline, builds bloqués, variables, timeouts, caches, droits.
LogsAgentsTimeoutMigration Jenkins â Bamboo
Mapping conceptuel, piÚges, stratégie de bascule, checklist entreprise.
MigrationCI/CDChecklistBamboo 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).
Idéal en entreprise Atlassian-first (Jira/Bitbucket déjà en place).
Catégorisation IDEO-Lab
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).
Bamboo vs Jenkins vs GitLab CI (lecture rapide)
| CritĂšre | Bamboo | Jenkins | GitLab CI |
|---|---|---|---|
| Philosophie | UI + intĂ©gration Atlassian | âtout est scriptâ + plugins | Repo + YAML + plateforme intĂ©grĂ©e |
| Time-to-value | Rapide si stack Atlassian | Variable (setup lourd) | TrĂšs bon si GitLab |
| Gouvernance | Bonne (permissions, env) | Dépend config/plugins | Bonne (RBAC, protected env) |
| CoĂ»t | Payant (produit entreprise) | OSS mais coĂ»t dâexploitation | Licence selon Ă©dition |
Liens officiels (Atlassian)
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 â
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).
| Artefact | Exemples | Pourquoi câest bien |
|---|---|---|
| Archive | .zip (frontend build), .tar.gz | Simple, rapide, facile Ă publier |
| Package | Python wheel, npm package | Distribution interne / versionning strict |
| Image Docker | registry/app:1.2.3 | DĂ©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
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
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
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.
| Besoin | Approche | Indicateurs |
|---|---|---|
| Pics de builds | Ajouter des agents / augmenter la parallélisation | Queue length, wait time |
| Fiabilité | DB robuste, sauvegardes, monitoring, redondance | MTTR, disponibilité |
| Perf UI/API | Tuning JVM, I/O DB, purge historique | latence 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)
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)
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
Quality gates : Ă©viter le âgreen buildâ trompeur
| Gate | Outil | Seuil | Impact |
|---|---|---|---|
| Lint | flake8/ruff, eslint | 0 erreur | Qualité & standardisation |
| Coverage | pytest-cov | ℠80% | Réduction risques régression |
| SAST | Trivy/Sonar/etc. | 0 critical | Fail 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.
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
| Env | Objectif | RĂšgles typiques |
|---|---|---|
| DEV | Feedback rapide | Auto-deploy, secrets âdevâ, logs verbeux |
| STAGING | Pré-prod réaliste | Approval QA, données anonymisées, monitoring |
| PROD | DisponibilitĂ©/risque | Approval 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
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).
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
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)
Stacks fréquentes en entreprise
| Stack | Build/Test | Packaging | Deploy |
|---|---|---|---|
| Java | Maven/Gradle + JUnit | jar/war | VM/K8s |
| Node | npm/yarn + jest | dist/zip | CDN/K8s |
| Python (Django) | pytest + ruff | wheel / image docker | Gunicorn/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
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
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 ?
KPIs Ă monitorer
| KPI | Pourquoi | Action |
|---|---|---|
| Queue length | Jobs en attente | Ajouter agents / réduire temps jobs |
| Build duration | Coût + feedback loop | Paralléliser, cache deps, split pipelines |
| Flaky rate | Instabilité | 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)
Les 10 rĂšgles qui font âproâ
- Builds déterministes (versions figées, lockfiles).
- Artefacts immuables et promotion entre env.
- Pipelines différenciés (rapide vs complet).
- Quality gates (lint/coverage/security).
- Secrets externalisés (pas dans repo).
- Observabilité (logs, métriques, alertes).
- Approvals prod + audit trail.
- Rollback plan documenté et testé.
- Templates / réutilisabilité (éviter duplication).
- 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.
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
Mapping conceptuel
| Jenkins | Bamboo | Commentaire |
|---|---|---|
| Pipeline (Jenkinsfile) | Plan (Stages/Jobs/Tasks) | Moins âcodeâ, plus UI / templates |
| Agent/Node | Agent + capacities | Les capacités remplacent beaucoup de logique |
| Artifacts | Artifacts | Promote immuable recommandé |
| Environments | Deployment projects | Découplage CI/CD plus net |
Stratégie de migration (safe)
- Commencer par 1 pipeline âpiloteâ (service non critique)
- Reproduire build+tests Ă lâidentique (comparaison outputs)
- Mettre en place artefacts immuables + promotion
- Déployer DEV puis STAGE, et prod en dernier
- Basculer ârepo triggersâ progressivement
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
| Item | OK ? | 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 | ⏠|
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
