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