When your working on startup’s MVP and finding ways to speed up the process.
You’ve heard about agile and start implement agile methods to your team.
Then you stumbled upon the technical term CI/CD. Although they are always lumped together, they are two distinct stages in software development.
CI stands for Continuous Integration.
CI is a way for software developers to work together efficiently and avoid potential problems by continuously testing and integrating their code changes into a shared codebase. This helps to catch any errors early on, which ultimately saves time and resources in the long run.
Imagine a group of chefs cooking a big meal together. Each chef has their own dish to prepare, but they all need to work together to create a delicious meal. To ensure that everything is cooked to perfection, each chef needs to keep the other chefs updated on what they're doing and make sure that all the dishes are cooked to the same standards.
CD stands for Continuous Deployment.
Continuous Deployment is a software development practice where code changes are automatically tested, built, and deployed to production environments as soon as they are ready.
Using the food analogy in CI, think of CD as a pizza delivery service. A pizza delivery service that is always ready to deliver fresh pizzas as soon as they are prepared.
Just like how a pizza restaurant constantly makes and delivers pizzas to customers, with Continuous Deployment, new code changes are automatically deployed to production as soon as they are tested and approved, providing a fast and efficient way to deliver updates to end-users.
How do you implement CI/CD with your team?
If you Google CI/CD, there are lots of ways to implement CI/CD. Which provider do you choose? Which plan?
I’ve had the same experience using. There are lots of providers that usually offer the same kind of service. As startup, what you should be doing is looking at the current services you are paying for now and figure out if they offer a CI/CD server.
Let me share with the basic CI/CD practices that we do at my company:
#1 is Github Actions.
If you are already using Github to setup your repositories, you can use Github Actions to run your unit tests every time you issue PR. This automation enables ensures that all the unit tests have passed before you merge that PR.
#2 is Heroku Github Deploys
If you are using Heroku as your servers. You can use Heroku Github Deploys. Once you can set in the configs that after all your Unit Tests are successful, it automatically deploys your application.
Ruby on Rails Developers
As apps developers deployings Rails apps on Heroku and using Github as a repository, those are the two most easiest things you do to implement CI/CD initially.
Even if you are not using the Rails tech stack, you can still use Github and Heroku for CI.
Hopefully, those two steps can help your team on your CI/CD journey.