1
00:00:09,210 --> 00:00:15,210
Jamie Duncan: Yes. Hey, and
thanks for joining us on episode

2
00:00:15,210 --> 00:00:18,480
11 of the K files. My name is
Jamie Duncan, I work at Google

3
00:00:18,480 --> 00:00:21,300
Cloud with me all, as always is
tark Islam.

4
00:00:21,599 --> 00:00:24,179
Tariq Islam: Hey everyone, tarc
Islam, also with Google Cloud,

5
00:00:25,260 --> 00:00:26,370
Jamie Duncan: and john Osborne,

6
00:00:27,239 --> 00:00:29,069
John Osborne: head runs is john
Osborne with Red Hat.

7
00:00:29,969 --> 00:00:32,789
Jamie Duncan: JOHN is currently
enjoying a Stella Artois from

8
00:00:32,789 --> 00:00:35,039
his home studio, and I'm a
little jealous of him,

9
00:00:35,370 --> 00:00:36,120
John Osborne: well deserved.

10
00:00:38,010 --> 00:00:39,810
Jamie Duncan: It's Tuesday, and
john said it's already been a

11
00:00:39,810 --> 00:00:46,410
run. So this is not going to be
a coop con recap episode,

12
00:00:46,440 --> 00:00:49,590
because I think all three of us
combined have had a chance to

13
00:00:49,590 --> 00:00:53,910
watch 17 minutes of coop con
content. And since it ended last

14
00:00:53,910 --> 00:00:54,270
week,

15
00:00:56,070 --> 00:00:58,950
John Osborne: I tried. I don't
know what you guys, I just, it's

16
00:00:59,550 --> 00:01:02,460
the whole idea of blocking out
my calendar when I'm home. And

17
00:01:02,460 --> 00:01:05,340
then someone's like, I have this
really high priority thing. And

18
00:01:05,340 --> 00:01:07,590
it's like, well, I'm sorry, I'm
watching YouTube, like it

19
00:01:07,650 --> 00:01:11,670
doesn't, just doesn't, doesn't
really work like when you're at

20
00:01:11,670 --> 00:01:13,710
it, as well as when you're
actually physically at

21
00:01:13,710 --> 00:01:14,520
somewhere. So

22
00:01:14,670 --> 00:01:16,860
Jamie Duncan: yeah, yeah, I've
run in I have this, I don't have

23
00:01:16,860 --> 00:01:20,760
the attention span for a virtual
conference. I really don't. And

24
00:01:20,760 --> 00:01:24,150
Chris short, said it pretty
well. He had a thread on

25
00:01:24,150 --> 00:01:27,810
Twitter, where he's kind of
said, you know, this is my last

26
00:01:27,990 --> 00:01:31,560
virtual event. And he laid out
some pretty good logic and some

27
00:01:31,560 --> 00:01:34,110
stuff I didn't wholly agree
with. But I certainly understand

28
00:01:34,110 --> 00:01:36,600
where it's coming from. And I
agree with the sentiment in

29
00:01:36,600 --> 00:01:41,130
totality. So So no, coop con
recap. We're, I'm sure we will

30
00:01:41,130 --> 00:01:43,590
find as the content gets onto
YouTube and gets out there.

31
00:01:43,590 --> 00:01:46,020
Well, I plan on watching a ton
of it, there were a ton of good

32
00:01:46,020 --> 00:01:48,240
talks, but so far have watched
almost none.

33
00:01:48,569 --> 00:01:51,029
John Osborne: I do feel like one
thing I will say about coop con,

34
00:01:51,029 --> 00:01:54,509
I do feel like in the future,
they'll probably have both modes

35
00:01:54,509 --> 00:01:57,869
where you can go there. But also
it is in a good experience for

36
00:01:57,869 --> 00:02:02,159
people that want to be home. And
it was cool. That was if you

37
00:02:02,159 --> 00:02:05,099
wanted to stream it it was you
know, I think it was $100 or

38
00:02:05,099 --> 00:02:08,519
something which you know, right.
And normally it's like $2,000 or

39
00:02:08,519 --> 00:02:11,909
something like that. And plus
travel plus, travel. Yeah, all

40
00:02:11,909 --> 00:02:14,069
that stuff. So at least I made
it Mark accessible to more

41
00:02:14,069 --> 00:02:14,669
people. But

42
00:02:14,760 --> 00:02:17,100
Jamie Duncan: yeah, making it
democratizing in that way is

43
00:02:17,100 --> 00:02:19,410
really cool. But just being a
virtual event was a little too

44
00:02:19,410 --> 00:02:19,740
rough.

45
00:02:20,190 --> 00:02:22,020
Tariq Islam: I think it comes
down to delivery as well. I

46
00:02:22,020 --> 00:02:24,990
mean, for me, just you
mentioning that travel and the

47
00:02:24,990 --> 00:02:28,170
time off and the hotel stay and
then all that just exhausted me

48
00:02:29,640 --> 00:02:30,030
just

49
00:02:30,870 --> 00:02:33,330
Jamie Duncan: talking about it.
But we are taking on something

50
00:02:33,330 --> 00:02:38,400
pretty ambitious. not going to
get into the huge chunk of it,

51
00:02:38,400 --> 00:02:42,660
the short version is for the
next several episodes, we are

52
00:02:42,660 --> 00:02:48,630
going to be tackling the
majority of what ci CD means in

53
00:02:48,630 --> 00:02:52,200
the Kubernetes space today. And
we're still settling some of the

54
00:02:52,200 --> 00:02:55,650
details. But it's going to be
five or six episodes. And we

55
00:02:55,650 --> 00:02:58,380
have a question for people. And
we'll probably throw a Twitter

56
00:02:58,380 --> 00:03:02,250
poll out there. JOHN will have
details on that later. But this

57
00:03:02,250 --> 00:03:07,200
first episode, we're gonna get
down I think first and foremost,

58
00:03:07,200 --> 00:03:12,180
we have to define what ci CD
means. I always we always, we

59
00:03:12,180 --> 00:03:15,270
tend to start with definitions
here. And then we're going to

60
00:03:15,270 --> 00:03:20,400
get into the backbones, the
platforms on which you can do ci

61
00:03:20,400 --> 00:03:26,250
CD. And really kind of get down
into the nuts and bolts a little

62
00:03:26,250 --> 00:03:29,100
bit and talk about some of the
pros and the cons and what would

63
00:03:29,100 --> 00:03:35,730
we using today. So who wants to
take a stab at defining ci CD?

64
00:03:37,410 --> 00:03:41,940
Tariq Islam: Let me start by
saying that in the minds of many

65
00:03:41,940 --> 00:03:49,020
folks, you know, see ICD is
sometimes conflated with DevOps.

66
00:03:49,380 --> 00:03:54,420
And I think it's important for
us to start defining c ICD by

67
00:03:54,450 --> 00:03:59,730
first defining what it's not.
And see, ICD is definitely not

68
00:03:59,790 --> 00:04:03,990
DevOps, but it certainly falls
under the auspices of DevOps. I

69
00:04:03,990 --> 00:04:06,930
think I think we'll start
teasing out DevOps through the

70
00:04:06,930 --> 00:04:11,910
course of these episodes.
Because they are inherently

71
00:04:11,910 --> 00:04:16,350
interrelated. And again, I think
ci CD represents a subset

72
00:04:16,350 --> 00:04:21,390
manifestation of a DevOps dev
sec Ops, Dev, appsec, ham

73
00:04:21,390 --> 00:04:27,840
sandwich. We put it culture, but
I think, I think I think it's

74
00:04:27,840 --> 00:04:30,870
important again, for the
listeners to just settle, you

75
00:04:30,870 --> 00:04:34,320
know, the backdrop here is that
they are, they are very separate

76
00:04:34,320 --> 00:04:39,300
topics to discuss. And with C
ICD, and how we're going to

77
00:04:39,300 --> 00:04:44,640
approach it, it is about the
tools. But you know, and john

78
00:04:44,640 --> 00:04:48,990
made this great point earlier.
It's also about the process

79
00:04:49,020 --> 00:04:53,010
around those tools and and the
impact that all of that has on

80
00:04:53,010 --> 00:04:56,070
the people. So you can start
seeing where that bleeds into

81
00:04:56,070 --> 00:05:00,990
the DevOps part of it. But it's
not it's not everything. DevOps.

82
00:05:01,110 --> 00:05:04,020
I know that sounds weird, but I
think it'll become clearer as we

83
00:05:04,050 --> 00:05:05,430
as we go through these episodes.

84
00:05:05,850 --> 00:05:07,560
John Osborne: Yeah, I mean, if I
always tell people like if

85
00:05:07,560 --> 00:05:10,020
DevOps was just purely a
technical problem, it already

86
00:05:10,020 --> 00:05:14,070
would have been solved, right?
The hard part is the people. But

87
00:05:14,100 --> 00:05:18,990
I think at the same time, if you
look at what you can do in an

88
00:05:18,990 --> 00:05:22,920
organization for most people, it
is they can automate something.

89
00:05:23,280 --> 00:05:26,310
And that's why we I think, why
we end up talking about ci CD so

90
00:05:26,310 --> 00:05:30,300
much, because it is a, it's more
tangible in the sense that more

91
00:05:30,300 --> 00:05:32,460
people can make a difference
through automation, and some of

92
00:05:32,460 --> 00:05:36,030
these some of these practices,
whereas, you know, defining

93
00:05:36,420 --> 00:05:41,310
outcomes, and you know, reorg,
doing reorg is when necessary,

94
00:05:41,310 --> 00:05:44,100
and some of the other cross
functional team stuff ends up

95
00:05:44,100 --> 00:05:45,990
being, you know, there's only a
small number of people in

96
00:05:45,990 --> 00:05:48,480
organizations that can change
some of those things that you

97
00:05:49,440 --> 00:05:54,030
that ended up need to be changed
at some point. So

98
00:05:55,650 --> 00:05:57,210
Jamie Duncan: yes, it sounds
like we're gonna be talking a

99
00:05:57,210 --> 00:06:00,600
lot about technical debt from a
couple of different angles.

100
00:06:01,050 --> 00:06:02,280
Tariq Islam: I think we have to
Yep.

101
00:06:02,610 --> 00:06:04,890
Jamie Duncan: Yeah. And it's
kind of interesting. In I had

102
00:06:04,890 --> 00:06:07,230
this discussion, I forget who I
was talking to whether it was on

103
00:06:07,230 --> 00:06:11,340
Twitter or in like an internal
chat room or what. But um,

104
00:06:12,570 --> 00:06:15,750
technical debt takes on this
negative connotation

105
00:06:15,750 --> 00:06:20,220
immediately. But when you're are
doing something like john said,

106
00:06:20,220 --> 00:06:22,380
when you are making these
positive changes, because if

107
00:06:22,380 --> 00:06:24,750
you're a completely manual shop
that runs off with three ring

108
00:06:24,750 --> 00:06:29,100
binders, and three gay and
conference calls, going to

109
00:06:29,130 --> 00:06:32,430
getting into, you know,
automating your pipelines for

110
00:06:32,430 --> 00:06:38,070
continuous deployment is taking
on new technical debt. And there

111
00:06:38,070 --> 00:06:40,920
are good kinds of technical debt
to take on, you know, it's like,

112
00:06:41,400 --> 00:06:44,580
there is, you know, there's
payday loan technical debt of

113
00:06:44,580 --> 00:06:47,670
people making poor choices, and
everyone having to endure them,

114
00:06:47,790 --> 00:06:50,940
you know, for a long time,
organizationally. But there's

115
00:06:50,940 --> 00:06:55,260
also mortgage technical debt,
where the debt is, you know, of

