Likogan.Dev

Linux System Administrator, Website Developer

What Actually IS CI/CD?

Continuous Integration and Continuous Deployment (CI/CD) is simply a set of actions a server performs when new code is pushed to a central codebase, such as Git. These actions can be configured for multiple or just on server, different actions can be specified per branch, and many other configurability to really create a CI/CD pipeline around your product.

Compile

Compile code on your choice servers, ensuring no warnings or errors come-up

Test

Ensure code meets all standards and passes all checks before deploying

Deploy

Automatically deploy code without touching any servers

Secrets

Avoid keeping sensitive data directly in the codebase, like tokens and keys

Monitor

Monitor your codebase to ensure product reliability and stability

Canary

Easily create Canaray/Test builds for dedicated customers or Q/A testing teams

Real World Use-cases

Anycast Content Delivery Network

A CI/CD pipeline is essential for a content delivery network. Manually pushing or modifying code on multiple servers can be a huge hassle and incredibly tedious. With a CI/CD pipeline, you can push code to servers around the world in just seconds. Every website, SSL certificate, and even the configurations behind these servers is managed through the pipeline, streamlining the entire process.

Docker Infrastructure

A CI/CD pipeline is useful for managing a Docker container, such as the one running my self-programmed Discord YouTube bot. Manually updating and deploying code is tedious, especially when you want to ensure smooth performance. With a CI/CD pipeline, you can automatically build and deploy updates to your Docker host in just seconds. Every change to the bot's code is seamlessly pushed through the pipeline, ensuring that the latest features and fixes are always live without the hassle of manual intervention.

The adaptivity of a CI/CD pipeline allows it to integrate smoothly with tools like Harbor, enhancing your development process. An integration such as this one allows the pipeline to automatically pull and manage Docker images from Harbor, adapting to changes in your workflow without missing a beat. With Harbor, you can easily implement image versioning and access control, ensuring that your deployments are both secure and efficient. The tools and integration that your CI/CD pipeline can interact with can evolve with your project needs, making it a powerful asset in your development environment.