1
00:00:00,000 --> 00:00:03,260
So, Paul, you're big into food.

2
00:00:03,400 --> 00:00:04,460
I have a question for you.

3
00:00:04,820 --> 00:00:07,480
Now, do you have a position on drinking broth?

4
00:00:07,940 --> 00:00:08,600
It depends.

5
00:00:08,720 --> 00:00:11,920
I have opinions about this thing called bone broth

6
00:00:11,920 --> 00:00:16,780
and how it's really just stuck with a bunch of woo wrapped around it.

7
00:00:17,020 --> 00:00:17,760
What is woo?

8
00:00:18,000 --> 00:00:21,180
Well, I think of woo like a, I guess like a,

9
00:00:21,600 --> 00:00:23,480
I'm going to probably get myself into trouble,

10
00:00:23,480 --> 00:00:29,480
but like a chiropractor or a homeopathic doctor or a...

11
00:00:29,480 --> 00:00:30,360
Mystical.

12
00:00:30,920 --> 00:00:31,280
Mystical.

13
00:00:31,440 --> 00:00:31,520
Yeah.

14
00:00:31,600 --> 00:00:32,380
That makes sense.

15
00:00:32,480 --> 00:00:32,600
Okay.

16
00:00:32,720 --> 00:00:38,500
So, you think beef broth has a certain amount of mysticism associated with it?

17
00:00:38,680 --> 00:00:39,520
No, bone broth.

18
00:00:39,780 --> 00:00:40,360
Bone broth.

19
00:00:40,840 --> 00:00:41,360
Oh, okay.

20
00:00:41,460 --> 00:00:41,560
Okay.

21
00:00:42,140 --> 00:00:47,740
Bone broth is really just stock because stock is just bones that you boil in water

22
00:00:47,740 --> 00:00:50,260
to make a delicious stock with.

23
00:00:50,840 --> 00:00:55,040
And then you take that stock and you can either turn that into broth,

24
00:00:55,220 --> 00:00:58,400
which is kind of like a stock without really much in it,

25
00:00:58,460 --> 00:00:59,240
or you have a soup,

26
00:00:59,360 --> 00:01:01,700
which is when you actually add other things into it

27
00:01:01,700 --> 00:01:04,060
to make a sort of more wholesome, hearty thing.

28
00:01:04,480 --> 00:01:04,760
Okay.

29
00:01:04,840 --> 00:01:07,000
Well, this is delightfully more than I was expecting.

30
00:01:07,380 --> 00:01:09,540
So, let's, let's dive into this just a little bit

31
00:01:09,540 --> 00:01:11,020
and then we'll get to the technical stuff.

32
00:01:11,020 --> 00:01:18,260
So, broth is a superset of stock and bone broth?

33
00:01:18,580 --> 00:01:20,540
Like, broth is the whole collection of things?

34
00:01:20,860 --> 00:01:21,080
Yeah.

35
00:01:21,260 --> 00:01:24,880
So, bone broth is just like a marketing term that people have added

36
00:01:24,880 --> 00:01:30,320
so they can sell it as part of a diet that people will buy their,

37
00:01:30,320 --> 00:01:32,360
like, body transformation books over.

38
00:01:32,740 --> 00:01:37,100
It's not really a separate thing from regular broth or stock.

39
00:01:37,400 --> 00:01:37,700
Okay.

40
00:01:37,820 --> 00:01:38,020
Okay.

41
00:01:38,120 --> 00:01:39,160
So, it's a...

42
00:01:39,160 --> 00:01:41,540
They'll argue that the process is different

43
00:01:41,540 --> 00:01:44,960
and they'll put nutrients out of the bones with extra vinegar

44
00:01:44,960 --> 00:01:46,940
and a bunch of other nonsense.

45
00:01:47,380 --> 00:01:49,560
But the science ain't there.

46
00:01:50,020 --> 00:01:50,360
I see.

47
00:01:50,420 --> 00:01:50,620
I see.

48
00:01:50,680 --> 00:01:50,880
Okay.

49
00:01:50,960 --> 00:01:51,200
Okay.

50
00:01:51,200 --> 00:01:55,060
So, the mysticism aside, do you have...

51
00:01:55,060 --> 00:01:57,720
Is drinking broth, is that okay?

52
00:01:58,160 --> 00:01:59,620
Is that a thing or is it just flavor?

53
00:01:59,860 --> 00:02:01,380
Like, what is a terrible idea?

54
00:02:01,460 --> 00:02:01,880
What do you think?

55
00:02:02,620 --> 00:02:05,220
If it's good enough for Baby Yoda, it's good enough for me.

56
00:02:07,880 --> 00:02:10,120
When does the soup become a stew?

57
00:02:10,580 --> 00:02:16,300
I think it's a stew when there's more other stuff than there is soup.

58
00:02:17,880 --> 00:02:22,300
The particulate water level is higher.

59
00:02:23,420 --> 00:02:24,260
Big chunks.

60
00:02:25,040 --> 00:02:27,120
I think it's sort of like, I mean,

61
00:02:27,160 --> 00:02:28,360
I guess everyone says,

62
00:02:28,640 --> 00:02:32,160
people say that the body is mostly made up of water,

63
00:02:32,380 --> 00:02:34,440
but we would not call the body water.

64
00:02:34,940 --> 00:02:37,100
There is like, it is more on the stew side,

65
00:02:37,500 --> 00:02:38,560
philosophically thinking.

66
00:02:38,740 --> 00:02:41,240
I guess it's pre-stew.

67
00:02:41,980 --> 00:02:42,140
Yeah.

68
00:02:42,160 --> 00:02:44,320
I guess I just figured it's when a fork comes into the equation.

69
00:02:44,640 --> 00:02:45,600
You're in stew territory.

70
00:02:46,680 --> 00:02:48,980
That's probably a good way to look at it.

71
00:02:48,980 --> 00:02:51,980
When you need to upgrade from a fork,

72
00:02:52,240 --> 00:02:53,280
a spoon to a fork.

73
00:02:53,480 --> 00:02:55,800
And I don't think a spork quite counts.

74
00:02:56,160 --> 00:02:57,740
Well, this isn't Kentucky fried chicken.

75
00:02:58,140 --> 00:02:58,700
So, right.

76
00:02:59,000 --> 00:02:59,800
Spork's not welcome.

77
00:03:00,320 --> 00:03:00,720
That's good.

78
00:03:00,780 --> 00:03:01,180
That's good.

79
00:03:01,320 --> 00:03:01,760
Well, good.

80
00:03:02,320 --> 00:03:06,500
I think we've covered the formal introductory part of the podcast

81
00:03:06,500 --> 00:03:09,200
where we talk about food or the weather.

82
00:03:09,320 --> 00:03:09,700
So, that's good.

83
00:03:09,820 --> 00:03:12,460
So, Paul, why don't you introduce yourself?

84
00:03:13,500 --> 00:03:14,560
My name is Paul.

85
00:03:16,280 --> 00:03:18,940
What do you do around here?

86
00:03:20,100 --> 00:03:23,160
I'm on the developer advocacy team at, I guess,

87
00:03:23,340 --> 00:03:23,940
now VMware,

88
00:03:24,360 --> 00:03:26,520
since the acquisition went through recently,

89
00:03:26,900 --> 00:03:28,320
previously pivotal.

90
00:03:29,160 --> 00:03:37,780
And I sort of focus on Kubernetes and other more operations slash DevOps things

91
00:03:37,780 --> 00:03:47,140
as opposed to squiggly lines and periods and equal signs in Visual Studio Code

92
00:03:47,140 --> 00:03:49,220
or whatever we're using these days when we're writing code.

93
00:03:49,720 --> 00:03:50,720
So, I'm a developer advocate,

94
00:03:50,920 --> 00:03:53,560
but really I'm more of a ops advocate.

95
00:03:54,240 --> 00:03:54,720
Well, you know,

96
00:03:54,900 --> 00:03:56,340
they need advocating too.

97
00:03:56,620 --> 00:03:56,740
Yeah.

98
00:03:56,740 --> 00:03:59,960
That's what I always tell people is you do the ops stuff and the DevOps.

99
00:04:00,320 --> 00:04:00,900
And of course,

100
00:04:01,020 --> 00:04:01,780
the Kubernetes,

101
00:04:02,140 --> 00:04:02,420
Kubernetes,

102
00:04:03,140 --> 00:04:04,240
the kubes,

103
00:04:04,400 --> 00:04:05,040
all of that stuff.

104
00:04:05,280 --> 00:04:06,660
The kub is very needy.

105
00:04:06,760 --> 00:04:07,820
So, we definitely have some Kubernetes.

106
00:04:09,340 --> 00:04:12,900
So, I wanted to have you on to sort of kick off the year,

107
00:04:13,140 --> 00:04:16,020
talking about speaking of Kubernetes and operational stuff.

108
00:04:16,840 --> 00:04:18,420
And, you know,

109
00:04:18,520 --> 00:04:19,700
I realized,

110
00:04:19,840 --> 00:04:20,640
well, you know,

111
00:04:21,160 --> 00:04:21,840
I know you well,

112
00:04:21,960 --> 00:04:23,580
but I knew it would be especially fun

113
00:04:23,580 --> 00:04:26,580
because I watched that video you did in Warsaw a while back.

114
00:04:27,620 --> 00:04:28,540
By a while back,

115
00:04:28,620 --> 00:04:29,520
I mean last month.

116
00:04:30,060 --> 00:04:31,020
So long ago.

117
00:04:31,820 --> 00:04:32,860
It seems like a long time ago.

118
00:04:33,200 --> 00:04:33,560
But yeah,

119
00:04:33,660 --> 00:04:33,780
yeah,

120
00:04:33,780 --> 00:04:39,900
I hadn't seen you do the overall Kubernetes arc of everything.

121
00:04:40,240 --> 00:04:41,740
And it was very good.

122
00:04:41,960 --> 00:04:42,460
It was nice.

123
00:04:42,680 --> 00:04:44,140
Everything kind of fit together well.

124
00:04:44,400 --> 00:04:45,220
And, you know,

125
00:04:45,260 --> 00:04:46,920
you also got to do a speak in Warsaw,

126
00:04:47,240 --> 00:04:48,020
which I'm sure was fun.

127
00:04:48,040 --> 00:04:49,640
And I think I spoke in that same room.

128
00:04:49,740 --> 00:04:52,180
That's like in a big university building somewhere.

129
00:04:52,460 --> 00:04:53,340
Yeah, yeah, it was.

130
00:04:53,640 --> 00:04:53,880
Yeah.

131
00:04:54,580 --> 00:04:54,980
Anyways,

132
00:04:55,200 --> 00:04:58,180
so we all have only a couple little news items

133
00:04:58,180 --> 00:04:59,380
that I wanted to go over

134
00:04:59,380 --> 00:05:00,120
and just some pointers.

135
00:05:00,340 --> 00:05:01,640
And then we'll dive into,

136
00:05:01,680 --> 00:05:02,300
you know,

137
00:05:02,520 --> 00:05:03,520
Paul's exploration.

138
00:05:03,780 --> 00:05:04,580
As Paul mentioned,

139
00:05:05,040 --> 00:05:07,300
I think it was on December 30th,

140
00:05:07,480 --> 00:05:07,980
2019,

141
00:05:08,640 --> 00:05:11,760
that VMware finalized its acquisition of Pivotal.

