Jenkins Shared Platform
2026-07-13T01:57:50.394Z

Overview
The enterprise Jenkins Shared Platform (Phase 1) serves 10+ R&D teams with a unified Controller + multi-Agent pool CI/CD stack deployed on VMs. Build, image, and release responsibilities are split across dedicated execution nodes and centrally scheduled by the Jenkins Controller—avoiding resource contention and environment pollution from a single overloaded node.
- Stable, reusable pipeline environments (Java / Docker / Qt / Deploy)
- Webhook integration with Git platforms for automatic Push / Merge / Tag triggers
- End-to-end delivery via Nexus, Harbor, and Test/Production environments
1. User Access Layer
| Component | Role |
|---|---|
| R&D Teams (10+) | Developers access Jenkins via browser |
| Browser / Client | View pipelines, manual triggers, approvals |
| Nginx Reverse Proxy | HTTPS, SSL certificates, internal domain |
2. Code Source & Triggers
| Component | Role |
|---|---|
| Git Platforms | GitLab, Codeup, and other Git repos (branches, MR, tags) |
| Webhook Triggers | Push, Merge, Tag events callback to Jenkins |
Webhook requests enter Jenkins through Nginx; the Controller parses events and matches the corresponding Job / Pipeline. Each team configures webhooks in its own repository—no per-project Jenkins deployment required.
3. Jenkins Core Layer
The Jenkins Controller is the platform control plane—responsible for scheduling and governance, not actual build execution.
Core capabilities
- User & permission management (isolated by team / project)
- Credential management (Git, Harbor, deploy keys, etc.)
- Pipeline definition & versioning
- Job scheduling & queue
- Plugin management & audit logging
4. Agent Resource Pool
1. Linux Java Agent Pool — linux-java
- Purpose: Java / Maven / Gradle / JDK compile, unit tests, artifact packaging
- Notes: On-demand scaling; carries most backend and middleware build load
2. Docker Build Agent Pool — docker-build
- Purpose: Docker / BuildKit image builds
- Notes: Isolated from Java agents to avoid Docker daemon and build cache polluting compile environments
3. Windows Qt Agent Pool — windows-qt
- Purpose: Qt / MSVC native builds, installers, code signing
- Notes: For PC Qt desktop apps; retains Windows native toolchain
4. Deploy Agent Pool — deploy
- Purpose: Test / production releases, ops scripts
- Notes: Separate permissions; deploy operations isolated from build environments
5. Supporting Infrastructure
| Facility | Role |
|---|---|
| Nexus Private Repository | Maven / npm / generic artifacts; dependency cache & internal packages |
| Harbor Image Registry | Docker image registry for build outputs |
| Code Repository | GitLab, Codeup, etc. |
| Environments | Test and Production as Deploy Agent targets |
Build stages pull dependencies from Nexus; image stages push to Harbor; deploy stages publish artifacts to target environments—forming a closed loop.
6. Typical Pipeline Flow
| Stage | Executor | Description |
|---|---|---|
| 1. Pull Code | Any Agent | Fetch branch or tag from Git |
| 2. Compile / Test / Package | linux-java |
Compile, unit test, package JAR/WAR artifacts |
| 3. Build Image | docker-build |
Build image from Dockerfile |
| 4. Push Image → Harbor | docker-build |
Push image with version tag |
| 5. Deploy to Test | deploy |
Release to test env; smoke / integration checks |
| 6. Deploy to Production | deploy |
Production release after approval (optional manual gate) |
Summary
The Jenkins shared platform is built around light Controller + specialized Agent pools + standard pipelines, covering the full DevOps path from code commit to Test/Production release. Teams focus on Pipeline definitions and business scripts; scheduling, environment isolation, and artifact flow are handled by the platform—laying the groundwork for cloud-native and multi-platform builds.
- Control vs. execution separation: zero executors on Controller for better stability and maintainability
- Environment isolation: Java, Docker, Windows, and Deploy pools stay independent
- Label-based routing: declarative Agent labels in Pipelines; teams need not manage underlying machines
- Unified entry: Nginx + internal domain + shared credentials reduce per-team CI overhead
- Extensibility: K8s dynamic agents and Mac pools reserved for elastic scaling and mobile scenarios