116
00:06:55,260 --> 00:06:58,410
a low enough interest rate to
push the to push it a little too

117
00:06:58,410 --> 00:07:02,250
far. But it It provides a lot of
benefit for what you're taking

118
00:07:02,250 --> 00:07:07,830
the dead on for, and ci CD, a CD
platform. Most of the time,

119
00:07:08,160 --> 00:07:12,390
unless it's just a really poor
implementation is good technical

120
00:07:12,390 --> 00:07:13,200
debt to take on.

121
00:07:13,980 --> 00:07:16,230
John Osborne: Yeah, I think too,
like, you know, talking about

122
00:07:16,230 --> 00:07:20,010
technical debt. You think about
agile and some other things that

123
00:07:20,010 --> 00:07:23,430
also, you know, there's a Venn
diagram somewhere out there, but

124
00:07:23,430 --> 00:07:27,390
that get entwined with things
like ci CD sometimes in Sprint's

125
00:07:27,390 --> 00:07:31,470
and these things, and there is
almost this feeling out there. I

126
00:07:31,470 --> 00:07:35,160
think that's honestly probably
justified that a lot of times,

127
00:07:35,160 --> 00:07:38,430
we get so focused on features
that we're not adequately

128
00:07:38,910 --> 00:07:41,520
prioritizing. I'm totally gonna
go off the rails in this

129
00:07:41,520 --> 00:07:46,230
episode. But we're not prior,
we're not prioritizing our

130
00:07:46,230 --> 00:07:50,280
technical debt and our testing
and good architecture diagrams

131
00:07:50,280 --> 00:07:53,010
and documentation and those
things because you start doing

132
00:07:53,010 --> 00:07:56,490
two week sprints and things like
that it gets it does get, if you

133
00:07:56,490 --> 00:07:58,950
do that poorly, it actually can
be worse than waterfall if you

134
00:07:58,950 --> 00:08:03,720
don't actually start. You know,
prioritizing things the way they

135
00:08:03,720 --> 00:08:06,060
should. And I will say to for as
a side tangent, we'll put it in

136
00:08:06,060 --> 00:08:09,180
the show notes, there's a new
really good book out called

137
00:08:09,180 --> 00:08:12,660
project to product on a flow
framework. It's this kind of

138
00:08:12,660 --> 00:08:17,640
prescriptive plan for value
stream management. And the the

139
00:08:18,120 --> 00:08:21,030
author also spoke at the DevOps
enterprise summit, He's really

140
00:08:21,030 --> 00:08:25,290
good. I've never tried this, but
just reading it and in watching

141
00:08:25,290 --> 00:08:29,730
it, it makes sense and resonated
with me a little bit in terms

142
00:08:29,730 --> 00:08:33,330
of, you know, how much should
you how much of your Sprint's

143
00:08:33,330 --> 00:08:38,070
should you focus on things like
reducing your technical debt and

144
00:08:38,430 --> 00:08:41,760
new features? And what makes and
when should you adjust that and

145
00:08:41,760 --> 00:08:44,520
why and it all sort of made
sense to me? Yeah, I

146
00:08:44,520 --> 00:08:46,260
Jamie Duncan: mean, the
traditional, you know, the old

147
00:08:46,260 --> 00:08:50,310
trope is that features drive
revenue. But even with

148
00:08:50,310 --> 00:08:54,120
Kubernetes, we've gotten to the
point where like cube one died,

149
00:08:54,120 --> 00:08:57,330
18 was very much a bug fix
release, there were very few new

150
00:08:57,330 --> 00:09:00,390
features, very few things moved
from alpha to beta, or beta to

151
00:09:00,390 --> 00:09:02,940
GA. And like you're talking
about john, like, when you're in

152
00:09:02,940 --> 00:09:07,890
these two week sprints, you can
fixate on the wrong things, and

153
00:09:07,890 --> 00:09:10,260
really drive your product into
an unhealthy state.

154
00:09:10,409 --> 00:09:13,139
Tariq Islam: So I guess then,
the goal of properly done CIC D

155
00:09:13,139 --> 00:09:18,119
is to avoid, you know,
forgetting the forest. Right,

156
00:09:18,149 --> 00:09:21,899
and only focusing on the trees.
Yeah. And that's, and I like

157
00:09:21,899 --> 00:09:25,649
your call out about technical
debt, Jamie. But I do I do have

158
00:09:25,649 --> 00:09:29,879
a recent story. Actually, I was
working with an organization

159
00:09:29,939 --> 00:09:36,359
that they were still packaging
up now actually, to this day,

160
00:09:36,479 --> 00:09:41,189
they are still packaging up
their, their binaries in a zip

161
00:09:41,189 --> 00:09:43,859
folder and emailing them to
their ops team for deployment.

162
00:09:44,070 --> 00:09:45,480
John Osborne: I've seen that all
the time. So

163
00:09:45,870 --> 00:09:47,700
Tariq Islam: yeah, it was Yeah,

164
00:09:47,820 --> 00:09:49,500
John Osborne: I just moving it
around, you know.

165
00:09:50,669 --> 00:09:52,499
Jamie Duncan: Not even SFTP
Yeah, not even.

166
00:09:54,270 --> 00:09:56,520
Tariq Islam: Yeah, I see that
all the time. So but but that's

167
00:09:56,520 --> 00:10:02,670
where folks are right. And I
think i think i think CIC D it

168
00:10:02,730 --> 00:10:08,340
to John's point, it really does
require a cultural shift just

169
00:10:08,340 --> 00:10:11,880
like Kubernetes adoption does
that we've talked about before.

170
00:10:11,940 --> 00:10:16,320
I mean, this is we're talking
about not just automation to

171
00:10:16,320 --> 00:10:19,920
solve problems, but this is this
is, you know, organizational

172
00:10:19,920 --> 00:10:22,620
infrastructure that you're going
to build on top of.

173
00:10:23,130 --> 00:10:24,750
John Osborne: I'm really getting
off the rails In this episode,

174
00:10:24,750 --> 00:10:26,640
by the way, I feel will

175
00:10:26,640 --> 00:10:27,930
Jamie Duncan: keep you on track,
we'll keep you on

176
00:10:29,429 --> 00:10:31,379
John Osborne: Kubernetes like
actually makes a lot of sense

177
00:10:31,379 --> 00:10:33,749
here. And there's other
technologies too, but you know,

178
00:10:33,779 --> 00:10:37,679
it's, we talk about, I think,
Craig Mcluckie talked about this

179
00:10:37,679 --> 00:10:40,319
like last year, but you know,
the move from ticket driven to

180
00:10:40,319 --> 00:10:43,109
API driven well, instead of
putting in a ticket for saying

181
00:10:43,109 --> 00:10:46,259
you need, what storage and how
many replicas you want, you

182
00:10:46,259 --> 00:10:49,619
know, that can be part of the
API that developers hand over to

183
00:10:49,619 --> 00:10:52,019
operations teams where they can
say, here's my deployment, I

184
00:10:52,019 --> 00:10:56,729
need, I need, you know, this
persistent volume and need to

185
00:10:56,729 --> 00:10:58,319
run this number of replicas
within this.

186
00:10:58,740 --> 00:11:00,540
Tariq Islam: So that's an
interesting point. Because

187
00:11:00,570 --> 00:11:04,530
Because I don't think there's a
singular formula for ci CD. I

188
00:11:04,530 --> 00:11:07,680
mean, there's like, okay, build
your app, run your test, create

189
00:11:07,680 --> 00:11:11,220
your artifact, you know, deploy
to staging, you know, yada yada,

190
00:11:11,220 --> 00:11:13,770
yada deploy to production,
Canary, whatever, and then

191
00:11:13,770 --> 00:11:18,000
you're good to go. But that can
manifest itself in many

192
00:11:18,000 --> 00:11:23,490
different ways, where different
organizations define the lines

193
00:11:23,490 --> 00:11:27,870
between their teams differently.
And I've seen ci CD work where

194
00:11:27,870 --> 00:11:31,290
developers are reaching over to
the right, where they are

195
00:11:31,350 --> 00:11:39,930
dealing with, you know, API
driven requests, or that that

196
00:11:39,930 --> 00:11:42,930
engagement pattern is definitely
something that I've seen work,

197
00:11:42,930 --> 00:11:46,500
but it requires a lot of, I
think, a high degree of maturity

198
00:11:46,500 --> 00:11:48,600
that most probably don't have.

199
00:11:48,840 --> 00:11:50,430
Jamie Duncan: And there's a
there's a pretty important

200
00:11:50,430 --> 00:11:54,810
distinction as well, that I want
to draw in to try to segue this

201
00:11:54,810 --> 00:11:58,350
into talking about sort of how
you get started, like talking

202
00:11:58,380 --> 00:12:01,620
like using target customer, you
know, whose zip file, you know,

203
00:12:02,220 --> 00:12:05,640
emailing zip files, to ops
people to deploy to deploy new

204
00:12:05,640 --> 00:12:09,180
versions of things. Were john,
where you pointed out, you see

205
00:12:09,180 --> 00:12:12,450
the principles and Kubernetes
very much our peanut butter and

206
00:12:12,450 --> 00:12:14,670
jelly kind of scenario,
chocolate and peanut butter.

207
00:12:15,060 --> 00:12:17,640
Apparently, peanut butter goes
with everything, really. But

208
00:12:18,419 --> 00:12:20,909
Tariq Islam: it really including
me, oh, by the way, believe it

209
00:12:20,909 --> 00:12:21,269
or not,

210
00:12:21,360 --> 00:12:24,450
Jamie Duncan: yeah, I've seen
it, and not in that camp. But

211
00:12:24,450 --> 00:12:27,060
let's just take a second to
recognize the universal love of

212
00:12:27,060 --> 00:12:31,200
peanut butter. But there, the
there is a big difference,

213
00:12:31,200 --> 00:12:35,730
because like you can't be a
little bit Kubernetes, you can

214
00:12:35,730 --> 00:12:39,000
be a little bit pregnant. Once
you stand up a Kubernetes

215
00:12:39,000 --> 00:12:44,040
cluster. To deploy an
application effectively, you've

216
00:12:44,040 --> 00:12:47,490
got to do all of it, you've got
to containerize it, you've got

217
00:12:47,490 --> 00:12:49,860
to figure out config maps,
you've got to get your ingress

218
00:12:49,860 --> 00:12:53,700
and your networking and your
storage squared away, you can't

219
00:12:53,700 --> 00:12:56,610
do a little bit of Kubernetes,
you don't have to put all of

220
00:12:56,610 --> 00:12:59,880
your applications on Kubernetes.
But to do our application on

221
00:12:59,880 --> 00:13:04,230
cube, you got to do it all the
way. CDs a little different,

222
00:13:04,410 --> 00:13:08,280
because that team that is you
know, receiving zip files in

223
00:13:08,280 --> 00:13:13,470
their inbox to do to run a
maintenance event. They can

224
00:13:13,980 --> 00:13:18,420
start down a road and and CD
principals can be taken on one

225
00:13:18,420 --> 00:13:24,330
or five at a time. And all of
them provide benefit. You don't

226
00:13:24,330 --> 00:13:27,810
have to go from zero to 100,
like you do with an app in coop.

227
00:13:28,290 --> 00:13:32,940
You can build it up over time
and drive that adoption drive

228
00:13:32,940 --> 00:13:34,860
those cultural changes with the
tooling.

229
00:13:35,309 --> 00:13:36,749
Tariq Islam: And that's a good
point. Because I think that

230
00:13:36,779 --> 00:13:41,819
that's why I've we have seen
organizations adopt c ICD far

231
00:13:41,819 --> 00:13:45,239
before, or long before they
adopt Kubernetes in that