142
00:05:12,300 --> 00:05:13,800
So we're all VMware people.

143
00:05:13,900 --> 00:05:17,120
I think we all have VMware email addresses as well,

144
00:05:17,180 --> 00:05:18,080
which is very exciting.

145
00:05:18,280 --> 00:05:21,480
We'll have to trade with each other what they are.

146
00:05:21,820 --> 00:05:23,940
It's always fun when you join a large company

147
00:05:23,940 --> 00:05:25,840
to see what your email address ends up being.

148
00:05:25,840 --> 00:05:27,320
And as you can imagine,

149
00:05:27,460 --> 00:05:28,580
as another thing,

150
00:05:28,640 --> 00:05:30,320
I've been doing a lot of figuring out

151
00:05:30,320 --> 00:05:32,000
what's going on in VMware world.

152
00:05:32,180 --> 00:05:33,640
And somehow I stumbled upon,

153
00:05:33,720 --> 00:05:35,160
I'll put a link to it in the show notes,

154
00:05:35,200 --> 00:05:38,460
which we post at pivotal.io slash podcast.

155
00:05:39,200 --> 00:05:41,240
Maybe it'll be another URL sometime in the future.

156
00:05:41,380 --> 00:05:42,480
But there's a good video from,

157
00:05:42,540 --> 00:05:44,820
I think it's like VMware tech days

158
00:05:44,820 --> 00:05:46,860
that goes over what Project Pacific is.

159
00:05:47,140 --> 00:05:47,360
And like,

160
00:05:47,740 --> 00:05:48,600
I think there's,

161
00:05:49,080 --> 00:05:49,800
it's for me,

162
00:05:49,860 --> 00:05:52,180
been one of the more mysterious sort of things

163
00:05:52,180 --> 00:05:54,380
that VMware has been doing in the Kubernetes space.

164
00:05:54,460 --> 00:05:55,320
But this thing finally,

165
00:05:55,460 --> 00:05:55,800
this thing,

166
00:05:55,880 --> 00:05:56,560
this video finally,

167
00:05:56,640 --> 00:05:58,720
I think has a really good technical explanation

168
00:05:58,720 --> 00:05:59,760
of what's going on there

169
00:05:59,760 --> 00:06:01,640
if you wanted to dive into it more.

170
00:06:01,780 --> 00:06:03,040
So I would refer to you to that.

171
00:06:03,400 --> 00:06:04,740
And I think it's from one of the project,

172
00:06:04,740 --> 00:06:05,620
product managers.

173
00:06:05,820 --> 00:06:07,760
And then also we and Forrester

174
00:06:07,760 --> 00:06:11,180
released this thing called a total economic impact

175
00:06:11,180 --> 00:06:12,180
or T-E-I,

176
00:06:12,820 --> 00:06:14,820
which unfortunately it's too bad

177
00:06:14,820 --> 00:06:16,460
they couldn't forget how to make it spell Thai

178
00:06:16,460 --> 00:06:17,320
because you can't really,

179
00:06:17,360 --> 00:06:19,080
you can't really like pronounce T.

180
00:06:19,540 --> 00:06:21,240
How would you pronounce that if you have,

181
00:06:21,380 --> 00:06:22,140
I can't think of a,

182
00:06:22,220 --> 00:06:22,500
I guess,

183
00:06:22,660 --> 00:06:25,040
I guess Terry in French,

184
00:06:25,220 --> 00:06:26,660
but that's a T-H-E-I.

185
00:06:27,000 --> 00:06:28,560
There's gotta be some way you would play.

186
00:06:29,420 --> 00:06:29,740
Yeah.

187
00:06:30,160 --> 00:06:30,400
Yeah.

188
00:06:30,800 --> 00:06:31,160
Anyhow,

189
00:06:31,620 --> 00:06:33,400
that's a report that we have out.

190
00:06:33,480 --> 00:06:34,000
You can read.

191
00:06:34,280 --> 00:06:35,340
And it goes over.

192
00:06:35,440 --> 00:06:35,720
I think,

193
00:06:35,780 --> 00:06:37,780
I think if I remember it's based on like five

194
00:06:37,780 --> 00:06:39,420
or six or eight or so customers

195
00:06:39,420 --> 00:06:40,940
that Forrester interviewed.

196
00:06:41,440 --> 00:06:42,080
Something in that area.

197
00:06:42,100 --> 00:06:43,340
Cause we did one last year

198
00:06:43,340 --> 00:06:44,880
or what they did one last year.

199
00:06:45,320 --> 00:06:47,240
And it kind of goes over the,

200
00:06:47,240 --> 00:06:49,420
the improvements that you get,

201
00:06:49,500 --> 00:06:50,480
the return on investment

202
00:06:50,480 --> 00:06:51,720
and productivity and stuff.

203
00:06:51,780 --> 00:06:53,320
And it's fun reading through.

204
00:06:53,400 --> 00:06:54,480
It's always nice to have

205
00:06:54,480 --> 00:06:55,960
aggregated numbers like that.

206
00:06:56,040 --> 00:06:56,180
Yeah.

207
00:06:56,180 --> 00:06:57,500
It's fairly realistic.

208
00:06:57,500 --> 00:06:57,740
I mean,

209
00:06:57,760 --> 00:06:59,300
they'd kind of create an aggregate customer

210
00:06:59,300 --> 00:07:00,220
out of all the interviews

211
00:07:00,220 --> 00:07:02,100
and talk about the general benefits you get.

212
00:07:02,140 --> 00:07:03,240
And it's real anecdotes.

213
00:07:03,300 --> 00:07:04,100
It's not made up stuff.

214
00:07:04,100 --> 00:07:04,440
So it's,

215
00:07:04,440 --> 00:07:05,680
it's actually a pretty useful read,

216
00:07:05,740 --> 00:07:06,160
as you say.

217
00:07:06,320 --> 00:07:07,060
So with that,

218
00:07:07,480 --> 00:07:08,200
Paul,

219
00:07:09,260 --> 00:07:09,700
Kubernetes,

220
00:07:11,000 --> 00:07:12,000
give us an overview.

221
00:07:12,420 --> 00:07:12,600
Wow.

222
00:07:12,680 --> 00:07:12,980
Okay.

223
00:07:13,080 --> 00:07:14,200
An overview of Kubernetes.

224
00:07:14,640 --> 00:07:14,780
Yeah.

225
00:07:14,800 --> 00:07:15,400
What is it?

226
00:07:15,540 --> 00:07:16,100
It's a thing.

227
00:07:16,160 --> 00:07:17,760
What runs containers for you?

228
00:07:18,260 --> 00:07:18,540
See,

229
00:07:18,900 --> 00:07:19,740
that's a good start.

230
00:07:19,820 --> 00:07:21,100
This is one of the conclusions.

231
00:07:22,120 --> 00:07:22,480
As,

232
00:07:22,480 --> 00:07:23,100
as I was,

233
00:07:23,160 --> 00:07:23,420
you know,

234
00:07:23,460 --> 00:07:24,220
watching your,

235
00:07:24,280 --> 00:07:24,960
your overview,

236
00:07:25,240 --> 00:07:26,760
watching yet another overview of Kubernetes,

237
00:07:26,900 --> 00:07:27,380
I was like,

238
00:07:27,400 --> 00:07:27,580
you know,

239
00:07:27,580 --> 00:07:28,160
as always,

240
00:07:28,660 --> 00:07:30,240
I complexify things too much.

241
00:07:30,360 --> 00:07:31,560
There's a slide you had where you're like,

242
00:07:31,620 --> 00:07:31,720
oh,

243
00:07:31,720 --> 00:07:33,600
it's really easy to run this on your laptop.

244
00:07:34,000 --> 00:07:35,540
And then here's a bunch of servers.

245
00:07:35,640 --> 00:07:36,980
And now you need to do that.

246
00:07:37,360 --> 00:07:38,460
And it's sort of like,

247
00:07:38,520 --> 00:07:40,020
it's after all these years,

248
00:07:40,540 --> 00:07:44,680
I often forget that simple jump that like the whole point is like,

249
00:07:44,760 --> 00:07:48,740
you need to run like thousands of these and you know,

250
00:07:49,020 --> 00:07:50,060
that seems like a hassle.

251
00:07:50,360 --> 00:07:51,180
Have you changed your opinion?

252
00:07:51,280 --> 00:07:51,380
I mean,

253
00:07:51,400 --> 00:07:52,400
if we go back to the very beginning,

254
00:07:52,760 --> 00:07:54,220
why do people care about containers?

255
00:07:54,360 --> 00:07:54,500
I mean,

256
00:07:54,500 --> 00:07:55,580
we've been talking about it for years,

257
00:07:55,660 --> 00:07:58,660
but has your thinking evolved at all about even in the first place,

258
00:07:58,660 --> 00:07:59,580
like why containerize?

259
00:07:59,780 --> 00:08:00,000
So,

260
00:08:00,100 --> 00:08:00,300
I mean,

261
00:08:00,340 --> 00:08:02,760
I think the value of containers,

262
00:08:02,960 --> 00:08:03,340
especially,

263
00:08:03,520 --> 00:08:03,760
you know,

264
00:08:03,760 --> 00:08:04,040
the,

265
00:08:04,040 --> 00:08:05,120
the canonical,

266
00:08:05,120 --> 00:08:05,600
you know,

267
00:08:05,660 --> 00:08:12,440
Docker image version of containers is the ease of building and the ease of

268
00:08:12,440 --> 00:08:12,820
sharing.

269
00:08:13,280 --> 00:08:17,160
I think that kind of trumps most of the other things,

270
00:08:17,340 --> 00:08:22,420
especially now we have a bunch of options around the lightweight VMs that

271
00:08:22,420 --> 00:08:23,960
behave like containers.

272
00:08:25,400 --> 00:08:26,380
And I know,

273
00:08:26,640 --> 00:08:26,960
I mean,

274
00:08:27,260 --> 00:08:29,100
I think 12 months ago,

275
00:08:29,100 --> 00:08:33,100
I kind of wrote a snarky blog post about the future of Kubernetes being

276
00:08:33,100 --> 00:08:34,100
lightweight VMs.

277
00:08:35,340 --> 00:08:41,800
And I still feel that there's a strong place there because there's still a lot

278
00:08:41,800 --> 00:08:48,860
of angst and concern about the real secure isolation of containers and what that looks

279
00:08:48,860 --> 00:08:50,500
like in a multi-tenant world.

280
00:08:50,940 --> 00:08:58,940
And I think it would be a lot of work to make a multi-tenant safe container

281
00:08:58,940 --> 00:08:59,620
hypervisor,

282
00:09:00,020 --> 00:09:08,620
whereas a VM hypervisor is more or less multi-tenant safe from the outset.

283
00:09:08,620 --> 00:09:10,840
And being able to,

284
00:09:10,840 --> 00:09:17,460
instead of having a bunch of servers with hypervisors with a container engine,

285
00:09:17,680 --> 00:09:19,100
sort of all stacked up,

286
00:09:19,240 --> 00:09:24,140
being able to just have the Kubernetes control plane and a bunch of hypervisors,

287
00:09:24,960 --> 00:09:26,040
sorry,

288
00:09:26,120 --> 00:09:27,760
multiple Kubernetes control planes,

289
00:09:27,840 --> 00:09:32,960
either sharing that pool of hypervisors and sharing those resources from a

