Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

đŸ™ïž TeamCity (JetBrains) — Guide CI/CD DevOps

TeamCity est une plateforme CI/CD (on-prem + cloud) orientée pipelines, agents, build configuration, et une excellente intégration VCS (GitHub/GitLab/Bitbucket/Perforce
).

1.1

Vue d’ensemble

DĂ©finition, positionnement, cas d’usage, editions (On-Prem vs Cloud).

DevOpsCI/CDJetBrains
1.2

Architecture

Server + Build Agents, file d’attente, artefacts, DB, proxy, sĂ©curitĂ© rĂ©seau.

AgentsQueueOn-Prem
1.3

Build Config & Pipelines

Build configurations, steps, triggers, dependencies, templates, Kotlin DSL.

Kotlin DSLTemplatesTriggers
2.1

Intégration Git / VCS

GitHub/GitLab/Bitbucket, PR build, status checks, branch specs, monorepo.

GitHubGitLabPR checks
2.2

Agents & Pools

Installation agents, pools, requirements, auto-scale, Docker/K8s runners.

PoolsDockerScale
2.3

Artefacts & Déploiement

Publish artefacts, versionning, promote, build chain, deploy patterns.

ArtifactsReleasePromote

Sécurité & Gouvernance

Secrets, tokens VCS, RBAC, audit, isolation agents, supply chain.

RBACSecretsAudit
3.1

Performance & Scalabilité

ParallĂ©lisme, file d’attente, cache deps, tuning JVM, stockage artefacts.

ParallelCacheTuning
3.2

Bonnes pratiques

Builds deterministes, templates, Kotlin DSL, quality gates, promotion immuable.

QualityDSLImmutable
4.1

Dépannage

Agents offline, builds “stuck”, VCS auth, timeouts, caches, droits, proxy.

LogsAgentsProxy

Migration

Mapping Jenkins/Bamboo → TeamCity, stratĂ©gie de bascule, piĂšges, checklist.

MigrationCI/CDChecklist
4.2

Liens & ressources

Pages officielles JetBrains : produit, download, docs agents, cloud, licensing.

DocsDownloadCloud
1.1 TeamCity — dĂ©finition, Ă©ditions, positionnement
TeamCity en 30 secondes

TeamCity (JetBrains) est un serveur CI/CD qui orchestre des build configurations exécutées sur des build agents. Il gÚre : triggers VCS, étapes de build, artefacts, chaßnes de dépendances, templates, et une automation robuste en contexte entreprise.

But : obtenir un pipeline reproductible (build → test → package → publish → deploy), avec une supervision claire (historique, logs, artefacts, status checks).
Catégorisation IDEO-Lab
DevOps CI/CD Automation Release Engineering
Diagramme “VCS → agents → artefacts”
                            Developer
                            └─ git push / PR
                            │
                            ▌
                            VCS (GitHub/GitLab/Bitbucket)
                            │  (trigger)
                            ▌
                            TeamCity Server
                            ├─ Queue (builds en attente)
                            ├─ Build Configurations
                            ├─ Build Chains / Dependencies
                            └─ Artifacts + Reports
                            │
                            ▌
                            Build Agents (Linux/Windows/macOS)
                            ├─ steps: build/test/package
                            └─ publish artifacts
                        
Diff “pragmatique” vs Bamboo
  • TeamCity : forte culture build configs + templates + DSL Kotlin.
  • Bamboo : forte intĂ©gration Atlassian (Jira/Bitbucket) et sĂ©paration CI/CD “Plans vs Deployments”.
Éditions (On-Prem vs Cloud)
TeamCity On-Prem (self-hosted)
  • ContrĂŽle total (rĂ©seau, stockage, agents, compliance).
  • IntĂ©gration SSO/RBAC, proxy, topologies enterprise.
  • IdĂ©al quand la CI/CD doit rester “dans le SI”.
TeamCity Cloud (SaaS managé)
  • Ops simplifiĂ©s, agents gĂ©rĂ©s par JetBrains + possibilitĂ© d’agents self-hosted.
  • ModĂšle d’abonnement (committers / ressources). :contentReference[oaicite:1]{index=1}