232
00:13:45,719 --> 00:13:49,079
holistic way. Right. And by the
way, I'm totally stealing that

233
00:13:49,109 --> 00:13:50,819
whole you can't be a little bit
pregnant.

234
00:13:51,300 --> 00:13:52,380
Jamie Duncan: Oh, you never
heard that before.

235
00:13:52,409 --> 00:13:53,729
Tariq Islam: I've never heard
that one before.

236
00:13:53,760 --> 00:13:56,850
John Osborne: Oh, are you
serious? I've never get around

237
00:13:56,850 --> 00:13:57,360
it for a long

238
00:13:58,740 --> 00:14:00,570
Tariq Islam: time. Michelle, I'm
sheltered. What can you say?

239
00:14:02,399 --> 00:14:03,179
Jamie Duncan: Poor little Tarik,

240
00:14:03,179 --> 00:14:05,069
John Osborne: you're a nice boy.
I'm telling you, man. I'm

241
00:14:05,070 --> 00:14:06,090
Tariq Islam: a nice boy, you
know.

242
00:14:07,440 --> 00:14:09,960
Jamie Duncan: So let's, let's
talk a little bit about some of

243
00:14:09,960 --> 00:14:13,020
the options. You know, this
first episode we want to talk

244
00:14:13,020 --> 00:14:15,900
about the definitions. Before we
get to that I want to get into a

245
00:14:15,900 --> 00:14:19,680
little bit of trivia with you
too. And I it's one of those

246
00:14:19,680 --> 00:14:22,140
that where I'm wondering if I if
I was sheltered back in the day,

247
00:14:22,470 --> 00:14:24,930
when the first place I was at
that was doing anything

248
00:14:24,930 --> 00:14:28,410
resembling a CI CD workflow, and
they were doing it really

249
00:14:28,410 --> 00:14:33,090
poorly. But I didn't know any
better at the time. It was

250
00:14:33,090 --> 00:14:37,770
continuous integration.
Continuous Delivery, was what ci

251
00:14:37,770 --> 00:14:41,010
CD stood for. Apparently now
it's continuous integration,

252
00:14:41,010 --> 00:14:42,210
continuous deployment.

253
00:14:42,570 --> 00:14:43,800
Tariq Islam: I think that's
still debatable.

254
00:14:44,069 --> 00:14:46,739
Jamie Duncan: Is it so is
delivery Am I am I the only is

255
00:14:46,739 --> 00:14:50,699
that like this. Sinbad being the
genie in the movie thing? Yeah.

256
00:14:51,840 --> 00:14:55,290
John Osborne: Just you know,
deployment to multiple I guess

257
00:14:55,290 --> 00:14:58,020
if you're saying delivering it.
I think it I think they changed

258
00:14:58,020 --> 00:14:59,880
it when they started. The
delivery started happening to

259
00:14:59,880 --> 00:15:03,990
me. multiple targets. And okay,
then they just started moving

260
00:15:03,990 --> 00:15:06,510
into deployment. That was kind
of my, my take on it.

261
00:15:06,720 --> 00:15:09,300
Tariq Islam: I'm still a fan of
delivery. Actually, I feel like

262
00:15:09,300 --> 00:15:10,560
it's a little bit more generic.

263
00:15:10,649 --> 00:15:12,749
Jamie Duncan: And I wonder if I
wonder if there was like a book

264
00:15:12,749 --> 00:15:14,819
written. I wonder if there's, I
wonder if there are camps here

265
00:15:14,819 --> 00:15:17,309
and we don't know about it.
There are some blogs that talk

266
00:15:17,309 --> 00:15:19,979
about the difference between
delivery and deployment. I'll be

267
00:15:19,979 --> 00:15:20,669
honest with you,

268
00:15:21,479 --> 00:15:22,349
Tariq Islam: I don't think it
matters.

269
00:15:23,880 --> 00:15:25,740
John Osborne: I remember the
first time that that's our it's

270
00:15:25,740 --> 00:15:26,070
like,

271
00:15:26,159 --> 00:15:27,089
Jamie Duncan: Reddit hated it.

272
00:15:28,890 --> 00:15:31,740
John Osborne: The first
organization I worked for that

273
00:15:31,740 --> 00:15:35,400
did this. I was the first few
years I was in the industry. I

274
00:15:35,400 --> 00:15:40,740
just wrote code by myself in a
in in isolation, and Tareq. And

275
00:15:40,740 --> 00:15:43,170
I were joking about a month ago
about how ahead some of these

276
00:15:43,170 --> 00:15:45,330
people are they're like,
speaking on stage at cube con

277
00:15:45,330 --> 00:15:49,080
and stuff for over them. We were
but the first organization I

278
00:15:49,080 --> 00:15:51,390
went to that actually did
anything like see ICD, honestly,

279
00:15:51,390 --> 00:15:56,160
I, I was very probably immature.
And I wasn't used to doing all

280
00:15:56,160 --> 00:15:58,950
these things. And I remember I
went down to this, this guy's

281
00:15:58,950 --> 00:16:01,020
desk, and he's like, yeah, you
know, we're gonna, we're gonna

282
00:16:01,020 --> 00:16:03,180
check our code. And every night,
we're gonna scan it with a run

283
00:16:03,180 --> 00:16:05,010
these tests, if things break,
we're gonna email you right

284
00:16:05,010 --> 00:16:09,630
away. And I just remember
thinking, chill out, man. I just

285
00:16:09,630 --> 00:16:13,770
want to write some code. I don't
want emails every night with

286
00:16:13,770 --> 00:16:15,960
things breaking, because things
always break. And you know, I

287
00:16:15,960 --> 00:16:19,170
didn't, I didn't actually see
later I moved into ops. And so I

288
00:16:19,170 --> 00:16:23,100
kind of saw all of why that
mattered. But when I was just in

289
00:16:23,100 --> 00:16:26,340
that writing code mindset, I
didn't really didn't see, at

290
00:16:26,340 --> 00:16:29,250
that time, at least, while that
stuff was so important.

291
00:16:29,549 --> 00:16:31,829
Jamie Duncan: I remember getting
all of those alerts. And they

292
00:16:31,829 --> 00:16:34,289
were constant. And they were
useless, because they were

293
00:16:34,289 --> 00:16:37,169
poorly configured. Because we
had no clue what we were doing.

294
00:16:37,709 --> 00:16:40,379
And they just became white
noise. And you ignored them.

295
00:16:41,129 --> 00:16:41,489
That's,

296
00:16:41,520 --> 00:16:43,320
John Osborne: that's what
happens still happens. There is

297
00:16:43,320 --> 00:16:45,960
no technology that solves that
problem. I do think you need to

298
00:16:45,990 --> 00:16:48,300
there's a, there's just the data
you got to put the time in.

299
00:16:49,169 --> 00:16:51,689
Tariq Islam: It's a it's a it's
a maturity thing, right. It's an

300
00:16:51,689 --> 00:16:54,779
organization learning about what
it cares about, in terms of

301
00:16:54,779 --> 00:16:58,049
delivering features and
functions. It gets better over

302
00:16:58,049 --> 00:17:01,109
time. But I think, and john, I
think you mentioned this before

303
00:17:01,109 --> 00:17:06,599
we started up, you know, how you
measure your ci CD pipelines,

304
00:17:06,599 --> 00:17:10,289
your automation infrastructure,
that's, that's hugely important.

305
00:17:10,529 --> 00:17:12,839
And you're not going to get it
right the first time, you're not

306
00:17:12,839 --> 00:17:14,909
going to get it right, the
eighth time, you might get it

307
00:17:14,909 --> 00:17:19,169
right, maybe the 18th time. But
I think it's, it's part of that,

308
00:17:19,529 --> 00:17:23,459
that ci CD journey. And you have
to have the patience and the

309
00:17:23,459 --> 00:17:27,299
discipline to kind of stick with
it, and get to a point where

310
00:17:27,929 --> 00:17:30,929
it's not just about the
efficiency of the automation,

311
00:17:30,929 --> 00:17:35,699
but the the data that you're
getting back. Is it useful? And

312
00:17:35,699 --> 00:17:39,119
is it? Is it making your
processes better? Is it

313
00:17:39,119 --> 00:17:39,839
impactful?

314
00:17:39,990 --> 00:17:42,360
John Osborne: I mean, the
general kind of pattern I see

315
00:17:43,230 --> 00:17:48,060
is, organizations that, you
know, initially, they really

316
00:17:48,060 --> 00:17:50,340
just talk about inputs, you
know, we've got to, we've got to

317
00:17:50,340 --> 00:17:54,000
do cloud, we've got to do agile,
you know, we've got to, we've

318
00:17:54,000 --> 00:17:56,880
got we need the Kubernetes,
given the Kubernetes. And then,

319
00:17:57,810 --> 00:18:00,150
you know, once they get a little
more mature, they start looking

320
00:18:00,150 --> 00:18:03,420
at the outputs, like the, you
know, the four key metrics from

321
00:18:03,840 --> 00:18:06,690
the state of DevOps reports, the
number of incidents, those

322
00:18:06,690 --> 00:18:09,720
things, and then once the few
organizations have had that have

323
00:18:09,720 --> 00:18:13,890
gotten pretty mature, we'll talk
about outcomes. So you know,

324
00:18:13,890 --> 00:18:17,610
reducing costs and improving
operations teams and those types

325
00:18:17,610 --> 00:18:21,000
of things that actually make
more of a difference. But

326
00:18:21,000 --> 00:18:23,640
initially, it's like, you know,
we've got a, we need the cloud.

327
00:18:23,670 --> 00:18:26,850
I mean, it'd be the cloud. And
but measurements do become

328
00:18:26,850 --> 00:18:30,180
really important, I think, in
general to, to understanding

329
00:18:30,180 --> 00:18:30,870
success.

330
00:18:31,320 --> 00:18:34,260
Tariq Islam: So this, this begs
the question, then, you know,

331
00:18:34,290 --> 00:18:38,100
what, what is it good? What is
it good ci CD infrastructure

332
00:18:38,700 --> 00:18:46,350
look like beyond just build
test? stage, deploy, monitor.

333
00:18:46,680 --> 00:18:49,440
John Osborne: So before Jamie
answers to like, let me just

334
00:18:49,440 --> 00:18:51,600
throw, let me just throw
everything we did in the, in the

335
00:18:51,600 --> 00:18:57,450
pre, the pre call of the window,
cuz I want to bring something

336
00:18:57,450 --> 00:18:59,400
up, see if this resonates with
you guys. But there is a really

337
00:18:59,400 --> 00:19:04,020
good article on scaling to
100,000 users, where they this,

338
00:19:04,080 --> 00:19:06,030
I'll put it in the show notes.
And it's nothing to do with ci

339
00:19:06,030 --> 00:19:08,010
CD. But I thought we could
actually use a similar format

340
00:19:08,040 --> 00:19:11,550
for this episode is based off
what Sam and Jamie say, kind of

341
00:19:11,580 --> 00:19:14,520
jog my memory, but they kind of
talked about, you know, building

342
00:19:14,520 --> 00:19:17,430
something with one user on one
machine and then going into 10

343
00:19:17,430 --> 00:19:20,160
users and you split up the
database and then 100 users and

344
00:19:20,160 --> 00:19:23,700
then building up like, maybe we
do want to work that way for a

345
00:19:23,700 --> 00:19:26,010
CI CD, or we're talking about
you know, if it's Let's just eat

346
00:19:26,010 --> 00:19:28,440
what should you do and kind of
build out to what is like a

347
00:19:28,440 --> 00:19:31,260
large enterprise, but what
should they be doing? Because I

348
00:19:31,260 --> 00:19:33,090
do think that the answer
differs.

