You’ve probably all heard of CI/CD by now.
But if not, it stands for Continuous Integration / Continuous Delivery (or Deployment, depending on how you’re inclined). And we’ve got a Sandbox for you to skill up on it!
Taking CI first, CI is the development practice of merging code into a mainline version at very frequent intervals. This is to avoid the pain of integrating code that has been developed over far longer periods back into a mainline other team members may have been working on, where the cost of merging outweighs the cost of doing the integration in the first place.
CD’s aims are to build, automatically test (through a pre-written test suite) and deploy software as fast as possible, again very frequently, into a development or production environment.
Together, the CI/CD approach allows developers to write, merge, test and deploy code frequently and quickly. Often many times a day. CI/CD practices compliment the practice of DevOps methodology and form a core part of modern application development.
There are many CI/CD orientated toolchains that can be constructed, from many different developer tools, to accomplish a slick CI/CD pipeline (‘pipeline’ being referring to the point when a developer is finished with writing code to having it deployed on the relevant target environment). We’ve chosen a few common ones and combined them together in this Sandbox for you to get familiar with CI/CD and how they work as a toolchain.
Here’s what we’re using:
- Gogs. Gogs is a private source code control system anyone can deploy locally, written in Go. We use it as a public GitHub alternative here, so you have your own playground!
- Drone. Drone is a CI/CD tool, which can pull your code from Gogs and build/publish/deploy it to Kubernetes nodes or other targets. We also use Drone to provide a private container registry in our hello world example, though you could use a public one like docker hub (you might need to do some reading there, if you’re totally new to CI / CD and containers!)
- Kubernetes. Kubernetes is a platform designed to automate deploying, scaling, and operating application containers
All of these tools are open source and popular, so that you’ve got good support as you continue learning and becoming bolder with CI/CD!
We’ve configured them to work together as a toolchain for you and provided you with a cool hello world example with some simple scripts to get you started!
As always, we’ve added a DevBox that provides a host with a number of common and useful developer tools on that you can use as a jump in point to the Sandbox, without having to download tools to your own laptop if you prefer not too.
We really hope you enjoy the CI/CD Sandbox and it proves to be a great first step into the world of CI/CD that you can continue on from. We've added it into the open source area of the sandbox catalog.
Look out for more DevNet learning labs on this topic in the future.