Skip to main content
Continuous Integration
CHAPTER 03

CI/CD Tools Overview

Updated: May 15, 2026
20 min read

# CHAPTER 3

CI/CD Tools Overview

1. Introduction

The concept of Continuous Integration is universal, but the software used to execute it varies wildly. Ten years ago, you had to buy a physical server, install Java, and spend weeks configuring Jenkins just to run a basic automated test. Today, the landscape has exploded with cloud-native, SaaS-based CI platforms that require zero maintenance and integrate seamlessly with Git. In this chapter, we will survey the modern CI/CD landscape, comparing legacy titans like Jenkins with modern giants like GitHub Actions and GitLab CI, helping you choose the right automation engine for your infrastructure.

2. Learning Objectives

By the end of this chapter, you will be able to:
  • Understand the architectural difference between Self-Hosted and SaaS CI/CD tools.
  • Identify the core strengths and use cases for Jenkins.
  • Identify the core strengths and use cases for GitHub Actions and GitLab CI.
  • Understand the concept of "Runners" or "Agents."
  • Evaluate CI tools based on enterprise requirements.

3. Beginner-Friendly Explanation

Imagine hiring a chef for your restaurant.
  • Jenkins (The Private Chef): You have to build them a kitchen, buy all the pots and pans, and pay for their electricity. But, they work *only* for you, and they can cook absolutely anything you want, no matter how weird or complex. (Self-Hosted, highly customizable).
  • GitHub Actions (The Cloud Kitchen): You don't build a kitchen. You just send them a recipe. They use their own massive, modern kitchen, cook the food perfectly, and deliver it. You pay them by the minute. (SaaS, zero maintenance, highly integrated).

4. Tool Comparison

1. Jenkins (The Grandfather of CI)

  • *Architecture:* Self-Hosted (You must install it on your own server).
  • *Pros:* It is free, open-source, and has thousands of plugins. It can integrate with any technology on earth. Total control over security.
  • *Cons:* You have to maintain the server yourself. The UI is dated. Writing complex "Jenkinsfiles" (using Groovy script) is notoriously difficult for beginners.

2. GitHub Actions (The Modern Standard)

  • *Architecture:* SaaS (Hosted by Microsoft/GitHub).
  • *Pros:* Zero servers to maintain. It is built directly into GitHub. Pipelines are written in simple YAML. It has a massive marketplace of pre-built "Actions" you can just plug and play.
  • *Cons:* If GitHub goes down, your pipeline goes down. Tied strictly to GitHub repositories.

3. GitLab CI/CD (The All-in-One Engine)

  • *Architecture:* Both SaaS and Self-Hosted.
  • *Pros:* Incredible, deeply integrated CI/CD experience. GitLab pioneered the modern "Pipeline as Code" YAML movement. Phenomenal Docker and Kubernetes integration.
  • *Cons:* Best utilized if you also use GitLab for your Git hosting; less ideal if your code lives in GitHub.

4. CircleCI & Travis CI (The Cloud Pioneers)

  • *Architecture:* SaaS.
  • *Pros:* Very fast, highly optimized for containerized builds. Easy to set up.
  • *Cons:* Often more expensive at enterprise scale. GitHub Actions has largely cannibalized their market share.

5. Runners and Agents

Regardless of which tool you choose, they all use the same underlying concept for executing work: Runners (also called Agents or Build Nodes).
  • The CI Server (e.g., Jenkins Master or GitHub) manages the schedule and reads the pipeline file.
  • The Runner is the actual machine (usually an ephemeral Linux VM or Docker container) that physically downloads your code and executes the tests. Once the tests finish, the Runner is destroyed.

6. Mini Project: Compare CI Platforms

When architecting a new project, you must choose a CI platform. Let's do a theoretical enterprise evaluation.

Scenario: A bank with strict security compliance needs to build a CI/CD pipeline. Their code cannot leave their internal corporate network.