349
00:19:33,630 --> 00:19:36,840
Jamie Duncan: Yeah, if it's just
me, my Git commits are going to

350
00:19:36,840 --> 00:19:37,980
be purely curse words.

351
00:19:40,320 --> 00:19:42,120
John Osborne: You can't look at
my I have nothing. I have no

352
00:19:42,120 --> 00:19:43,080
documentation on code.

353
00:19:43,470 --> 00:19:45,870
Jamie Duncan: Right.
Documentation will not exist.

354
00:19:45,930 --> 00:19:50,700
Yeah. I think I like the idea of
starting with one person. I

355
00:19:50,700 --> 00:19:53,040
don't think it's particularly
practical. He's you. It's one of

356
00:19:53,040 --> 00:19:55,290
those, you know, it's a Dilbert
joke.

357
00:19:55,889 --> 00:19:57,329
Tariq Islam: You know, we're
like, have you started working

358
00:19:57,329 --> 00:20:00,749
yet? And no, I've spent seven
days configuring My environment.

359
00:20:00,749 --> 00:20:04,679
But but but let's go back to
that example of of the

360
00:20:04,679 --> 00:20:09,179
organization that still sending
zip files in an email to the SIS

361
00:20:09,179 --> 00:20:12,869
ops team that probably started
with a single person somewhere.

362
00:20:13,019 --> 00:20:15,809
Yeah, sure. All right. And they
didn't try to scale around that.

363
00:20:16,319 --> 00:20:17,729
I think that's a good approach.

364
00:20:18,779 --> 00:20:20,519
John Osborne: I think what
happens when you see those

365
00:20:20,519 --> 00:20:24,209
things a lot of times is the
hire at the top of the

366
00:20:24,209 --> 00:20:27,269
organizations don't have any
idea who's talking to each

367
00:20:27,269 --> 00:20:31,739
other. And so what happens is,
is on the ground floor, you

368
00:20:31,739 --> 00:20:34,619
know, they needed to get this to
the operations teams, and no one

369
00:20:34,619 --> 00:20:37,559
really thought about silos
talking to each other. So how do

370
00:20:37,559 --> 00:20:40,379
you contact someone, especially,
you know, all these things

371
00:20:40,409 --> 00:20:43,079
process around for 20 years? So
how did you how did you get

372
00:20:43,079 --> 00:20:45,599
something similar? 20 years ago,
you emailed it right? And so

373
00:20:46,289 --> 00:20:50,399
nobody really cared to focus on
doing an improvement of that. So

374
00:20:50,399 --> 00:20:53,489
here we are, was, that's still
our problem. Years later, yeah,

375
00:20:53,489 --> 00:20:54,419
20 years later. Still,

376
00:20:54,449 --> 00:20:56,609
Tariq Islam: I think I think one
of the best ways to distill this

377
00:20:56,609 --> 00:21:01,019
maybe is is looking at Conway's
Law, perhaps because I think

378
00:21:01,019 --> 00:21:04,769
cicd flies in the face of that a
little bit. where, you know,

379
00:21:04,769 --> 00:21:07,739
Conway's Law states that an
organization is doomed or

380
00:21:07,739 --> 00:21:12,059
destined, pick your word of
choice there to to create

381
00:21:12,359 --> 00:21:15,569
systems and software that mimic
the communication patterns of

382
00:21:15,569 --> 00:21:22,109
their, of their organization.
See, ICD is at least properly

383
00:21:22,109 --> 00:21:26,069
done is actually meant to break
that or improve upon that. And I

384
00:21:26,069 --> 00:21:31,019
think that's, that's what makes
it hard to get right. But to

385
00:21:31,079 --> 00:21:34,919
Jamie's point, there are areas
of ci and CD, particularly on

386
00:21:34,919 --> 00:21:39,959
the CI CD part where actually on
both sides, where you can, you

387
00:21:39,959 --> 00:21:44,159
can cherry pick a little bit on
what you want to improve upon

388
00:21:44,189 --> 00:21:48,929
before taking a bigger bite. And
so I think I think, you know, if

389
00:21:48,929 --> 00:21:52,289
an organization wants to do
things better, it's a great

390
00:21:52,289 --> 00:21:55,739
place to start. It's a it's a
good path of least resistance.

391
00:21:56,219 --> 00:21:59,069
And and once you really get
really good at C, ICD and

392
00:21:59,069 --> 00:22:03,059
automation, I think, I think
appetites increase for more

393
00:22:03,059 --> 00:22:07,529
advanced tooling and platforms,
you know, Kubernetes, and the

394
00:22:07,529 --> 00:22:08,009
like.

395
00:22:08,220 --> 00:22:09,900
Jamie Duncan: So let's talk
about getting started a little

396
00:22:09,900 --> 00:22:13,080
bit, because you have to, you
know, see the end, we were

397
00:22:13,080 --> 00:22:15,900
talking a little bit about this,
before we hit the record button,

398
00:22:15,930 --> 00:22:20,220
CD is the tooling. And, you
know, that's really where the

399
00:22:20,220 --> 00:22:22,680
the sort of the line of
demarcation begins, but between

400
00:22:22,680 --> 00:22:25,680
defining ci CD and defining
DevOps, and they are very

401
00:22:25,710 --> 00:22:29,580
knitted together, but see ICD
very much represent a toolset

402
00:22:29,580 --> 00:22:32,580
that you've adopted to get work
done. Whereas DevOps is much

403
00:22:32,580 --> 00:22:37,590
more philosophy. If you're
adopting, taking that idea of

404
00:22:37,590 --> 00:22:41,190
torrox example of the company
that sends a zip file for over

405
00:22:41,190 --> 00:22:47,550
email for deployment jobs. If
the, if the visionary in that

406
00:22:47,550 --> 00:22:51,180
group, we're starting to build
out some sort of CD pipeline,

407
00:22:52,230 --> 00:22:55,620
they would have to start with an
engine, they would have to start

408
00:22:55,620 --> 00:22:59,010
with a whatever you want to call
it a backbone, a platform, an

409
00:22:59,010 --> 00:23:04,200
engine to begin to integrate the
CD steps. And it's that's the

410
00:23:04,200 --> 00:23:07,320
first step they have to get on
top of they have to take that

411
00:23:07,320 --> 00:23:08,700
first step up.

412
00:23:08,790 --> 00:23:11,910
Tariq Islam: Yeah, and and I'll
go ahead and call this first one

413
00:23:11,910 --> 00:23:17,610
out. And but before I call it
out, I am going to call back to

414
00:23:18,180 --> 00:23:21,300
a previous episode when we were
talking about remember when we

415
00:23:21,300 --> 00:23:25,260
talked about how Helm benefited
from being kind of first to

416
00:23:25,260 --> 00:23:29,850
land, and then being shoehorned
for a number of use cases that

417
00:23:29,880 --> 00:23:34,830
aren't so great anymore? Right.
I think that's that's where a

418
00:23:34,830 --> 00:23:38,280
lot of people landed with
Jenkins. Jenkins has been around

419
00:23:38,520 --> 00:23:45,210
forever. And it's a build
server. Right? It it since

420
00:23:45,210 --> 00:23:48,780
inception. And it's a very good
one. But it's, it was almost

421
00:23:48,780 --> 00:23:52,890
purely ci and because of its
pluggable architecture, it

422
00:23:52,890 --> 00:23:57,420
became, for a long time the de
facto choice and I guess even to

423
00:23:57,420 --> 00:24:01,740
this day, it's still kind of is
despite it, there being you

424
00:24:01,740 --> 00:24:06,180
know, hundreds of other options
out there. It's just so so

425
00:24:06,180 --> 00:24:06,960
ubiquitous,

426
00:24:07,020 --> 00:24:08,880
John Osborne: it's a good point
because I think if you look at

427
00:24:08,880 --> 00:24:14,130
Jenkins is there's there's
there's a lot to be said about

428
00:24:14,130 --> 00:24:17,130
it but I think similar to home
and you make a good point is

429
00:24:17,130 --> 00:24:20,310
that it's it's the community of
plugins and things that are

430
00:24:20,310 --> 00:24:23,400
already out there I can go on to
Jenkins and build something out

431
00:24:23,400 --> 00:24:26,100
in an hour that plugs to my
Slack channel and does all these

432
00:24:26,100 --> 00:24:30,240
things because those plugins
exist and they're easy to

433
00:24:30,240 --> 00:24:33,360
integrate and so it's definitely
not a what I would consider like

434
00:24:33,360 --> 00:24:38,220
a cloud native build system but
it there's so much there that

435
00:24:38,220 --> 00:24:41,190
you can reuse out of the box
that it we don't prefer that you

436
00:24:41,190 --> 00:24:44,550
use at Red Hat we don't prefer
that use Jenkins but we get it

437
00:24:44,550 --> 00:24:47,400
if if if that's where you end up
landing

438
00:24:47,460 --> 00:24:50,610
Jamie Duncan: Yeah, the copy
paste ability of Jenkins once

439
00:24:50,610 --> 00:24:54,930
you have something built, you're
able to duplicate it quickly and

440
00:24:54,990 --> 00:24:58,920
enhance because what you find in
a because it does very much

441
00:24:58,920 --> 00:25:02,400
mimic your communication And
patterns, most of your

442
00:25:02,400 --> 00:25:05,970
applications deploy in a similar
way. Once you get the first one

443
00:25:05,970 --> 00:25:08,340
figured out, you know the first
pill cost a million dollars a

444
00:25:08,340 --> 00:25:13,170
second pill cost a nickel. Once
you get that first pipeline

445
00:25:13,170 --> 00:25:16,590
built out, you can reference it
and just make the needed

446
00:25:16,590 --> 00:25:19,530
modifications to build out a
pretty mature Jenkins

447
00:25:19,530 --> 00:25:23,880
environment. I deployed Jenkins
Actually, this morning, just to

448
00:25:23,880 --> 00:25:25,950
look because I hadn't looked at
Jenkins in a long time I

449
00:25:25,980 --> 00:25:30,000
deployed it into a Kubernetes
cluster. And the process was

450
00:25:30,000 --> 00:25:34,710
pretty good. You know, so I took
on, I said, you know, when we

451
00:25:34,710 --> 00:25:38,280
were planning this first episode
out, I said, I would deploy

452
00:25:38,280 --> 00:25:41,460
Jenkins and Spinnaker, and then
add a Jenkins X to it this

453
00:25:41,460 --> 00:25:45,690
morning when I was when I was
tinkering around. Have those

454
00:25:45,870 --> 00:25:49,950
three? Jenkins is the most
straightforward thing to deploy.

455
00:25:50,220 --> 00:25:52,560
Was it a Helm chart? Yeah, of
course, it was.

456
00:25:52,650 --> 00:25:53,250
Tariq Islam: I knew it.

457
00:25:54,810 --> 00:25:57,840
John Osborne: Jenkins feels so
2005. But it does Oh my god, it

458
00:25:57,840 --> 00:25:57,990
is.

459
00:26:00,150 --> 00:26:03,660
Jamie Duncan: Like, it's, I'm
stunned it how like, it's soon

460
00:26:03,690 --> 00:26:06,300
Alright, so to deploy Jenkins,
your there's a little bit of

461
00:26:06,300 --> 00:26:09,840
ammo, it needs a service account
inside the coop cluster. You

462
00:26:09,840 --> 00:26:12,540
create a namespace, create a
service account, run a Helm

463
00:26:12,540 --> 00:26:15,840
chart, and your cluster is up
and running takes three minutes,

464
00:26:15,900 --> 00:26:21,600
I logged into that thing. And I
was immediately in 2009. And the

465
00:26:21,600 --> 00:26:24,930
only differences in the UI that
I can ascertain after like a 10