290
00:09:32,960 --> 00:09:34,840
infrastructure point of view,

291
00:09:34,920 --> 00:09:36,460
from a cloud provider point of view,

292
00:09:36,840 --> 00:09:37,840
even from a,

293
00:09:38,280 --> 00:09:38,560
you know,

294
00:09:38,880 --> 00:09:39,860
inside your data center,

295
00:09:40,080 --> 00:09:41,220
private cloud point of view,

296
00:09:41,820 --> 00:09:48,360
having that brings a lot more potential for higher density of,

297
00:09:48,580 --> 00:09:48,740
you know,

298
00:09:48,960 --> 00:09:51,020
more bin packing of your workloads.

299
00:09:51,680 --> 00:09:52,080
So,

300
00:09:52,200 --> 00:09:52,380
and I,

301
00:09:52,380 --> 00:09:54,680
and I think that bin packing side of things,

302
00:09:54,820 --> 00:09:57,720
the better density is probably the killer app there,

303
00:09:57,820 --> 00:10:02,180
more so than the security and the multi-tenancy.

304
00:10:02,660 --> 00:10:04,620
So I still think we're going to see it go that way.

305
00:10:05,040 --> 00:10:07,840
But I still think we're going to continue to see the,

306
00:10:08,040 --> 00:10:09,660
that Docker file,

307
00:10:09,980 --> 00:10:14,520
Docker hub type system for building and sharing.

308
00:10:15,260 --> 00:10:18,420
But building and sharing for you are the kind of main things.

309
00:10:18,980 --> 00:10:19,120
Yeah.

310
00:10:19,200 --> 00:10:22,600
So it'll still be effectively a container to you or I,

311
00:10:22,760 --> 00:10:25,980
but it may be a lightweight VM when it's actually running somewhere.

312
00:10:26,400 --> 00:10:30,480
And that's going to be an implementation detail that we don't even care about.

313
00:10:30,600 --> 00:10:30,740
Yeah.

314
00:10:30,760 --> 00:10:34,900
That's a good way to start wrapping our hands around the impossibly open-ended

315
00:10:34,900 --> 00:10:36,680
question of so Kubernetes,

316
00:10:37,300 --> 00:10:38,520
which is as,

317
00:10:38,860 --> 00:10:40,100
so,

318
00:10:40,140 --> 00:10:40,600
so I,

319
00:10:41,020 --> 00:10:41,860
as,

320
00:10:41,960 --> 00:10:42,460
as you're saying,

321
00:10:42,500 --> 00:10:45,860
like the two valuable things that you get,

322
00:10:45,900 --> 00:10:47,220
the reason you do it is,

323
00:10:47,340 --> 00:10:49,060
is I guess that building and sharing.

324
00:10:49,260 --> 00:10:50,040
I mean,

325
00:10:50,080 --> 00:10:50,260
is,

326
00:10:50,260 --> 00:10:50,740
is that,

327
00:10:51,500 --> 00:10:51,680
and,

328
00:10:51,740 --> 00:10:53,020
and what is the sharing part of it?

329
00:10:53,020 --> 00:10:54,760
Cause I guess the building part is just like,

330
00:10:54,940 --> 00:11:00,220
it's easy to package up your software to run basically.

331
00:11:00,220 --> 00:11:01,700
And it's fast.

332
00:11:02,280 --> 00:11:04,200
And then what's the sharing part?

333
00:11:04,900 --> 00:11:06,680
The sharing is the Docker push,

334
00:11:06,780 --> 00:11:08,640
Docker pull that you do to a,

335
00:11:08,720 --> 00:11:12,520
either the Docker hub up in the public or a private registry like Harbor,

336
00:11:12,800 --> 00:11:16,060
where it becomes very easy to say,

337
00:11:16,180 --> 00:11:17,100
here's my app.

338
00:11:17,200 --> 00:11:18,040
Anyone can run it.

339
00:11:18,160 --> 00:11:20,660
And then anyone can go,

340
00:11:20,880 --> 00:11:20,980
Hey,

341
00:11:21,000 --> 00:11:25,340
I'm looking for Bob's WordPress image.

342
00:11:25,580 --> 00:11:26,020
There it is.

343
00:11:26,080 --> 00:11:28,680
I can grab it and run it without having to really think about it.

344
00:11:29,180 --> 00:11:30,720
I think that's the difference,

345
00:11:30,800 --> 00:11:30,920
right?

346
00:11:30,980 --> 00:11:31,100
I mean,

347
00:11:31,120 --> 00:11:31,920
Coté from you and I,

348
00:11:31,960 --> 00:11:32,400
we're all of us,

349
00:11:32,460 --> 00:11:33,300
we're all old people now.

350
00:11:33,440 --> 00:11:33,680
I mean,

351
00:11:33,680 --> 00:11:34,700
from the years ago of,

352
00:11:34,900 --> 00:11:38,000
here's 20 set of instructions to get this thing up and running.

353
00:11:38,060 --> 00:11:38,960
I got to start this up,

354
00:11:39,040 --> 00:11:39,540
install this,

355
00:11:39,680 --> 00:11:40,320
configure that.

356
00:11:40,400 --> 00:11:40,600
And Hey,

357
00:11:40,620 --> 00:11:41,860
it's different than two weeks ago.

358
00:11:41,860 --> 00:11:42,940
Cause something else changed.

359
00:11:43,080 --> 00:11:44,780
Cause everything is packed together.

360
00:11:44,900 --> 00:11:45,260
Right.

361
00:11:45,320 --> 00:11:46,060
Probably at that point,

362
00:11:46,460 --> 00:11:49,400
me running out of my machine will be completely identical to you doing it.

363
00:11:49,400 --> 00:11:50,320
Cause all the dependencies,

364
00:11:50,500 --> 00:11:53,140
all the config is literally wrapped up in one immutable thing.

365
00:11:53,700 --> 00:11:54,100
Yeah.

366
00:11:54,260 --> 00:11:54,480
Yeah.

367
00:11:54,480 --> 00:11:54,880
And if you,

368
00:11:54,880 --> 00:11:59,680
if you ever built VM images using a tool like a packer,

369
00:12:00,180 --> 00:12:01,160
you know,

370
00:12:01,160 --> 00:12:05,000
that packer is probably about the best you get and it's still quite hard,

371
00:12:05,040 --> 00:12:05,400
right?

372
00:12:05,400 --> 00:12:09,020
Cause you need to spend a lot of time figuring out which base OS,

373
00:12:09,020 --> 00:12:11,960
and then you basically running either a big,

374
00:12:12,020 --> 00:12:15,620
long script or you're running chef or puppet or something to build it all up.

375
00:12:15,620 --> 00:12:18,220
And it's going to be packaged and it's going to be shipped up to your cloud

376
00:12:18,220 --> 00:12:18,720
provider,

377
00:12:19,280 --> 00:12:19,600
et cetera.

378
00:12:20,220 --> 00:12:25,300
And so that was quite a lot of work for just any,

379
00:12:25,460 --> 00:12:30,500
anyone to do for people that building OSes isn't in their wheelhouse.

380
00:12:31,220 --> 00:12:36,220
Whereas with Docker and the ability to build on top of other people's Docker

381
00:12:36,220 --> 00:12:36,660
images.

382
00:12:37,120 --> 00:12:38,340
Now I can be like,

383
00:12:38,620 --> 00:12:38,760
well,

384
00:12:38,780 --> 00:12:44,560
I just need a Java image and then I know how to put a jar in my,

385
00:12:44,660 --> 00:12:45,140
you know,

386
00:12:45,620 --> 00:12:46,880
Java image.

387
00:12:47,020 --> 00:12:51,140
So I only need to know the copy command in the Docker file versus knowing

388
00:12:51,140 --> 00:12:54,720
how to build an entire OS from using the Docker file.

389
00:12:54,960 --> 00:12:55,460
As you were mentioning,

390
00:12:55,720 --> 00:12:55,980
you know,

391
00:12:56,060 --> 00:12:57,740
you got all your bin packing concerns,

392
00:12:57,740 --> 00:13:01,500
like sticking as many things in a constrained space as possible,

393
00:13:01,760 --> 00:13:02,600
metaphorically speaking.

394
00:13:02,600 --> 00:13:03,880
And like how much,

395
00:13:04,000 --> 00:13:08,900
how much of like the container of the value from the container Kubernetes world

396
00:13:08,900 --> 00:13:10,140
do you think comes from that?

397
00:13:10,860 --> 00:13:11,300
Like,

398
00:13:11,420 --> 00:13:15,600
is that like a huge deal or is it just like a fun side of it?

399
00:13:15,620 --> 00:13:21,500
I think it's a fun side effect and I'm not sure it's even as real as a lot of

400
00:13:21,500 --> 00:13:22,440
people think it is.

401
00:13:23,700 --> 00:13:24,300
You know,

402
00:13:24,300 --> 00:13:27,960
there is definitely more overhead running VMs and there is running containers.

403
00:13:28,760 --> 00:13:30,140
But at the end of the day,

404
00:13:30,280 --> 00:13:35,640
most of the overhead is in whatever the application you're running is itself.

405
00:13:36,480 --> 00:13:37,800
And you're not reducing that.

406
00:13:38,020 --> 00:13:42,780
So you might have a couple of percent here or there because of what the VM takes up.

407
00:13:43,920 --> 00:13:46,820
But I don't think that it's really that,

408
00:13:47,000 --> 00:13:47,080
you know,

409
00:13:47,100 --> 00:13:47,660
they used to talk,

410
00:13:48,060 --> 00:13:48,320
you know,

411
00:13:48,400 --> 00:13:51,060
tens of VMs or thousands of containers.

412
00:13:51,200 --> 00:13:52,120
I don't think that's real.

413
00:13:53,820 --> 00:13:58,400
That something like that might be real with serverless or,

414
00:13:58,400 --> 00:13:59,720
you know,

415
00:13:59,800 --> 00:14:06,220
K native where you have like a container on demand based on like web traffic or something that might become more real.

416
00:14:06,900 --> 00:14:08,820
But you're making other sacrifices there.

417
00:14:09,860 --> 00:14:21,040
So I don't think the bin packing versus VMs is really that big a difference.

418
00:14:21,840 --> 00:14:22,220
And then,

419
00:14:22,320 --> 00:14:22,460
of course,

420
00:14:22,540 --> 00:14:26,240
Kubernetes and its scheduler have its own way woes.

421
00:14:27,460 --> 00:14:33,000
Kubernetes doesn't really try and optimize the bin packing.

422
00:14:33,480 --> 00:14:35,860
So it will just distribute VM.

423
00:14:36,220 --> 00:14:39,400
It will distribute the containers to say the worker nodes that are there.

424
00:14:39,800 --> 00:14:41,180
If you create new worker nodes,

425
00:14:41,400 --> 00:14:47,620
it's not intelligent enough to redistribute them to more evenly fill those machines.

426
00:14:47,620 --> 00:14:48,600
And so,

427
00:14:48,840 --> 00:14:49,040
you know,

428
00:14:49,080 --> 00:14:49,520
I don't,

429
00:14:49,600 --> 00:14:53,680
I think other systems probably have better bin packing.

430
00:14:54,160 --> 00:15:06,580
Like I know VMware does a really good job of moving workloads around to optimize the hardware using Vmotion and stuff like that.

