How ICBC Standardized Continuous Delivery to Supercharge DevOps Efficiency
This article details Industrial and Commercial Bank of China's journey to standardize continuous delivery, outlining the background challenges, the definition of release units, the construction of a standardized toolchain, implementation results, and future plans to enhance DevOps performance across the enterprise.
Background and Challenges
Continuous delivery aims to deliver business value quickly and with high quality, helping business units respond faster to market demands and supporting digital transformation.
Since 2009, ICBC has built automation tools, and from 2018 began exploring a DevOps platform. After two years, an end‑to‑end pipeline spanning development, testing, and operations was established, enabling rapid releases and improved response to business needs.
With increasing demand and frequent releases, the DevOps toolchain faced several challenges:
1. Diverse business domains and a large technical team resulted in varied codebase granularity, build/deploy processes, and environment management, making standardization essential.
2. Many monolithic applications were automated, but further efficiency required coordinated improvements between application architecture and the DevOps toolchain.
3. Developers had to write custom build and deployment scripts for each release, limiting reusability and automation.
In response, ICBC launched a continuous delivery standardization initiative in 2020, focusing on standards, tool reconstruction, and application transformation.
Continuous Delivery Standardization Practice
ICBC’s approach starts from architecture, dividing services by application nodes and defining a “release unit” as the smallest deliverable component. A full‑process standard covering code repository management, build, deployment, artifact, and configuration management was established, reducing tool complexity and increasing automation.
1. Defining Standardized Continuous Delivery Specifications
Based on the bank’s common technology stack, release unit types were defined, and management specifications were created to standardize code repositories, builds, artifacts, deployments, and configurations.
2. Building a Standardized Toolchain
The toolchain was rebuilt according to the specifications, comprising:
(1) Release Unit Management
Release units represent the smallest build/deploy entity, linking a code repository, artifact, and service node, and are categorized by technology stack to clarify build and deployment rules.
(2) Build and Deployment
More than ten release unit types were abstracted, each with defined build processes and artifact structures, allowing the toolchain to automatically handle build and deployment once the unit type is specified.
(3) Service Environment
A “service environment” was defined as the smallest independently deployable unit, with consistent management across development, testing, and production centers, and separate inventories for each center.
(4) Application‑Level Deployment Process
Before standardization, deployment processes were custom per release, complex, and hard to verify. After standardization, deployment processes are defined per application using release units and service environments, resulting in simplified, reusable, verifiable, adaptable, and visualizable workflows.
3. Application Collaboration and Improvement
The standardization redefines ICBC’s delivery organization, requiring clear application architecture and coordinated improvements in code structure, build/deploy implementation, and release processes to achieve higher reuse and early validation.
Key improvement actions include:
(1) Planning Release Units and Service Environments
Architects define release units and service environments based on application and operational architecture.
(2) Refactoring Code Repositories
Codebases are reorganized to align with standards, covering directory structure, build definitions, deployment scripts, configuration files, variables, and start/stop scripts.
(3) Standardizing Configuration Management
Configuration items in the configuration center are standardized according to the new specifications.
(4) Defining Application‑Level Deployment Processes
Deployment processes are defined for each application across different versions and operational stages, enabling automated deployment.
Implementation Results
Standardization established full‑process standards for code repositories, builds, and deployments, reducing the original 8,000+ build strategies and 20,000+ deployment strategies to over 10 standardized configurations, greatly expanding toolchain support across business domains. Release units enable independent development, delivery, and deployment, supporting fine‑grained, on‑demand releases. Build and deployment configurations were simplified, making deployment processes reusable, verifiable, adaptable, and visual, thereby increasing automation.
Future Outlook
ICBC’s DevOps team will continue to use standardization as a foundation, focusing on improving development and operational efficiency, building a product‑oriented end‑to‑end DevOps collaboration platform that upgrades the entire delivery chain from requirement to production release.
Efficient Ops
This public account is maintained by Xiaotianguo and friends, regularly publishing widely-read original technical articles. We focus on operations transformation and accompany you throughout your operations career, growing together happily.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.