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 that 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 Tactile, 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 the 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
This 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.