431
00:15:06,900 --> 00:15:07,420
Whereas,

432
00:15:07,660 --> 00:15:07,780
you know,

433
00:15:07,800 --> 00:15:10,160
the default Kubernetes schedulers don't do that.

434
00:15:10,900 --> 00:15:14,060
There's no reason you couldn't write your own scheduler to do that.

435
00:15:14,060 --> 00:15:18,640
But if you're at the point where you're rewriting your own Kubernetes scheduler,

436
00:15:18,700 --> 00:15:22,420
you've probably solved every other problem in computer science,

437
00:15:22,480 --> 00:15:23,300
including DNS.

438
00:15:25,180 --> 00:15:27,100
So that brings up another,

439
00:15:27,160 --> 00:15:28,480
another thing I'm always curious about.

440
00:15:28,580 --> 00:15:32,560
So tell me if I get this inaccurate just to like lay out a summary.

441
00:15:32,700 --> 00:15:32,860
So,

442
00:15:32,980 --> 00:15:33,200
you know,

443
00:15:33,280 --> 00:15:34,380
on your laptop,

444
00:15:34,880 --> 00:15:35,360
you build a,

445
00:15:35,500 --> 00:15:36,840
you put your junk in a container,

446
00:15:37,000 --> 00:15:37,540
your stuff.

447
00:15:37,740 --> 00:15:38,620
It's not junk.

448
00:15:38,620 --> 00:15:40,900
It's wonderful handcrafted things,

449
00:15:41,320 --> 00:15:44,340
some software you've written and it's packaged in a container.

450
00:15:44,340 --> 00:15:45,080
And now,

451
00:15:45,140 --> 00:15:45,760
you know,

452
00:15:45,780 --> 00:15:52,340
your buddies can access it and do whatever you can run it as basically just an application that's containerized.

453
00:15:52,660 --> 00:15:54,340
I didn't really say very much there,

454
00:15:54,520 --> 00:15:55,260
but we'll move on.

455
00:15:55,740 --> 00:15:56,760
And then you're like,

456
00:15:56,840 --> 00:15:57,060
ah,

457
00:15:57,140 --> 00:15:59,080
but then also I want to run like,

458
00:15:59,140 --> 00:15:59,440
you know,

459
00:15:59,560 --> 00:16:03,820
500 instances of this and it's like a multi-tiered distributed application.

460
00:16:04,000 --> 00:16:05,960
So it's got all these different components running around.

461
00:16:06,300 --> 00:16:11,200
So I have like 50 containerized things that I have to orchestrate running.

462
00:16:11,320 --> 00:16:13,320
So now I need a whole other system called Kubernetes.

463
00:16:13,460 --> 00:16:14,420
I need an orchestrator.

464
00:16:14,900 --> 00:16:17,360
And what Kubernetes will do is it'll let me specify like,

465
00:16:17,760 --> 00:16:18,520
here's the,

466
00:16:18,860 --> 00:16:21,280
I don't know what words people use for this,

467
00:16:21,280 --> 00:16:27,340
but like if I were to draw a diagram of how all these 50 things are related and the dependencies that they have and which one,

468
00:16:27,460 --> 00:16:28,360
what each one does,

469
00:16:28,580 --> 00:16:29,260
the architecture,

470
00:16:29,580 --> 00:16:30,960
here's what it looks like.

471
00:16:30,960 --> 00:16:32,320
And here's kind of like,

472
00:16:32,640 --> 00:16:40,160
I need something to go off and like place all of these on various computational things on the VMs running and make sure that they're in a state that I like.

473
00:16:40,260 --> 00:16:40,400
And,

474
00:16:40,620 --> 00:16:40,800
you know,

475
00:16:40,860 --> 00:16:43,200
if there's drift from my desired configuration,

476
00:16:43,380 --> 00:16:46,920
like blow them away and restart them and then make sure that they can do the networking,

477
00:16:47,080 --> 00:16:48,000
talking with each other.

478
00:16:48,540 --> 00:16:51,020
And then maybe they also need some storage and,

479
00:16:51,020 --> 00:16:51,780
and it's sort of,

480
00:16:51,940 --> 00:16:52,100
you know,

481
00:16:52,460 --> 00:16:54,180
so Kubernetes does a lot of that stuff.

482
00:16:55,100 --> 00:16:55,460
However,

483
00:16:55,720 --> 00:16:57,620
is that a good,

484
00:16:57,660 --> 00:16:59,500
a good summary from the get go?

485
00:16:59,580 --> 00:17:01,360
Like what did I hand wave over?

486
00:17:01,500 --> 00:17:01,520
Yeah,

487
00:17:02,120 --> 00:17:03,100
I think so.

488
00:17:03,180 --> 00:17:07,460
I kind of like to think of Kubernetes as effectively an IS for containers.

489
00:17:08,400 --> 00:17:10,520
When you think about any cloud,

490
00:17:10,520 --> 00:17:11,060
you're saying,

491
00:17:11,220 --> 00:17:12,180
I want CPU,

492
00:17:12,480 --> 00:17:13,140
I want memory,

493
00:17:13,340 --> 00:17:14,060
I want disk,

494
00:17:14,180 --> 00:17:14,880
I want network.

495
00:17:15,660 --> 00:17:18,180
And you're requesting the exact same things with Kubernetes,

496
00:17:18,440 --> 00:17:20,520
just for containers instead of VMs.

497
00:17:21,020 --> 00:17:21,540
Um,

498
00:17:21,800 --> 00:17:23,500
you've mentioned describing your,

499
00:17:24,180 --> 00:17:25,240
like your architecture.

500
00:17:25,240 --> 00:17:26,200
You don't really do that.

501
00:17:26,280 --> 00:17:28,640
You describe each individual piece.

502
00:17:29,240 --> 00:17:32,640
So you still need to keep your architecture in mind.

503
00:17:33,480 --> 00:17:33,920
Uh,

504
00:17:33,920 --> 00:17:42,180
it does blur when you get into service meshes where you do kind of start describing your architecture or you let your architecture,

505
00:17:42,180 --> 00:17:43,240
um,

506
00:17:44,240 --> 00:17:44,680
uh,

507
00:17:44,680 --> 00:17:49,360
sort of self-describe itself just by a set of conventions.

508
00:17:50,160 --> 00:17:50,600
Yeah.

509
00:17:50,720 --> 00:17:50,900
No,

510
00:17:50,900 --> 00:17:50,980
no,

511
00:17:51,040 --> 00:17:51,040
no,

512
00:17:51,040 --> 00:17:51,520
no,

513
00:17:51,520 --> 00:17:51,620
no,

514
00:17:51,620 --> 00:17:51,620
no,

515
00:17:51,620 --> 00:17:51,620
no,

516
00:17:51,620 --> 00:17:53,420
that's exactly like the blurry line I'm,

517
00:17:53,440 --> 00:17:54,260
I'm interested in.

518
00:17:54,260 --> 00:17:54,440
Right.

519
00:17:54,440 --> 00:17:54,960
Is like,

520
00:17:54,960 --> 00:17:55,300
so,

521
00:17:55,380 --> 00:17:55,760
so what,

522
00:17:55,860 --> 00:18:00,300
what does Kubernetes not do along those areas?

523
00:18:00,300 --> 00:18:00,600
Right.

524
00:18:00,600 --> 00:18:00,860
Like,

525
00:18:01,260 --> 00:18:01,460
like,

526
00:18:01,540 --> 00:18:01,680
because,

527
00:18:01,800 --> 00:18:01,880
and,

528
00:18:01,940 --> 00:18:04,020
and you brought up one thing that I think it doesn't do,

529
00:18:04,120 --> 00:18:06,040
which is basically like,

530
00:18:06,040 --> 00:18:07,320
uh,

531
00:18:07,800 --> 00:18:09,140
a service mesh and,

532
00:18:09,200 --> 00:18:09,680
and my,

533
00:18:09,860 --> 00:18:10,340
you know,

534
00:18:10,420 --> 00:18:12,200
a service mesh is basically like,

535
00:18:12,300 --> 00:18:15,780
I've got all these sub components and systems in my application,

536
00:18:16,220 --> 00:18:17,200
whatever that may be.

537
00:18:17,400 --> 00:18:19,060
And they need to work with each other.

538
00:18:19,860 --> 00:18:21,280
And the service mesh does,

539
00:18:21,400 --> 00:18:23,280
that's the outcome it achieves basically.

540
00:18:23,640 --> 00:18:24,000
Uh,

541
00:18:24,280 --> 00:18:24,500
you know,

542
00:18:24,540 --> 00:18:27,740
being able to look up services and having all of them talk with each other and so

543
00:18:27,740 --> 00:18:28,500
forth and so on.

544
00:18:28,660 --> 00:18:29,360
And like,

545
00:18:29,680 --> 00:18:31,240
that's not part of Kubernetes,

546
00:18:31,460 --> 00:18:31,640
right?

547
00:18:31,680 --> 00:18:32,240
Or is it,

548
00:18:32,280 --> 00:18:33,540
or how does that layer in?

549
00:18:33,860 --> 00:18:36,000
It's a tough question.

550
00:18:36,400 --> 00:18:36,940
I think.

551
00:18:37,800 --> 00:18:42,780
A lot of us aren't really sure where the demarcation should be.

552
00:18:43,240 --> 00:18:43,680
Uh,

553
00:18:43,680 --> 00:18:47,160
and Kubernetes has been very cautious about how much it takes on.

554
00:18:47,760 --> 00:18:48,120
Um,

555
00:18:48,120 --> 00:18:49,660
because it does try and follow that,

556
00:18:49,780 --> 00:18:49,960
you know,

557
00:18:49,960 --> 00:18:51,220
do one thing and do it well.

558
00:18:51,620 --> 00:18:51,980
Uh,

559
00:18:51,980 --> 00:18:53,680
and you can see that through its architecture,

560
00:18:53,680 --> 00:18:54,420
um,

561
00:18:54,460 --> 00:18:56,700
through how it doesn't do a lot.

562
00:18:56,700 --> 00:18:59,720
And then it uses controllers to do all,

563
00:18:59,860 --> 00:19:00,580
a lot of the,

564
00:19:00,580 --> 00:19:01,200
uh,

565
00:19:01,200 --> 00:19:02,220
value added stuff.

566
00:19:02,740 --> 00:19:03,180
Uh,

567
00:19:03,180 --> 00:19:05,600
and then things like Istio come along.

568
00:19:05,700 --> 00:19:07,620
There are a set of custom controllers.

569
00:19:07,800 --> 00:19:09,880
That do even more advanced things.

570
00:19:10,200 --> 00:19:11,880
I think as we.

571
00:19:13,760 --> 00:19:15,560
Develop opinions that are strong,

572
00:19:15,640 --> 00:19:16,920
that work well for everyone,

573
00:19:16,920 --> 00:19:21,900
they then start look at like moving towards being part of Kubernetes itself.

574
00:19:22,440 --> 00:19:23,120
All right.

575
00:19:23,180 --> 00:19:28,120
Certainly anything that's like value adding on top of your application is

576
00:19:28,120 --> 00:19:31,200
generally outside of Kubernetes,

577
00:19:31,720 --> 00:19:32,000
right?

578
00:19:32,000 --> 00:19:34,480
So Kubernetes is below your application.

579
00:19:35,360 --> 00:19:35,800
Um,

