Shadowing Practice: How to design a Deployment Pipeline (GitOps) - Learn English Speaking with Video

Choose a practice mode

Each mode opens a full-screen practice room.

127 sentences
If sentences are too short or too long, click Edit to adjust them.
1
Hey everyone, in this video we're going to talk about how you can design a deployment pipeline using GetOps principles.
2
So if you're looking into designing a deployment pipeline or just want to learn a little bit more about GetOps,
3
this is going to be the video for you.
4
Now this video takes place after my last video which was how to design a CICD pipeline.
5
So if you're not sure how to design a CICD pipeline, make sure that you watch my previous video.
6
I'll let's go ahead and get started with the design of our getops pipeline.
7
Alright so here you can see that we have a pretty simple CI CD pipeline.
8
This pipeline takes our application code stored in our application repository, takes it through the source build test and release stage
9
and basically the output is going to be a container image and that container image is stored in our registry.
10
So you can see we have our application right here and it's version 1 .0.
11
So where do we go from here?
12
This is where we need a continuous deployment pipeline to actually take this application image
13
and bring it over to our different environments.
14
So the first thing that we want to do
15
when designing our deployment pipeline is create a second repository to house our configurations.
16
So our CI -CD pipeline is going to check out code from our application repo,
17
but our deployment pipeline is going to use our configurations from our configuration repo.
18
So this is a traditional GitOps pipeline.
19
So let's create another repo here, and then we'll call it config repo.
20
And this config repo is going to contain all the configuration files that we need for deploying our application.
21
So this could be anything from like Docker Compose files to Kubernetes Manifest.
22
So let's go ahead and populate this config repo with some manifest files.
23
So I'm going to put a Kubernetes Manifest file here.
24
And let's just think about what would be in this manifest.
25
So in this manifest, we would probably have something like a Kubernetes deployment.
26
So we'll call it deployment and this deployment probably uses an image
27
and the image it's going to use is going to be the image from our CI CD pipeline.
28
So we called it my app and we'll just tag it with v1 .0.
29
Now let's just move this out of the way and get an environment for us to deploy to.
30
So we have our server here, and this could be any type of server.
31
We'll just call it our test slash QA environment.
32
Now your GitOps pipelines can deploy to your environments in two different models.
33
The first model is known as the push model.
34
So we'll call this push.
35
Now the push model is really simple.
36
It's as simple as just doing something like a cube control apply.
37
So we're just going to keep it as that for now.
38
And then I'm going to discuss the pull model,
39
which is the more modern approach of actually having an operator installed in your environment that pulls down your configurations.
40
So let's talk a little bit about how this pipeline gets triggered in the first place.
41
So your deployment pipeline should be triggered automatically at the end of your CI -CD pipeline.
42
So let's draw an arrow here from our CI CD pipeline
43
because it's going to trigger our deployment pipeline as soon as it's done completing.
44
Now, every time you run your CI CD pipeline, it should be churning out a new version of your application.
45
So you can see here we have version one of our application.
46
And the next time we run our pipeline, we're going to get version 1 .1.
47
Now, if you have a really well -designed pipeline,
48
what you may want your pipeline to do is to actually go into your configuration repository
49
and submit a pull request or just push a change to it to actually update the image.
50
So here I'm going to update the image tag to v1 .1
51
and all my deployment pipeline really needs to do is rerun kubectl apply
52
and that's going to deploy it to my test and QA environment.
53
Now once the code is actually running in your environment, you should have some observability tools plugged in to monitor your application.
54
So at the very least, you should have something like Prometheus to scrape metrics from your applications.
55
And then you should have something like Grafana
56
so your QA teams can actually visualize the changes
57
and make sure things like the latency hasn't increased and all your key performance indicators are up to snuff.
58
Now once your deployment has been running in your test and QA environment for some time, what's next is to promote it to your other environments.
59
So usually you'll have something like.. a staging environment and a production environment.
60
So staging environments are usually just environments that are similar to production.
61
It's where you send your deployments first, and you're basically pretending it's production.
62
You sort of treat it like production, but it's not production.
63
And then production, of course, is where your live code runs.
64
This is where the customers are accessing your applications.
65
So let's draw some arrows to these environments here and the way
66
that these environments get pushed to is they can automatically get pushed to by your GitOps pipeline
67
or these can be manually gated by a person.
68
So sometimes companies aren't comfortable with having everything automatically trigger to their staging and production environments.
69
Usually they want an engineer to actually run the pipeline manually.
70
So these ones might be manually or automatically triggered.
71
Let's now talk about the pull model and then I'll get into canary testing, which is a common thing that's done in production environments.
72
So with the pull model, I'm just going to take these arrows
73
and I'm just going to change the direction since they are pulling their configurations and deployments down from our configuration repo.
74
So instead of CICD server doing a kubectl apply, they would have what's known as an operator installed in them.
75
So if this is our Kubernetes cluster, then we would have something like Argo CD installed into each of our clusters.
76
And basically what Argo CD does is it just checks your repository and it checks the state of your clusters.
77
And if it notices
78
if the state is different in your clusters than it is in your configuration repo
79
then it tells you it's out of sync.
80
Now it can automatically sync your environments for you or it can be manually triggered again.
81
So you may have your test and QA
82
and even your staging environments do what's known as an auto synchronization through something like Argo CD
83
and then you can have your production environment where someone actually needs to click the button to sync the environment.
84
So Argo CD is really simple to set up actually
85
and basically you just point it to your get ops repository
86
and then it just checks your configurations
87
if anything's out of sync it'll help you sync
88
it i do have a full length video on how to set up
89
and get started with argocd so
90
if you're interested in working with argocd make sure to check
91
that out i have a link in the description below let's now talk about canary deployments
92
which is something you should absolutely introduce into any deployment pipeline
93
So let's talk about how our user actually talks to our application.
94
So we got some users here, and those users usually talk to our application,
95
not directly, but they talk through what's known as a load balancer.
96
So the load balancer is going to load bounce traffic to our application.
97
So our application is running under a Kubernetes pod.
98
So we'll just say this is myapp v1 .0 and then we'll say myapp v1 .1.
99
In a traditional Canary deployment, what would happen is you would have both of the applications deployed.
100
But at the start, it would send 100 % of the traffic to your original application.
101
So we'll say 100 % there and then 0 % here.
102
And then gradually the traffic will be moved over to the new version of your application.
103
So maybe you do it in increments of 10%.
104
So you go 90 % there,
105
10 % there, and then eventually you go 80 % to 20 % and you sort of get the idea.
106
Basically, you're drifting the traffic from the old version to the new version until eventually
107
you have 100 % of the traffic going there.
108
And you can just cut off all the traffic to version one and remove that from your environment.
109
And you just keep doing this for all your new releases.
110
Now, if you're using something like Argo Rollouts in Kubernetes, it would look more like this.
111
This would be actually your rollout object.
112
If you're familiar with Kubernetes, a rollout is basically just a deployment.
113
And a deployment is something that creates your pods, which is basically just your containers.
114
So the rollout object would run a certain number of pods for your version 1 of the application,
115
and then a certain number of pods for version 1 .1.
116
And then as the rollout progresses...
117
It would basically add new pods running the new version of the application
118
and then remove old pods running the old version until eventually all the pods are gone in version one
119
and they're all running in the new version.
120
All right, so I hope this video was helpful on getting to know and understand GitOps and deployment pipelines.
121
If you have any questions, please leave them down below.
122
I know these deployment pipelines can be a little bit confusing at first, especially if you're coming from just designing CICD pipelines,
123
which are pretty much the same no matter which organization you work for.
124
All the stages are sort of the same, but with deployment pipelines, it's really going to be customized to your environment and how your company functions.
125
So make sure to ask some questions below and check out the other videos linked in the description below.
126
I'll have all my Argo related videos that goes over Argo CD as well as one for Argo rollouts.
127
Thanks again for watching and I hope to see you all in the next video.

