Stop drowning in unnecessary meetings. Work on only what matters. Get Started.

A Simple Guide to CI/CD For Total Beginners in 2022

A Simple Guide to CI/CD For Total Beginners in 2022

Continuous integration and Continuous Delivery (CI/CD) is a process that allows for software storing, tracking, building, testing, and deploying. The process that tracks software changes made by multiple users, while testing and deploying the software is a huge milestone in modern software development practice.

This article will break down the process of CI/CD and the common tools to implement it.

What is CI/CD?

Continuous Integration and Continuous Delivery (CI/CD) is defined by Red Hat as a method to frequently deliver apps to customers by introducing automation into the stages of app development. While continuous integration ensures that stable software is built collaboratively, continuous delivery manages the consistent deployment of built software.

Why implement CI/CD

Imagine multiple engineers building an application, each working on a different part of the application but able to see changes made to it, who made them, and, when done, deploy their software.

In the past, with a waterfall model, developers would build their part of the application and merge when done. It was hard work, as what might work on John's system might crash in Jerry's, making developing a large-scale project cumbersome.

Code error tracking was problematic as each developer might use a different stack, and dependencies or lines deleted by one of the developers might not be updated. Events like this push back the project timeline and cost organizations money and time.

Fixing bugs and ensuring the different parts fit became part of large-scale project production.

All these created the need to develop a better process of integrating software. With an efficient CI/CD pipeline, project changes will be tracked, tested, and, if passed, guaranteed to work anywhere.

Here's an example.

James and Fatima are building an application. James does not need to wait for Fatima to finish writing her software before he begins. He can create a branch and work on his build. They can share a bucket (repository) and then merge their software. Any change Fatima makes, James sees it. If anything breaks, they can return to a point when it was working.

The repository can store, merge, and build a testable model using the correct virtual dependencies.

How a CI/CD Pipeline works

cdn-images-1

The CI/CD pipeline automates integrating, running tests, delivering releases, and deploying changes to the software collaboratively and in real-time.

The integration and delivery process typically follows a series of steps with predefined actions for each step. The steps are usually specific per project and remain the same across all users. This ensures consistency. Various tools provide methods to create and configure these steps. Common steps are linting, testing, building, deployment, and notification.

The software continuously flows through this pipeline all the way from a push to a repository, to public deployment on a server.

CI/CD pipeline allows for easy testing of new commits and ensures the software is reliable and does not break, and if they do, the CI/CD pipeline can send an alert to the software's author.

Common tools used for continuous integration and continuous deployment

Jenkins

Jenkins is one of the most popular CI/CD tools. It is open-source, making it more popular with over a thousand plug-ins. It supports Windows, macOS, and Linux.

Features

  • Jenkins is open source with a large community.
  • It is user-friendly and straightforward to navigate.
  • Master-slave architecture: The master distributes to the slave how and what to build. The slaves can test different builds in different environments or OS.

GitLab CI/CD

To understand GitLab CI/CD, we must first understand Git. Git is a version control system that tracks changes in a project or multiple projects. It tracks changes over time and can commit new and updated changes to repositories locally or remotely.

Features

  • Unlimited number of repositories
  • User-friendly and easy-to-use tools.
  • Easy to set up.

GitHub actions

GitHub actions take it one step further by running the software on cloud infrastructure while giving the developer updates on errors and how to fix them.

Features

  • Live logs
  • Supports all languages
  • Track and test in real-time

TeamCity

TeamCity is a general-purpose CI infrastructure that allows flexibility for all workflows. Its cloud service is suitable for novice, professional, and enterprise businesses that want to scale.

Features

  • Easy to customize.
  • Servers are functional and highly stable.
  • Child projects can reuse settings and configurations.

Bamboo

Bamboo is a reliable CI that can quickly scale within seconds. Its workflow automates and unleashes the AGILE model, which powers and automates the workflow.

Features

  • Creates images and automates the file transfer into the registry
  • Supports build agents
  • Triggers and pushes notifications based on changes detected.

Conclusion

We learned why software projects use CI/CD, how they work, and common tools used in creating a CI/CD pipeline.


About the author

Smart Contract/Solidity Cyber-Security Reactjs || Every other thing is just hobbies

Related Blogs

Your Audience Doesn't Matter, Sometimes
Henry Bassey

Henry Bassey

Sat Nov 11 2023

Your Audience Doesn't Matter, Sometimes

Read Blog

icon
Demystifying AWS VPC Network Firewall using Terraform
Emeni Deborah

Emeni Deborah

Tue Oct 24 2023

Demystifying AWS VPC Network Firewall using Terraform

Read Blog

icon
The Future of Content Is Collaborative, Not Competitive. Here's Why
Henry Bassey

Henry Bassey

Tue Oct 17 2023

The Future of Content Is Collaborative, Not Competitive. Here's Why

Read Blog

icon
image
image
icon

Join Our Technical Writing Community

Do you have an interest in technical writing?

image
image
icon

Have any feedback or questions?

We’d love to hear from you.

Building a great product is tough enough, let's handle your content.

Building a great product is tough enough, let's handle your content.

Create 5x faster, engage your audience, & never struggle with the blank page.