466
00:26:24,930 --> 00:26:30,900
minute analysis was they've made
the font smaller. And the

467
00:26:30,900 --> 00:26:35,130
graphics were updated about six
like they it's like they took

468
00:26:35,130 --> 00:26:39,000
the kitchen from 1998. And they
painted the cabinets white and

469
00:26:39,000 --> 00:26:41,850
put down new countertops. But
it's the exact same kitchen

470
00:26:41,970 --> 00:26:43,020
Tariq Islam: felt like coming
home.

471
00:26:43,410 --> 00:26:47,040
Jamie Duncan: Oh, like, like
coming in back to the you know

472
00:26:47,040 --> 00:26:53,040
the step dad that you never
really liked them. But they're

473
00:26:53,100 --> 00:26:56,160
very straightforward to deploy
into a Kubernetes cluster and

474
00:26:56,160 --> 00:26:59,760
took advantage. Like once it had
that service account. It did

475
00:26:59,760 --> 00:27:03,180
populate stuff. So like it was
running builds inside the coop

476
00:27:03,180 --> 00:27:05,850
cluster, it was doing everything
pretty effectively, pretty

477
00:27:05,850 --> 00:27:10,200
quickly. But I'm just like it
was 12 years ago, when you click

478
00:27:10,200 --> 00:27:13,170
new pipeline, you know, no
matter which option you pick

479
00:27:13,170 --> 00:27:17,790
whether it was one of the pre
canned ones, or the DIY one. It

480
00:27:17,790 --> 00:27:22,110
was 74 radio buttons, 92,
checkboxes, and every one of

481
00:27:22,110 --> 00:27:25,230
them brought up for other
questions you had to answer. And

482
00:27:25,230 --> 00:27:28,380
at the bottom was a text area
that I wrote my shell script in?

483
00:27:28,920 --> 00:27:32,580
Yeah, it is. And it was I was
like, Oh, my it like the

484
00:27:32,580 --> 00:27:35,220
workflow. And I guess at that
point, because it is so

485
00:27:35,220 --> 00:27:39,030
ubiquitous, it's rate of
evolution has to be incredibly

486
00:27:39,030 --> 00:27:43,410
slow. It's the generic general
purpose, right? The old server,

487
00:27:43,410 --> 00:27:45,930
everyone uses it. So everyone's
holding on to the way they're

488
00:27:45,930 --> 00:27:49,380
currently using it. I feel
really sorry for cloudbees you

489
00:27:49,380 --> 00:27:51,000
know, the people that do it
professionally?

490
00:27:51,810 --> 00:27:53,460
John Osborne: Yeah, there's
something to that too. Because

491
00:27:53,460 --> 00:27:57,600
if you look at the a lot of the
way, you know, in practice, at

492
00:27:57,600 --> 00:28:00,330
least what I've seen, tell me if
you've seen this, but when

493
00:28:00,360 --> 00:28:03,420
people get hired as a quote
unquote DevOps engineer, what

494
00:28:03,420 --> 00:28:05,820
they end up doing is just
writing a lot of glucose, and

495
00:28:05,820 --> 00:28:09,960
that glucose ends up often
living as custom shell scripts

496
00:28:09,990 --> 00:28:14,160
inside of Jenkins. Yeah, and
yeah, that's a hard place to

497
00:28:14,160 --> 00:28:14,910
live in, I think,

498
00:28:15,000 --> 00:28:17,730
Jamie Duncan: yeah. It reminded
It reminds me a lot of like, the

499
00:28:17,730 --> 00:28:22,950
way pivotal stuff works. reminds
me a lot of the way I did jobs

500
00:28:22,980 --> 00:28:24,060
1213 years ago,

501
00:28:24,300 --> 00:28:27,120
Tariq Islam: I will say that,
you know, I'm a fan of knocking

502
00:28:27,120 --> 00:28:32,490
on Jenkins, but for, for the,
for the for the listeners. And I

503
00:28:32,490 --> 00:28:36,000
still think that if if it does
end up being Jenkins that you do

504
00:28:36,000 --> 00:28:38,940
go with as your you're kind of
getting started stepping stone,

505
00:28:39,150 --> 00:28:42,060
so be it right. And if that's
what that's what you're used to

506
00:28:42,060 --> 00:28:45,060
get good with ci CD and
automation and getting, getting

507
00:28:45,060 --> 00:28:48,930
to a better place. Go for it.
Now, that said, You are

508
00:28:48,960 --> 00:28:52,260
absolutely going to hit, you
know, major issues with respect

509
00:28:52,260 --> 00:28:57,090
to scaling. You know, Jenkins is
not exactly friendly to

510
00:28:57,090 --> 00:28:59,850
resources. But that's something
that that's something

511
00:28:59,849 --> 00:29:02,009
John Osborne: you might care
about day one.

512
00:29:02,099 --> 00:29:05,039
Jamie Duncan: Yeah. And like you
said, starting at one user, it

513
00:29:05,039 --> 00:29:09,839
works just fine. Mm hmm. Yeah,
yeah. It really scaling up in

514
00:29:09,839 --> 00:29:14,399
102,000. I mean, let's all you
know, I freely admit that the

515
00:29:14,399 --> 00:29:18,689
modern internet owns lens, a
large portion of its existence

516
00:29:18,689 --> 00:29:22,499
to Jenkins, is you can't get
that much software deployed

517
00:29:22,499 --> 00:29:27,209
manually. We would still be
working on your stuff from seven

518
00:29:27,209 --> 00:29:30,659
years ago. We all have benefited
from Jenkins globally as a

519
00:29:30,659 --> 00:29:34,859
product that said, it's like
Domino's Pizza. It is not the

520
00:29:34,859 --> 00:29:38,159
best pizza in the town you live
in, but it's going to show up

521
00:29:38,159 --> 00:29:41,249
pretty consistently better than
they're going. Right, exactly.

522
00:29:41,819 --> 00:29:43,739
They're going to be there in a
half hour and you're going to

523
00:29:43,739 --> 00:29:48,599
eat it. Yeah. It's not the best
pizza on the planet. You can get

524
00:29:48,599 --> 00:29:52,229
a better experience. But, but
you're going to pay for it and

525
00:29:52,229 --> 00:29:55,259
you're going to have to jump
through some hoops to get it. So

526
00:29:55,529 --> 00:29:58,949
one of those better experiences.
So what Jenkins ended up doing a

527
00:29:58,949 --> 00:30:03,059
few years ago, and I don't know
exactly when. But Jenkins then

528
00:30:03,659 --> 00:30:07,319
is, is there and it has a sort
of glacial evolutionary path,

529
00:30:07,379 --> 00:30:09,419
you know, because everyone's
using it. No one wants it to

530
00:30:09,419 --> 00:30:12,809
change. So what they did was
make a thing called Jenkins x.

531
00:30:13,349 --> 00:30:16,079
It was back when I think putting
x in front of at the end of

532
00:30:16,079 --> 00:30:18,479
things was cool. That was
actually a team that left Red

533
00:30:18,479 --> 00:30:22,259
Hat to, to go build that. And if
you remember, was it. Yep. It

534
00:30:22,259 --> 00:30:23,789
was. Oh, yeah. Yeah, not.

535
00:30:24,720 --> 00:30:28,980
John Osborne: So. And it wasn't
the same Jenkins team. It was a

536
00:30:28,980 --> 00:30:31,950
bunch of people that were really
strong and on messaging and kind

537
00:30:31,950 --> 00:30:35,280
of middleware. Some of the
people that worked on are built

538
00:30:35,280 --> 00:30:39,750
Apache camel, those types of
people, and they left and did

539
00:30:39,750 --> 00:30:42,240
their own thing. And they came
up with Jenkins x.

540
00:30:42,599 --> 00:30:45,899
Jamie Duncan: Yep. So Jenkins X
has a great UI for Kubernetes

541
00:30:45,929 --> 00:30:49,649
ties itself into octant, which
is a really solid user

542
00:30:49,649 --> 00:30:53,969
experience. There's an ops
persona panel for for Jenkins x,

543
00:30:53,969 --> 00:30:57,179
there's a dev persona panel for
Jenkins x, really slick, really

544
00:30:57,179 --> 00:31:01,799
modern, get a lot of work done
really efficiently. So I think

545
00:31:01,799 --> 00:31:04,889
under the covers, it's using a
lot of the same state engine

546
00:31:04,889 --> 00:31:09,119
tooling. It's a lot of the same
engine of Jenkins, but it's

547
00:31:09,179 --> 00:31:11,609
presented in a more modern
fashion. And it's got more

548
00:31:11,609 --> 00:31:14,039
modern hooks, like there's a
more modern API that you can

549
00:31:14,039 --> 00:31:18,119
interact with, and really deal
with the tooling much more in a

550
00:31:18,119 --> 00:31:21,929
much more modern cloud native
way. deploying it to some of the

551
00:31:21,929 --> 00:31:25,619
silly stuff I've ever seen in my
life, I cannot figure out the

552
00:31:25,619 --> 00:31:30,149
lot. The logic of how they came
up with the deployment tooling

553
00:31:30,179 --> 00:31:35,669
for Jenkins x. It starts out
really cool. It starts out easy.

554
00:31:36,209 --> 00:31:40,559
Like it's like 10 lines of JSON,
that you drop into a terraform

555
00:31:40,589 --> 00:31:45,089
template, and you run terraform
in it and terraform apply. And

556
00:31:45,089 --> 00:31:49,409
then it checks out a repository
and it does Oh, no, then it does

557
00:31:49,409 --> 00:31:52,829
some stuff. So it actually
deploys a Kubernetes cluster on

558
00:31:52,829 --> 00:31:57,029
your cloud provider. So like you
tell them in that in that JSON,

559
00:31:57,029 --> 00:32:00,719
you tell it what cloud project
you're using in different ones,

560
00:32:00,719 --> 00:32:04,169
like AWS looks a lot different
than Google Cloud, all that. But

561
00:32:04,169 --> 00:32:06,449
it stands up a Kubernetes
cluster, and in that Kubernetes

562
00:32:06,449 --> 00:32:10,229
clusters running just about
nothing, then you have to go

563
00:32:10,259 --> 00:32:16,439
download another binary, called
j X on your local machine, run a

564
00:32:16,439 --> 00:32:20,099
couple of more commands, one of
which checks out a repository

565
00:32:20,099 --> 00:32:25,019
from GitHub. And then that
generates a yamo file that you

566
00:32:25,019 --> 00:32:28,319
run another command on that
thing goes and sticks the right

567
00:32:28,319 --> 00:32:32,249
things in the Kubernetes cluster
that you deployed 20 minutes

568
00:32:32,249 --> 00:32:32,849
previously.

569
00:32:33,869 --> 00:32:37,829
John Osborne: I say felted, just
when you're explaining, Yeah,

570
00:32:37,860 --> 00:32:38,790
Jamie Duncan: dude, I and

571
00:32:39,030 --> 00:32:41,460
John Osborne: I looked at
Jenkins x when I first started

572
00:32:41,460 --> 00:32:42,840
that company. So I was
interested in what they were

573
00:32:42,840 --> 00:32:45,030
doing. But I haven't really
followed it much the last couple

574
00:32:45,030 --> 00:32:45,480
years.

575
00:32:46,080 --> 00:32:48,780
Jamie Duncan: I don't understand
how they got there. And the fun

576
00:32:48,780 --> 00:32:51,990
thing is I pull down the latest
version of everything. There is

577
00:32:51,990 --> 00:32:55,050
some hardware inside some of
that. And it's all terraform

578
00:32:55,050 --> 00:32:57,990
under the covers the deployment
tooling inside some of the