580
00:19:36,020 --> 00:19:40,260
Istio is kind of in between and above your application.

581
00:19:40,960 --> 00:19:41,400
Uh,

582
00:19:41,400 --> 00:19:44,360
and so I think that's definitely outside the purview of Kubernetes,

583
00:19:44,740 --> 00:19:45,280
uh,

584
00:19:45,280 --> 00:19:46,680
especially say Istio,

585
00:19:46,740 --> 00:19:50,220
it's like actually modifying your application from the inside,

586
00:19:50,220 --> 00:19:51,020
right?

587
00:19:51,080 --> 00:19:54,580
Cause it's putting these sidecars in and it's doing these weird network

588
00:19:54,580 --> 00:19:57,620
tricks to force your application to talk through those sidecars.

589
00:19:58,280 --> 00:19:58,720
Uh,

590
00:19:58,720 --> 00:20:02,340
so anything that's actually manipulating the behavior of your,

591
00:20:02,340 --> 00:20:03,020
uh,

592
00:20:03,040 --> 00:20:03,640
application,

593
00:20:04,380 --> 00:20:08,780
a should not be done by a platform that potentially someone else is

594
00:20:08,780 --> 00:20:09,100
running.

595
00:20:09,500 --> 00:20:10,020
Uh,

596
00:20:10,020 --> 00:20:15,320
and also be in my opinion should be done with very thoughtful

597
00:20:15,320 --> 00:20:16,120
consideration,

598
00:20:16,120 --> 00:20:17,260
uh,

599
00:20:17,260 --> 00:20:20,480
because now your app doesn't behave the way you asked it to.

600
00:20:20,480 --> 00:20:23,200
And therefore what,

601
00:20:23,340 --> 00:20:24,300
what things is it,

602
00:20:24,600 --> 00:20:24,880
you know,

603
00:20:24,960 --> 00:20:29,160
what strange obscure bugs could be introduced that might surprise us

604
00:20:29,160 --> 00:20:29,640
later on.

605
00:20:30,080 --> 00:20:31,460
I like that rule of thumb.

606
00:20:31,620 --> 00:20:33,000
I like that rule of thumb that if,

607
00:20:33,180 --> 00:20:36,600
if you're modifying how your application works,

608
00:20:36,600 --> 00:20:39,940
it probably shouldn't be in the Kubernetes layer,

609
00:20:40,140 --> 00:20:40,620
like,

610
00:20:40,820 --> 00:20:41,060
and,

611
00:20:41,180 --> 00:20:43,740
and probably being an operative word there that like,

612
00:20:43,980 --> 00:20:44,220
you know,

613
00:20:44,220 --> 00:20:46,420
maybe there's something that you would put in that layer,

614
00:20:46,580 --> 00:20:46,980
but like,

615
00:20:47,320 --> 00:20:49,540
it's likely that it's something else you,

616
00:20:49,600 --> 00:20:50,720
you would add on top of it.

617
00:20:50,720 --> 00:20:51,120
Cause that's,

618
00:20:51,180 --> 00:20:51,400
that's,

619
00:20:51,580 --> 00:20:53,420
that's pretty clear about where the,

620
00:20:53,420 --> 00:20:53,680
uh,

621
00:20:53,680 --> 00:20:54,680
the cut line should be.

622
00:20:54,880 --> 00:20:54,920
Yeah.

623
00:20:54,920 --> 00:20:55,500
When you do that,

624
00:20:55,520 --> 00:20:55,640
I mean,

625
00:20:55,640 --> 00:20:56,880
one thing I want to back up on Paul,

626
00:20:56,920 --> 00:20:57,700
cause you mentioned,

627
00:20:57,700 --> 00:20:59,400
I like the IS for containers.

628
00:20:59,400 --> 00:21:00,320
I think that's a good thing.

629
00:21:00,320 --> 00:21:04,200
When Coté was pushing on kind of the architecture piece,

630
00:21:04,200 --> 00:21:04,460
I mean,

631
00:21:04,680 --> 00:21:07,480
it's still true that people say a container should be one process,

632
00:21:07,480 --> 00:21:07,720
right?

633
00:21:07,720 --> 00:21:09,340
You shouldn't be jamming a bunch of different,

634
00:21:09,340 --> 00:21:11,980
like a whole multi-tier architecture into a container,

635
00:21:12,040 --> 00:21:13,440
although you physically could,

636
00:21:13,520 --> 00:21:13,940
I guess,

637
00:21:14,500 --> 00:21:15,780
but that's still the rule of thumb,

638
00:21:15,780 --> 00:21:15,960
right?

639
00:21:15,960 --> 00:21:17,380
That you should be putting one process.

640
00:21:17,480 --> 00:21:20,700
You will have more components in your architecture than a traditional,

641
00:21:20,840 --> 00:21:23,740
maybe three VMs representing each tier.

642
00:21:23,880 --> 00:21:24,440
Am I right?

643
00:21:25,540 --> 00:21:25,900
Yeah,

644
00:21:25,960 --> 00:21:26,340
absolutely.

645
00:21:26,520 --> 00:21:30,160
And actually that's one of the smart things that Kubernetes did with the pod

646
00:21:30,160 --> 00:21:34,480
concept is the pod is your,

647
00:21:34,480 --> 00:21:35,840
like your workload,

648
00:21:36,020 --> 00:21:36,700
not your container,

649
00:21:37,080 --> 00:21:37,360
right?

650
00:21:37,700 --> 00:21:40,380
And so the pod can run more than one container.

651
00:21:41,520 --> 00:21:46,520
And so the pod basically brings up the actual execution environment for your

652
00:21:46,520 --> 00:21:46,880
container.

653
00:21:47,040 --> 00:21:48,240
So it brings up the C groups,

654
00:21:48,420 --> 00:21:48,760
et cetera.

655
00:21:49,740 --> 00:21:52,660
And then your various containers share those things.

656
00:21:52,720 --> 00:21:54,320
So they share the network namespace.

657
00:21:54,420 --> 00:21:55,340
They share the IP addresses.

658
00:21:55,720 --> 00:21:58,760
They share volumes.

659
00:21:58,760 --> 00:21:59,720
If you have volumes.

660
00:22:00,480 --> 00:22:04,380
And so that allows you if you need to have more than one container for your

661
00:22:04,380 --> 00:22:04,860
application.

662
00:22:05,560 --> 00:22:12,220
The canonical example of course is PHP applications where you have PHP FPM and

663
00:22:12,220 --> 00:22:17,860
you have NGINX and they're usually sharing a socket over a file system.

664
00:22:18,980 --> 00:22:22,440
And so you would run those in the same pod in different containers,

665
00:22:23,140 --> 00:22:26,640
sharing a volume or sharing local hosts for communication.

666
00:22:27,540 --> 00:22:29,560
But many architectures you'd have multiple pods,

667
00:22:29,620 --> 00:22:29,800
right?

668
00:22:30,000 --> 00:22:30,980
In a traditional app.

669
00:22:32,140 --> 00:22:32,340
Yeah,

670
00:22:32,440 --> 00:22:32,820
exactly.

671
00:22:32,980 --> 00:22:34,220
So if you were like,

672
00:22:34,720 --> 00:22:35,380
if we're WordPress,

673
00:22:35,660 --> 00:22:39,420
you might have PHP and NGINX in the one pod,

674
00:22:39,820 --> 00:22:43,400
but you certainly wouldn't put my SQL in that same pod because it's not part of

675
00:22:43,400 --> 00:22:43,960
that,

676
00:22:43,960 --> 00:22:47,160
that piece of the architecture.

677
00:22:47,160 --> 00:22:49,940
It's not that like atomic scalable unit.

678
00:22:51,100 --> 00:22:52,120
And so that's important though,

679
00:22:52,140 --> 00:22:52,760
because as you said,

680
00:22:52,820 --> 00:22:52,920
right,

681
00:22:52,960 --> 00:22:53,200
you're,

682
00:22:53,300 --> 00:22:55,960
you're imposing your architecture still onto this system.

683
00:22:56,120 --> 00:22:57,520
It's not doing it for you.

684
00:22:57,640 --> 00:22:59,700
So when someone looks at those primitives,

685
00:22:59,920 --> 00:23:01,160
they have to do this,

686
00:23:01,220 --> 00:23:01,340
right?

687
00:23:01,380 --> 00:23:01,500
Right.

688
00:23:01,500 --> 00:23:04,260
I can still make horrible mistakes in this layout.

689
00:23:04,360 --> 00:23:04,480
No.

690
00:23:04,520 --> 00:23:06,040
And so how do I lay this out?

691
00:23:06,160 --> 00:23:08,020
And no YAML is the language of,

692
00:23:08,120 --> 00:23:09,480
of love and of Kubernetes.

693
00:23:10,040 --> 00:23:12,120
So how am I using YAML?

694
00:23:12,200 --> 00:23:12,300
Yeah.

695
00:23:12,400 --> 00:23:15,020
Pause for Paul to smile.

696
00:23:15,900 --> 00:23:17,780
How do you use that to lay out?

697
00:23:17,900 --> 00:23:18,040
I mean,

698
00:23:18,120 --> 00:23:18,780
lay it out for us,

699
00:23:18,820 --> 00:23:18,920
right?

700
00:23:18,960 --> 00:23:20,520
Like though I'm an architect or I'm a developer.

701
00:23:20,680 --> 00:23:21,920
Now I've got a bunch of containers.

702
00:23:21,920 --> 00:23:23,020
I'm ready to deploy.

703
00:23:23,500 --> 00:23:24,360
What's my next step?

704
00:23:24,400 --> 00:23:25,860
How do I think about those lines?

705
00:23:25,960 --> 00:23:27,640
How do I think about what goes in pods?

706
00:23:27,760 --> 00:23:28,160
How do I,

707
00:23:28,500 --> 00:23:29,520
how do I do this correctly?

708
00:23:30,620 --> 00:23:31,020
Yeah.

709
00:23:31,120 --> 00:23:37,360
So you think of a pod as your like a canonical unit of scale,

710
00:23:37,460 --> 00:23:37,720
right?

711
00:23:37,780 --> 00:23:40,400
So if you've got a traditional three tier app,

712
00:23:40,480 --> 00:23:41,600
it's simple.

713
00:23:41,700 --> 00:23:43,840
You have three pods or,

714
00:23:44,020 --> 00:23:44,180
you know,

715
00:23:44,520 --> 00:23:46,280
three replica sets or three deployments,

716
00:23:46,340 --> 00:23:46,540
right?

717
00:23:49,300 --> 00:23:52,140
Then you have to connect them together.

718
00:23:52,140 --> 00:23:56,820
So you have services and generally if it's one pod talking another pod,

719
00:23:56,940 --> 00:23:59,120
you just have the default service,

720
00:23:59,180 --> 00:24:01,920
which gives you a cluster IP.

721
00:24:02,460 --> 00:24:07,260
And that basically becomes the IP address that you would address a given pod.

722
00:24:07,780 --> 00:24:09,720
So you assign a service to a pod.

723
00:24:10,040 --> 00:24:11,380
So it's WordPress,

724
00:24:11,760 --> 00:24:11,960
the,

725
00:24:11,960 --> 00:24:12,420
the,

726
00:24:12,420 --> 00:24:13,160
the pod,

727
00:24:13,320 --> 00:24:14,600
therefore you have WordPress,