Choix rapide : Cloud pour aller vite / rĂ©duire l’exploitation, On-Prem pour contrĂŽle, compliance, rĂ©seau privĂ©.
Quand TeamCity est un excellent choix ?
✅ Trùs pertinent si

  • Tu veux un CI/CD enterprise avec agents contrĂŽlĂ©s (OS, outils, licences).
  • Tu as des besoins de build chains (dĂ©pendances entre builds/services).
  • Tu aimes factoriser via templates ou Kotlin DSL (infrastructure CI “as code”).
  • Tu gĂšres du multi-plateforme (Linux/Windows/macOS) et des matrices de builds.
⚠ Moins pertinent si

  • Tu veux du “repo-centric YAML” pur (GitHub Actions / GitLab CI) sans serveur dĂ©diĂ©.
  • Tu cherches un outil ultra “plugins-first” (Jenkins) pour des cas trĂšs atypiques.
RĂšgle : TeamCity brille quand tu veux une CI/CD structurĂ©e, factorisĂ©e, et scalable via pools d’agents.
Comparatif express
CritĂšreTeamCityJenkinsBamboo
PhilosophieBuild configs + templates + Kotlin DSLScripts + plugins + JenkinsfileUI + intégration Atlassian
AgentsCentral (pools, requirements)Central (nodes/labels)Central (agents/capacities)
TraçabilitéTrÚs bonne (VCS statuses, historique)TrÚs bonne (selon config)TrÚs forte avec Jira/Bitbucket
Time-to-valueBon (UI + templates)Variable (setup lourd)Bon si Atlassian
1.2 Architecture TeamCity (Server, Agents, Queue, stockage)
Briques principales
  • TeamCity Server : UI, scheduler, permissions, metadata builds, intĂ©gration VCS.
  • Build Agents : exĂ©cutent les steps (compilation, tests, packaging).
  • Queue : builds en attente quand agents occupĂ©s.
  • DB : config + historique (selon install).
  • Artefacts : outputs (packages, images, rapports).
Lecture : TeamCity = orchestration centralisée + exécution distribuée (agents).
Schéma de référence
                            +---------------------+     assigns builds     +---------------------+
                            |   TeamCity Server   |----------------------->|   Agent Pool        |
                            |  UI + Scheduler     |                        |  Linux/Win/macOS    |
                            +----------+----------+                        +----------+----------+
                            | artifacts/reports                            |
                            v                                              v
                            +------------------+                          +------------------+
                            | Artifact Storage |<-------------------------| Build Steps       |
                            +------------------+                          +------------------+
                            
Agents & “requirements” (Ă©quivalent capacities/labels)
Pourquoi c’est critique
  • Garantir un environnement de build stable (versions outils).
  • Router les builds vers le bon pool (docker, android, java17
).
  • RĂ©duire les builds “flaky” (dĂ©pendances non prĂ©sentes).
Exemple (requirements)
                            Build Config: "docker-image"
                            Requirements:
                            - docker.server.version exists
                            - teamcity.agent.jvm.os.name = Linux
                            - env.MEM_GB >= 16

                            Build Config: "android"
                            Requirements:
                            - env.ANDROID_HOME exists
                            - teamcity.agent.jvm.os.name = Linux OR macOS
                        
Doc utile : installation / démarrage des agents TeamCity. :contentReference[oaicite:2]{index=2}
Réseau / Proxy / communication agent-server

En entreprise, TeamCity est souvent derriĂšre un proxy/reverse-proxy (TLS, headers, auth), et les agents doivent pouvoir joindre le server de maniĂšre fiable.

  • Stabiliser DNS/Certificates (TLS) et accĂšs sortant des agents.
  • Isoler les pools d’agents (prod vs non-prod) si besoin.
  • Durcir les permissions des comptes qui exĂ©cutent les builds.
Stockage & artefacts
Rùgles d’or
  • Artefacts = outputs immuables (reproductibilitĂ©).
  • Purge/retention : l’historique peut grossir vite (logs + artifacts).
  • Versionner les releases (tag + build number).
Artefacts typiques
                            frontend-dist.zip
                            backend-wheel.whl
                            app.jar
                            docker image: registry/app:1.2.3
                            reports: coverage.xml, junit.xml, sbom.json
                        