Download App

Everything you need to speak fluently

AI PronunciationScore every sentence
IPA PracticeMaster every sound
VocabularyBuild your word bank
Vocab GameLearn while playing
FOR YOU

Recommend Video

Vocabulary and speaking notes for this lesson

This speaking lesson is built on the video “How to design a Deployment Pipeline”. The speaker keeps coming back to these words: pipeline, environment, deployment, application, version. This video has 127 sentences and 1713 words to shadow. The speech runs for 11:01. The speaker talks at a natural 156 words per minute, close to everyday conversation. Only 81% of the words are among the 3,000 most common in English, so the vocabulary is demanding.

Key vocabulary in this video

15 words from the video worth learning, with pronunciation and meaning:

WordPronunciationMeaning
pipeline noun/ˈpaɪpˌlaɪn/A conduit made of pipes used to convey water, gas or petroleum, etc.
deployment noun/dɪˈplɔɪmənt/An arrangement or classification of things.
configuration noun/kənˌfɪɡ.əˈɹeɪ̯.ʃən/The form of a thing, as depending on the relative placement of the parts of a thing's shape.
trigger noun/ˈtɹɪɡɚ/A finger-operated lever used to fire a gun.
pod noun/ˈpɑd/A seed case for legumes (e.g. peas, beans, peppers); a seedpod.
sync noun/sɪŋk/Harmony.
deploy verb/dɪˈplɔɪ/To prepare and arrange (originally military unit or units, i.e., to array troops) for use.
manifest noun/ˈmæn.ɪ.fɛst/A list or invoice of the passengers or goods being carried by a commercial vehicle or ship.
cluster noun/ˈklʌstɚ/A bunch or group of several discrete items that are close to each other.
manually adverb/ˈmænj(u)əliː/By hand.
server noun/ˈsɝvɚ/A program that provides services to other programs or devices, either in the same computer or over a computer network.
installed verb/ɪnˈstɔːld/readied for use
arrow noun/ˈæɹəʊ/A projectile consisting of a shaft, a point and a tail with stabilizing fins that is shot from a bow.
container noun/kənˈteɪ.nəɹ/An item in which objects, materials or data can be stored or transported.
operator noun/ˈɑpəˌɹeɪtɚ/A person or organisation that operates a device, system, service, etc.