728
00:24:14,760 --> 00:24:15,300
the service,

729
00:24:15,300 --> 00:24:17,440
and that gets that IP address.

730
00:24:17,440 --> 00:24:20,260
And that IP address is accessible from anywhere in the cluster.

731
00:24:20,560 --> 00:24:25,900
And it also inherits a DNS name from kube DNS.

732
00:24:26,180 --> 00:24:27,360
So if it's called WordPress,

733
00:24:27,700 --> 00:24:34,400
you now have a DNS name called WordPress that any pod can access on that name

734
00:24:34,400 --> 00:24:36,360
and get to your application.

735
00:24:36,780 --> 00:24:37,860
If it's a replica,

736
00:24:37,860 --> 00:24:40,900
a replica set or a deployment where you have more than one copy,

737
00:24:41,240 --> 00:24:42,880
it low balances those for you.

738
00:24:43,660 --> 00:24:45,400
And so you've got your WordPress,

739
00:24:45,820 --> 00:24:46,740
then you need your database.

740
00:24:47,360 --> 00:24:49,840
So you have a WordPress service.

741
00:24:49,940 --> 00:24:51,100
You have a database service.

742
00:24:51,600 --> 00:24:55,820
Your database is probably called a database or WordPress dash database.

743
00:24:56,180 --> 00:24:59,300
And so in your WordPress configuration,

744
00:24:59,300 --> 00:25:02,580
you can actually hard code the,

745
00:25:02,580 --> 00:25:06,480
the path to your database as WordPress dash database,

746
00:25:06,620 --> 00:25:07,340
because you,

747
00:25:07,400 --> 00:25:07,800
you know,

748
00:25:07,920 --> 00:25:10,120
that's what your service is always going to be called.

749
00:25:12,320 --> 00:25:13,120
And then,

750
00:25:13,440 --> 00:25:18,240
so that's how you get the WordPress and the database talking.

751
00:25:18,640 --> 00:25:20,480
So now you have a working application,

752
00:25:20,780 --> 00:25:23,860
but you want someone outside to be able to access it.

753
00:25:24,080 --> 00:25:26,140
So the WordPress service,

754
00:25:26,220 --> 00:25:29,380
you need to elevate that to be either a node port,

755
00:25:29,600 --> 00:25:34,520
which gives you an ephemeral port on your worker nodes that will

756
00:25:34,520 --> 00:25:35,940
NAT through to it,

757
00:25:36,060 --> 00:25:39,540
or you use a service type of load balancer,

758
00:25:39,920 --> 00:25:43,240
which will actually configure a load balancer to balance it down.

759
00:25:43,480 --> 00:25:50,780
And that gives you a static IP and a sensible port of 80 and the ability to then add DNS to it

760
00:25:50,780 --> 00:25:53,160
and have a general purpose.

761
00:25:53,960 --> 00:25:56,440
This is how you access a website on the internets.

762
00:25:57,420 --> 00:26:02,320
And then you have a step further where you have a bunch of apps working together,

763
00:26:02,320 --> 00:26:04,040
and you might use an ingress controller,

764
00:26:04,320 --> 00:26:11,300
which lets you put those layer seven rules about which service should be communicated with

765
00:26:11,300 --> 00:26:12,960
based on like the URL path.

766
00:26:13,480 --> 00:26:18,800
And that sort of gives you your kind of one branch of an application.

767
00:26:19,260 --> 00:26:20,840
Obviously WordPress is not a microservice.

768
00:26:21,860 --> 00:26:24,960
But if you have a bunch of microservices,

769
00:26:25,760 --> 00:26:28,360
they would talk to each other via those cluster IPs,

770
00:26:28,700 --> 00:26:29,760
via their DNS.

771
00:26:31,360 --> 00:26:34,960
And so you're getting that very rudimentary service discovery from DNS.

772
00:26:35,520 --> 00:26:42,720
And that's usually enough for a very basic set of microservices where there's not a lot of complication.

773
00:26:43,180 --> 00:26:45,480
You know what everything is, and you can just run it.

774
00:26:47,080 --> 00:26:49,400
When you get to more complex scenarios,

775
00:26:50,300 --> 00:27:01,680
that's when you need to look towards things like service meshes where you don't necessarily need to know the entire architecture for what's going on.

776
00:27:02,120 --> 00:27:09,680
You can kind of let the service mesh help you with more advanced routing, more advanced service discovery.

777
00:27:09,680 --> 00:27:17,620
And then you get some added things like if you really want TLS communication between each of your microservices,

778
00:27:17,620 --> 00:27:21,500
if you want cert-based authentication between your microservices,

779
00:27:22,420 --> 00:27:25,860
you can do those things through a service mesh.

780
00:27:26,820 --> 00:27:29,660
Obviously, there's a whole heap of considerations about latency,

781
00:27:29,660 --> 00:27:36,220
if you're going to have some external process injecting TLS communication on top of your application.

782
00:27:36,560 --> 00:27:38,240
But those are all things.

783
00:27:38,340 --> 00:27:42,000
If you're at that point, you're probably thinking about those effects anyway.

784
00:27:42,440 --> 00:27:45,760
If not, well, you'll get woken up at 3 a.m. every day.

785
00:27:46,360 --> 00:27:51,840
I mean, it seems like the two things you really have to grok in this is kind of the placement questions of like,

786
00:27:51,880 --> 00:27:52,640
where do I stick things?

787
00:27:52,660 --> 00:27:55,900
Because there's replicas, there's tiering, and then network connectivity.

788
00:27:55,900 --> 00:27:59,260
Like, I feel like I have to know both of those things to be dangerous here.

789
00:27:59,380 --> 00:28:02,940
So in a traditional, I don't know, whether it's a startup or a big company,

790
00:28:03,820 --> 00:28:05,080
who's doing these things?

791
00:28:05,340 --> 00:28:07,280
Like, maybe I'll be fired before the end of the podcast,

792
00:28:07,440 --> 00:28:09,000
but are developers supposed to use Kubernetes?

793
00:28:09,460 --> 00:28:12,500
Or realistically, should I stop when I built a container

794
00:28:12,500 --> 00:28:15,980
and then some other mysterious person comes in and lays this stuff out right?

795
00:28:16,180 --> 00:28:20,440
Yeah, look, assuming you're not a brand new startup that has never computed before,

796
00:28:20,860 --> 00:28:27,820
you probably already have someone or something that's managing your infrastructure, right?

797
00:28:27,820 --> 00:28:34,980
So whether you're an enterprise or a startup, someone is clicking around in the Amazon UI

798
00:28:34,980 --> 00:28:37,800
or someone is using CloudFormation or someone is using Terraform,

799
00:28:38,280 --> 00:28:43,300
whoever is doing that in your organization is probably the one that's going to be doing

800
00:28:43,300 --> 00:28:45,980
a lot of the work defining the Kubernetes resources.

801
00:28:47,140 --> 00:28:52,440
I think it's not really something a developer should have to know.

802
00:28:53,440 --> 00:28:58,300
But in your org, it might be something you've decided that they should know

803
00:28:58,300 --> 00:29:00,780
because of the way you've structured yourself,

804
00:29:00,920 --> 00:29:07,060
because you're targeting a specific, you know, organization slash software architecture.

805
00:29:07,860 --> 00:29:11,640
And you sort of Conway's lured yourself into a particular way of working.

806
00:29:12,040 --> 00:29:17,280
So that, like, is another favorite topic of mine to contemplate in the Kubernetes world,

807
00:29:17,400 --> 00:29:20,240
which is, like, you know, there's this notion of, like,

808
00:29:20,260 --> 00:29:21,960
it's a platform for building platforms.

809
00:29:22,300 --> 00:29:25,740
And, like, what does that mean?

810
00:29:26,040 --> 00:29:28,180
Yeah, so I have some opinions.

811
00:29:28,620 --> 00:29:33,560
So when you have an IT group, an operations group, a DevOps group,

812
00:29:34,000 --> 00:29:37,480
you're either building a platform or you are the platform, right?

813
00:29:37,860 --> 00:29:43,060
You can be a platform made out of meat that Jira is your API,

814
00:29:43,500 --> 00:29:49,460
or you can build a platform made out of Kubernetes or out of Amazon

815
00:29:49,460 --> 00:29:55,240
or out of whatever your, you know, vegetable of choice is

816
00:29:55,240 --> 00:30:00,420
and wrap some extra tools around that, you know, wrap some monitoring,

817
00:30:00,540 --> 00:30:06,700
some logging, some access control, and then you have a platform, right?

818
00:30:06,700 --> 00:30:08,660
Which is ideally self-service.

819
00:30:08,980 --> 00:30:13,560
So the goal is to get self-service application deployment to your developers.

820
00:30:14,560 --> 00:30:17,920
And that could be through a real API.

821
00:30:18,220 --> 00:30:22,060
It could be through something Cloud Foundry-ish.

822
00:30:22,260 --> 00:30:25,260
It could be through something doing GitOps.

823
00:30:25,400 --> 00:30:27,980
So it could be a combination of Concourse and Spinnaker.

824
00:30:30,020 --> 00:30:38,980
But the goal is to get to that self-service to your app devs without them having to do a bunch of things

825
00:30:38,980 --> 00:30:41,360
that require large portions of their brain, right?

826
00:30:41,820 --> 00:30:48,220
Because you want large portions of their brain focused on writing software that doesn't suck, right?

827
00:30:48,260 --> 00:30:52,380
I guess the cut line, the thing is that, like, as we were kind of discussing, like,

828
00:30:52,440 --> 00:30:55,440
so you get Kubernetes up and running and you still have to, like,

829
00:30:55,520 --> 00:30:59,580
figure out how you're going to deploy and manage and specify everything, right?

830
00:30:59,580 --> 00:31:04,080
There's not like, it's not so self-service as one would assume.

831
00:31:04,640 --> 00:31:05,080
No.

832
00:31:05,340 --> 00:31:10,840
And, like, backing up, even more than that, you need to figure out how to actually build and share your images, right?

833
00:31:11,000 --> 00:31:13,200
You don't get a build service with Kubernetes.

834
00:31:13,400 --> 00:31:16,360
You don't get an image registry with Kubernetes.

835
00:31:17,060 --> 00:31:21,840
So, you know, you could, if you were small and able to do so,

836
00:31:21,940 --> 00:31:27,800
you could use GitHub and GitHub Actions and Docker Registry and cover those things.

837
00:31:27,800 --> 00:31:31,580
But most of us can't do those things for any number of reasons.

838
00:31:32,180 --> 00:31:39,840
So we build things that look like those things and enable those for our developers.

839
00:31:41,020 --> 00:31:44,060
And so, you know, I was reminded of this when you're going over, like,

840
00:31:44,340 --> 00:31:46,460
you need to add in a service mesh, right?

841
00:31:46,500 --> 00:31:51,740
So it would seem like a service mesh would be a platform that you build on top of this platform.

842
00:31:52,160 --> 00:31:57,000
Like, is that maybe not complete, but it's an example of, like, you use the,

843
00:31:57,140 --> 00:32:01,280
I think a word Kubernetes people use a lot is, like, there's primitives that are defined.

844
00:32:01,280 --> 00:32:04,740
But you use these primitives to say, like, all right, hey, primitives,

845
00:32:04,920 --> 00:32:08,980
here's how you can organize yourself into a civilized way of doing service management.

