Instructor: Workflow Orchestration. 2 2
In this lesson, 3 3
we're going to start talking about orchestration 4 4
because orchestration is the automation 5 5
of multiple steps in a deployment process. 6 6
Now, when you take a process, 7 7
you have to first break it down into its component parts. 8 8
You need to understand what that workflow looks like. 9 9
So, if I start at the green dot 10 10
and I want to get to the red dot, 11 11
what things do I do to get there? 12 12
What are those if and then and L statements? 13 13
What are the different actions that go through? 14 14
Let's take an example. 15 15
Let's say you wanted to orchestrate 16 16
adding a new virtual machine to a load balance cluster. 17 17
Now, this process might include lots of different things. 18 18
You're going to have to provision the VM, 19 19
you have to configure the VM, 20 20
you have to add it to the load balance cluster, 21 21
and you need to configure that load balance cluster 22 22
weight distribution to consider the fact 23 23
that you added this new virtual machine 24 24
as part of that cluster. 25 25
When you do all these things, 26 26
there might be 4, 5, 10, 15, 20 steps, 27 27
maybe 100 steps, 28 28
but you can do all of this through orchestration 29 29
and then you can automate it 30 30
so you can run those things 31 31
without having to do each those steps yourself. 32 32
Now, when you talk about orchestration, 33 33
I want you to think about it this way. 34 34
Orchestration is the automation of automations. 35 35
Now, what does that mean? 36 36
Well, each of those blocks 37 37
in that flow chart I just showed you 38 38
could be its own step, 39 39
and that step may be one action or it could be 50 actions. 40 40
For instance, I have a flow chart 41 41
and a path that talks about when you buy a course, 42 42
everything that happens from the time you buy the course 43 43
to the time you start taking the course. 44 44
And there's a lot of things that happen 45 45
because we have to create an account for you, 46 46
we have to reset your password, 47 47
we need to add the course to your account. 48 48
There's all these different steps. 49 49
And so, each of those isn't just one step either, 50 50
some of those have multiple actions inside of it. 51 51
For instance, when you buy the course 52 52
we have to send your receipt. 53 53
We have to log that inside of our purchase system. 54 54
We have to make sure we account it 55 55
for the taxes that we have to pay on that. 56 56
We have to account for the fact 57 57
that we need to create an account for that, 58 58
and all those different things. 59 59
And so, if we can think logically about what is the sequence 60 60
then we can automate that sequence. 61 61
And then, if we take lots of different sequences 62 62
and put them all together in one big automation, 63 63
that is the orchestration piece. 64 64
Now, when we talk about cloud computing 65 65
one of the biggest benefits in cloud computing 66 66
is rapid elasticity. 67 67
When you go to my website, 68 68
if there's one person going to my website, 69 69
we have one cloud server up. 70 70
If we have 10 people, we might have two cloud servers up. 71 71
If we have 100 people, 72 72
we might have five cloud servers up. 73 73
If we have 100,000 people, 74 74
we might have, I don't know, 1,000 or 2,000 servers up. 75 75
And what happens is this rapid elasticity, 76 76
it does this all on its own. 77 77
It rapidly adds new servers 78 78
as the configurations configures them, 79 79
copies the data, and then puts them into the cloud as well 80 80
as part of our load balance cluster. 81 81
All of that happens with automation, 82 82
and this all happens 83 83
because of the orchestration we've created. 84 84
Now, when you start talking about orchestration, 85 85
there's really three types of orchestration. 86 86
The first one is resource orchestration. 87 87
This is to provision and allocate resources 88 88
within a cloud environment or other solution. 89 89
When you talk about workload orchestration, 90 90
this is for the management of applications 91 91
and other cloud workloads that need to be performed 92 92
and basically looking 93 93
at the components to create the product you need. 94 94
The third one that we have 95 95
is what's known as service orchestration. 96 96
This is going to be used to deploy services 97 97
into cloud environments. 98 98
Notice the differences here. 99 99
Resources is like an EC2 instance in Amazon, 100 100
you're going to start up a new server, new VM. 101 101
If you're dealing with workload orchestration, 102 102
this is about managing apps 103 103
and other things that are working together. 104 104
And then, we talk about service orchestration, 105 105
this is working on those services themselves. 106 106
Now, when it comes to orchestration, 107 107
I want you to remember 108 108
you don't have to be locked into one vendor. 109 109
Everything you do doesn't have to sit there on Amazon, 110 110
or on Azure, or on Google Cloud. 111 111
You can pick one, two, three, or multiple. 112 112
It really depends on you. 113 113
And if you do this, there is some platforms out there 114 114
that are known as third-party orchestration platforms. 115 115
These allow you to work on your product 116 116
and your orchestration across multiple vendors 117 117
and allows you to prevent this vendor lock in. 118 118
Now, as we talk about orchestration, 119 119
there is a handful of tools that you need to be aware of. 120 120
Now, for the exam, 121 121
the tools I'm going to mention in this lesson, 122 122
you don't have to memorize them all. 123 123
You should just be able to associate what the tool is, 124 124
and basically what it does. 125 125
But nobody's asking you to actually know 126 126
how to use these tools, at least not for this exam. 127 127
So, let's talk about some of these. 128 128
The first one we have is what's known as Chef. 129 129
Now, Chef is a way to automate configuration deployments 130 130
and the management of applications, 131 131
and it does this using what they call cookbooks. 132 132
And this basically tells you 133 133
how everything should be configured. 134 134
There's lots of different recipes you can create 135 135
and you can basically take these different services 136 136
that are written inside of Ruby 137 137
and put them together using Chef. 138 138
Chef has the ability to work 139 139
with lots of virtual machines as well as physical machines, 140 140
containers, and other cloud instances. 141 141
When we talk about Puppet, 142 142
Puppet is very similar to Chef, 143 143
but it requires the installation of a master server 144 144
and then client agents in the different targeted nodes 145 145
to be able to do a orchestration. 146 146
Puppet unlike Chef 147 147
doesn't really rely on as much programming 148 148
so you really don't have to know Ruby, 149 149
but you do need to understand 150 150
some more traditional operations. 151 151
So, Puppet is pretty popular, 152 152
especially with some of the older school folks. 153 153
The next one we have is Ansible. 154 154
Ansible, unlike Chef or Puppet, doesn't use user agents. 155 155
Instead, everything is done using what's called YAML, 156 156
yet another markup language. 157 157
These are different configuration files or playbooks, 158 158
and it allows the master to connect to the client machines 159 159
over SSH to configure them. 160 160
The next one we have is Docker, 161 161
and you've probably heard of this one before. 162 162
It's an open platform for developing, 163 163
shipping, running, and deploying applications 164 164
using container-based virtualization. 165 165
When we talked earlier about virtualization and containers, 166 166
Docker is a good example of that container-based system. 167 167
Now, another one we have is what's known as Kubernetes. 168 168
Now, Kubernetes provides an abstraction layer 169 169
from managing these containers. 170 170
So, if you take Docker and you have all those containers 171 171
and you need to be able to manage them 172 172
using scripts or other tasks reliably, 173 173
you can use something like Kubernetes to do that. 174 174
And then, the last one we have is GitHub. 175 175
Now, GitHub is basically just a service 176 176
that a lot of developers use to share their code. 177 177
If you're programming and creating scripts, 178 178
you can actually put those on on GitHub. 179 179
And if you're looking for some kind of an automation, 180 180
chances are somebody's already built it. 181 181
So, if you're thinking about how to orchestrate 182 182
some kind of a new cloud service, 183 183
you should first check on GitHub 184 184
and see if other people in their public repositories 185 185
have made that code available. 186 186
If they have, you could take that as your starting point 187 187
and then modify it for your own use case.