Don't Let Jenkins Dictate Your Release Cadence: Architecture Decisions and Lessons from Building a Go DAG Scheduler Engine

Overview 2 AM. A ride-hailing platform’s release window just opened. Jenkins Master suddenly hits CPU 100%. The build queue backs up with 200+ tasks. The entire deployment pipeline is frozen. The ops team spent 40 minutes finding the root cause: a legacy project’s Git repo had 15GB of binary files stuffed in it. A single clone took 20 minutes, exhausting all of Master’s thread pool. This isn’t an isolated case. Jenkins is a fine CI tool, but when you have 120+ microservices with tangled deployment dependencies and need fine-grained control over concurrency and rollback ordering, Jenkins’s Stage model starts to crack....

August 4, 2026 · 26 mins · 5482 words · Xu Baojin

CI/CD Deployment Speed Optimization in Practice: From 90 Minutes to 5 Minutes

Overview You have probably experienced this scenario: a developer commits one line of code, CI runs for 40 minutes, CD deployment takes another 20. You come back after two cups of coffee only to find the build failed—time to start over. By the end of the day, three hours gone just waiting on the pipeline. This is not an isolated case. Among the teams I have worked with, the majority have pipelines exceeding 30 minutes....

July 25, 2026 · 21 mins · 4408 words · Xu Baojin

Jenkins Freestyle vs Pipeline: A Practical Comparison and Configuration Guide

Overview Jenkins users fall into two camps: one fills out forms on the web UI, clicks a few buttons, and gets things running — simple and direct. The other writes Jenkinsfiles in the code repository, turning build pipelines into code with version control, peer review, and rollback all built in. The first is called Freestyle Project. The second is called Pipeline Project. These two aren’t mutually exclusive. Many teams use both — simple script tasks with Freestyle, complex multi-stage releases with Pipeline....

July 14, 2026 · 19 mins · 3929 words · Xu Baojin

SRE and Development Team Collaboration Models: Engineering Practices for Breaking Down Walls

Overview In modern software engineering, the relationship between SRE (Site Reliability Engineering) and development teams is one of the most critical and delicate aspects. Development pursues “fast delivery of new features,” while SRE pursues “stable system operation” — these two goals are inherently in tension. If the collaboration model is poorly designed, the result ranges from inefficiency and finger-pointing to frequent production incidents and collapsed trust between teams. The Google SRE Book contains a classic observation: “The central SRE contradiction is that we need to simultaneously allow development teams to move quickly while maintaining the reliability of the system....

June 24, 2025 · 20 mins · 4224 words · XuBaojin

Change Management: Canary Release and Rollback Strategies

The Role of Change Management in SRE Google SRE identified an iron rule: approximately 70% of production incidents are directly caused by changes. Whether it’s code deployment, configuration modification, infrastructure adjustment, or dependency upgrades, every change injects uncertainty into the system. Change management is therefore not bureaucratic red tape — it’s the first line of defense in SRE reliability engineering. The core objectives of change management can be summarized in three points:...

February 11, 2025 · 9 mins · 1902 words · XuBaojin

Jenkins Pipeline as Code in Practice

Overview Pipeline as Code is the watershed moment when Jenkins evolved from “drag-and-drop configuration” to “code-driven.” Defining pipelines in a Jenkinsfile under Git version control means every pipeline change has a diff to review, a history to trace, and a branch to roll back. This article systematically covers Pipeline as Code practices, from Jenkinsfile syntax to production-grade pipeline design. Reference: Jenkins Pipeline Official Documentation I. Jenkinsfile Syntax 1.1 Declarative vs. Scripted Jenkins Pipeline has two syntax styles:...

July 29, 2024 · 17 mins · 3551 words · XuBaojin

Git Hooks Automation: From Code Quality to Deployment

Overview The earlier code quality issues are caught, the cheaper they are to fix. Catching issues at commit time is faster than at CI time, and catching them at CI time is faster than fixing them after they cause production incidents. Git Hooks provide the ability to automatically run checks at critical points — commit and push — including code formatting, linting, commit message validation, and test execution. This article covers everything from Git Hooks fundamentals to toolchain practices, building a code quality automation system from local to CI....

May 3, 2024 · 18 mins · 3628 words · XuBaojin

Getting Started with Terraform Infrastructure as Code

Manually logging into cloud consoles to create servers, databases, and networks — this approach barely works when resources are few, but once environments grow complex, you end up unable to modify, clean up, or explain your infrastructure. Infrastructure as Code (IaC) uses code to describe infrastructure, making resource creation, modification, and destruction versionable, reviewable, and reusable. Terraform is currently the most popular IaC tool. This article covers everything from concepts to practice....

April 24, 2024 · 12 mins · 2429 words · XuBaojin

Ansible Playbook Best Practices: From Basics to Production

Overview Ansible has a low barrier to entry — a YAML file and a few lines of yum install can get things running. But when you face hundreds of servers, multiple environments, complex dependencies, and strict change audit requirements, the gap between “it runs” and “it’s production-ready” is an entire engineering discipline. This article distills the core practices of production-grade Playbooks into an actionable guide, covering the full chain from structure organization to performance optimization....

April 5, 2024 · 15 mins · 3107 words · XuBaojin

Makefile Build Automation: More Than Just Compilation

Overview Many people think of Makefile as merely a build assistant for C/C++. But Make is fundamentally a dependency-driven task execution engine — you tell it “what the target is, what it depends on, and how to generate it,” and it handles executing in the correct order while skipping steps that don’t need repeating. This model is equally powerful in ops scenarios: deployment depends on build, cleanup depends on service shutdown, checks depend on configuration being ready....

March 26, 2024 · 14 mins · 2964 words · XuBaojin