1 00:00:00,000 --> 00:00:11,000 In this video, we'll talk about CICD, a common DevOps technology. 2 00:00:11,000 --> 00:00:17,040 CICD is Continuous Integration and Continuous Delivery, sometimes also referred to as Continuous 3 00:00:17,040 --> 00:00:18,040 Deployment. 4 00:00:18,040 --> 00:00:23,959 It's a core DevOps element that enforces automation in building, testing and deployment 5 00:00:23,959 --> 00:00:25,879 of applications. 6 00:00:25,879 --> 00:00:31,000 And the CICD pipeline is the backbone of modern DevOps operations. 7 00:00:31,000 --> 00:00:36,799 In CI, all developers merge code changes in a central repository multiple times a day 8 00:00:36,799 --> 00:00:38,639 to ensure consistency. 9 00:00:38,639 --> 00:00:42,279 And Git is a common repository technology used for that. 10 00:00:42,279 --> 00:00:47,400 CD automates the software release process based on these frequent changes. 11 00:00:47,400 --> 00:00:53,720 And to do so, the CD includes automated infrastructure provisioning and deployment. 12 00:00:53,720 --> 00:00:56,840 Now CD can stand for Continuous Delivery. 13 00:00:56,840 --> 00:01:02,160 That is where the configuration or the code is made available and the final step of implementation 14 00:01:02,160 --> 00:01:04,239 needs to be done by a person. 15 00:01:04,239 --> 00:01:09,839 And Continuous Deployment is where it happens all automatically, including the deployment 16 00:01:09,839 --> 00:01:15,000 where no longer the work of a person is involved. 17 00:01:15,000 --> 00:01:17,080 Let's talk about CI and its tools. 18 00:01:17,080 --> 00:01:22,720 First, a version control system, such as Git, allows developers to work with branches, which 19 00:01:22,720 --> 00:01:24,800 are later merged into the main code. 20 00:01:24,800 --> 00:01:28,320 You learned about it in lesson 19 of this course. 21 00:01:28,320 --> 00:01:32,279 CI automation is used to watch the repository for changes. 22 00:01:32,279 --> 00:01:35,239 And there are different options to do so. 23 00:01:35,239 --> 00:01:39,919 Webhooks on Docker image repositories, for instance, detect changes automatically and 24 00:01:39,919 --> 00:01:42,040 can update an application. 25 00:01:42,040 --> 00:01:45,639 Jenkins is a very common CICD solution. 26 00:01:45,639 --> 00:01:51,239 And others, such as Tectal, which integrates very well in Kubernetes, or GitLab Actions 27 00:01:51,239 --> 00:01:53,160 can be used for CI. 28 00:01:53,160 --> 00:01:57,360 When CI is automated, changes must be verified. 29 00:01:57,360 --> 00:02:01,320 And that is what happens in a pipeline that goes through different phases. 30 00:02:01,320 --> 00:02:04,120 Now let's talk about CD and its tools. 31 00:02:04,120 --> 00:02:09,839 At the end of the continuous integration pipeline, there is continuous delivery, which ensures 32 00:02:09,839 --> 00:02:12,679 that software is published once it is ready. 33 00:02:12,679 --> 00:02:17,039 A deployable version is created every time the pipeline runs successfully. 34 00:02:17,039 --> 00:02:20,000 And that can happen multiple times a day. 35 00:02:20,000 --> 00:02:24,080 Continuous delivery can be enhanced to continuous deployment, where the release is not only 36 00:02:24,080 --> 00:02:27,440 published but also deployed without further human intervention.