Evaluation:

  • *GitHub Actions (SaaS):* Fails. The code would have to be sent to Microsoft's cloud servers to be built.
  • *CircleCI (SaaS):* Fails. Same issue.
  • *Jenkins or GitLab CI (Self-Hosted):* Winner. The bank can install Jenkins or GitLab on their own private, firewalled servers deep in their basement. The code never touches the public internet. Absolute security control.

*Understanding the business requirements dictates the tool.*

7. Real-World Scenarios

A startup began their journey using Jenkins. They spent two weeks configuring the Jenkins server, installing Java, managing user permissions, and updating plugins. Every month, a plugin update would break their pipeline, requiring a DevOps engineer to spend a day fixing the server. Frustrated by the operational overhead, they migrated to GitHub Actions. They translated their pipeline into a simple YAML file. Because GitHub manages the servers and the plugins, the operational overhead dropped to zero. The engineers stopped maintaining Jenkins and went back to writing actual application code.

8. Best Practices

  • Pipeline as Code: Whether you use Jenkins, GitLab, or GitHub Actions, your pipeline instructions MUST be stored as a text file inside your Git repository (e.g., Jenkinsfile, .gitlab-ci.yml, or .github/workflows/deploy.yml). In the old days, people clicked buttons in a UI to build pipelines. Never do this. If the UI crashes, your pipeline is gone. Pipeline as Code ensures your pipeline is version-controlled and recoverable.

9. Security Recommendations

  • Self-Hosted Runners for SaaS: If you want the beautiful UI of GitHub Actions but the security of Jenkins, you can use "Self-Hosted Runners." You host the code on GitHub, but you configure GitHub to send the execution instructions to a private server inside your own corporate firewall. The code is built locally, achieving the best of both worlds.

10. Troubleshooting Tips

  • Vendor Lock-in: Pipelines written for GitLab CI .yml will not run on GitHub Actions without being completely rewritten. While the *concepts* are the same, the syntax is proprietary. Keep your pipeline files as simple as possible. Put complex build logic into standard bash scripts or Makefiles, and have your CI tool simply call the script. This makes migrating between CI tools much easier.

11. Exercises

  1. 1. What is the fundamental architectural difference between a SaaS CI tool (like CircleCI) and a Self-Hosted CI tool (like standard Jenkins)?
  1. 2. Why is "Pipeline as Code" a mandatory best practice regardless of the CI platform chosen?

12. FAQs

Q: Is Jenkins dead? A: Not even close. While startups overwhelmingly choose GitHub Actions or GitLab, massive enterprises, banks, and legacy systems rely heavily on Jenkins because of its unparalleled flexibility and massive plugin ecosystem.

13. Interview Questions

  • Q: Compare Jenkins to GitHub Actions. Detail the operational responsibilities associated with maintaining Jenkins versus utilizing a managed SaaS runner, and provide a scenario where Jenkins is strictly required.
  • Q: Explain the concept of a CI "Runner" or "Agent." Why is executing builds on ephemeral, containerized runners preferred over executing builds directly on the master CI server?

14. Summary

In Chapter 3, we mapped the modern CI/CD landscape. We contrasted the immense, customizable power of self-hosted Jenkins with the zero-maintenance, deeply integrated elegance of SaaS platforms like GitHub Actions and GitLab CI. We learned that while the syntax changes between platforms, the core architecture of a central Controller assigning jobs to ephemeral Runners remains universal. Finally, we emphasized the golden rule of Pipeline as Code, ensuring that regardless of the tool we choose, our automation logic remains version-controlled, auditable, and resilient.

15. Next Chapter Recommendation

We understand the landscape. Now it's time to get our hands dirty with the industry heavyweight. Proceed to Chapter 4: Installing Jenkins for CI.

Finish this Chapter

Save your progress on your learning path and prepare for coding interview challenges.

Discussion

Join the discussion

Log in or create a free account to participate.

Sort: ·