846
00:32:09,660 --> 00:32:11,840
And it's kind of an opinion of that.

847
00:32:12,460 --> 00:32:16,040
And then, I guess there's all sorts of other components that you would have,

848
00:32:16,160 --> 00:32:19,000
in a platform that you can use those primitives to build.

849
00:32:19,560 --> 00:32:20,600
Here's the thing.

850
00:32:21,400 --> 00:32:27,120
And so, you know, related to that, so, you know, you got to, you got to, you got the cloud native

851
00:32:27,120 --> 00:32:31,320
12 to 16 factors of doing software, right?

852
00:32:31,380 --> 00:32:33,700
The sort of cloud native way of developing software.

853
00:32:33,820 --> 00:32:39,880
And, like, is cloud native software, like, based on the constraints of containers and Kubernetes things?

854
00:32:39,880 --> 00:32:42,740
Or are containers built around that?

855
00:32:42,860 --> 00:32:47,080
Like, what's the chicken and the egg issue between those two things?

856
00:32:48,220 --> 00:32:53,300
12 factors are really built around the constraints of a PaaS-like platform.

857
00:32:53,860 --> 00:32:57,380
I believe they originally came out of Heroku.

858
00:32:59,040 --> 00:33:02,640
And having a similar PaaS, obviously, we like them.

859
00:33:03,760 --> 00:33:09,660
The interesting thing with Kubernetes is you can start to break some of those factors, right?

860
00:33:09,660 --> 00:33:17,760
Because Kubernetes is a more feature-packed platform than PCF or Heroku.

861
00:33:18,200 --> 00:33:23,660
Heroku is an opinionated platform versus Kubernetes being an unopinionated platform.

862
00:33:24,420 --> 00:33:30,880
So, basically, when we are building the platform on top of the platform, we're adding our own opinions to that platform.

863
00:33:31,560 --> 00:33:36,700
And those opinions don't necessarily mean all 12 of the factors.

864
00:33:37,540 --> 00:33:40,380
So, with Kubernetes, you can add persistent volumes.

865
00:33:40,900 --> 00:33:43,620
So, backing services become less of a concern.

866
00:33:44,420 --> 00:33:49,220
You can do configuration by a number of different ways.

867
00:33:49,440 --> 00:33:51,600
So, doing your configuration as environment variables.

868
00:33:52,460 --> 00:33:54,320
You can handle logging in different ways.

869
00:33:54,460 --> 00:33:59,100
So, doing your logging only to stand it out becomes a potentially optional thing.

870
00:33:59,920 --> 00:34:03,720
So, the 12 factors, like, they're always good practice.

871
00:34:04,040 --> 00:34:11,020
But they're not as important on Kubernetes as they are on a PaaS-like system.

872
00:34:11,800 --> 00:34:19,080
And that gives you the added benefit of, if you really want to, you can run any old garbage pretty successfully on Kubernetes.

873
00:34:19,940 --> 00:34:20,380
Right?

874
00:34:20,640 --> 00:34:35,160
So, any legacy app, if it runs on Linux or can be forced to run under Wine or something similar like that, you can run in Kubernetes with a little bit of work.

875
00:34:35,380 --> 00:34:36,780
And run them quite successfully.

876
00:34:37,940 --> 00:34:46,360
And so, it's also becoming a place where you can look at running your legacy applications as well as your fancy new cloud native applications.

877
00:34:46,360 --> 00:34:57,900
So, really, with the unopinionatedness or openness, you're not, you can basically do whatever application model you want, for better or worse, right?

878
00:34:57,940 --> 00:35:07,300
Like, there's not, it might be best to do things in a cloud native way because it's more scalable and you can take advantage of all the fun stuff of cloud things.

879
00:35:07,300 --> 00:35:12,220
But really, like, you could do whatever, as you're saying, with refuse.

880
00:35:12,940 --> 00:35:16,860
It's a kitchen drawer filled to the brim with very sharp knives.

881
00:35:16,860 --> 00:35:19,680
And you can grab any of those knives out of the drawer that you want.

882
00:35:20,480 --> 00:35:24,620
Just be careful because they're pointing in different ways and you'll cut your hand off.

883
00:35:25,360 --> 00:35:28,000
Now, how many knives do you think you actually need in your kitchen drawer?

884
00:35:28,140 --> 00:35:29,600
Some people say, like, two, right?

885
00:35:29,720 --> 00:35:32,780
What do you think the, what do you think the bare minimum is?

886
00:35:32,980 --> 00:35:35,820
Yeah, I mean, I like knives, so I have a lot.

887
00:35:37,040 --> 00:35:39,760
But really, two, maybe three.

888
00:35:40,120 --> 00:35:42,140
Maybe like a paring knife and a chef knife, right?

889
00:35:42,520 --> 00:35:45,740
And I guess if, I guess if you make a lot of, oh, yeah, that's true.

890
00:35:45,820 --> 00:35:47,860
If you make a lot of bone broth, maybe a cleaver.

891
00:35:48,460 --> 00:35:51,280
I went for shaving with, maybe Paul's pretty, pretty manly.

892
00:35:51,620 --> 00:35:52,200
That's right.

893
00:35:53,020 --> 00:35:55,020
No, I use the axe to shave.

894
00:35:55,420 --> 00:35:55,980
That's true.

895
00:35:56,640 --> 00:36:00,180
I'm going to carve up these parsnips and then shave with the same knife.

896
00:36:02,040 --> 00:36:02,400
Yes.

897
00:36:02,700 --> 00:36:02,940
Yeah.

898
00:36:03,440 --> 00:36:08,660
If you look at, like, Chinese cleavers, for example, they have, like, a lot of them just

899
00:36:08,660 --> 00:36:09,540
use cleavers, right?

900
00:36:09,580 --> 00:36:12,480
And they have, like, the vegetable cleaver and the meat cleaver.

901
00:36:13,240 --> 00:36:17,240
And so they've figured out a way to effectively have the same knife be multi-purpose.

902
00:36:17,240 --> 00:36:25,560
And it just depends on the thickness and the angle of the blade based on what, so it's

903
00:36:25,560 --> 00:36:26,020
always good.

904
00:36:26,100 --> 00:36:33,360
Like, I watch a lot of Sichuan chefs on YouTube, and they're always using these big cleavers

905
00:36:33,360 --> 00:36:39,880
that we would think are for chopping bones to, like, do very, very fine knife work on vegetables

906
00:36:39,880 --> 00:36:40,300
and stuff.

907
00:36:40,600 --> 00:36:41,440
Mint some garlic.

908
00:36:42,360 --> 00:36:42,620
Right.

909
00:36:43,440 --> 00:36:43,640
Hmm.

910
00:36:44,220 --> 00:36:44,580
Yes.

911
00:36:44,600 --> 00:36:45,500
How did we get on the knives?

912
00:36:45,500 --> 00:36:46,040
What happened?

913
00:36:46,240 --> 00:36:52,440
Oh, it was, there was a metaphor that Kubernetes is like a kitchen drawer full of sharp knives.

914
00:36:53,100 --> 00:36:59,360
And you can do whatever, you can shave, mince garlic, chop bones in half, whatever style

915
00:36:59,360 --> 00:37:02,560
you want to do, you can apply it to there.

916
00:37:03,140 --> 00:37:08,780
So what, like, so if we were to look forward, as I like to do towards the end of a discussion,

917
00:37:10,100 --> 00:37:16,340
like, what are the big, let's say, let's say, two to three things that the Kubernetes community

918
00:37:16,340 --> 00:37:18,060
is trying to, like, sort out now?

919
00:37:18,460 --> 00:37:22,640
Like, what, like, is it like multi-cluster management?

920
00:37:22,920 --> 00:37:28,580
Or is it sort of like, I don't know, instead of YAML, we should use XML?

921
00:37:29,120 --> 00:37:32,880
Or like, what are the big, like, issues that people are dealing with?

922
00:37:32,880 --> 00:37:35,960
Yeah, I think multi-cluster management is definitely a thing.

923
00:37:36,340 --> 00:37:41,780
And that's from both the, like, the operation side of managing Kubernetes itself, but also

924
00:37:41,780 --> 00:37:46,740
for, I have my app, I need to deploy it to multiple regions, to multiple clusters.

925
00:37:47,140 --> 00:37:48,020
What does that look like?

926
00:37:48,740 --> 00:37:57,080
And so there's been various federation efforts with Kubernetes, with varying levels of success.

927
00:37:57,760 --> 00:38:01,480
And by varying, I think I mean, all of them were unsuccessful.

928
00:38:02,920 --> 00:38:05,120
I'm not sure where the current state of that is.

929
00:38:05,560 --> 00:38:08,160
But there's been a couple of attempts that haven't really gone anywhere.

930
00:38:08,680 --> 00:38:15,360
I think a lot of us are now starting to really think about good ways to handle the build and

931
00:38:15,360 --> 00:38:16,740
storage of images.

932
00:38:17,100 --> 00:38:21,740
So like stepping, stepping back from Kubernetes and saying, it's time to add some

933
00:38:21,740 --> 00:38:28,520
somewhat opinionated pieces to Kubernetes around building and sharing those images.

934
00:38:29,080 --> 00:38:34,100
So I think if you talk to any vendor that sells Kubernetes, they'll probably tell you that they

935
00:38:34,100 --> 00:38:37,100
have a thing in the pipeline to handle those things.

936
00:38:37,460 --> 00:38:41,880
And that's sort of like, it seems like one of the major connections between developers

937
00:38:41,880 --> 00:38:46,060
and Kubernetes stuff is like the image registry, essentially, right?

938
00:38:46,260 --> 00:38:47,200
I mean, even yesterday, right?

939
00:38:47,220 --> 00:38:52,140
We shipped Spring Boot 231 that with one kind of build command will actually generate a build

940
00:38:52,140 --> 00:38:53,580
packs produced container.

941
00:38:53,760 --> 00:38:56,640
I tweeted about it last night and people liked it because it's super easy.

942
00:38:56,720 --> 00:39:00,580
Even a dumb person like me can add one command and immediately I have a Docker image that's

943
00:39:00,580 --> 00:39:02,740
packaged it up correctly, right?

944
00:39:02,760 --> 00:39:04,740
So you're not guessing on which base image to use.

945
00:39:04,740 --> 00:39:06,320
You're not guessing on how to stack it all up.

946
00:39:06,580 --> 00:39:06,780
Nope.

947
00:39:07,040 --> 00:39:07,660
I'm just a dev.

948
00:39:07,740 --> 00:39:09,960
I just build and I happen to get a container in my registry.

949
00:39:10,200 --> 00:39:11,880
That's really nice to link the world.

950
00:39:12,220 --> 00:39:13,800
Yeah, yeah, that absolutely is.

951
00:39:14,580 --> 00:39:19,860
And I think the good thing about that is it also makes it very easy to do such thing in

952
00:39:19,860 --> 00:39:26,420
a CI system because obviously in the real world, you're not actually building an image on your

953
00:39:26,420 --> 00:39:29,300
laptop and sending it to a registry and then running it for production, right?

954
00:39:29,300 --> 00:39:36,400
You have hopefully a CI system that is doing that so you can sort of have some traceability

955
00:39:36,400 --> 00:39:41,620
of where the image came from and how it was built and keep some sort of bill of materials