Phrasal verbs you will hear

WordPronunciationMeaning
check out verbTo record the departure or withdrawal of someone or something (such as guests, employees, books, etc.).
go ahead verb/ˌɡoʊ əˈhɛd/To proceed with; to begin.
set up verb/ˌsɛt ˈʌp/To make ready for use.
cut off verb/ˌkʌt ˈɔf/ [ˌkɐɾ ˈɔf]To remove by cutting.
go over verbTo look at carefully; to scrutinize; to analyze.
pull down verbTo make (something) lower (especially of clothes).
talk through verbTo tell (someone) step by step how to do something.

Grammar in this video

The structures the speaker uses most, with the exact words from the video:

StructureIn the video
Passive voice be + past participle — the focus is on what happens, not who does itis stored · is known · should be triggered
Relative clauses who / which + clause — extra information about a person or thingvideo which was · testing, which is · pods, which is

Pronunciation to watch

The speaker uses 32 contractions and reduced forms, such as we'll, you're, I'm. Say them the short way, as you hear them.

  • The “sh” and “zh” sounds: configuration /kənˌfɪɡ.əˈɹeɪ̯.ʃən/, visualize /ˈvɪʒuəˌlaɪz/
  • Long words — get the stress right: configuration /kənˌfɪɡ.əˈɹeɪ̯.ʃən/, manually /ˈmænj(u)əliː/, operator /ˈɑpəˌɹeɪtɚ/, continuous /kənˈtɪn.juː.əs/, automobile /ˈɔː.tə.məˌbil/

How to practise with this video

  1. Listen to the whole video once without speaking and note the words you do not know.
  2. Start at 0.75× speed, shadow it sentence by sentence, then go back to normal speed once it feels easy.
  3. Record yourself and compare with the original, paying attention to words like pipeline, deployment, configuration.

What is the Shadowing Technique?

Shadowing is a science-backed language learning technique originally developed for professional interpreter training and popularized by polyglot Dr. Alexander Arguelles. The method is simple but powerful: you listen to native English audio and immediately repeat it out loud — like a shadow following the speaker with just a 1–2 second delay. Unlike passive listening or grammar drills, shadowing forces your brain and mouth muscles to simultaneously process and reproduce real speech patterns. Research shows it significantly improves pronunciation accuracy, intonation, rhythm, connected speech, listening comprehension, and speaking fluency — making it one of the most effective methods for IELTS Speaking preparation and real-world English communication.

Shadowing technique: read the full step-by-step guide →