579
00:32:57,990 --> 00:33:01,200
terraform, or inside some of the
file somewhere inside this JSX

580
00:33:01,200 --> 00:33:05,430
binary, it is hard coded to look
to check out the master from

581
00:33:05,430 --> 00:33:08,160
when it checks out this GitHub
repo, and the master branch

582
00:33:08,160 --> 00:33:10,290
doesn't exist anymore. And
GitHub because they renamed it

583
00:33:10,290 --> 00:33:14,910
to Maine, but the installer
hasn't been updated. And I

584
00:33:14,910 --> 00:33:18,840
pulled down the latest release
binary to try it out for like

585
00:33:18,840 --> 00:33:22,080
three different versions. So the
installer for Jenkins x is

586
00:33:22,080 --> 00:33:23,400
effectively broken right now.

587
00:33:24,030 --> 00:33:28,530
Tariq Islam: So this is where
managing your own

588
00:33:28,710 --> 00:33:33,030
infrastructure. And the type of
infrastructure you choose. As

589
00:33:33,030 --> 00:33:38,370
soon as you get beyond a small
team really starts to matter. I

590
00:33:38,369 --> 00:33:41,849
Jamie Duncan: think so yeah. So
when we were sketching this,

591
00:33:41,879 --> 00:33:48,779
this episode out, we broke down
three generic categories of CD

592
00:33:48,779 --> 00:33:53,399
backbone CD platforms, Jenkins
and Spinnaker would be the

593
00:33:53,399 --> 00:33:55,529
number two one, but we're not
talking to so Jenkins and

594
00:33:55,529 --> 00:33:58,829
chicken neck Spinnaker, and I'm
sure there are others are what

595
00:33:58,829 --> 00:34:02,189
you would call traditional. And
those are the you know, I'm

596
00:34:02,189 --> 00:34:04,019
going to deploy a thing and
whether it's deployed into

597
00:34:04,019 --> 00:34:08,129
Kubernetes or deployed into a VM
or wherever. It's a traditional

598
00:34:08,129 --> 00:34:11,009
application, and I get a
traditional experience from it.

599
00:34:11,219 --> 00:34:16,349
The second type C FCD. backbone
is one that's a little more

600
00:34:16,349 --> 00:34:20,909
cloud native. And is tark. is do
you want to get into that a

601
00:34:20,909 --> 00:34:21,479
little bit.

602
00:34:21,690 --> 00:34:25,020
Tariq Islam: Yes, so the cloud
native ones, some some examples

603
00:34:25,020 --> 00:34:29,340
here. But this is by no means an
exhaustive list. In fact, this

604
00:34:29,340 --> 00:34:33,570
is probably 1% of everything
that's out there, you know,

605
00:34:33,570 --> 00:34:40,680
tools like circle ci, GitHub
actions, git lab, ci, Travis CI,

606
00:34:40,920 --> 00:34:45,750
I think of those really comes
out to, you know, GitHub and get

607
00:34:45,750 --> 00:34:48,720
lab being the more popular ones.
I've seen more folks, I've

608
00:34:48,720 --> 00:34:51,750
actually seen quite a lot of Git
lab.

609
00:34:52,199 --> 00:34:54,779
Jamie Duncan: Yeah, it's really
good. I used it a lot. We used

610
00:34:54,779 --> 00:35:01,079
it a lot at VMware. really
effective. Travis and circle I

611
00:35:01,079 --> 00:35:03,929
think they were they were first
to market in this space. And I

612
00:35:03,929 --> 00:35:08,519
don't know who be who. But
Travis and circle, were filling

613
00:35:08,519 --> 00:35:11,789
the gap before get lab and
GitHub had their own integrated

614
00:35:11,789 --> 00:35:12,119
CD

615
00:35:12,120 --> 00:35:15,120
Tariq Islam: platform. For my
own edification, how are we

616
00:35:15,150 --> 00:35:18,060
differentiating between
traditional and cloud native? Is

617
00:35:18,060 --> 00:35:22,530
it just how many years old they
are? Or deployment model? Maybe

618
00:35:22,530 --> 00:35:26,640
both? What makes a thing cloud
native in this context?

619
00:35:27,180 --> 00:35:29,610
John Osborne: I mean, I think,
you know, if you look at tecton,

620
00:35:29,610 --> 00:35:34,110
or some of the newer ways to
build pipelines, it's that they

621
00:35:34,110 --> 00:35:39,420
can one be event driven, in the
sense that, you know, something

622
00:35:39,420 --> 00:35:44,520
can trigger the pipeline to
start or even instantiate from

623
00:35:44,520 --> 00:35:48,690
scratch, right? And then, you
know, does it run well, in

624
00:35:48,690 --> 00:35:54,870
containers? Can you scale up
scale down? Very easily? You

625
00:35:54,870 --> 00:35:57,600
know, is it a lot of times now,
we're also talking about is it

626
00:35:57,600 --> 00:36:00,870
declarative in the sense that
you set what the desired state

627
00:36:00,870 --> 00:36:05,850
is going to be? And not just the
steps to get there an imperative

628
00:36:05,850 --> 00:36:10,290
model? But it's, you know, is it
going to run on Kubernetes?

629
00:36:10,290 --> 00:36:13,860
Well, is it going to run as a
container? Well, those are the

630
00:36:13,860 --> 00:36:16,530
types of things that I that I
normally think about, I will say

631
00:36:16,530 --> 00:36:21,630
to like, before, before I
forget, you know, I think when

632
00:36:21,630 --> 00:36:26,970
we talk about building, in a
pipeline, any sort of scale like

633
00:36:27,000 --> 00:36:29,340
and I would even say, once you
get to like 10 nodes, if you're

634
00:36:29,340 --> 00:36:33,300
building in your cluster, you
probably want a dedicated

635
00:36:33,300 --> 00:36:37,200
machine just for the builds,
because that he comes so spiky,

636
00:36:37,920 --> 00:36:44,700
that it really can destroy some
of your, your, your node

637
00:36:45,000 --> 00:36:48,510
resource usage, you know, things
can spike up really high spike

638
00:36:48,510 --> 00:36:50,970
back down, especially if you're
doing Java, you know, start

639
00:36:50,970 --> 00:36:55,770
doing Maven builds or even node
j s, you know, Mo the NPM stuff.

640
00:36:57,240 --> 00:37:00,360
You know, even go right, because
it's it's statically compiled.

641
00:37:00,360 --> 00:37:04,770
So the builds tend to be pretty
compute resource intensive

642
00:37:04,770 --> 00:37:07,350
first, but obviously, the
runtime is very good, right. So

643
00:37:08,850 --> 00:37:11,490
you know, you probably at any
sort of even medium scale, you

644
00:37:11,490 --> 00:37:15,510
probably want to look to start
to have dedicated machines that

645
00:37:15,510 --> 00:37:17,340
just do builds. This sounds

646
00:37:17,340 --> 00:37:19,680
Tariq Islam: a lot like the
problems that we've seen

647
00:37:19,680 --> 00:37:24,270
organizations run into with,
with Jenkins, right, is resource

648
00:37:24,270 --> 00:37:28,410
contention spike Enos having to
have dedicated infrastructure, I

649
00:37:28,410 --> 00:37:32,340
think, you know, I don't know,
maybe maybe cloud native is not

650
00:37:32,340 --> 00:37:35,130
the most accurate term for this
category, maybe it's the fact

651
00:37:35,130 --> 00:37:40,830
that the design principles, the
user experience, in these kind

652
00:37:40,830 --> 00:37:48,720
of Next Gen. backbone, backbones
are, are just better, you know,

653
00:37:48,720 --> 00:37:49,770
a little bit more refined.

654
00:37:50,490 --> 00:37:53,160
Jamie Duncan: And I'm thinking
through, because I think I was

655
00:37:53,160 --> 00:37:55,920
the one that wrote cloud native
in the outline, so I'll take the

656
00:37:55,920 --> 00:37:56,550
hit for that one.

657
00:37:57,720 --> 00:37:58,770
John Osborne: Actually, I didn't
even see that.

658
00:38:01,800 --> 00:38:04,770
Jamie Duncan: But I'm gonna hold
on to I'm not gonna let go of it

659
00:38:04,770 --> 00:38:09,750
just yet. Because john tark, I
think you're 100% on point is

660
00:38:09,780 --> 00:38:14,640
that they are an evolution and
how it works. The ones that we

661
00:38:14,670 --> 00:38:17,520
the ones that we've taught that
we've sort of enumerated circle

662
00:38:17,520 --> 00:38:21,330
and Travis and get lab and get
hubs integrated ones, and there

663
00:38:21,330 --> 00:38:25,110
are a ton more and a ton of them
are very platform specific, like

664
00:38:25,110 --> 00:38:30,390
natla, fly and a bunch of
others. Even if you're deploying

665
00:38:30,390 --> 00:38:34,890
get lab on prem, and you do have
to account for those build

666
00:38:34,890 --> 00:38:41,040
resources. When I'm hooking Mike
a Kubernetes, cluster into those

667
00:38:41,040 --> 00:38:47,250
build resources, it takes me
about 30 seconds. And the entire

668
00:38:47,250 --> 00:38:51,600
experience is driven through the
Git lab UI. And I effectively

669
00:38:51,600 --> 00:38:55,920
just give Git lab permissions to
go deploy workloads on my

670
00:38:55,920 --> 00:38:59,700
cluster. And I can drop it into
a namespace with quotas and

671
00:38:59,700 --> 00:39:04,650
handle those resources that way.
So we're Git lab, because it has

672
00:39:04,650 --> 00:39:09,360
an on prem version is almost a
hybrid between a traditional and

673
00:39:09,360 --> 00:39:13,650
a cloud native. You do account
for that to some degree with

674
00:39:13,650 --> 00:39:16,440
with Jenkins. And I've actually
ran in or give with Git lab. And

675
00:39:16,440 --> 00:39:19,320
I've actually ran into that
where, you know, my build server

676
00:39:19,470 --> 00:39:22,830
ran out of resources a lot. It
was some projects I worked on at

677
00:39:22,830 --> 00:39:28,140
VMware. But with like GitHub,
and Travis and circle, they're

678
00:39:28,140 --> 00:39:32,070
all as a service. So you don't
have to provide any of you don't

679
00:39:32,070 --> 00:39:36,240
have to account for any of it.
And the worst case scenario is

680
00:39:36,240 --> 00:39:38,580
that you're waiting a little
while longer on your build to

681
00:39:38,580 --> 00:39:41,580
run if it's eating up a lot of
stuff, or if the run queue is

682
00:39:41,580 --> 00:39:45,870
just long with GitHub actions
or, you know, in the Travis CI,

683
00:39:46,080 --> 00:39:48,870
Travis is handling all that for
you or circle ci is handling all

684
00:39:48,870 --> 00:39:49,470
that for you.

685
00:39:51,060 --> 00:39:52,740
John Osborne: They've done a
really good job. Some of those

686
00:39:52,740 --> 00:39:54,090
tools were Oh man,

687
00:39:54,120 --> 00:39:54,810
Jamie Duncan: they are awesome.

688
00:39:54,960 --> 00:39:59,430
John Osborne: They used to be a
Git repo and now their ci CD

689
00:39:59,430 --> 00:40:05,820
workflows. thinly disguised as a
Git repo a Git repo. Yeah. But

690
00:40:05,820 --> 00:40:07,140
they've done a good job for
sure.

691
00:40:07,200 --> 00:40:10,110
Jamie Duncan: Yeah. And the cool
thing about all of these is the

692
00:40:10,110 --> 00:40:14,190
way they present themselves to
the user. And it's kind of the

693
00:40:14,190 --> 00:40:18,450
reason I'm holding on to cloud
native as them as a moniker for

