CONTINUOUS INTEGRATION AND CONTINUOUS DELIVERY/DEPLOYMENT
Apr 6th 2020
Recently, we organized the second CI / CD talk with the participation of our collaborator João Rebelo, who, in a first moment revived our memory about the CI/CD. For those who didn't see the first Talk , CI/CD makes mention of the practices of continuous integration and continuous delivery or continuous deployment.
Continuous Integration (CI) is a development method in which developers integrate code (check-in) into a shared repository multiple times. Each check-in is verified by an automated build, allowing teams to detect problems earlier. By integrating regularly, you can detect errors quickly, find and fix them more easily.
Continuous Delivery (CD) is an extension of the previous method to ensure that the developer can release new changes quickly to their clients in a sustainable way. That is, in addition to automating his tests, the developer has automated its release process and can deploy the application at any time. With CD, you can decide to release daily, weekly, or whatever is best suited to your business requirements.
Continuous Deployment (CD) goes a step beyond continuous delivery. With this method, all changes that go through all stages of the production pipeline are released to your clients. There is no human intervention and only a failed test will prevent a new change from being implemented in production. It is a great way to speed up the customer feedback cycle, thus relieving pressure on the development team.
After reviewing some DevOps concepts, João Rebelo presented us with a demonstration of a CI/CD tool, setting up a Jenkins master server and running a CD pipeline. An open-source automation server, Jenkins provides a way to set up a CI/CD environment for practically any combination of code languages and source code repositories using pipelines. It can in addition be used to automate tasks related to building, testing deploying or delivering software. The video of that demonstration is published below.