DevOps and IT Operations

CICD Basics

CD: Continuous Deployment

If you are working in a team where multiple coders are collaborating to the development process and also otherwise if you need to deploy on a Continuous basis. The task can be monotonous and often we might miss 1 or more step if the due diligence is not performed resulting in the wrong deployment and that will result in various other issues.

We can avoid all the deployment-related issues by automating the process.

There are many freely available tools to let you do this easily. One popular example is Travis CI, which integrates directly with Github. You can configure Travis to automatically run CI tasks like unit tests and push your code to a hosting platform like Heroku every time you push new changes to a branch.

Examples of CICD in Real Projects

You can find examples of CICD being used all over the place; you just need to know what to look for. Usually, its as easy as finding some colorful badges linked at the top of a Github README.

ReactJS

The React JavaScript framework developed and maintained by Facebook has a great example of a robust and high visible CICD pipeline. If you visit its Github page and click through the badges displayed at the top of their README, you can get an idea of what type of automated processes they run their codebase through. The Coverage badge links to Coveralls, which is a tool to display unit test coverage reports. You can click on the CircleCIbadge which shows a history of all the builds automatically run against Pull Requests submitted by contributors. If you click on a build, you can even see every step in the CI process and how their pipeline is configured.

Homebrew

If you do any sort of development on MacOS, then you’ve probably at least heard of the popular package manager Homebrew. It uses TravisCI with coverage reporting on codecov.io. Check out Homebrew/brew on Github and scroll down to the Contributing section to find those same familiar badges.

TensorFlow

Machine Learning and AI related projects have been rising in popularity for a while now and I think Google’s TensorFlow library has had a lot to do with that. TensorFlow is an open source Python framework for building ML and AI applications. Their Github README is decorated with the same familiar badges but with an additional twist.

Since TensorFlow is a cross-platform tool that can run on CPU and GPU hardware, the maintainers have set up multiple pipelines to build and test the tool on different operating system platforms and CPU/GPU configurations. Their pipelines are built using Jenkins.

Tools:

There are various CICD tools available. They are either open source or proprietary software from reputable companies. They can be hosted either on prep or over cloud. Following are some of the commonly used tools.