DevOps
SRE Goes Left, DevOps Goes Right
· β˜• 4 min read
1. A Process Divorced from Responsibility Is Meaningless Software architecture matches organizational architecture, and this shows up not only in functional boundaries but even more in the division of responsibilities. Only clear responsibility boundaries can build good team collaboration and growth. Every team and every person should understand their own goals β€” what they should take on and what they should stay out of β€” and invest their time and energy in things that benefit the primary goal, rather than sinking into trivia.

How Staged Builds Cache Third-Party Dependencies
· β˜• 10 min read
In a non-staged build scenario, when we use a container to build, we can mount the cache directory inside the container onto the build host, run the build task, and then copy the artifacts into the runtime image to produce the application image. But with a staged build, the build image and the runtime image live in the same Dockerfile, which makes it harder to optimize the caching of third-party dependencies.

Several Communication Methods for Jenkins Agent
· β˜• 1 min read
1. SSH Connection direction: Master actively connects to Agent Requirements: Master can connect directly to Agent over SSH The SSHD service is running on Agent Jenkins has the SSH Credentials Plugin and the SSH Build Agents plugin installed 2. JNLP Connection direction: Agent actively connects to Master Requirements: Agent can reach Master Agent needs a JVM environment to run Master needs to expose port 50000 (the default) for Agent communication Port 50000 is the service port of the Jenkins Master; no other service program needs to be run for it.

Why Does Jenkins Always Schedule to the Same Node
· β˜• 4 min read
1. Background Many build nodes were added to Jenkins using the same Label for pipelines to use, but Jenkins tends to run builds on the same node every time. This leads to concurrency problems: a single node is overloaded while other nodes sit idle, so the load is extremely unbalanced.

A CICD Platform Based on Tekton
· β˜• 8 min read
1. Background 1.1 Problems with the Current Use of Jenkins The orchestration engine is unstable Jenkins is an orchestration engine written in Java, and it stops the world (STW) during a full GC. Under large-scale builds, STW can prevent Jenkins from handling new requests. Heavy builds stall Jenkins stores data in disk files; every pipeline and every build occupies a file directory, producing a huge number of files.