694
00:40:18,450 --> 00:40:22,470
them. Because all of them have
the same workflow. Whereas

695
00:40:22,470 --> 00:40:25,410
Jenkins, you've got to go into
the Jenkins UI to find these

696
00:40:25,410 --> 00:40:28,320
things, you know, define a
pipeline to get all this stuff

697
00:40:28,320 --> 00:40:31,110
hammered out all these buttons
and checkboxes and text fields.

698
00:40:32,520 --> 00:40:35,070
With all of the cloud native
tools that we've talked that we

699
00:40:35,070 --> 00:40:39,240
just mentioned, all of them are
a single YAML file at the base

700
00:40:39,240 --> 00:40:44,940
of your repository. And that
your entire experience. That

701
00:40:44,940 --> 00:40:49,110
means that it's massively
powerful. It is Yep. And that's

702
00:40:49,110 --> 00:40:51,720
what that's why I'm holding on
to cloud native, because if I

703
00:40:51,720 --> 00:40:57,630
drop a YAML, dot, Travis, ci dot
YAML, at the top of my repo, and

704
00:40:57,630 --> 00:41:00,330
I tell Travis that you have
permissions to talk to this

705
00:41:00,330 --> 00:41:02,580
repo, and I'm done.

706
00:41:03,030 --> 00:41:05,940
Tariq Islam: So this begs the
question, then is it worth, you

707
00:41:05,940 --> 00:41:08,430
know, whether it's the
organization that's still

708
00:41:08,430 --> 00:41:12,360
emailing their zip files? Or
maybe it's another organization

709
00:41:12,360 --> 00:41:15,720
that's slightly more mature than
that, or retelling them? Or we

710
00:41:15,720 --> 00:41:17,760
issue like a peanut butter
spread? Going back with peanut

711
00:41:17,760 --> 00:41:18,270
butter here?

712
00:41:18,900 --> 00:41:20,460
Jamie Duncan: Are we just
telling everyone always goes

713
00:41:20,460 --> 00:41:21,000
back to penguin?

714
00:41:21,780 --> 00:41:24,660
Tariq Islam: are we telling
folks, you know, just go

715
00:41:24,660 --> 00:41:29,910
straight for the, the what we're
calling cloud native, like the

716
00:41:29,910 --> 00:41:33,570
circle ci, and the Travis CI is
and get labs of the world? And

717
00:41:33,570 --> 00:41:37,530
skipping over, over Jenkins? And
just maybe, are we saying that

718
00:41:37,530 --> 00:41:43,770
Jenkins is just legacy enough?
That you can you can you can

719
00:41:43,770 --> 00:41:46,050
forget about it and move into
these newer tools?

720
00:41:47,010 --> 00:41:49,590
John Osborne: I think it
depends. Because if you look at,

721
00:41:49,650 --> 00:41:52,920
you know, cloud native stuff,
right, you know, you has all its

722
00:41:52,920 --> 00:41:55,590
dependencies with it kind of
handles restarts, well, you

723
00:41:55,590 --> 00:41:58,050
know, it can run on containers,
Kubernetes, it's highly

724
00:41:58,050 --> 00:42:02,490
available, all that stuff. You
know, that requires in some

725
00:42:02,490 --> 00:42:05,880
cases, you know, so you're using
tecton, as an example, right. So

726
00:42:07,050 --> 00:42:09,480
you might have to write
containers with automation in it

727
00:42:09,480 --> 00:42:12,720
to make some of this stuff
happen that you might have a

728
00:42:12,720 --> 00:42:15,630
plugin out of the box with
Jenkins. So it's, it is kind of

729
00:42:15,630 --> 00:42:18,780
a your mileage may vary,
depending on your use case, but

730
00:42:19,380 --> 00:42:23,310
and not every org has people
just sitting around that are

731
00:42:23,340 --> 00:42:27,210
writing Glue Code in containers,
to do all this stuff. So it's

732
00:42:27,210 --> 00:42:30,570
kind of a, you know, you have to
make your own decision. But I do

733
00:42:30,570 --> 00:42:32,610
think that there's a certain
amount of technical debt you

734
00:42:32,610 --> 00:42:37,350
assume by by doing Greenfield
Jenkins deployments at this

735
00:42:37,350 --> 00:42:37,680
point.

736
00:42:38,820 --> 00:42:41,970
Jamie Duncan: Yeah. And I think
at least for me, I see them as

737
00:42:41,970 --> 00:42:49,020
a, it's a case coverage problem
is circle and Travis and GitHub

738
00:42:49,020 --> 00:42:54,660
and get lab, they all have some
limitations. If you're going to

739
00:42:54,660 --> 00:42:58,260
use Travis or circle, or just
about any of them, I think

740
00:42:59,010 --> 00:43:03,000
you're going to be in the
limitations aren't great. But

741
00:43:03,000 --> 00:43:06,720
you're going to have to use some
of their tooling. And they're

742
00:43:06,720 --> 00:43:10,020
going to make some assumptions
about what you're doing. And the

743
00:43:10,020 --> 00:43:12,660
steps are going to be relative
or somewhat limited compared to

744
00:43:12,660 --> 00:43:15,360
what you can do in Travis, or
what you can do in Jenkins,

745
00:43:15,360 --> 00:43:19,140
where you know, the world is
your is your checkbox. If you

746
00:43:19,140 --> 00:43:23,730
find yourself straining against
those limitations be because of

747
00:43:23,730 --> 00:43:25,890
the way you've designed your
application, or because of the

748
00:43:25,890 --> 00:43:30,060
limitations or security needs
you've got. You always have

749
00:43:30,060 --> 00:43:34,140
Jenkins available as this
infinitely customizable platform

750
00:43:34,140 --> 00:43:37,440
that's going to get you where
you need to go. But for that

751
00:43:37,500 --> 00:43:41,340
problem, I don't know if it's
85, or 97 and a half. But for a

752
00:43:41,340 --> 00:43:44,100
very high percentage of modern
applications being written

753
00:43:44,100 --> 00:43:48,660
today. These cloud native CD
tools, fit your use case very

754
00:43:48,660 --> 00:43:53,520
comfortably, and are a much
lower barrier to entry into this

755
00:43:53,520 --> 00:43:53,940
arena.

756
00:43:54,420 --> 00:43:57,150
Tariq Islam: And I will say that
of these, or at least of the

757
00:43:57,150 --> 00:43:59,670
ones that I've seen, I think I
think Git lab is probably the

758
00:43:59,670 --> 00:44:05,460
furthest along as far as
bringing together feature set

759
00:44:05,580 --> 00:44:12,990
ease of use deployment pattern.
You know it? Again, to your

760
00:44:12,990 --> 00:44:16,800
point, Jamie, it's not it's not
100%. As far as customizability

761
00:44:16,800 --> 00:44:20,430
the way Jenkins is, but I think
I think for the vast majority of

762
00:44:20,430 --> 00:44:22,920
organizations, they've I'm
calling them out because you

763
00:44:22,920 --> 00:44:24,030
know, they've done great work.

764
00:44:24,180 --> 00:44:27,420
Jamie Duncan: Yeah, I agree. I
like I said, I use it pretty

765
00:44:27,420 --> 00:44:30,600
extensively at VMware, and have
used it on and off before and

766
00:44:30,600 --> 00:44:34,740
after. And I'd agree, yeah, they
are the most mature of all the

767
00:44:34,740 --> 00:44:40,920
cloud native ci, CD tooling. And
it is very easy to use.

768
00:44:41,310 --> 00:44:43,380
Tariq Islam: So let's talk about
this this last category that

769
00:44:43,380 --> 00:44:48,780
we've got here, managed, right
and managed by managed and the

770
00:44:48,780 --> 00:44:52,110
most sensitive to this term.
Because I think there's a lot of

771
00:44:52,110 --> 00:44:56,640
confusion around it. Anything
for me, and we I don't I don't

772
00:44:56,640 --> 00:45:00,570
want to make this a rat hole.
But when I say manage I'm

773
00:45:00,570 --> 00:45:06,090
talking about, you are not
deploying this infrastructure or

774
00:45:06,090 --> 00:45:11,220
this tool in any way, shape or
form where you're having to

775
00:45:11,280 --> 00:45:14,550
manage it. Right? There's no
such thing as day to operations

776
00:45:14,550 --> 00:45:23,580
here. This is a purely Oh
serverless for form of, of ci CD

777
00:45:23,610 --> 00:45:27,990
infrastructure, where you just
kind of click on a button. And

778
00:45:28,680 --> 00:45:31,260
and you get a thing. Yeah.

779
00:45:32,100 --> 00:45:35,130
Jamie Duncan: Right. Yeah, I see
them is in the what we're trying

780
00:45:35,130 --> 00:45:37,440
to talk the examples of what
we're talking about her, like

781
00:45:37,470 --> 00:45:42,330
AWS code pipeline, Google's
cloud build, we couldn't come up

782
00:45:42,330 --> 00:45:44,910
with azures, I think they've
called it Azure DevOps. Yeah,

783
00:45:44,910 --> 00:45:46,320
it's their builds that

784
00:45:46,469 --> 00:45:49,469
John Osborne: it's that that the
TFS, the Team Foundation Server

785
00:45:49,469 --> 00:45:51,599
stuff in Azure called Azure
DevOps.

786
00:45:52,170 --> 00:45:57,390
Jamie Duncan: Yeah. And really
what you get as you get a pretty

787
00:45:57,540 --> 00:46:02,520
configurable set of inputs. And
you get a completely abstracted

788
00:46:02,520 --> 00:46:06,810
build experience, and you get a
less configurable set of

789
00:46:06,810 --> 00:46:10,560
destinations or output of what
it will what it will generate

790
00:46:10,560 --> 00:46:14,070
for you and where it will put
it. But that's really it, you

791
00:46:14,070 --> 00:46:17,040
feed it your source code, you
feed it some parameters, it does

792
00:46:17,040 --> 00:46:21,030
some magic, and it drops the
result of that magic in one of a

793
00:46:21,030 --> 00:46:22,140
handful of locations.

794
00:46:23,550 --> 00:46:26,490
Tariq Islam: So I think this
one, this category is pretty

795
00:46:26,490 --> 00:46:31,020
interesting, because I feel like
it is the most scalable from one

796
00:46:31,020 --> 00:46:35,040
to 100,000, just because of the
nature of how its deployed, you

797
00:46:35,040 --> 00:46:37,710
know, at least from the
perspective of the user, it's

798
00:46:37,710 --> 00:46:40,320
not something that's deployed.
But you know, me as an

799
00:46:40,320 --> 00:46:43,440
individual, I can use Cloud
build, for example, or Azure

800
00:46:43,440 --> 00:46:47,700
DevOps for just my own purposes.
And then I could bring any of

801
00:46:47,700 --> 00:46:52,140
these into a fully fledged
enterprise organization, and use

802
00:46:52,140 --> 00:46:56,850
them at scale as well. Now, you
know, you do have to consider

803
00:46:57,480 --> 00:47:01,080
which one of these you're going
to pick, because the one that

804
00:47:01,080 --> 00:47:05,040
you pick, is is going to is
going to effectively tie you to

805
00:47:05,040 --> 00:47:10,350
a cloud. Right, but, but i think
i think i think listeners

806
00:47:10,350 --> 00:47:14,520
should, you know, see the
advantages of a managed offering

807
00:47:14,520 --> 00:47:18,930
here, because of how quickly you
can get up and running, and how

808
00:47:18,930 --> 00:47:21,990
quickly you're able to scale and
bring it to the rest of an

809
00:47:21,990 --> 00:47:27,390
organization. But, again, you
know, going back to the point