1.3 Build Configurations, Triggers, Templates, Kotlin DSL
Le modĂšle TeamCity
                    Project
                    ├─ Build Configuration A  (CI: tests)
                    ├─ Build Configuration B  (CI: build/package)
                    └─ Build Configuration C  (CD: deploy)   [pattern]

                    Build Configuration:
                    - VCS Root(s)
                    - Build Steps (runner: shell, Maven, Gradle, Docker, PowerShell...)
                    - Triggers (VCS, schedule, finish build...)
                    - Dependencies (snapshot / artifact)
                    - Parameters (env vars, secrets)
                    - Requirements (agent capabilities)
                
Point clĂ© : TeamCity sait chaĂźner les builds via dependencies (snapshot/artifact) → ça construit des “build chains” trĂšs propres.
Templates : factoriser (éviter duplication)
Pourquoi
  • Standardiser “lint + unit tests + reports” sur 30 services.
  • Centraliser les versions outils, timeouts, steps.
  • RĂ©duire la dĂ©rive (“snowflake pipelines”).
Pattern de template
                            Template: "python-ci"
                            - steps: venv, pip install, ruff, pytest
                            - artifacts: junit.xml, coverage.xml
                            - parameters: PY_VERSION, REQUIREMENTS_FILE
                            - requirements: python exists

                            Build Config "svc-users" uses template "python-ci"
                            Build Config "svc-billing" uses template "python-ci"
                        
Kotlin DSL : CI “as code”

TeamCity peut définir projets/build configs via Kotlin DSL, utile pour versionner la CI et reviewer les changements comme du code (PR, audit).

                    // Vue conceptuelle (pseudo)
                    project {
                    buildType("Backend_Tests") { steps { ... } triggers { ... } }
                    buildType("Docker_Build") { dependencies { ... } }
                    }
                
Approche pro : UI pour prototyper → puis DSL pour stabiliser/versionner.
Exemple complet : Django + React + Docker
Build Config A — Tests
                            Steps:
                            - checkout
                            - python -m venv venv
                            - pip install -r requirements.txt
                            - ruff check .
                            - pytest -q --maxfail=1
                            Artifacts:
                            - junit.xml
                            - coverage.xml
                        
Build Config B — Build image
                            Steps:
                            - docker build -t registry/app:%build.number% .
                            - docker push registry/app:%build.number%
                            Artifacts:
                            - build-metadata.json
                            Dependencies:
                            - snapshot: Build Config A
                        
Build Config C — Deploy (pattern)
                            Trigger:
                            - on finish Build Config B (main branch)
                            Steps:
                            - deploy to DEV (auto)
                            - smoke tests
                            - manual approval STAGE
                            - manual approval PROD
                            Artifact dependency:
                            - pull registry/app:%dep.B.build.number%
                        