956
00:39:41,620 --> 00:39:42,120
and stuff.

957
00:39:43,060 --> 00:39:48,500
So then maybe the last question, because I think where we've ended up, you know, along

958
00:39:48,500 --> 00:39:53,800
with meat cleavers, things like that, is there's sort of this picture of like, so Kubernetes

959
00:39:53,800 --> 00:39:59,620
basically like takes your containers and like, as you're saying, it's an IaaS for that layer,

960
00:39:59,680 --> 00:39:59,840
right?

961
00:39:59,900 --> 00:40:05,480
It like places them, it places them on, on computers and make sure that you have proper

962
00:40:05,480 --> 00:40:07,500
network access between things.

963
00:40:07,500 --> 00:40:10,040
And then you also need some storage and boom, there you go.

964
00:40:10,060 --> 00:40:11,340
And there's a bunch of other stuff in there.

965
00:40:11,600 --> 00:40:11,960
Right.

966
00:40:12,280 --> 00:40:13,880
But that's sort of the end goal.

967
00:40:14,360 --> 00:40:18,080
Now, then as we were sort of just getting into like, but then you need to like actually

968
00:40:18,080 --> 00:40:19,220
deploy software to it.

969
00:40:19,260 --> 00:40:23,240
So you need to develop the software and that needs to coordinate and you got to do this.

970
00:40:23,440 --> 00:40:28,600
You got to have some registries, all these things like, and you know, what do you, especially

971
00:40:28,600 --> 00:40:33,480
based on your experience in the OpenStack world, like, like, what do you think is a good

972
00:40:33,480 --> 00:40:37,080
way to like layer on these upper layers of things?

973
00:40:37,420 --> 00:40:42,780
Like, like, like, is it good for the Kubernetes community to like have an opinion about that

974
00:40:42,780 --> 00:40:45,740
or to sort of like, let other people handle that?

975
00:40:45,960 --> 00:40:50,140
Like how, what, how do you like to do that kind of stuff historically?

976
00:40:50,820 --> 00:40:57,000
I think it makes sense to let other people handle that, let it sort of settle itself down

977
00:40:57,000 --> 00:41:00,820
and then look at what the, the leading options are.

978
00:41:01,540 --> 00:41:07,980
Um, I feel like if you try and force opinions on the people, um, and they don't like those

979
00:41:07,980 --> 00:41:12,900
opinions, they're more likely to just throw away your entire body of work than they are

980
00:41:12,900 --> 00:41:15,260
to use the 80% that works for them.

981
00:41:15,280 --> 00:41:15,500
Right.

982
00:41:16,080 --> 00:41:18,160
So baby in a bathwater problem.

983
00:41:18,800 --> 00:41:19,240
Exactly.

984
00:41:19,400 --> 00:41:24,440
So for better or worse, you are better off poking, focusing at the things where you can

985
00:41:24,440 --> 00:41:31,340
have, um, unopinionated implementations of them, um, with easy ways to build the opinionated

986
00:41:31,340 --> 00:41:32,140
things on top.

987
00:41:33,120 --> 00:41:33,520
Yeah.

988
00:41:34,240 --> 00:41:39,220
What's the, you want to have, uh, you want to have the, uh, common wisdom, like it, like

989
00:41:39,220 --> 00:41:42,140
if, if everyone shares it, it's not really an opinion.

990
00:41:42,400 --> 00:41:45,100
It's just sort of like the, uh, the common wisdom of it.

991
00:41:45,500 --> 00:41:45,900
Yeah.

992
00:41:45,960 --> 00:41:48,580
And, you know, it's often not the ideal thing.

993
00:41:48,760 --> 00:41:55,420
It's often not the best implementation, but you know, you can be chasing the perfect

994
00:41:55,420 --> 00:42:00,820
implementation forever and never actually run any software, or you can figure out, you

995
00:42:00,820 --> 00:42:03,680
can be pragmatic, figure out what works and then build upon that.

996
00:42:04,220 --> 00:42:04,380
Yeah.

997
00:42:04,700 --> 00:42:05,120
Yeah.

998
00:42:05,120 --> 00:42:10,280
That makes, that makes sense that like in the overall community of users and people who do

999
00:42:10,280 --> 00:42:15,100
it and vendors and everything, like it's good to, uh, have a multiplicity of things you're

1000
00:42:15,100 --> 00:42:17,720
trying to do with at, at, at the layer that isn't settled yet.

1001
00:42:17,720 --> 00:42:23,220
And kind of, uh, yeah, not, not even, not even the it's, it's nuancedly inappropriately

1002
00:42:23,220 --> 00:42:27,320
phrased to say, let the best one win, but it's more like let the one that everyone wants

1003
00:42:27,320 --> 00:42:29,300
to use when, right.

1004
00:42:29,400 --> 00:42:32,580
Which, you know, is, seems like a much better.

1005
00:42:32,640 --> 00:42:32,980
Well, great.

1006
00:42:33,080 --> 00:42:38,560
Well, uh, if people want to, uh, uh, keep up with you in a non-spooky way, see what you're

1007
00:42:38,560 --> 00:42:38,820
up to.

1008
00:42:38,880 --> 00:42:40,160
What, what would you point them to?

1009
00:42:40,160 --> 00:42:44,540
Uh, so they can find me on Twitter, uh, at Pete Chikovsky.

1010
00:42:44,700 --> 00:42:50,080
Uh, I have a very hard to pronounce name, uh, and a very hard to spell name so that, uh,

1011
00:42:50,200 --> 00:42:53,720
we can put it in the, in the show notes, how to spell my name.

1012
00:42:54,020 --> 00:42:54,580
And then that's right.

1013
00:42:55,620 --> 00:43:02,120
Uh, unfortunately all the short, easy to spell ways of saying my name were already taken by

1014
00:43:02,120 --> 00:43:04,340
other people on Twitter.

1015
00:43:04,340 --> 00:43:06,720
Uh, so I'm stuck with a hard to spell name.

1016
00:43:06,720 --> 00:43:12,660
Uh, otherwise I can be found all over the place at conferences.

1017
00:43:12,660 --> 00:43:19,460
Uh, I'll be at Bosdom and config management camp in Belgium in like a week's time.

1018
00:43:19,720 --> 00:43:21,060
Yeah, that's soon.

1019
00:43:21,200 --> 00:43:22,680
Uh, yeah, that's soon.

1020
00:43:22,720 --> 00:43:26,940
And then I believe we're starting to plan out our SpringOne tour events for this year.

1021
00:43:26,940 --> 00:43:30,540
And we have maybe Seattle coming up in March.

1022
00:43:30,540 --> 00:43:31,120
That's right.

1023
00:43:31,280 --> 00:43:34,160
I think March 9th or 10th or something like that.

1024
00:43:34,160 --> 00:43:41,900
Uh, and I believe I'll actually be giving a, like three and a bit hour Kubernetes workshop

1025
00:43:41,900 --> 00:43:47,140
where I will be giving everyone access to a cluster and teaching them, uh, piece by piece

1026
00:43:47,140 --> 00:43:50,280
how to actually deploy and run applications on Kubernetes.

1027
00:43:50,720 --> 00:43:51,840
Oh, that'll be exciting.

1028
00:43:52,500 --> 00:43:53,380
That should be fun.

1029
00:43:54,000 --> 00:43:54,280
Yeah.

1030
00:43:55,020 --> 00:43:55,420
Yeah.

1031
00:43:55,600 --> 00:43:58,980
I think I'm also giving a workshop, so I will not be able to attend.

1032
00:44:00,080 --> 00:44:00,520
Hmm.

1033
00:44:00,880 --> 00:44:03,060
And, and by, I think I am.

1034
00:44:03,360 --> 00:44:07,320
So I need to figure that out, put together, make sure I have solid content.

1035
00:44:08,300 --> 00:44:08,700
Yes.

1036
00:44:08,940 --> 00:44:09,780
That's, that's always key.

1037
00:44:09,840 --> 00:44:10,300
Well, all right.

1038
00:44:10,300 --> 00:44:15,100
Well, as, as always, this has been, uh, well, it's still Pivotal Conversations because

1039
00:44:15,100 --> 00:44:19,260
we haven't renamed it, but just so the audience knows, I think, I think what I'm thinking

1040
00:44:19,260 --> 00:44:25,580
of me and me and Dormain, Dormain and I is, uh, where I think we're going to call it Tanzu

1041
00:44:25,580 --> 00:44:30,780
talk just because I think like we were discussing it and I think, I think that title, especially

1042
00:44:30,780 --> 00:44:36,000
because talk, it kind of matches the tone that both of us have on this whole podcast, which

1043
00:44:36,000 --> 00:44:37,720
is, you know, slightly goofy, but helpful.

1044
00:44:37,980 --> 00:44:42,880
And it's kind of like, you remember, uh, UHF with weird owl, it was that show talk.

1045
00:44:43,340 --> 00:44:48,940
So we may not, we may not have a finding a marble and oatmeal or, you know, red snapper

1046
00:44:48,940 --> 00:44:53,680
or anything like that, but we'll try to have it be as, as, as entertaining and, uh, save

1047
00:44:53,680 --> 00:44:54,080
the channel.

1048
00:44:54,520 --> 00:44:56,580
Will you have ads for a spatula city?

1049
00:44:56,780 --> 00:44:57,320
That's right.

1050
00:44:57,380 --> 00:44:59,900
Nothing says I love you more than a spatula.

1051
00:45:01,340 --> 00:45:05,920
I, you know, speaking of the kitchen drawer, I, every time I grab a spatula, I think that's,

1052
00:45:05,980 --> 00:45:09,060
I think that those exact words, spatula city.

1053
00:45:09,060 --> 00:45:12,620
Uh, well with that, we'll see everyone next time.

1054
00:45:12,860 --> 00:45:13,700
Bye-bye.

1055
00:45:15,560 --> 00:45:19,980
What's the rule with two vowels are together that like one of them silences the other or

1056
00:45:19,980 --> 00:45:22,020
something, or am I remembering that incorrectly?

1057
00:45:22,180 --> 00:45:25,700
Isn't there some rules as far as how you pronounce thing when two vowels appear with each other?

1058
00:45:27,080 --> 00:45:27,520
No.

1059
00:45:28,520 --> 00:45:29,480
No, that's yeah.

1060
00:45:29,540 --> 00:45:30,540
Awkward silence there.

1061
00:45:30,840 --> 00:45:31,060
Yeah.

1062
00:45:31,220 --> 00:45:33,800
You never know that I spend most of my time writing for a living.

1063
00:45:34,640 --> 00:45:41,120
The only two vowels rule I know is, uh, I before E and less it is preceded by C.

1064
00:45:41,820 --> 00:45:43,820
The exception of neighbor and way, right?

1065
00:45:43,860 --> 00:45:44,880
Isn't that the thing?

1066
00:45:45,160 --> 00:45:47,160
And total economic impact.

1067
00:45:47,680 --> 00:45:47,780
Right.

1068
00:45:47,840 --> 00:45:48,040
Yes.

1069
00:45:48,160 --> 00:45:48,460
Yeah.

1070
00:45:48,600 --> 00:45:48,900
Okay.

1071
00:45:49,040 --> 00:45:49,520
Third option.

1072
00:45:50,300 --> 00:45:50,740
Anyhow.

1073
00:45:51,120 --> 00:45:51,640
Mm-hmm.