810
00:47:27,390 --> 00:47:29,730
that Jamie made around technical
debt, there's something to

811
00:47:29,730 --> 00:47:30,330
consider.

812
00:47:31,530 --> 00:47:33,750
John Osborne: So for my
consistency, what you'll see

813
00:47:33,750 --> 00:47:38,910
from adoption, but in my
opinion, like ci CD tools in the

814
00:47:38,910 --> 00:47:42,060
cloud, is managed services have
some of the lowest adoption of

815
00:47:42,060 --> 00:47:47,100
all the public cloud provider
services. And I don't know, but

816
00:47:47,100 --> 00:47:52,440
I think the reason for that is
is, is people have a really hard

817
00:47:52,440 --> 00:47:57,420
time paying to build their code.
There's some there must be some

818
00:47:57,420 --> 00:48:01,620
psychology there, I don't know.
But pay as you go. And

819
00:48:01,620 --> 00:48:05,400
obviously, you pay with, if you
manage anything yourself, you

820
00:48:05,460 --> 00:48:11,100
you pay to, in terms of in terms
of all the people that you that

821
00:48:11,100 --> 00:48:14,310
are managing those things,
right. But it's not as apparent

822
00:48:14,310 --> 00:48:21,390
as paying for a service. And I
see challenges with with people

823
00:48:21,390 --> 00:48:25,380
just mentally getting over that
hurdle of paying to compile my

824
00:48:25,380 --> 00:48:29,790
code. Have you seen that or such
as something that that, that

825
00:48:29,790 --> 00:48:30,330
I've seen?

826
00:48:32,640 --> 00:48:36,300
Tariq Islam: I've actually not
seen that yet. Although, again,

827
00:48:36,300 --> 00:48:42,930
I do, I would have to agree with
you that it's, it's not it,

828
00:48:43,050 --> 00:48:49,620
there hasn't been a huge wave of
adoption across these tools. But

829
00:48:49,620 --> 00:48:57,030
I can, I can see, I can see why
that would be prevalent. It's

830
00:48:57,030 --> 00:49:00,780
one of those. It's one of those,
like, you know, I'm going to do

831
00:49:00,780 --> 00:49:05,310
it myself kind of thing. It's,
it's this is low value task. And

832
00:49:05,310 --> 00:49:07,920
and that's the that's the
perception, right, that the

833
00:49:07,920 --> 00:49:13,200
tasks of building, you know,
compiling, building, you know,

834
00:49:13,920 --> 00:49:18,240
all of that, all that sci fi
stuff, especially, is deemed low

835
00:49:18,240 --> 00:49:24,480
level. machinery. And, and and
it's Yeah, I can, I can totally

836
00:49:24,480 --> 00:49:24,930
get there.

837
00:49:25,950 --> 00:49:29,550
Jamie Duncan: Yeah, my take on
it was, I certainly agree that

838
00:49:29,580 --> 00:49:32,400
it's not, you know, people
aren't beating down the doors to

839
00:49:32,400 --> 00:49:37,200
Google Cloud to use Cloud build.
It's a great tool, and it does

840
00:49:37,200 --> 00:49:40,830
exactly what it needs to do. But
it's it's very much a value add

841
00:49:40,830 --> 00:49:44,430
for someone who is sort of all
in on AWS cloud, at least in the

842
00:49:44,430 --> 00:49:50,280
public cloud space. I assumed
that slower curve of adoption

843
00:49:50,280 --> 00:49:53,970
was because people have
relatively mature CD pipelines

844
00:49:53,970 --> 00:49:55,800
because like we said, the
beginning people have been doing

845
00:49:55,800 --> 00:49:59,430
this for a long time. So if
they've got something and it's

846
00:49:59,430 --> 00:50:02,580
not broke, They don't see it as
debt, they see it as providing

847
00:50:02,580 --> 00:50:06,060
value. Why would they read? You
know, why would they build

848
00:50:06,060 --> 00:50:10,380
cycles to change it? And as you
were talking, I started

849
00:50:10,380 --> 00:50:16,770
wondering if that is if it's
that as much, or if it's is, as

850
00:50:16,770 --> 00:50:20,490
we were looking at these and
talking about them, you know, as

851
00:50:20,490 --> 00:50:23,580
you go from these traditional
platforms like Jenkins, to these

852
00:50:23,580 --> 00:50:27,450
cloud native platforms like Git
lab, to these managed platforms,

853
00:50:27,480 --> 00:50:34,860
like like AWS code pipeline,
each step along the way, you

854
00:50:34,860 --> 00:50:40,380
have to have good, better
hygiene. Like you can do some

855
00:50:40,380 --> 00:50:43,350
crazy woolly stuff inside
Jenkins and get your application

856
00:50:43,350 --> 00:50:43,800
to build.

857
00:50:44,400 --> 00:50:46,260
John Osborne: Yeah, automation
is hard. I mean,

858
00:50:46,440 --> 00:50:48,360
Jamie Duncan: yeah, exactly.
Like we said at the beginning,

859
00:50:48,870 --> 00:50:50,910
but and there's lots of duct
tape is strong.

860
00:50:51,180 --> 00:50:54,870
John Osborne: Yeah. Duct Tape
survival solutions, sometimes

861
00:50:54,870 --> 00:50:55,710
Exactly. Oh, yeah.

862
00:50:55,709 --> 00:50:58,169
Jamie Duncan: And Jenkins is
really good duct tape. It's the

863
00:50:58,169 --> 00:51:03,089
duct tape of the internet. It is
needed. Yeah, the cloud native

864
00:51:03,089 --> 00:51:06,359
tools, you can use a little less
duct tape, you have to have a

865
00:51:06,359 --> 00:51:09,569
little better hygiene, there are
some more limitations. And the

866
00:51:09,569 --> 00:51:12,359
Manage platforms, there are even
more limitations. Like I said,

867
00:51:12,359 --> 00:51:14,849
you have a more limited set of
inputs, you have a more limited

868
00:51:14,849 --> 00:51:19,019
set of outputs. And you don't
have a lot of control of what

869
00:51:19,019 --> 00:51:22,979
happens in the middle. So I
wonder if it's because they're

870
00:51:22,979 --> 00:51:26,699
just they have something they're
happy with? Or it's because

871
00:51:26,699 --> 00:51:29,489
they've got their house of cards
duct taped up enough that they

872
00:51:29,489 --> 00:51:34,829
don't want to touch it. That is
that sort of limiting some of

873
00:51:34,829 --> 00:51:38,489
that, that that adoption of
these managed platforms? I don't

874
00:51:38,489 --> 00:51:41,189
know, it's kind of an open ended
question. I'm thinking about it,

875
00:51:41,249 --> 00:51:45,149
you know, even as I say it out
loud. But I'm, we're running a

876
00:51:45,149 --> 00:51:48,659
little long here. Yeah, talking
about this. So john, do you want

877
00:51:48,659 --> 00:51:51,449
to give us give the skinny on
what we're going to do for the

878
00:51:51,449 --> 00:51:55,439
next five or six episodes, yes,
and throw this idea out for

879
00:51:55,650 --> 00:51:57,420
John Osborne: free. I will throw
this out there too, before we

880
00:51:57,420 --> 00:52:00,870
get into the agenda. But, you
know, we talked a little bit

881
00:52:00,900 --> 00:52:03,600
early on before we hit the
record button about about

882
00:52:03,600 --> 00:52:06,000
DevOps. And if it's even
something that would would

883
00:52:06,000 --> 00:52:11,400
resonate with the users here.
You know, it's DevOps in

884
00:52:11,400 --> 00:52:16,590
practice ends up being kind of a
collection of practices and

885
00:52:16,590 --> 00:52:22,440
methodologies around product
flow. You know, things are out

886
00:52:22,440 --> 00:52:26,130
there's a lot of people and
process side to it. And so, you

887
00:52:26,130 --> 00:52:28,980
know, with, would you be
interested in the audience of

888
00:52:29,040 --> 00:52:32,700
listening to practices that
work, don't work around, you

889
00:52:32,700 --> 00:52:35,730
know, moving things like
institutionalized codified

890
00:52:35,730 --> 00:52:40,680
processes into automation, or
how to what works and doesn't

891
00:52:40,680 --> 00:52:44,640
work with things like cross
functional teams, ways that you

892
00:52:44,640 --> 00:52:48,210
can avoid common pitfalls that
we see in organizations, those

893
00:52:48,210 --> 00:52:51,300
types of things? Or are you
mostly focused, we'll put a

894
00:52:51,300 --> 00:52:54,840
Twitter poll out, you can email
us as well, or DMS, whatever.

895
00:52:55,650 --> 00:52:57,930
But or you just focused on the
tooling. And you want us to just

896
00:52:57,930 --> 00:53:02,070
kind of stick with the more I
guess, tangible things in

897
00:53:02,070 --> 00:53:05,010
technology, you know, that's a,
we're gonna leave that up to

898
00:53:05,010 --> 00:53:08,070
you. If there's, if there's
interest, we'll do it. If not,

899
00:53:08,310 --> 00:53:11,580
we'll just we'll skip over it.
But I think the next episode,

900
00:53:11,580 --> 00:53:14,280
we're gonna go into ci, and some
of the things from a depth

901
00:53:14,280 --> 00:53:18,180
perspective, like code quality
and testing and registries and

902
00:53:18,180 --> 00:53:21,240
some of the open source projects
that are getting pretty big

903
00:53:21,240 --> 00:53:26,310
adoption there as well,
especially from the from the dev

904
00:53:26,730 --> 00:53:30,180
aspect to it, then we'll move
into continuous deployment from

905
00:53:30,180 --> 00:53:33,210
the ops perspective, we'll
probably touch on some of the

906
00:53:33,420 --> 00:53:36,660
paradigms that we talked about
before, like get ops and open

907
00:53:36,660 --> 00:53:39,660
policy agent, but more high
level and where that fits in.

908
00:53:40,140 --> 00:53:43,200
And then of course, you can't,
can't talk about ci CD right now

909
00:53:43,200 --> 00:53:45,930
without talking about dev sec
ops and adding the security

910
00:53:46,260 --> 00:53:52,440
aspect to it there. What we're
seeing in terms of adoption, and

911
00:53:53,490 --> 00:53:57,660
what kind of practices and
policies are easy to implement

912
00:53:57,660 --> 00:54:00,060
in ci, CD, which ones are harder
and where some of the pitfalls

913
00:54:00,060 --> 00:54:03,960
are. And then we're going to
build our own pipeline

914
00:54:03,960 --> 00:54:06,930
throughout this. And we're each
going to pick your own tools and

915
00:54:06,930 --> 00:54:10,200
talk about what we liked and
didn't like, and, and we'll,

916
00:54:10,230 --> 00:54:15,390
we'll show that off. And I dare
say, Well, I guess it's we're

917
00:54:15,390 --> 00:54:18,660
open source, we get to put it
out there. But we'll have to

918
00:54:18,660 --> 00:54:21,360
document our code this time, I
guess, well, we'll do it just

919
00:54:21,540 --> 00:54:24,630
just for this one time, we'll
document that code. And we'll

920
00:54:24,630 --> 00:54:27,720
put that up there. That's our
plan. If you'd like to see

921
00:54:27,720 --> 00:54:31,020
something different. You know,
we're feedbacks always important

922
00:54:31,020 --> 00:54:34,860
to us. So feel free to reach
out. Thanks a lot, everybody.

923
00:54:35,040 --> 00:54:35,790
Appreciate it. And

924
00:54:35,790 --> 00:54:36,750
Jamie Duncan: thanks for joining
us again.

925
00:54:37,380 --> 00:54:39,630
John Osborne: Thanks, everyone.
Stay safe, Happy Thanksgiving.

