Introduction to CICD Automation

Agile development principles and DevOps methodologies has transformed the world of IT. We now live in an era where web application features and bug fixes are deployed several times a day, contrasting to the days long past where updates were pushed quarterly, at best.

Three key concepts were borne from Agile: Continuous Integration, Continuous Deployment, and Continuous Delivery. Before I can introduce you two CICD automation, you will need to summary understanding of what each means before you fall down the CICD rabbit hole.

Continuous Integration: new features and bug fixes are added to an app’s code base on a continuous basis. CI enforces, by principle, a behaviour of testing a code’s quality before it can be merged into release.  Passing unit tests, code style checks, or linting, or the minimum acceptance criteria for integration.

Continuous Deployment: the ability to build an app and store it’s artifacts (binaries or compressed static files) in a state where it can be delivered to a server. Artifacts are stored in artifact repository servers, such as JFrog’s Artifactory, Nexus, or from the build server itself.

Continuous Delivery: the ability to continuously deploy application builds from an artifact repository to a server.