IdĂ©e forte : “promote” la mĂȘme image (immutable) entre environnements.
2.1 Intégration VCS (GitHub/GitLab/Bitbucket/Perforce
)
VCS Roots : standardiser l’accùs aux repos
  • Centraliser auth (tokens) + permissions (scopes minimaux).
  • DĂ©finir branch specs (main, feature/*, release/*).
  • Activer status reporting vers la plateforme (checks / commit status).
TeamCity supporte un large panel d’intĂ©grations VCS (GitHub/GitLab/Bitbucket/Perforce/SVN
). :contentReference[oaicite:3]{index=3}
PR builds : “quality gate” avant merge
                    Pull Request opened
                    └─ Trigger CI "fast"
                    - lint
                    - unit tests
                    - quick build
                    └─ Report status to Git provider
                    - ✅ merge allowed
                    - ❌ merge blocked
                

Objectif : feedback en minutes, pas en heures.

Monorepo : ne pas builder tout le repo Ă  chaque commit
  • DĂ©tecter chemins modifiĂ©s → dĂ©clencher uniquement les builds concernĂ©s.
  • Build matrices (services x versions) si besoin.
  • Cache agressif (deps) + pipelines “fast/slow”.
Pro-tip : sĂ©pare “CI rapide” vs “CI exhaustive” pour garder un cycle de feedback court.
2.2 Agents, Pools & Auto-scale
Installation des agents (vision opérationnelle)

En prod, on installe des agents sur des machines dédiées (VM/bare metal/K8s nodes) pour maßtriser CPU/RAM/disque et stabiliser les builds.

Doc officielle : “Install and Start TeamCity Agents”. :contentReference[oaicite:4]{index=4}
                    Bonnes pratiques:
                    - 1 pool "fast CI" (petites VM)
                    - 1 pool "heavy" (grosse VM pour docker builds)
                    - 1 pool "windows" si besoin
                    - 1 pool "macOS" si besoin (iOS/builds)
                
Pools : isoler & scaler
PoolUsageRequirements typiques
fast-ciLint + unit testspython/node, RAM 4–8GB
docker-buildImages Dockerdocker, RAM 16–64GB, SSD
windows.NET / MSBuildWindows + toolchain
Docker/K8s : pattern moderne
                    Option A: Agent VM + Docker
                    - stable, simple
                    - bon pour enterprise networks

                    Option B: Agents éphémÚres (auto-scale)
                    - agents up/down selon la queue
                    - attention Ă  la gestion cache & secrets
                
Policies “pro”
  • ExĂ©cuter les builds avec des comptes Ă  privilĂšges minimaux.
  • Durcir la chaĂźne supply chain (SBOM, scan images, dĂ©pendances).
  • Tracer les artefacts (git_sha + build number + timestamp).
2.3 Artefacts, Build Chains & Déploiement (patterns)
Artefacts immuables : la base du “promote”
                    CI build -> produit:
                    - docker image registry/app:1.2.3+build1234
                    - build-metadata.json (git_sha, buildNumber, deps digest)
                    Puis:
                    - deploy DEV -> STAGE -> PROD (mĂȘme artefact)
                
Résultat : moins de surprises : prod = exactement ce qui a été testé.
Build chains : snapshot vs artifact dependency
TypeButQuand
Snapshot dependencyAssurer cohérence de révision entre buildsMicroservices / monorepo / pipeline chain
Artifact dependencyRĂ©cupĂ©rer outputs d’un build prĂ©cĂ©dentDeploy qui consomme l’artefact CI
DĂ©ploiement : patterns (sans “opinion” unique)
                    Pattern 1: Deploy via SSH/Ansible
                    - pull artefact
                    - restart service
                    - smoke tests

                    Pattern 2: Deploy K8s (helm/kubectl)
                    - helm upgrade --install
                    - canary + rollback

                    Pattern 3: Deploy Cloud (ECS/EC2)
                    - update task definition / ASG
                    - blue/green
                
Rapports (qualité) : JUnit, coverage, scans
  • JUnit : visibilitĂ© tests et erreurs rĂ©currentes.
  • Coverage : seuils (quality gate) et dĂ©tection rĂ©gressions.
  • Security scans : dĂ©pendances, images Docker, SBOM.
Sécurité & Gouvernance (secrets, RBAC, supply chain)
RBAC : qui peut faire quoi ?
  • Permissions par projets/build configs.
  • Limitations sur actions sensibles (deploy, approvals, paramĂštres).
  • Audit des changements CI (templates/DSL).
Secrets : rÚgles non négociables
                    ✅ Tokens VCS scopes minimaux
                    ✅ Secrets par env (DEV != PROD)
                    ✅ Masquage dans logs
                    ✅ Rotation/expiration
                    ❌ Jamais dans le repo
                
Supply chain (bonus “enterprise”)
  • SBOM (ex: CycloneDX/SPDX) et scans dĂ©pendances.
  • Scan images Docker (Trivy/Grype) avant registry/prod.
  • Signer artefacts (si politique) + provenance.
3.1 Performance & Scalabilité (KPIs, cache, tuning)
KPIs Ă  suivre
KPILectureAction
Queue lengthSaturation agentsAjouter agents / split pipelines
Build durationFeedback loopCache deps, parallĂ©lisme, steps “fast/slow”
Flaky rateInstabilitéBuilds deterministes, isolation env
Cache (gains x2 Ă  x10)
                    Caches typiques:
                    - pip/wheels
                    - npm/yarn
                    - maven/gradle
                    - docker layer cache (selon stratégie)
                
Attention : cache mal gĂ©rĂ© = builds non reproductibles → purge/retention.
Stratégie agents (pragmatique)
  • Pool “fast CI” (petits agents) + pool “heavy builds” (gros agents).
  • Conserver les images/outils cohĂ©rents (golden images).
  • Agents Ă©phĂ©mĂšres si auto-scale (attention cache/secrets).
3.2 Bonnes pratiques TeamCity (enterprise-ready)
Les rùgles qui font “pro”
  1. Builds déterministes (versions figées, lockfiles).
  2. Templates / Kotlin DSL pour standardiser.
  3. Artefacts immuables + promotion.
  4. Fast CI vs Full CI (feedback rapide).
  5. Secrets externalisés (scopes minimaux).
  6. Observabilité (reports, logs, trending).
  7. Approvals en prod + audit trail.
  8. Rollback plan testé (pas juste théorique).
  9. Pools isolés (heavy builds vs fast).
  10. Retention sur logs/artefacts (coût/stockage).
Quality gates (exemples)
GateOutilSeuilBut
Lintruff/eslint0 erreurQualité
Coveragepytest-cov≄ 80%RĂ©gression
SASTscan deps/images0 criticalSécurité
Une ligne CV-ready
                    Mise en place de pipelines CI/CD TeamCity (templates, build chains, quality gates, artefacts immuables),
                    avec orchestration multi-agents (pools/requirements) et déploiements multi-environnements.
                
4.1 Dépannage (cas fréquents + actions)
Agents offline / queue qui monte
  • VĂ©rifier network/DNS/TLS (agent → server).
  • VĂ©rifier requirements : le build exige “docker” mais pool sans docker.
  • CPU/RAM/IO saturĂ©s : ajouter agents ou revoir pipeline.
Auth VCS / status checks
  • Token expirĂ© / scopes insuffisants → renouveler + limiter droits.
  • Branch specs trop restrictives → build non dĂ©clenchĂ©.
  • PR builds : vĂ©rifier hooks / triggers + mapping repo.
Build “stuck” / timeouts / flaky
  • RĂ©duire dĂ©pendances rĂ©seau (mirrors + caches).
  • Fixer versions outils/dĂ©pendances.
  • ParallĂ©liser, dĂ©couper steps, rĂ©duire “heavy builds” sur PR.
Cache qui casse la reproductibilité
                    SymptĂŽmes:
                    - build OK hier, KO aujourd'hui sans changement
                    Actions:
                    - purge cache
                    - lockfiles stricts
                    - pin versions
                
Migration Jenkins/Bamboo → TeamCity (mapping + stratĂ©gie + checklist)
Mapping conceptuel
JenkinsBambooTeamCityNotes
Pipeline (Jenkinsfile)Plan (Stages/Jobs)Build Config(s) + DependenciesTeamCity préfÚre découper en build chain
Node/LabelAgent/CapabilitiesAgent Pools + RequirementsIsoler heavy builds
ArtifactsArtifactsArtifacts (+ artifact dependency)Promote immuable recommandé
Stratégie safe (entreprise)
  1. Pilote sur un service non critique
  2. Reproduire CI à l’identique (tests/outputs)
  3. Factoriser via templates / DSL
  4. Mettre en place artefacts immuables + promotion
  5. Basculer triggers VCS progressivement
PiÚges fréquents
  • Builds non dĂ©terministes (versions non figĂ©es).
  • Secrets dans scripts → refactor paramĂštres sĂ©curisĂ©s.
  • Monorepo : builds dĂ©clenchĂ©s “trop large”.
  • Cache non maĂźtrisĂ© → flaky builds.
Checklist
ItemOK ?Notes
Agents/pools dimensionnĂ©s + requirements dĂ©finis⬜
Templates / DSL pour standardiser⬜
Quality gates (lint/coverage/security)⬜
Artefacts immuables + promotion⬜
RBAC + audit changes CI⬜
Cheat-sheet TeamCity (résumé opérationnel)
TL;DR
                TeamCity = CI/CD JetBrains

                Core:
                - Server (orchestration) + Agents (execution)
                - Build Configurations + Steps + Triggers
                - Templates / Kotlin DSL (CI as code)
                - Dependencies (snapshot/artifact) => build chains

                Ops:
                - Pools + Requirements => routing
                - Monitor queue length, build duration, flaky rate
                - Cache deps + artefacts immuables + promotion
            
Phrase “recruteur”
Industrialisation CI/CD avec TeamCity : templates/DSL, build chains, quality gates, orchestration multi-agents (pools/requirements) et promotion d’artefacts immuables.