WEBVTT

1
00:00:14.279 --> 00:00:17.760
<v Speaker 1>Hello, everybody, this is just Reach's Adventure and Devil. Will

2
00:00:17.760 --> 00:00:20.800
<v Speaker 1>you already laughing at me? You can't put me on

3
00:00:20.839 --> 00:00:23.480
<v Speaker 1>the spot? Do the intro? Now they're laughing at me?

4
00:00:24.679 --> 00:00:27.160
<v Speaker 1>All right, Well, I'm Jillian Rowe and with me this

5
00:00:27.239 --> 00:00:30.760
<v Speaker 1>week is Will Button and Jonathan Hall Highouse.

6
00:00:32.039 --> 00:00:34.679
<v Speaker 2>And technically I'm laughing with you, not at you, because

7
00:00:34.679 --> 00:00:35.439
<v Speaker 2>you were laughing too.

8
00:00:37.719 --> 00:00:40.000
<v Speaker 1>It's okay. I only felt a little bit put on

9
00:00:40.000 --> 00:00:40.359
<v Speaker 1>the spot.

10
00:00:40.399 --> 00:00:42.240
<v Speaker 3>I'll forgive you some day to be fair.

11
00:00:42.320 --> 00:00:44.960
<v Speaker 2>I did say okay, let's go and then hit record.

12
00:00:46.479 --> 00:00:48.640
<v Speaker 3>I'll stand with Billian that she was put on the spot,

13
00:00:48.719 --> 00:00:51.560
<v Speaker 3>but I fully support putting Billian on the spot. So, yeah,

14
00:00:54.759 --> 00:00:56.119
<v Speaker 3>what are we talking about today, guys?

15
00:00:56.280 --> 00:00:58.799
<v Speaker 1>All right, we're going to talk about c i CD tools.

16
00:00:58.920 --> 00:01:01.000
<v Speaker 1>What do you use, what do you hate? Why did

17
00:01:01.039 --> 00:01:03.000
<v Speaker 1>you use it? Do you get a choice? Does your

18
00:01:03.079 --> 00:01:04.799
<v Speaker 1>job just like dictate it for you? Or do you

19
00:01:04.840 --> 00:01:07.120
<v Speaker 1>have like some kind of some kind of input into

20
00:01:07.159 --> 00:01:09.680
<v Speaker 1>this decision? Why would you make your decisions? Who wants

21
00:01:09.719 --> 00:01:11.640
<v Speaker 1>to hit us up first? And I think you suggested

22
00:01:11.680 --> 00:01:13.680
<v Speaker 1>the topics, so she gets put you on the spot.

23
00:01:13.480 --> 00:01:17.079
<v Speaker 3>Now, okay, yeah, so it's a big topic. So the

24
00:01:17.120 --> 00:01:19.599
<v Speaker 3>reason I thought of it is earlier this week was

25
00:01:19.640 --> 00:01:23.439
<v Speaker 3>last week on LinkedIn, one of my contacts asked the

26
00:01:23.519 --> 00:01:26.280
<v Speaker 3>public which CICD tool would you like me to use?

27
00:01:26.480 --> 00:01:29.120
<v Speaker 3>In a demo about how to get started with CICD,

28
00:01:29.359 --> 00:01:32.200
<v Speaker 3>which led into a bigger conversation of which ones are people?

29
00:01:32.319 --> 00:01:34.640
<v Speaker 3>And she did a poll which gave four options, and

30
00:01:34.920 --> 00:01:37.359
<v Speaker 3>none of the four options were things I'd even used before,

31
00:01:37.560 --> 00:01:39.840
<v Speaker 3>and I've used probably a dozen of them. So that

32
00:01:39.959 --> 00:01:43.680
<v Speaker 3>just goes to show that there's a huge selection of

33
00:01:43.760 --> 00:01:46.519
<v Speaker 3>tools to pick from. And I don't know how she

34
00:01:46.599 --> 00:01:49.480
<v Speaker 3>chose her for but I think it was Jenkins and

35
00:01:49.760 --> 00:01:54.120
<v Speaker 3>whatever AWS provides, and maybe Azure DevOps and I don't

36
00:01:54.120 --> 00:01:56.439
<v Speaker 3>know what else. You know, it's a good conversation to have.

37
00:01:56.560 --> 00:01:58.480
<v Speaker 3>I think, how do you choose one of these tools

38
00:01:58.480 --> 00:02:00.280
<v Speaker 3>to use? Because there's so many and they all do

39
00:02:00.439 --> 00:02:03.879
<v Speaker 3>roughly the same thing. They all automate the running of tasks,

40
00:02:04.000 --> 00:02:08.840
<v Speaker 3>which can be running tests, building software, tagging releases, ordering

41
00:02:08.879 --> 00:02:11.120
<v Speaker 3>pizza perhaps whatever they whatever they do, they can they

42
00:02:11.159 --> 00:02:13.879
<v Speaker 3>can automate these things. So yeah, I don't know how

43
00:02:13.879 --> 00:02:16.680
<v Speaker 3>we want to tackle this. I mean, if somebody asked

44
00:02:16.680 --> 00:02:19.240
<v Speaker 3>me quickly, Jonathan, what CSD S will do you prefer.

45
00:02:19.319 --> 00:02:20.639
<v Speaker 3>I have a quick answer to that, and that is

46
00:02:20.680 --> 00:02:23.560
<v Speaker 3>get laud ci. But that's not a very useful answer

47
00:02:23.560 --> 00:02:25.960
<v Speaker 3>without a lot of context, because that's not the answer

48
00:02:26.000 --> 00:02:27.879
<v Speaker 3>I would get to everybody. And if ask me what

49
00:02:27.919 --> 00:02:30.319
<v Speaker 3>should they do, that's a different question than what do

50
00:02:30.400 --> 00:02:32.319
<v Speaker 3>I prefer? So, yeah, I don't know how we want

51
00:02:32.319 --> 00:02:33.080
<v Speaker 3>to tackle this today.

52
00:02:33.439 --> 00:02:36.080
<v Speaker 2>I think that I think there's like two different ways

53
00:02:36.120 --> 00:02:39.800
<v Speaker 2>to answer this. You know, there's I'm starting out choosing

54
00:02:39.919 --> 00:02:44.879
<v Speaker 2>a CICD tool, and we have a CICD tool in

55
00:02:45.000 --> 00:02:49.120
<v Speaker 2>place and we want to replace it. And for that

56
00:02:49.240 --> 00:02:55.039
<v Speaker 2>latter question, my go to response is always don't. I mean,

57
00:02:55.120 --> 00:02:57.919
<v Speaker 2>they all have things that they're good at and bad at,

58
00:02:58.680 --> 00:03:01.919
<v Speaker 2>and the cost of transitioning from one to the other.

59
00:03:02.560 --> 00:03:05.280
<v Speaker 2>There's just not enough value in it because you might

60
00:03:05.360 --> 00:03:09.960
<v Speaker 2>solve one specific problem, but you're introducing other problems that

61
00:03:10.280 --> 00:03:11.719
<v Speaker 2>you don't know you have problems with.

62
00:03:11.840 --> 00:03:13.520
<v Speaker 3>Yet I tend to agree it's.

63
00:03:13.439 --> 00:03:16.120
<v Speaker 1>Always a trade off. Yeah, everything like that is a

64
00:03:16.159 --> 00:03:16.639
<v Speaker 1>trade off.

65
00:03:17.400 --> 00:03:20.240
<v Speaker 2>The best CICD is the one that you already have installed.

66
00:03:20.879 --> 00:03:24.039
<v Speaker 3>Usually. Yeah, So there are times when it's appropriate to change,

67
00:03:24.039 --> 00:03:27.280
<v Speaker 3>but not for that reason, like if you're changing from

68
00:03:27.319 --> 00:03:29.520
<v Speaker 3>at lastly and to GitHub for example, you maybe need

69
00:03:29.560 --> 00:03:31.439
<v Speaker 3>to change from Bamboo to get hub actions at the

70
00:03:31.439 --> 00:03:33.879
<v Speaker 3>same time, but not because you want to change your

71
00:03:33.879 --> 00:03:37.360
<v Speaker 3>CSD tool, just because you're changing everything else simultaneously, for sure,

72
00:03:37.439 --> 00:03:40.240
<v Speaker 3>So I would almost I mean, there have been times

73
00:03:40.240 --> 00:03:42.800
<v Speaker 3>when I migrated off of a CSP tool, but there

74
00:03:42.800 --> 00:03:44.879
<v Speaker 3>were cases where it was not being used properly or

75
00:03:44.919 --> 00:03:47.919
<v Speaker 3>being used very little, so that there was very little

76
00:03:47.960 --> 00:03:50.800
<v Speaker 3>invested and it wasn't doing much for us. So you know,

77
00:03:51.039 --> 00:03:53.080
<v Speaker 3>it was basically a proof of concept that we decided

78
00:03:53.120 --> 00:03:55.199
<v Speaker 3>not to continue with, if you want to make up

79
00:03:55.240 --> 00:03:57.000
<v Speaker 3>that way. So that's a different scenario than I think

80
00:03:57.039 --> 00:03:59.199
<v Speaker 3>what you're talking about. If you have a CICD configured

81
00:03:59.280 --> 00:04:02.680
<v Speaker 3>and already doing some thing valuable, I think really hard

82
00:04:02.719 --> 00:04:06.840
<v Speaker 3>before changing, really really hard. When you when you're done

83
00:04:06.919 --> 00:04:09.000
<v Speaker 3>thinking hard, go think hard again.

84
00:04:10.599 --> 00:04:13.280
<v Speaker 1>I think there are some good stories behind these opinions.

85
00:04:13.360 --> 00:04:16.079
<v Speaker 1>You guys have a like emotional trauma to share around

86
00:04:16.319 --> 00:04:18.959
<v Speaker 1>switching up c I S peoples and then realizing it

87
00:04:19.000 --> 00:04:22.199
<v Speaker 1>was it was a terrible, terrible mistake. Or clearly you

88
00:04:22.199 --> 00:04:24.319
<v Speaker 1>guys have never made such a mistake like that, right.

89
00:04:24.360 --> 00:04:26.439
<v Speaker 3>No, No, I thought really hard and decided not to

90
00:04:26.519 --> 00:04:27.000
<v Speaker 3>do it.

91
00:04:28.680 --> 00:04:32.600
<v Speaker 2>I've I think my experience forming that opinion has been

92
00:04:32.720 --> 00:04:37.519
<v Speaker 2>from not from switching, but from having exposure to several

93
00:04:37.560 --> 00:04:40.160
<v Speaker 2>different ones, Like I've used git Lab, I've used Jenkins,

94
00:04:40.240 --> 00:04:44.199
<v Speaker 2>I've used Circle CI, Travis CI and all of them. Like,

95
00:04:44.839 --> 00:04:49.800
<v Speaker 2>I can't see the value. There's a fe use cases

96
00:04:49.800 --> 00:04:52.720
<v Speaker 2>for it, but I can't see on the surface the

97
00:04:52.800 --> 00:04:55.879
<v Speaker 2>value in switching from one to the other because I've

98
00:04:55.920 --> 00:04:58.480
<v Speaker 2>I've used a lot of them, and each has their

99
00:04:58.519 --> 00:05:03.160
<v Speaker 2>own strengths and weaknesses, but enough to justify rebuilding all

100
00:05:03.240 --> 00:05:05.920
<v Speaker 2>that stuff, especially if you have like a lot have

101
00:05:06.000 --> 00:05:07.800
<v Speaker 2>it doing a lot. You know, if you have a

102
00:05:07.839 --> 00:05:11.439
<v Speaker 2>lot of different pipelines, that's going to be some pain.

103
00:05:11.560 --> 00:05:13.600
<v Speaker 2>And at the at the end, you know, what did

104
00:05:13.639 --> 00:05:16.959
<v Speaker 2>you really gain? What value did the customers who are

105
00:05:17.000 --> 00:05:19.920
<v Speaker 2>buying or using your product to get from you switching

106
00:05:20.079 --> 00:05:21.240
<v Speaker 2>the CICD solution.

107
00:05:21.720 --> 00:05:23.519
<v Speaker 3>I want to add to that. And there might be

108
00:05:23.680 --> 00:05:26.480
<v Speaker 3>times when it's appropriate to change, if you're using an

109
00:05:26.480 --> 00:05:30.079
<v Speaker 3>anti antiquated tool, for example, or it's just too slow

110
00:05:30.480 --> 00:05:32.439
<v Speaker 3>or it doesn't integrate with things you're needing to do.

111
00:05:32.839 --> 00:05:35.680
<v Speaker 3>But if you go that route, don't change everything at once,

112
00:05:36.000 --> 00:05:38.600
<v Speaker 3>just implement the new things you need. I know that

113
00:05:38.639 --> 00:05:40.959
<v Speaker 3>there's the engineer and every one of us hates this

114
00:05:41.079 --> 00:05:44.439
<v Speaker 3>idea of maintaining two systems, but it's worth it versus

115
00:05:45.279 --> 00:05:47.439
<v Speaker 3>trying to do turn to ram everything of the new

116
00:05:47.480 --> 00:05:50.199
<v Speaker 3>system and breaking stuff along the way, just to admit

117
00:05:50.360 --> 00:05:52.720
<v Speaker 3>you're going to maintain two systems, one for the new

118
00:05:52.759 --> 00:05:55.680
<v Speaker 3>stuff that immigrates with the Raspberry pies or whatever weird

119
00:05:55.720 --> 00:05:57.759
<v Speaker 3>thing you're trying to do, and the old one that

120
00:05:57.839 --> 00:05:58.879
<v Speaker 3>manages the old stuff.

121
00:05:59.160 --> 00:06:02.000
<v Speaker 1>Cool. Well, what about somebody who's switching to or not

122
00:06:02.040 --> 00:06:06.920
<v Speaker 1>switching but starting clean slink projects CICD tool. What are

123
00:06:07.000 --> 00:06:08.920
<v Speaker 1>kind of the scenarios where we would choose one or

124
00:06:08.959 --> 00:06:11.000
<v Speaker 1>the other. I have one right off the bat. If

125
00:06:11.040 --> 00:06:13.720
<v Speaker 1>you have data or some kind of data or software

126
00:06:13.759 --> 00:06:16.560
<v Speaker 1>that have to be private. There are scenarios where you

127
00:06:16.600 --> 00:06:19.920
<v Speaker 1>can use the open ones like GitHub, GitHub, circle, all

128
00:06:19.959 --> 00:06:22.279
<v Speaker 1>that kind of thing. Most of them now, I think,

129
00:06:22.360 --> 00:06:25.920
<v Speaker 1>do allow for at least some actions or like CICD

130
00:06:26.199 --> 00:06:28.279
<v Speaker 1>minutes or I forget exactly how it's metered. I think

131
00:06:28.279 --> 00:06:30.199
<v Speaker 1>on GitHub it's tide of the number of actions or

132
00:06:30.199 --> 00:06:33.720
<v Speaker 1>the number of minutes. I forget how much for private repositories,

133
00:06:33.720 --> 00:06:37.279
<v Speaker 1>but it's often quite limited. Unless you're on a public repository,

134
00:06:37.480 --> 00:06:39.560
<v Speaker 1>so that could be a reason to change. You're like, Okay,

135
00:06:39.560 --> 00:06:41.639
<v Speaker 1>we have this heavy duty workload. It has to be

136
00:06:41.680 --> 00:06:44.920
<v Speaker 1>private for some reason, so either we need to take

137
00:06:44.920 --> 00:06:46.839
<v Speaker 1>get hub a bunch of money, or we need to

138
00:06:47.240 --> 00:06:49.639
<v Speaker 1>move it onto something in house like Jenkins or get

139
00:06:49.720 --> 00:06:52.680
<v Speaker 1>lab that's managed internally. But really that's it. That's the

140
00:06:52.720 --> 00:06:55.600
<v Speaker 1>only differentiation that I make because all my stuff is

141
00:06:55.600 --> 00:06:58.560
<v Speaker 1>in make files anyways. So I can be on GitHub,

142
00:06:58.720 --> 00:07:01.199
<v Speaker 1>I can be on Jenkins, be anywhere because it's called

143
00:07:01.279 --> 00:07:03.680
<v Speaker 1>colin make, you know, like make tests or whatever. Then

144
00:07:03.759 --> 00:07:04.160
<v Speaker 1>there we are.

145
00:07:04.439 --> 00:07:07.920
<v Speaker 3>So my simple answer is use whatever's easiest to get

146
00:07:07.920 --> 00:07:10.759
<v Speaker 3>started with. And if you're using GitHub, that probably means

147
00:07:10.759 --> 00:07:12.759
<v Speaker 3>to get hub actions. Pre using git lab it probably

148
00:07:12.759 --> 00:07:15.959
<v Speaker 3>means to get lab CI. If you're using Bitbucket, it

149
00:07:15.959 --> 00:07:19.160
<v Speaker 3>probably means Bamboo. If you're I don't know when it

150
00:07:19.199 --> 00:07:21.439
<v Speaker 3>would ever mean Jenkins. I can't think of a reason

151
00:07:21.480 --> 00:07:25.839
<v Speaker 3>to start using Jenkins unless you're already using it. So

152
00:07:26.000 --> 00:07:28.560
<v Speaker 3>do you? Uh, Maybe you just want to become a

153
00:07:28.879 --> 00:07:32.600
<v Speaker 3>Maybe you like pain and like to learn old systems

154
00:07:32.639 --> 00:07:35.079
<v Speaker 3>because it feels fun, like, you know, get a Commodore

155
00:07:35.120 --> 00:07:37.360
<v Speaker 3>sixty four at the same time, why don't you.

156
00:07:37.040 --> 00:07:39.160
<v Speaker 2>You can on a Commodore sixty four?

157
00:07:39.240 --> 00:07:43.879
<v Speaker 3>Can you? I'm sure you can't, but it sounds like

158
00:07:43.879 --> 00:07:45.759
<v Speaker 3>a good project. I think I might have to learn

159
00:07:45.800 --> 00:07:51.480
<v Speaker 3>Jenkins and Commodore sixty fours now. So that's my short answer. However,

160
00:07:52.360 --> 00:07:54.560
<v Speaker 3>So that's what that usually means. If somebody takes that

161
00:07:54.600 --> 00:07:56.639
<v Speaker 3>at face value, that probably means using get hub actions

162
00:07:56.680 --> 00:08:00.160
<v Speaker 3>because it's it's easy. Most people use get hub their

163
00:08:00.240 --> 00:08:03.120
<v Speaker 3>coporate actions. However, I think get how Actions is actually

164
00:08:03.120 --> 00:08:06.240
<v Speaker 3>a really bad tool. It feels like a version zero

165
00:08:06.319 --> 00:08:09.360
<v Speaker 3>point six of get lad ci, you know, it feels

166
00:08:09.399 --> 00:08:11.199
<v Speaker 3>like it has a lot of rough edges. Still, it's

167
00:08:11.319 --> 00:08:14.720
<v Speaker 3>not really intuitive to use yet. The one killer feature

168
00:08:14.759 --> 00:08:17.800
<v Speaker 3>it has over get lad Ci is is this sort

169
00:08:17.839 --> 00:08:21.120
<v Speaker 3>of pre bundled ability to just PLoP in other people's code,

170
00:08:21.480 --> 00:08:23.160
<v Speaker 3>what do they call it their marketplace. You can just

171
00:08:23.680 --> 00:08:26.639
<v Speaker 3>you know, choose an action from some random person off

172
00:08:26.639 --> 00:08:29.079
<v Speaker 3>the street and start running it. It also strikes me

173
00:08:29.079 --> 00:08:33.960
<v Speaker 3>as really dangerous. It's like it's like n PM for

174
00:08:33.960 --> 00:08:37.000
<v Speaker 3>for get houb actions and who wants that? Really? Right?

175
00:08:38.799 --> 00:08:41.720
<v Speaker 1>I just picked up the Helm release from GitHub Actions.

176
00:08:41.799 --> 00:08:45.080
<v Speaker 1>There's I don't know what the doctor doctor builds push

177
00:08:45.320 --> 00:08:47.120
<v Speaker 1>like that's the that's all I'm doing.

178
00:08:47.840 --> 00:08:53.519
<v Speaker 3>So if you don't care about security.

179
00:08:53.279 --> 00:08:55.919
<v Speaker 1>Well see no, if you care about security, I still

180
00:08:55.919 --> 00:08:57.919
<v Speaker 1>think you should be hosting it in house. That's I

181
00:08:57.919 --> 00:08:58.639
<v Speaker 1>think that's well.

182
00:08:58.639 --> 00:09:01.519
<v Speaker 3>There's different aspects of security though, I mean, yeah, I

183
00:09:02.039 --> 00:09:04.000
<v Speaker 3>mean it depends how much you care about security, right,

184
00:09:04.000 --> 00:09:05.840
<v Speaker 3>But I mean if you don't care about security and

185
00:09:05.879 --> 00:09:08.559
<v Speaker 3>you want easy then maybe get have actions is fine

186
00:09:08.679 --> 00:09:10.639
<v Speaker 3>if you don't have to edit them yourself. If you

187
00:09:10.679 --> 00:09:12.720
<v Speaker 3>need to edit them yourself, then the learning curve goes

188
00:09:12.799 --> 00:09:15.679
<v Speaker 3>up really quickly compared to just picking something from the

189
00:09:16.600 --> 00:09:21.039
<v Speaker 3>at least and Yammel and and more than that. I mean,

190
00:09:21.120 --> 00:09:24.399
<v Speaker 3>JavaScript isn't the hard part. It's it's the format and

191
00:09:24.639 --> 00:09:26.600
<v Speaker 3>the way the different actions interact with each other and

192
00:09:26.639 --> 00:09:30.159
<v Speaker 3>trying to tie puzz them together. So if you need

193
00:09:30.200 --> 00:09:33.799
<v Speaker 3>something more more customized, I think get lab CI is

194
00:09:33.960 --> 00:09:36.840
<v Speaker 3>far easier to use and get actions for simple things,

195
00:09:36.879 --> 00:09:38.320
<v Speaker 3>either any of them will work. I mean, if you're

196
00:09:38.360 --> 00:09:41.039
<v Speaker 3>just writing a cell script, you can do that anywhere now.

197
00:09:41.080 --> 00:09:42.759
<v Speaker 3>But if you need something more complicated, I feel like

198
00:09:42.799 --> 00:09:45.360
<v Speaker 3>get lab is easier. That part of that's probably because

199
00:09:45.360 --> 00:09:47.799
<v Speaker 3>I've been using it. Longer, so I have the mental

200
00:09:47.799 --> 00:09:49.879
<v Speaker 3>model better in my head. But I've heard many other

201
00:09:49.879 --> 00:09:51.440
<v Speaker 3>people say the same that they feel like get lab

202
00:09:51.759 --> 00:09:54.720
<v Speaker 3>CI is more mature product and get have actions that

203
00:09:54.759 --> 00:09:55.840
<v Speaker 3>probably won't be true forever.

204
00:09:55.919 --> 00:09:58.000
<v Speaker 1>I explicated, like you have to build for a bunch

205
00:09:58.039 --> 00:10:00.639
<v Speaker 1>of different hardware, so you have like really complic matrix

206
00:10:00.679 --> 00:10:03.519
<v Speaker 1>builds because I'm just running make tests like the time,

207
00:10:03.759 --> 00:10:05.600
<v Speaker 1>like make tests the doctor build and that's.

208
00:10:05.919 --> 00:10:07.919
<v Speaker 3>Yeah, if that's all you're doing, you're you're pretty good

209
00:10:07.960 --> 00:10:09.879
<v Speaker 3>to go. If you're trying to deploy to Kubernetes at

210
00:10:09.879 --> 00:10:12.000
<v Speaker 3>the same time, you know, if if you want to

211
00:10:12.000 --> 00:10:16.320
<v Speaker 3>automate your deployments to Kubernetes or to Heroku or to whatever,

212
00:10:16.679 --> 00:10:19.840
<v Speaker 3>then to Firebase, then you have other things that need

213
00:10:19.879 --> 00:10:22.399
<v Speaker 3>to be done. You need to integrate your your authentication

214
00:10:22.519 --> 00:10:24.399
<v Speaker 3>with those things. So you know, there's a certain number

215
00:10:24.440 --> 00:10:27.399
<v Speaker 3>of complex steps that need to happen. If you start

216
00:10:27.440 --> 00:10:31.440
<v Speaker 3>to do interstep dependencies, things get complicated very quickly. In

217
00:10:31.480 --> 00:10:34.360
<v Speaker 3>other words, say you have five repositories and they each

218
00:10:34.360 --> 00:10:37.480
<v Speaker 3>film an artifact, and then whatever one of those is updated,

219
00:10:37.639 --> 00:10:40.360
<v Speaker 3>you rebuild a master artifact that takes you know, those

220
00:10:40.399 --> 00:10:42.639
<v Speaker 3>libraries and compiles of together the single thing and then

221
00:10:42.679 --> 00:10:44.519
<v Speaker 3>deploys it. So things like that they can start to

222
00:10:44.519 --> 00:10:47.240
<v Speaker 3>get complicated quickly. And no doubt you can do any

223
00:10:47.240 --> 00:10:48.919
<v Speaker 3>of these things with any of the tools. It's a

224
00:10:48.960 --> 00:10:52.240
<v Speaker 3>question of how difficult. And this is why, going back

225
00:10:52.279 --> 00:10:55.279
<v Speaker 3>to Will's earning point, if you already have this working,

226
00:10:55.480 --> 00:10:57.000
<v Speaker 3>for God's sake, don't redo it.

227
00:10:58.320 --> 00:11:03.159
<v Speaker 1>Yeah, I think about these like really specialized CICD tools

228
00:11:03.360 --> 00:11:05.080
<v Speaker 1>that I'm starting to see pop up. So we were

229
00:11:05.120 --> 00:11:07.399
<v Speaker 1>talking a bit before the show, as we do before

230
00:11:07.399 --> 00:11:10.639
<v Speaker 1>we press record, about this tool that I'm using called Spacelift,

231
00:11:10.720 --> 00:11:12.759
<v Speaker 1>which is I think it's kind of supposed to be

232
00:11:12.799 --> 00:11:16.200
<v Speaker 1>like terraform Cloud, except hopefully hopefully less expensive for me

233
00:11:16.279 --> 00:11:18.519
<v Speaker 1>and my wallet. But no, no, I'm kidding, Like it

234
00:11:18.519 --> 00:11:20.320
<v Speaker 1>looks good, but it has these sort of like managed

235
00:11:20.399 --> 00:11:23.679
<v Speaker 1>terraform environments, and it's very specifically for people doing terraforms

236
00:11:23.720 --> 00:11:27.240
<v Speaker 1>with care about security and policies and maybe building different

237
00:11:27.320 --> 00:11:31.159
<v Speaker 1>terraform modules and also protecting your like your stacks as well,

238
00:11:31.200 --> 00:11:34.840
<v Speaker 1>so you can insert these policies to you know, say

239
00:11:35.440 --> 00:11:37.399
<v Speaker 1>don't kill it if this happens, or kill it if

240
00:11:37.440 --> 00:11:39.120
<v Speaker 1>this happens. Like these kind of things that are very

241
00:11:39.120 --> 00:11:42.519
<v Speaker 1>specific to deploying infrastructure, and I think now GitHub has

242
00:11:42.519 --> 00:11:45.720
<v Speaker 1>one maybe for JavaScript or for CI like you know,

243
00:11:45.799 --> 00:11:47.519
<v Speaker 1>like I don't, I don't know, but I do feel

244
00:11:47.519 --> 00:11:49.000
<v Speaker 1>like it's kind of a trend to see these more

245
00:11:49.120 --> 00:11:53.720
<v Speaker 1>very specialized CICD services pop up for particular frameworks and

246
00:11:53.759 --> 00:11:56.039
<v Speaker 1>code tools and things. Are you guys seeing that too?

247
00:11:56.519 --> 00:11:59.159
<v Speaker 2>I haven't, but I'm the work I'm I've been on

248
00:12:00.039 --> 00:12:03.840
<v Speaker 2>stainly has been pretty generic work, you know, not anything

249
00:12:03.840 --> 00:12:07.879
<v Speaker 2>specific that sounds like it's pretty pretty siloed to address

250
00:12:07.879 --> 00:12:10.600
<v Speaker 2>a specific use case. And I can imagine if you're

251
00:12:10.639 --> 00:12:13.440
<v Speaker 2>in that use case, you're feeling that pain. But if

252
00:12:13.440 --> 00:12:16.200
<v Speaker 2>you're not in that use case, then you probably don't

253
00:12:16.200 --> 00:12:17.120
<v Speaker 2>know that it exists.

254
00:12:17.639 --> 00:12:21.399
<v Speaker 3>So I have not used any specific tools like that,

255
00:12:21.559 --> 00:12:24.840
<v Speaker 3>but I've definitely used things that are intended to plug

256
00:12:24.919 --> 00:12:29.559
<v Speaker 3>into an existing CICD tool or pipeline for specific needs,

257
00:12:30.000 --> 00:12:33.360
<v Speaker 3>you know, simple things. Sonarchy was an example, or depending

258
00:12:33.360 --> 00:12:36.279
<v Speaker 3>on the Textec you're using, you might have specific linters

259
00:12:36.320 --> 00:12:38.960
<v Speaker 3>for your for your language or your tool set. You know.

260
00:12:39.000 --> 00:12:40.159
<v Speaker 3>We had a guest on if you want to go

261
00:12:40.399 --> 00:12:43.559
<v Speaker 3>talking about doing this sort of analysis for Kubernet's manifests

262
00:12:43.600 --> 00:12:45.320
<v Speaker 3>and you know, so that would be a tool that

263
00:12:45.399 --> 00:12:48.440
<v Speaker 3>you could plug into any CICD pipeline, whether it's get

264
00:12:48.480 --> 00:12:50.840
<v Speaker 3>hub or get lab or genkins or whatever. So I've

265
00:12:50.919 --> 00:12:52.480
<v Speaker 3>used a lot of those, and you know, so you

266
00:12:52.519 --> 00:12:55.120
<v Speaker 3>sort of build up your pipeline with all these different tools.

267
00:12:55.600 --> 00:12:59.600
<v Speaker 3>Some of those sometimes are are more sasas than like

268
00:12:59.799 --> 00:13:02.600
<v Speaker 3>a tool one that I've used is called coke co

269
00:13:03.039 --> 00:13:05.360
<v Speaker 3>or other co covered tools. Cover alls is not the

270
00:13:05.399 --> 00:13:08.480
<v Speaker 3>one where they just do like reporting of your test

271
00:13:08.480 --> 00:13:12.639
<v Speaker 3>coverage stats, but they usually have a thin hook into

272
00:13:12.639 --> 00:13:16.559
<v Speaker 3>your CICD tool that reports the stats with a mainline

273
00:13:16.600 --> 00:13:19.120
<v Speaker 3>tool or over a STAPI or something like that, and

274
00:13:19.159 --> 00:13:21.559
<v Speaker 3>then you log into their web interface to see all

275
00:13:21.559 --> 00:13:23.559
<v Speaker 3>the fancy reporting you do. So that's kind of a

276
00:13:23.639 --> 00:13:26.440
<v Speaker 3>hybrid solution there. You know, it's a stable one tool,

277
00:13:26.519 --> 00:13:28.960
<v Speaker 3>but it hasn't hooked into your existing thing. I think

278
00:13:29.000 --> 00:13:31.559
<v Speaker 3>what you're talking about is more of a holistic thing

279
00:13:31.639 --> 00:13:34.080
<v Speaker 3>for a specific use case. So I'm not mistaken, And

280
00:13:34.360 --> 00:13:37.360
<v Speaker 3>it sounds like it more maybe applies more to like

281
00:13:37.720 --> 00:13:40.679
<v Speaker 3>a low code or no code type of product, or

282
00:13:40.720 --> 00:13:44.200
<v Speaker 3>maybe not product, but like problem solving. I don't know how,

283
00:13:44.480 --> 00:13:46.200
<v Speaker 3>I don't know if I understand exactly what you're saying.

284
00:13:47.200 --> 00:13:49.679
<v Speaker 1>What I'm seeing is a lot of enterprise companies that

285
00:13:50.159 --> 00:13:52.960
<v Speaker 1>are having trouble hiring people or maybe just don't want

286
00:13:53.000 --> 00:13:56.120
<v Speaker 1>to hire, you know, like as many people as they need,

287
00:13:56.120 --> 00:13:58.480
<v Speaker 1>and are starting to outsource to these different agencies and

288
00:13:58.519 --> 00:14:01.600
<v Speaker 1>different services. So instead of hiring their own Terrorform expert,

289
00:14:01.639 --> 00:14:04.559
<v Speaker 1>they're going a Terraform cloud and signing up for whatever

290
00:14:04.600 --> 00:14:07.200
<v Speaker 1>the highest SLA plan is and getting some kind of

291
00:14:07.240 --> 00:14:09.320
<v Speaker 1>support through that. So I'm not even sure that it's

292
00:14:09.320 --> 00:14:11.360
<v Speaker 1>so much the software as it is about to support,

293
00:14:11.600 --> 00:14:14.120
<v Speaker 1>to be honest, you know, like when I'm actually looking

294
00:14:14.159 --> 00:14:16.000
<v Speaker 1>at it, I'm like, ah, which way is that? So

295
00:14:16.679 --> 00:14:18.399
<v Speaker 1>I don't know. I don't know because I'm still pretty

296
00:14:18.399 --> 00:14:20.080
<v Speaker 1>new to these kind of things myself. I am checking

297
00:14:20.080 --> 00:14:22.639
<v Speaker 1>out Spacelift for some of my like for some of

298
00:14:22.679 --> 00:14:24.559
<v Speaker 1>my stacks and things, and it does look like it

299
00:14:24.600 --> 00:14:27.399
<v Speaker 1>will be good, especially after I had a very expensive

300
00:14:27.399 --> 00:14:30.919
<v Speaker 1>AWS bill a couple months ago last month that wasn't

301
00:14:30.919 --> 00:14:32.799
<v Speaker 1>even a couple months ago. I've just got like, you know,

302
00:14:33.080 --> 00:14:34.960
<v Speaker 1>I'm still upset about that. So that's kind of what

303
00:14:35.000 --> 00:14:37.080
<v Speaker 1>made me start. That's what made start looking at this

304
00:14:37.159 --> 00:14:39.879
<v Speaker 1>kind of thing, was that I had this really expensive AWS bill,

305
00:14:39.960 --> 00:14:42.200
<v Speaker 1>and I was like, oh, maybe I should make sure

306
00:14:42.240 --> 00:14:44.759
<v Speaker 1>my stacks are actually getting destroyed when I think they

307
00:14:44.799 --> 00:14:47.440
<v Speaker 1>should be getting destroyed. And since I just had a

308
00:14:47.480 --> 00:14:50.120
<v Speaker 1>two thousand dollars AWS bill, maybe it would be worth

309
00:14:50.159 --> 00:14:51.919
<v Speaker 1>me throughout a couple hundred bucks a months at it,

310
00:14:51.919 --> 00:14:54.440
<v Speaker 1>because that's I mean two thousand that's ten months of

311
00:14:54.679 --> 00:14:57.679
<v Speaker 1>spacelift while I'm looking at it. So I don't know,

312
00:14:58.080 --> 00:15:01.039
<v Speaker 1>I'm still figuring these things out too, Okay, anybody thought

313
00:15:01.039 --> 00:15:04.840
<v Speaker 1>I had any answers? Answer is no, I don't. I'll

314
00:15:04.919 --> 00:15:06.440
<v Speaker 1>just figuring along.

315
00:15:06.759 --> 00:15:09.240
<v Speaker 3>I'm curious to hear what's CICD tools each of us

316
00:15:09.320 --> 00:15:12.639
<v Speaker 3>have used, and maybe just brief impressions, you know, if

317
00:15:12.639 --> 00:15:14.559
<v Speaker 3>you liked incoins or not likedcons and why you know,

318
00:15:14.720 --> 00:15:15.480
<v Speaker 3>in a sentence or.

319
00:15:15.440 --> 00:15:19.320
<v Speaker 2>Two, I love and hate Jenkins. You know, Yeah, I've

320
00:15:19.399 --> 00:15:21.840
<v Speaker 2>used it quite a bit. And the thing I love

321
00:15:21.879 --> 00:15:24.600
<v Speaker 2>about it is you can do absolutely anything with it.

322
00:15:24.840 --> 00:15:27.440
<v Speaker 2>And the thing I hate about it is you can

323
00:15:27.480 --> 00:15:31.120
<v Speaker 2>do just absolutely anything with it. So I like, yah, yeah, yeah,

324
00:15:31.240 --> 00:15:33.519
<v Speaker 2>I had a scenario. I know this is longer than

325
00:15:33.519 --> 00:15:36.879
<v Speaker 2>my two sentences, but I'm gonna do it anyway. That

326
00:15:37.679 --> 00:15:40.240
<v Speaker 2>a few years back, I was working with a company,

327
00:15:40.399 --> 00:15:43.440
<v Speaker 2>and I think this ties into your statement about which

328
00:15:43.480 --> 00:15:45.600
<v Speaker 2>c ICD you know do the simple one. We had

329
00:15:45.600 --> 00:15:50.759
<v Speaker 2>one We were moving this application from Heroku to AWS

330
00:15:51.320 --> 00:15:55.320
<v Speaker 2>and Heroku has their own pipeline tool that works really,

331
00:15:55.399 --> 00:15:59.000
<v Speaker 2>really slick, and I wanted to in moving to ABS,

332
00:15:59.039 --> 00:16:01.759
<v Speaker 2>I wanted to make sure that we didn't lose any features,

333
00:16:02.240 --> 00:16:06.000
<v Speaker 2>and so we went with Jenkins. And the scenario was,

334
00:16:06.480 --> 00:16:08.879
<v Speaker 2>you know, you would write your code, you would push

335
00:16:08.919 --> 00:16:12.120
<v Speaker 2>it up, you would run the tests, all pretty straightforward stuff.

336
00:16:12.120 --> 00:16:14.559
<v Speaker 2>But then when you opened up a poor request, we

337
00:16:14.600 --> 00:16:18.720
<v Speaker 2>would create a poll request environment, so we would spin

338
00:16:18.799 --> 00:16:24.559
<v Speaker 2>up the Docker containers, provision the databases, create the load balancers,

339
00:16:24.639 --> 00:16:27.960
<v Speaker 2>create the route fifty three DNS entries, all of that

340
00:16:28.000 --> 00:16:30.440
<v Speaker 2>stuff so that anyone who was reviewing your code had

341
00:16:30.440 --> 00:16:35.679
<v Speaker 2>a working environment to see what the actual end product

342
00:16:35.759 --> 00:16:39.000
<v Speaker 2>looked like. And then when that poor request was either

343
00:16:39.120 --> 00:16:42.039
<v Speaker 2>merged or closed, it tore down that environment, and that

344
00:16:42.159 --> 00:16:45.200
<v Speaker 2>kicked off the build process to build the Docker images,

345
00:16:45.240 --> 00:16:50.679
<v Speaker 2>pushed those up into the ABS Docker registry, deployed to

346
00:16:50.759 --> 00:16:54.360
<v Speaker 2>the staging environment, and all of that kind of stuff.

347
00:16:54.399 --> 00:16:56.480
<v Speaker 2>So it was pretty There was a lot of moving

348
00:16:56.559 --> 00:17:00.679
<v Speaker 2>pieces and nothing really had the ability to do that

349
00:17:01.320 --> 00:17:05.559
<v Speaker 2>without writing your own Python accessing the photo three library.

350
00:17:05.880 --> 00:17:08.880
<v Speaker 2>And so that's where Jenkins came in handy, because you

351
00:17:08.880 --> 00:17:12.799
<v Speaker 2>could just give it this application or this code that

352
00:17:13.039 --> 00:17:15.880
<v Speaker 2>accessed Boto three and it would do it, and then

353
00:17:15.920 --> 00:17:18.960
<v Speaker 2>you could secure that with im permission, so that Jenkins

354
00:17:19.000 --> 00:17:21.839
<v Speaker 2>only had access to what it needed to, which was

355
00:17:21.880 --> 00:17:24.160
<v Speaker 2>still a lot, because it had access to S three

356
00:17:24.319 --> 00:17:28.160
<v Speaker 2>and rds and firegate and Route fifty three and the

357
00:17:28.200 --> 00:17:29.799
<v Speaker 2>load balancers and all that kind of stuff.

358
00:17:30.000 --> 00:17:32.200
<v Speaker 1>That is cool, though Human in the loop, well, I

359
00:17:32.279 --> 00:17:34.480
<v Speaker 1>like it, yeah, And.

360
00:17:34.440 --> 00:17:36.160
<v Speaker 2>The part that I hate about that is when you

361
00:17:36.200 --> 00:17:39.039
<v Speaker 2>get to that level of Jenkins, you know, you write

362
00:17:39.039 --> 00:17:42.240
<v Speaker 2>your Boto three stuff, and then you have a Jenkins

363
00:17:42.319 --> 00:17:46.079
<v Speaker 2>DSL that knows how to call and access that, and

364
00:17:46.200 --> 00:17:49.039
<v Speaker 2>when there's an error in it, you get a Java

365
00:17:49.119 --> 00:17:53.079
<v Speaker 2>stack stack trace, so a Java stack trace that refers

366
00:17:53.119 --> 00:17:56.960
<v Speaker 2>to a DSL that refers to a Python Vota three library,

367
00:17:57.400 --> 00:18:00.440
<v Speaker 2>so that any error messages you got were just adsbsolutely

368
00:18:00.519 --> 00:18:02.200
<v Speaker 2>worthless fascinating.

369
00:18:02.519 --> 00:18:04.559
<v Speaker 3>Have you used any others or is that really the

370
00:18:04.599 --> 00:18:05.880
<v Speaker 3>main one you used?

371
00:18:05.920 --> 00:18:07.880
<v Speaker 2>Will That's the only one I've really gone deep with.

372
00:18:07.920 --> 00:18:11.200
<v Speaker 2>I've used a Circle, CI and Travis and get lab,

373
00:18:11.599 --> 00:18:15.960
<v Speaker 2>but all for just really a high level basic CiCe stuff,

374
00:18:16.000 --> 00:18:17.400
<v Speaker 2>nothing that extensive.

375
00:18:18.960 --> 00:18:21.480
<v Speaker 3>My first introduction to CSD was a Travis. I was

376
00:18:21.480 --> 00:18:23.680
<v Speaker 3>working at a company several years ago where we actually

377
00:18:23.680 --> 00:18:27.359
<v Speaker 3>hosted our own on prem Travis Travis Enterprise. That was

378
00:18:27.400 --> 00:18:29.319
<v Speaker 3>the first time I used CI, and I really, I

379
00:18:29.359 --> 00:18:33.000
<v Speaker 3>really liked it. I later came to prefer the get

380
00:18:33.079 --> 00:18:36.359
<v Speaker 3>lab model, which maybe Travis has changed since then, but

381
00:18:36.759 --> 00:18:39.559
<v Speaker 3>get lab has the concept of pipelines and Travis didn't

382
00:18:39.559 --> 00:18:42.160
<v Speaker 3>really have that concept. So I prefer the pipeline approach.

383
00:18:42.559 --> 00:18:44.359
<v Speaker 3>In fact, if somebody was an asked me, how would

384
00:18:44.359 --> 00:18:46.279
<v Speaker 3>you choose a good CI tool, I would say that

385
00:18:46.319 --> 00:18:48.079
<v Speaker 3>could be the first thing. Look, so does it have

386
00:18:48.160 --> 00:18:50.359
<v Speaker 3>pipeline support because it doesn't have to. I don't know

387
00:18:50.359 --> 00:18:52.480
<v Speaker 3>if Jenkins does. I don't know if he uses that model.

388
00:18:52.519 --> 00:18:55.839
<v Speaker 3>Okay it does. Yeah, well that that model is available.

389
00:18:56.359 --> 00:18:59.599
<v Speaker 3>Like you just log into Jenkins and point and click

390
00:18:59.599 --> 00:19:02.039
<v Speaker 3>your way tout success. You don't get the pipeline model,

391
00:19:02.079 --> 00:19:04.880
<v Speaker 3>but there is if you write your own pipelines, and

392
00:19:04.880 --> 00:19:08.000
<v Speaker 3>that's what we did there. There was a we created

393
00:19:08.000 --> 00:19:11.319
<v Speaker 3>a Jenkins library that executed the pipeline and then each

394
00:19:12.079 --> 00:19:14.720
<v Speaker 3>development team had a YAML file in their repo where

395
00:19:14.720 --> 00:19:18.400
<v Speaker 3>they could specify how many running containers they wanted, the

396
00:19:18.440 --> 00:19:22.559
<v Speaker 3>memory and CPU allocated to each doctor container, and for

397
00:19:22.680 --> 00:19:25.880
<v Speaker 3>auto scaling, could specify your metrics of whether you scaled

398
00:19:25.960 --> 00:19:29.200
<v Speaker 3>on memory, CPU, or latency and what that value was.

399
00:19:30.680 --> 00:19:33.079
<v Speaker 3>I've also used Circle a little bit on one of

400
00:19:33.119 --> 00:19:34.960
<v Speaker 3>the open first projects I help with, so I don't

401
00:19:35.000 --> 00:19:37.920
<v Speaker 3>have extensive experience. My main experience with Circle is that

402
00:19:37.960 --> 00:19:40.599
<v Speaker 3>I find the dashboard confusing, but that's probably just because

403
00:19:40.599 --> 00:19:44.039
<v Speaker 3>I haven't used it enough. I've also used Codeeship at

404
00:19:44.039 --> 00:19:45.759
<v Speaker 3>a company several years ago. I didn't really like that

405
00:19:45.799 --> 00:19:48.039
<v Speaker 3>one very much. We actually migrated from Codehip to Travis.

406
00:19:48.480 --> 00:19:53.200
<v Speaker 3>We broke all the rules that we'll talk about it. Wait.

407
00:19:53.240 --> 00:19:55.799
<v Speaker 3>Actually at that company, at that company we had we

408
00:19:55.799 --> 00:19:57.839
<v Speaker 3>were using like three different SI tools, like each team

409
00:19:57.839 --> 00:20:00.440
<v Speaker 3>would pick their own, and so it was more of

410
00:20:00.440 --> 00:20:03.480
<v Speaker 3>a consolidation thing than it was a real migration. And

411
00:20:03.519 --> 00:20:05.599
<v Speaker 3>it wasn't doing anything complicated. It was doing what what

412
00:20:05.720 --> 00:20:08.160
<v Speaker 3>Dillian talked about, basically, make test and make build, and

413
00:20:08.160 --> 00:20:10.680
<v Speaker 3>that's kind of all it did. So I also used,

414
00:20:10.680 --> 00:20:12.519
<v Speaker 3>of course get hub actions and get lab. I talked

415
00:20:12.519 --> 00:20:15.359
<v Speaker 3>about both of those. There's probably few others I've dabbled with,

416
00:20:15.400 --> 00:20:17.119
<v Speaker 3>but those are the ones I had the most experienced

417
00:20:17.119 --> 00:20:20.119
<v Speaker 3>with and and the main reason I like get lab

418
00:20:20.759 --> 00:20:23.559
<v Speaker 3>is because, well two reasons really. The first is I

419
00:20:23.640 --> 00:20:25.839
<v Speaker 3>like the pipeline model, and second is I like to

420
00:20:25.880 --> 00:20:28.519
<v Speaker 3>get lab interface in general. I feel like it's a

421
00:20:28.640 --> 00:20:32.160
<v Speaker 3>more complete solution in gethub, although GitHub is catching up

422
00:20:32.400 --> 00:20:34.559
<v Speaker 3>since la Kasoft's acquisition, they've been adding a lot of

423
00:20:34.599 --> 00:20:37.200
<v Speaker 3>new features. But yeah, so that's that's my experience.

424
00:20:37.400 --> 00:20:39.880
<v Speaker 1>I think. Yeah, I've used all the kind of all

425
00:20:39.920 --> 00:20:42.160
<v Speaker 1>the big names. I've used drinkings when I've used something

426
00:20:42.200 --> 00:20:44.759
<v Speaker 1>in house. Travis, I think Travis was the first one

427
00:20:44.759 --> 00:20:46.720
<v Speaker 1>that I used for like a big open source project

428
00:20:46.759 --> 00:20:49.720
<v Speaker 1>because we were using Travis and that's it was there

429
00:20:49.759 --> 00:20:51.279
<v Speaker 1>and we're I think it was it was probably one

430
00:20:51.279 --> 00:20:52.880
<v Speaker 1>of the first, like I mean, I kind of think

431
00:20:52.880 --> 00:20:54.839
<v Speaker 1>it was one of the first like publicly available ones

432
00:20:54.920 --> 00:20:57.519
<v Speaker 1>right that was free, that was available for open source projects.

433
00:20:57.559 --> 00:20:59.359
<v Speaker 1>So we were on that, and then I think we

434
00:20:59.400 --> 00:21:02.640
<v Speaker 1>switched to Start because the Circle guys were throwing some

435
00:21:02.720 --> 00:21:05.799
<v Speaker 1>cash at open source projects, and you know open source projects,

436
00:21:05.839 --> 00:21:07.839
<v Speaker 1>we always need the cash. So we're there. And then

437
00:21:07.880 --> 00:21:10.279
<v Speaker 1>actually I've been kind of, i suppose breaking all the

438
00:21:10.359 --> 00:21:12.759
<v Speaker 1>rules by kind of rolling a lot of my own

439
00:21:12.799 --> 00:21:15.000
<v Speaker 1>solutions lately, which is that I do a lot of this.

440
00:21:15.319 --> 00:21:16.880
<v Speaker 1>I do a lot of like human in the loop

441
00:21:17.000 --> 00:21:21.079
<v Speaker 1>and things that specifically need a really specific, almost editorial

442
00:21:21.119 --> 00:21:23.319
<v Speaker 1>workflow where there has to be at some point a

443
00:21:23.400 --> 00:21:27.759
<v Speaker 1>person who approves something, and they can't like they're scientists usually,

444
00:21:27.839 --> 00:21:29.880
<v Speaker 1>so they can't you can't give them like a stack trace,

445
00:21:29.920 --> 00:21:32.119
<v Speaker 1>all right, Like that's not okay, we can't give normal

446
00:21:32.119 --> 00:21:35.000
<v Speaker 1>people stack traces, all right, Like we're we're not doing

447
00:21:35.039 --> 00:21:37.880
<v Speaker 1>that over here. So you know, the one thing that

448
00:21:37.920 --> 00:21:40.119
<v Speaker 1>I've really been liking lately is to use I'll actually

449
00:21:40.200 --> 00:21:44.440
<v Speaker 1>use airflow Patchy Airflow, which is it's a workflow orchestration engine,

450
00:21:44.599 --> 00:21:48.039
<v Speaker 1>so it's I mean, it's there. It builds basically data pipelines.

451
00:21:48.319 --> 00:21:51.519
<v Speaker 1>But then because it's built on Python and flask, which

452
00:21:51.599 --> 00:21:54.039
<v Speaker 1>is a like a web framework that I'm familiar with,

453
00:21:54.119 --> 00:21:56.559
<v Speaker 1>it's really easy to build like plug ins and additional

454
00:21:56.559 --> 00:21:59.440
<v Speaker 1>interfaces and things like this. So let's say I have, like,

455
00:21:59.480 --> 00:22:01.799
<v Speaker 1>you know, one of these pipelines that's generating tools, and

456
00:22:01.799 --> 00:22:03.880
<v Speaker 1>then one of those tools and then another tool will

457
00:22:03.920 --> 00:22:06.640
<v Speaker 1>generate some kind of QC metrics on this pool. At

458
00:22:06.680 --> 00:22:09.359
<v Speaker 1>some point a person has to make a decision on this,

459
00:22:09.680 --> 00:22:12.759
<v Speaker 1>and sometimes it's a part of the data engineering workflow,

460
00:22:12.759 --> 00:22:16.160
<v Speaker 1>and sometimes it's a part of a software workflow that is,

461
00:22:16.319 --> 00:22:19.359
<v Speaker 1>you know, still informed by a data engineering workflow because

462
00:22:19.400 --> 00:22:22.079
<v Speaker 1>the software has to produce correct data. So it's all

463
00:22:22.160 --> 00:22:24.039
<v Speaker 1>kind of there's a lot of gray area between the

464
00:22:24.079 --> 00:22:27.119
<v Speaker 1>data engineering and the softlow the software engineering, is what

465
00:22:27.119 --> 00:22:30.599
<v Speaker 1>I'm saying. So I've really been liking that lately because yeah,

466
00:22:30.640 --> 00:22:33.039
<v Speaker 1>because again I can give like people who need actual

467
00:22:33.319 --> 00:22:36.599
<v Speaker 1>like web interfaces, I can give them pretty easily web interfases.

468
00:22:36.839 --> 00:22:39.200
<v Speaker 1>But at the same time, it's all just really integrated

469
00:22:39.240 --> 00:22:42.039
<v Speaker 1>into the workflow, and I can automate as much as

470
00:22:42.440 --> 00:22:44.960
<v Speaker 1>can be automated. So normally it will look like, you know,

471
00:22:45.000 --> 00:22:47.400
<v Speaker 1>we have like three steps, and then there will be

472
00:22:47.440 --> 00:22:50.640
<v Speaker 1>some point where human has to approve something. The human

473
00:22:50.680 --> 00:22:53.000
<v Speaker 1>will get like a yes no kind of form, and

474
00:22:53.039 --> 00:22:55.359
<v Speaker 1>then that feeds back to airflow and we'll either pick

475
00:22:55.400 --> 00:22:57.640
<v Speaker 1>off the rest of the workflow or cancel it, depending

476
00:22:57.640 --> 00:22:59.720
<v Speaker 1>on how that how that ends up going. If I'm

477
00:22:59.759 --> 00:23:01.640
<v Speaker 1>not doing anything that's complicated, though, I tend to just

478
00:23:01.720 --> 00:23:04.680
<v Speaker 1>use githab actions because it usually is just like Make builds,

479
00:23:04.680 --> 00:23:05.240
<v Speaker 1>Make tests.

480
00:23:05.400 --> 00:23:09.480
<v Speaker 3>And the problem with the problem with starting with whatever

481
00:23:09.480 --> 00:23:12.559
<v Speaker 3>it's easy because it's not complicated, is six months later

482
00:23:12.599 --> 00:23:18.319
<v Speaker 3>it's complicated, and then you're married to that tool. But

483
00:23:18.359 --> 00:23:21.200
<v Speaker 3>that's the problem with like make files versus basscripts versus

484
00:23:21.240 --> 00:23:23.119
<v Speaker 3>Pearl or Python or something like that, like, oh, it's

485
00:23:23.119 --> 00:23:26.000
<v Speaker 3>just simple, I'll just use Make tests, and then six

486
00:23:26.039 --> 00:23:28.640
<v Speaker 3>months later you have the six thousand line make file

487
00:23:28.680 --> 00:23:30.480
<v Speaker 3>and nobody can understand it. And I should have done

488
00:23:30.480 --> 00:23:31.240
<v Speaker 3>this in Python.

489
00:23:32.680 --> 00:23:34.119
<v Speaker 1>I don't think I'm quite ready to give up my

490
00:23:34.119 --> 00:23:35.039
<v Speaker 1>Make files, Jonathan.

491
00:23:35.039 --> 00:23:39.079
<v Speaker 3>I don't think that's I like me, although I like Make,

492
00:23:39.160 --> 00:23:41.640
<v Speaker 3>but I have done some really nasty make stuff before,

493
00:23:41.720 --> 00:23:44.119
<v Speaker 3>stuff I would these days never do again. I think,

494
00:23:44.200 --> 00:23:46.200
<v Speaker 3>I mean, I have no problem. Yeah, I'm pretty sure

495
00:23:46.279 --> 00:23:48.160
<v Speaker 3>Make is touring complete and it should not be.

496
00:23:53.799 --> 00:23:55.519
<v Speaker 1>Files from like cold Dead Hands.

497
00:23:55.599 --> 00:23:55.640
<v Speaker 3>No.

498
00:23:56.200 --> 00:23:59.519
<v Speaker 2>No, I think there's a really good lesson hidden in there. Though.

499
00:24:00.000 --> 00:24:03.519
<v Speaker 2>One of the keys I think to making successful pipelines

500
00:24:04.039 --> 00:24:08.079
<v Speaker 2>is to wrap all of your individual steps up into

501
00:24:08.160 --> 00:24:11.480
<v Speaker 2>a smaller command and then just have the pipeline call

502
00:24:11.599 --> 00:24:13.839
<v Speaker 2>that command. So when you look at the pipeline, it's

503
00:24:13.880 --> 00:24:17.440
<v Speaker 2>like it does these five things, and now those five

504
00:24:17.559 --> 00:24:20.640
<v Speaker 2>things might represent a bunch of other smaller tasks, but

505
00:24:20.640 --> 00:24:25.519
<v Speaker 2>I think that's still more easily understood by someone coming

506
00:24:25.559 --> 00:24:28.960
<v Speaker 2>in to work on it. Then if you have a

507
00:24:28.960 --> 00:24:33.480
<v Speaker 2>CICD pipeline that has six hundred individual steps in.

508
00:24:33.400 --> 00:24:35.960
<v Speaker 1>It, well, that's what I like about air flows that

509
00:24:36.960 --> 00:24:39.880
<v Speaker 1>right out the gate you get a picture of the

510
00:24:39.880 --> 00:24:42.519
<v Speaker 1>directed a syclick graph, so you know step one, step

511
00:24:42.559 --> 00:24:45.240
<v Speaker 1>two depends upon step one, which if that's successful, it

512
00:24:45.279 --> 00:24:47.319
<v Speaker 1>goes here. If it's not successful, it goes here. Like

513
00:24:47.319 --> 00:24:48.960
<v Speaker 1>it gives you a picture of that right in the

514
00:24:49.000 --> 00:24:50.960
<v Speaker 1>dashboard so you can see it, and then you can

515
00:24:51.000 --> 00:24:53.480
<v Speaker 1>actually click on each individual part and it like colors

516
00:24:53.480 --> 00:24:55.240
<v Speaker 1>it based on whether or not it was successful and

517
00:24:55.279 --> 00:24:56.680
<v Speaker 1>this kind of stuff. So I just find it much

518
00:24:56.680 --> 00:24:59.559
<v Speaker 1>more intuitive for like a person to deal with rather

519
00:24:59.640 --> 00:25:02.640
<v Speaker 1>than a any of the other CICD work cloths. I mean,

520
00:25:02.680 --> 00:25:05.160
<v Speaker 1>I'll use them because they're there and they're free, but like,

521
00:25:05.480 --> 00:25:07.680
<v Speaker 1>if I'm going to build anything complicated, most of the

522
00:25:07.720 --> 00:25:09.480
<v Speaker 1>time these days, I just go build with an airpluck.

523
00:25:09.799 --> 00:25:12.079
<v Speaker 2>I think get lab does a fairly good job that

524
00:25:12.240 --> 00:25:16.079
<v Speaker 2>of visualizing the pipeline and the you know how how

525
00:25:16.079 --> 00:25:18.279
<v Speaker 2>to build or how the pipeline is going to run,

526
00:25:18.359 --> 00:25:20.400
<v Speaker 2>which steps are dependent and which one failed?

527
00:25:22.039 --> 00:25:24.039
<v Speaker 1>Oh my goal trial. Okay, I don't actually think your

528
00:25:24.079 --> 00:25:26.079
<v Speaker 1>lab is probably one of the ones I haven't only used.

529
00:25:26.279 --> 00:25:27.920
<v Speaker 3>One thing I really like about get lab is that

530
00:25:28.000 --> 00:25:30.359
<v Speaker 3>it so easy to start your own runners. I run

531
00:25:30.599 --> 00:25:33.319
<v Speaker 3>some private projects that aren't eligible for their free, open

532
00:25:33.359 --> 00:25:36.759
<v Speaker 3>source unlimited minutes or whatever, and so every month I

533
00:25:36.759 --> 00:25:38.799
<v Speaker 3>get this thing. If you here, I don't know how

534
00:25:38.799 --> 00:25:41.799
<v Speaker 3>many minutes or four hundred minutes or whatever, upgrade now

535
00:25:41.880 --> 00:25:44.160
<v Speaker 3>for like twelve dollars or whatever it is. I'm like, no,

536
00:25:44.640 --> 00:25:47.039
<v Speaker 3>I just I have a Hetzner dot d account for

537
00:25:47.079 --> 00:25:49.400
<v Speaker 3>I think three dollars a month, and if run a

538
00:25:49.400 --> 00:25:51.640
<v Speaker 3>get lab runnerund there and I connect to that, and

539
00:25:52.200 --> 00:25:54.400
<v Speaker 3>so for three bucks a month, I have unlimited minutes.

540
00:25:54.480 --> 00:25:57.000
<v Speaker 3>It's super easy to do that. I haven't logged into

541
00:25:57.000 --> 00:25:59.160
<v Speaker 3>that server for probably two years's probably been hacked by now,

542
00:25:59.200 --> 00:26:05.640
<v Speaker 3>I don't know it's mining block chain. I think get

543
00:26:05.680 --> 00:26:07.559
<v Speaker 3>hub Actions is going to be adding support for the

544
00:26:07.920 --> 00:26:09.880
<v Speaker 3>maybe they have already added the ability to run your

545
00:26:09.880 --> 00:26:12.440
<v Speaker 3>own runners too, but I mean that's also really nice

546
00:26:12.480 --> 00:26:14.400
<v Speaker 3>if you have special hardware you need to be using,

547
00:26:14.440 --> 00:26:16.960
<v Speaker 3>if you need a GPU to run your tests or something,

548
00:26:17.000 --> 00:26:18.480
<v Speaker 3>or you want to run on an ARM system or

549
00:26:18.559 --> 00:26:22.519
<v Speaker 3>Raspberry Pie or something like that, that's something that that's

550
00:26:22.519 --> 00:26:24.160
<v Speaker 3>the reason we didn't discuss at the beginning. If you

551
00:26:24.200 --> 00:26:26.200
<v Speaker 3>have special needs like that, you're going to be limited

552
00:26:26.200 --> 00:26:29.240
<v Speaker 3>in which CIC tools you can use. Like try to

553
00:26:29.279 --> 00:26:32.559
<v Speaker 3>see I believe offers Linux and MAAC. Maybe they do

554
00:26:32.640 --> 00:26:34.680
<v Speaker 3>Windows now I'm not sure. But if you need to

555
00:26:34.799 --> 00:26:37.400
<v Speaker 3>run your code against Windows on Windows servers or a

556
00:26:37.480 --> 00:26:39.759
<v Speaker 3>Raspberry Pie or whatever you're gonna have, you're gonna be

557
00:26:39.799 --> 00:26:42.319
<v Speaker 3>limited and the choices you have. So that's one nice

558
00:26:42.319 --> 00:26:43.759
<v Speaker 3>thing about being able to run your own runners that

559
00:26:43.839 --> 00:26:45.799
<v Speaker 3>get love gives you, and I think ge hub actions

560
00:26:45.799 --> 00:26:48.720
<v Speaker 3>either does or soon will. You can set up your

561
00:26:48.720 --> 00:26:53.279
<v Speaker 3>own runners to access your hardware encryption devices, or your

562
00:26:53.400 --> 00:26:57.039
<v Speaker 3>MPEG encoders or whatever random kind of custom stuff you

563
00:26:57.119 --> 00:26:59.240
<v Speaker 3>might need, So that that's something to think about too.

564
00:26:59.720 --> 00:27:03.960
<v Speaker 2>Yeah, specifically, if you're building iOS apps, I've dealt with

565
00:27:04.000 --> 00:27:07.519
<v Speaker 2>that quite a bit, and that's a huge pain because

566
00:27:07.559 --> 00:27:10.480
<v Speaker 2>it's got to be done on a Mac. So you're

567
00:27:10.519 --> 00:27:13.839
<v Speaker 2>either using a Mac that you have physical access to

568
00:27:14.160 --> 00:27:18.079
<v Speaker 2>as a runner, or there are some third party services

569
00:27:18.799 --> 00:27:22.440
<v Speaker 2>that will integrate with your CICD and do the build

570
00:27:22.519 --> 00:27:24.559
<v Speaker 2>for you, but all the ones I'm aware of are

571
00:27:24.839 --> 00:27:26.319
<v Speaker 2>are relatively expensive.

572
00:27:26.880 --> 00:27:27.039
<v Speaker 3>Yeah.

573
00:27:27.079 --> 00:27:29.279
<v Speaker 1>I got into like three D modeling a little bit

574
00:27:29.400 --> 00:27:32.920
<v Speaker 1>is my quarantine hobby, and that immediately made me think, like,

575
00:27:33.440 --> 00:27:36.039
<v Speaker 1>how do video games like when people make video games, right,

576
00:27:36.039 --> 00:27:38.119
<v Speaker 1>because they're the point is is that you're supposed to

577
00:27:38.119 --> 00:27:40.319
<v Speaker 1>be able to release them on like all the platforms

578
00:27:40.359 --> 00:27:42.720
<v Speaker 1>now right, Like you see a video game, it's not

579
00:27:42.799 --> 00:27:45.440
<v Speaker 1>just like on PlayStation or Nintendo or whatever. It's it's

580
00:27:45.480 --> 00:27:48.000
<v Speaker 1>on like everything. It's on. It's for games, it's for

581
00:27:48.039 --> 00:27:50.240
<v Speaker 1>the switch, it's for all of them. So I always

582
00:27:50.279 --> 00:27:52.160
<v Speaker 1>kind of wonder, like, well, how do they do their testing?

583
00:27:52.880 --> 00:27:54.279
<v Speaker 1>I kind of find a whole lot on it. It

584
00:27:54.319 --> 00:27:56.319
<v Speaker 1>seems like every it's still like a very closely guarded,

585
00:27:56.359 --> 00:27:58.319
<v Speaker 1>secreted video games. I did see a little bit that

586
00:27:58.400 --> 00:28:03.240
<v Speaker 1>like Unity uses AWS because AWS have actual Mac like instances,

587
00:28:03.279 --> 00:28:05.200
<v Speaker 1>Like you can run Windows instances and you can run

588
00:28:05.200 --> 00:28:07.079
<v Speaker 1>Mac instances. But for the rest of them, I don't know,

589
00:28:07.519 --> 00:28:10.160
<v Speaker 1>just build and hope it runs and people can install it.

590
00:28:10.319 --> 00:28:13.319
<v Speaker 2>If you listen to the comments from the gamers. Then, yeah,

591
00:28:13.440 --> 00:28:16.720
<v Speaker 2>that's the exact strategy. Build it and let your customers

592
00:28:16.920 --> 00:28:17.640
<v Speaker 2>figure it out.

593
00:28:18.680 --> 00:28:23.480
<v Speaker 1>Yes, your customers need the acceptance testing. That's my business

594
00:28:23.519 --> 00:28:24.519
<v Speaker 1>model too. You know what.

595
00:28:26.720 --> 00:28:28.279
<v Speaker 2>I haven't done. That's a really good point. I haven't

596
00:28:28.319 --> 00:28:31.519
<v Speaker 2>done any work in the game industry. But yeah, there's

597
00:28:31.599 --> 00:28:35.160
<v Speaker 2>a lot of compiling for different platforms that happens there.

598
00:28:35.160 --> 00:28:36.960
<v Speaker 2>And I don't know what to compile time or to

599
00:28:36.960 --> 00:28:40.200
<v Speaker 2>build time for your average game is.

600
00:28:40.640 --> 00:28:43.240
<v Speaker 1>I don't know. Let's get pretty involved, Like I feel like,

601
00:28:43.359 --> 00:28:45.839
<v Speaker 1>just like so really small scenes and like small little

602
00:28:45.880 --> 00:28:49.079
<v Speaker 1>games and unreal and that's it's backed by C plus plus,

603
00:28:49.079 --> 00:28:51.160
<v Speaker 1>so you actually have to go through and compile everything,

604
00:28:51.559 --> 00:28:53.839
<v Speaker 1>and even for just like a you know, something really small,

605
00:28:53.880 --> 00:28:54.680
<v Speaker 1>it can take a while.

606
00:28:55.039 --> 00:28:59.119
<v Speaker 2>Yeah, any game you download these days is it seems

607
00:28:59.160 --> 00:29:01.759
<v Speaker 2>like it's a minimum of five gigs. A lot of

608
00:29:01.839 --> 00:29:04.160
<v Speaker 2>that's video assets, I would assume, So I don't know

609
00:29:04.200 --> 00:29:07.920
<v Speaker 2>if those are involved in the compiling process or if

610
00:29:08.279 --> 00:29:10.759
<v Speaker 2>you can compile your video assets once and then just

611
00:29:10.799 --> 00:29:13.279
<v Speaker 2>compile the run time for each specific platform. I don't

612
00:29:13.279 --> 00:29:14.119
<v Speaker 2>know how that works.

613
00:29:14.559 --> 00:29:16.880
<v Speaker 3>Next week on adventures and game development.

614
00:29:16.880 --> 00:29:19.720
<v Speaker 2>Right, let's see who we know that works in that

615
00:29:20.319 --> 00:29:21.640
<v Speaker 2>industry that we can get on the show.

616
00:29:22.359 --> 00:29:24.079
<v Speaker 1>No, there was a couple of plug ins and like

617
00:29:24.119 --> 00:29:27.359
<v Speaker 1>they weren't they weren't very well developed for different platforms,

618
00:29:27.400 --> 00:29:28.960
<v Speaker 1>and I know, like an f C plus plus that

619
00:29:29.000 --> 00:29:31.559
<v Speaker 1>I was like, huh, maybe this should be my new calling.

620
00:29:31.720 --> 00:29:33.759
<v Speaker 1>Just go and then fix all the platforms and set

621
00:29:33.839 --> 00:29:37.079
<v Speaker 1>up the CICD and make plugins that actually compile to

622
00:29:37.160 --> 00:29:40.400
<v Speaker 1>the different the different platforms and sell them on the marketplace.

623
00:29:40.480 --> 00:29:43.519
<v Speaker 1>And what am I doing all this data science stuff for? Anyways?

624
00:29:43.559 --> 00:29:45.160
<v Speaker 1>And then I figured out, you know, very quickly, that

625
00:29:45.240 --> 00:29:49.920
<v Speaker 1>it wasn't that simple hopes and dreams, most as most

626
00:29:49.920 --> 00:29:51.720
<v Speaker 1>things tend to be, It was not that simple. Yeah,

627
00:29:51.720 --> 00:29:53.319
<v Speaker 1>I think if you have like specific HERD, if you

628
00:29:53.359 --> 00:29:57.640
<v Speaker 1>have specific hardware or specific security considerations, you should really

629
00:29:57.880 --> 00:29:59.920
<v Speaker 1>like look into your choice and not be nearly as

630
00:30:00.079 --> 00:30:02.759
<v Speaker 1>asual is I tend to be with like, well this

631
00:30:02.799 --> 00:30:04.799
<v Speaker 1>one looks good today. You know, it's not the action

632
00:30:04.920 --> 00:30:08.799
<v Speaker 1>that I need this morning, So we'll use that, you know,

633
00:30:08.839 --> 00:30:11.279
<v Speaker 1>maybe actually go through and do your research and think

634
00:30:11.319 --> 00:30:13.759
<v Speaker 1>about it a little bit and see which one kind

635
00:30:13.759 --> 00:30:15.640
<v Speaker 1>of or if any of them support the different platforms

636
00:30:15.640 --> 00:30:16.160
<v Speaker 1>that you need.

637
00:30:16.279 --> 00:30:18.039
<v Speaker 2>Unless you have a coupon because we know if you

638
00:30:18.079 --> 00:30:20.279
<v Speaker 2>have a coupone, you're using it.

639
00:30:22.559 --> 00:30:24.160
<v Speaker 1>Oh so you know that's one thing with thought. I

640
00:30:24.200 --> 00:30:26.559
<v Speaker 1>signed up for the free prile of Spacelift and they

641
00:30:26.559 --> 00:30:28.880
<v Speaker 1>immediately like they contacted me on like day, They got

642
00:30:28.960 --> 00:30:30.839
<v Speaker 1>me in a Slack connect group with them. They will

643
00:30:30.920 --> 00:30:32.799
<v Speaker 1>like call us if you're not call us, but you know,

644
00:30:32.880 --> 00:30:35.680
<v Speaker 1>like message us if we need anything. And I was like, oh, well,

645
00:30:35.759 --> 00:30:39.759
<v Speaker 1>this is almost as good as a coupon. So do

646
00:30:39.799 --> 00:30:42.279
<v Speaker 1>we have any like good projects for people starting off

647
00:30:42.279 --> 00:30:44.200
<v Speaker 1>and see ICD? I think you were talking about that

648
00:30:44.240 --> 00:30:45.279
<v Speaker 1>a little bit early, Terronic.

649
00:30:46.599 --> 00:30:49.960
<v Speaker 3>Yeah, I'm actually gonna do a course probably starting on

650
00:30:50.000 --> 00:30:53.400
<v Speaker 3>April about this. I'm going to walk people through, so

651
00:30:53.920 --> 00:30:57.160
<v Speaker 3>stay tuned. I'll give them more details as it approaches.

652
00:30:57.799 --> 00:31:00.960
<v Speaker 3>But the concept for my course is I intend to

653
00:31:01.759 --> 00:31:05.519
<v Speaker 3>walk people through publishing an app. Maybe it maybe you

654
00:31:05.559 --> 00:31:07.599
<v Speaker 3>build a PHP app or or something, or if you

655
00:31:07.599 --> 00:31:09.200
<v Speaker 3>haven't built one, we get to see this work press

656
00:31:09.359 --> 00:31:14.240
<v Speaker 3>or react some react to do NBC or something like that. Yeah. Yes,

657
00:31:14.279 --> 00:31:16.440
<v Speaker 3>to take a simple app that uses the database and

658
00:31:16.720 --> 00:31:20.119
<v Speaker 3>deploy it to Kubernetes using CICD with the sort of

659
00:31:20.119 --> 00:31:23.799
<v Speaker 3>review environment that will talk about, so you can every

660
00:31:23.839 --> 00:31:26.680
<v Speaker 3>time you create a ProQuest, it'll pop up this temporary

661
00:31:26.720 --> 00:31:28.640
<v Speaker 3>environment you can play around with, do your testing on,

662
00:31:28.839 --> 00:31:30.680
<v Speaker 3>and then when you merge it will teare it down

663
00:31:30.720 --> 00:31:32.920
<v Speaker 3>to it away. So I think that's that's a really

664
00:31:32.960 --> 00:31:34.759
<v Speaker 3>good way to start. Pick a simple app if you've

665
00:31:34.759 --> 00:31:37.599
<v Speaker 3>written one. If you haven't written one, you can just download,

666
00:31:37.640 --> 00:31:39.319
<v Speaker 3>like I said, to do NBC or something like that,

667
00:31:39.400 --> 00:31:43.480
<v Speaker 3>some sort of test app or work press or whatever, PHP,

668
00:31:43.599 --> 00:31:45.680
<v Speaker 3>my ad Man, anything like that, anything that's an app

669
00:31:45.720 --> 00:31:47.519
<v Speaker 3>that at a web or basis of a place to start,

670
00:31:47.559 --> 00:31:51.160
<v Speaker 3>and just deploy it somewhere and deploy automatically. I don't

671
00:31:51.200 --> 00:31:54.839
<v Speaker 3>mean like type cupit, cuddle whatever, you'll do that in

672
00:31:54.880 --> 00:31:57.480
<v Speaker 3>the process, but get it automated so that when whenever

673
00:31:57.559 --> 00:32:00.559
<v Speaker 3>you commit, you run your tests, and when you hit

674
00:32:00.680 --> 00:32:03.240
<v Speaker 3>merge at automatical ploys. Which tool you use is less

675
00:32:03.240 --> 00:32:05.680
<v Speaker 3>important than just getting that process done. So I'll probably

676
00:32:05.680 --> 00:32:07.039
<v Speaker 3>do the course of get lab to CEI, but I'm

677
00:32:07.039 --> 00:32:09.440
<v Speaker 3>going to try to keep it as generic as possible

678
00:32:09.519 --> 00:32:12.799
<v Speaker 3>and simple Bash commands so that anybody who doesn't want

679
00:32:12.799 --> 00:32:15.400
<v Speaker 3>to use a good lab can apply the same knowledge

680
00:32:15.440 --> 00:32:18.279
<v Speaker 3>to GitHub actions or to genkins or whatever other tool

681
00:32:18.319 --> 00:32:18.640
<v Speaker 3>they want.

682
00:32:18.880 --> 00:32:22.359
<v Speaker 2>Yeah, I would agree that's. Yeah, the act of taking

683
00:32:22.400 --> 00:32:26.519
<v Speaker 2>something from code to deployed is a huge learning experience

684
00:32:26.519 --> 00:32:30.839
<v Speaker 2>for somebody interested in getting getting into DevOps. And another

685
00:32:30.960 --> 00:32:33.119
<v Speaker 2>key point that you mentioned there is if you don't

686
00:32:33.119 --> 00:32:34.839
<v Speaker 2>know how to write code, or if you haven't built

687
00:32:34.880 --> 00:32:39.240
<v Speaker 2>an application, that's not a blocker because in the software

688
00:32:39.279 --> 00:32:41.680
<v Speaker 2>engineering world, like one of the most common things for

689
00:32:41.799 --> 00:32:44.319
<v Speaker 2>learning a new language is to create a to do apps.

690
00:32:44.319 --> 00:32:46.359
<v Speaker 2>So if you go to GitHub and search for to

691
00:32:46.440 --> 00:32:49.319
<v Speaker 2>do apps, you're going to find thousands of them that

692
00:32:49.440 --> 00:32:53.599
<v Speaker 2>you can download that meet those criteria of having a

693
00:32:53.599 --> 00:32:57.640
<v Speaker 2>web user interface and a database back end and just

694
00:32:57.759 --> 00:32:58.920
<v Speaker 2>use that exactly.

695
00:32:59.000 --> 00:33:00.960
<v Speaker 1>Yeah. I would also add try to get at least

696
00:33:01.000 --> 00:33:04.240
<v Speaker 1>familiar with the idea of matrix builds, which is where

697
00:33:04.599 --> 00:33:06.759
<v Speaker 1>you want to kind of build things with different options,

698
00:33:06.799 --> 00:33:08.359
<v Speaker 1>even if it's kind of you know, you're sort of

699
00:33:08.440 --> 00:33:10.440
<v Speaker 1>artificially putting it in there. So an example of that

700
00:33:10.440 --> 00:33:12.880
<v Speaker 1>would be you take your you take your to do

701
00:33:13.039 --> 00:33:16.759
<v Speaker 1>app and you install it sent hosts, Ubuntu an Alpine,

702
00:33:17.039 --> 00:33:19.839
<v Speaker 1>and you do that through doctor containers or however you're

703
00:33:19.880 --> 00:33:21.559
<v Speaker 1>going to do that. But that would be three variants

704
00:33:21.559 --> 00:33:23.920
<v Speaker 1>of the same package. And I'm sure that you know

705
00:33:24.039 --> 00:33:26.119
<v Speaker 1>like things will come off along the way there and

706
00:33:26.160 --> 00:33:27.839
<v Speaker 1>then you'll kind of you'll kind of learn about that

707
00:33:27.839 --> 00:33:28.720
<v Speaker 1>process as well.

708
00:33:29.079 --> 00:33:31.079
<v Speaker 3>That's a really good thing. If you're building a shared

709
00:33:31.119 --> 00:33:33.599
<v Speaker 3>library and you don't know who's going to be using it,

710
00:33:33.839 --> 00:33:35.599
<v Speaker 3>you know you want to make sure it works on Mac,

711
00:33:35.640 --> 00:33:37.880
<v Speaker 3>Windows and Linux, for example, and you want to make

712
00:33:37.880 --> 00:33:40.640
<v Speaker 3>sure it works on three different versions of Linux, then

713
00:33:40.920 --> 00:33:45.880
<v Speaker 3>that's exactly the time when those matrixes are matrices are

714
00:33:46.319 --> 00:33:46.799
<v Speaker 3>are called for.

715
00:33:47.839 --> 00:33:49.960
<v Speaker 1>Oh well, does anybody else have anything to add or

716
00:33:49.960 --> 00:33:51.079
<v Speaker 1>should we just go to picks?

717
00:33:51.480 --> 00:33:54.160
<v Speaker 3>Just do some pics every week?

718
00:33:54.200 --> 00:33:57.559
<v Speaker 1>One of us, all right, Donald, who wants to go

719
00:33:57.599 --> 00:33:59.519
<v Speaker 1>for astronomers? Not me?

720
00:33:59.640 --> 00:33:59.880
<v Speaker 3>I'm not.

721
00:34:00.599 --> 00:34:04.279
<v Speaker 2>I've got I'm ready this week. So I'll stall for

722
00:34:04.359 --> 00:34:07.039
<v Speaker 2>time and share way more details about my picks than

723
00:34:07.039 --> 00:34:09.159
<v Speaker 2>what I should to give Jonathan an extra few minutes.

724
00:34:09.599 --> 00:34:12.559
<v Speaker 2>So I've got two picks this week. First one is

725
00:34:12.599 --> 00:34:16.320
<v Speaker 2>a movie called The Blacksmith and the Devil. It's on Netflix,

726
00:34:17.039 --> 00:34:21.519
<v Speaker 2>and its super cool movie about a surprise no school

727
00:34:21.519 --> 00:34:25.000
<v Speaker 2>over alert here. It's about a blacksmith and he captures

728
00:34:25.039 --> 00:34:29.000
<v Speaker 2>this demon that he thinks is responsible for all the

729
00:34:29.079 --> 00:34:31.239
<v Speaker 2>trauma and turmoil in his life. And he's got this

730
00:34:31.320 --> 00:34:34.400
<v Speaker 2>demon captured and he tortures him. But then there's this

731
00:34:34.440 --> 00:34:39.239
<v Speaker 2>really cool plot twist at the end that has you going, oh, dude,

732
00:34:39.320 --> 00:34:41.320
<v Speaker 2>right on, let's go. And so I won't tell you

733
00:34:41.360 --> 00:34:45.000
<v Speaker 2>any more than that to keep from ruining the suspense.

734
00:34:45.039 --> 00:34:47.440
<v Speaker 2>But it's a really cool movie. The Blacksmith and the

735
00:34:47.480 --> 00:34:50.679
<v Speaker 2>Devil really well done. Only on Netflix as far as

736
00:34:50.719 --> 00:34:53.920
<v Speaker 2>I know, but I only watch about maybe two or

737
00:34:53.920 --> 00:34:57.079
<v Speaker 2>three movies a year, and this was one of them.

738
00:34:57.239 --> 00:34:59.559
<v Speaker 2>So it was it was cool. It was a good

739
00:34:59.599 --> 00:35:03.159
<v Speaker 2>couple of are spent. The other thing for my pick

740
00:35:03.559 --> 00:35:08.840
<v Speaker 2>this week is these eye drops called Acuity. So like

741
00:35:09.199 --> 00:35:11.280
<v Speaker 2>as the as the old man in the group, I

742
00:35:11.280 --> 00:35:14.639
<v Speaker 2>feel obligated to tell you all that as you get older,

743
00:35:15.159 --> 00:35:19.239
<v Speaker 2>your eyesight's going to go bad and you need like

744
00:35:19.320 --> 00:35:22.800
<v Speaker 2>a close yeah, Like you need a close circle of

745
00:35:22.960 --> 00:35:27.239
<v Speaker 2>friends who will call you out so when you're heading

746
00:35:27.320 --> 00:35:30.599
<v Speaker 2>into the store with your sunglasses on top of your

747
00:35:30.639 --> 00:35:33.199
<v Speaker 2>head and your eyeglasses on your face, that they stop

748
00:35:33.280 --> 00:35:35.440
<v Speaker 2>you and go, no, no, no, we don't do that

749
00:35:35.519 --> 00:35:37.960
<v Speaker 2>around here. So you need that group of friends in

750
00:35:38.000 --> 00:35:40.559
<v Speaker 2>your life. But otherwise you can get these eye drops

751
00:35:40.599 --> 00:35:43.480
<v Speaker 2>that just came out in fall of twenty twenty one.

752
00:35:43.840 --> 00:35:47.159
<v Speaker 2>If you're like me, whenever you got old and your

753
00:35:47.239 --> 00:35:50.559
<v Speaker 2>eye your eye drop, eyesight for reading went to hell.

754
00:35:51.199 --> 00:35:53.599
<v Speaker 2>These eye drops are specifically made for that. So you

755
00:35:53.639 --> 00:35:56.039
<v Speaker 2>put these eye drops in and then for like the

756
00:35:56.079 --> 00:35:59.440
<v Speaker 2>next four hours, my vision is like it was ten

757
00:35:59.519 --> 00:36:04.679
<v Speaker 2>years ago. And so it beats wearing glasses, or more importantly,

758
00:36:04.719 --> 00:36:07.400
<v Speaker 2>it beats trying to figure out where I left my glasses.

759
00:36:07.920 --> 00:36:09.719
<v Speaker 2>So those are my two picks for the week. Do

760
00:36:09.800 --> 00:36:12.320
<v Speaker 2>you ever wonder where you left the eye drops so far? No,

761
00:36:13.280 --> 00:36:15.159
<v Speaker 2>I've been using the eye drops for about a week now,

762
00:36:15.320 --> 00:36:19.079
<v Speaker 2>so we'll see what the long term impact of that is.

763
00:36:19.119 --> 00:36:22.239
<v Speaker 2>But right now, I just keep them in the bathroom

764
00:36:22.280 --> 00:36:24.000
<v Speaker 2>and whenever I get up and get ready for work,

765
00:36:24.000 --> 00:36:27.320
<v Speaker 2>I'll drop them in, and then around lunchtime I'll go

766
00:36:27.400 --> 00:36:30.159
<v Speaker 2>and put the next set in because they only last

767
00:36:30.199 --> 00:36:31.239
<v Speaker 2>for about four hours.

768
00:36:32.360 --> 00:36:34.559
<v Speaker 3>I haven't pick ready, now go for it. So I

769
00:36:34.639 --> 00:36:37.880
<v Speaker 3>just finished reading a book. It's an old book, but

770
00:36:37.920 --> 00:36:39.679
<v Speaker 3>it's a classic book. It's a good book. It's been

771
00:36:39.679 --> 00:36:41.800
<v Speaker 3>made into two movies. That's how old it is. It's

772
00:36:41.840 --> 00:36:43.880
<v Speaker 3>been around long enough to make two movies out of it.

773
00:36:44.079 --> 00:36:46.039
<v Speaker 3>That's all quiet on the Western Front and It's a

774
00:36:46.039 --> 00:36:49.960
<v Speaker 3>fictionalized story of a German soldier during World War One,

775
00:36:50.559 --> 00:36:53.000
<v Speaker 3>and it really just tells the story of more the

776
00:36:53.039 --> 00:36:56.119
<v Speaker 3>feeling of combat in World War One and the trenches

777
00:36:56.559 --> 00:36:59.519
<v Speaker 3>more than like a military story like this. There's no

778
00:36:59.639 --> 00:37:02.559
<v Speaker 3>story conquest or whatever. It's here's what it was like

779
00:37:02.639 --> 00:37:05.920
<v Speaker 3>to live in the trenches and deal with death and

780
00:37:05.960 --> 00:37:08.960
<v Speaker 3>with the fear of death and not enough food and

781
00:37:08.960 --> 00:37:11.440
<v Speaker 3>that sort of stuff. So it's a really good book. Obviously,

782
00:37:11.440 --> 00:37:13.639
<v Speaker 3>it's I mean, probably everybody's heard of it. You don't

783
00:37:13.639 --> 00:37:16.440
<v Speaker 3>want to read or listen to the book. Wat's the movie.

784
00:37:17.280 --> 00:37:18.960
<v Speaker 3>There was one that came out in the twenties, I

785
00:37:19.000 --> 00:37:20.760
<v Speaker 3>think black and white, and then it was remade again

786
00:37:20.800 --> 00:37:24.760
<v Speaker 3>in the nineteen seventies. So I me recommended nice cool.

787
00:37:24.760 --> 00:37:27.000
<v Speaker 1>Well, I'm going to pick The Wheel of Time. It

788
00:37:27.159 --> 00:37:29.599
<v Speaker 1>is one of my favorite book series. I reread it

789
00:37:29.639 --> 00:37:31.960
<v Speaker 1>every couple of years, and I wanted rereading it again

790
00:37:32.039 --> 00:37:34.960
<v Speaker 1>because I tried to watch the Amazon series of The

791
00:37:34.960 --> 00:37:38.159
<v Speaker 1>Wheel of Time and I couldn't quite get through that.

792
00:37:38.199 --> 00:37:40.320
<v Speaker 1>But I just decided to go back to the source

793
00:37:40.360 --> 00:37:42.920
<v Speaker 1>material and go back to the books reread those. It

794
00:37:43.000 --> 00:37:45.159
<v Speaker 1>really is like one of my favorite series. There's a

795
00:37:45.159 --> 00:37:47.320
<v Speaker 1>couple there in the middle that you could probably skip

796
00:37:47.360 --> 00:37:49.519
<v Speaker 1>and like, you know, you would be fine in terms

797
00:37:49.519 --> 00:37:52.519
<v Speaker 1>of plotline and things happening and all that kind of stuff.

798
00:37:52.559 --> 00:37:54.320
<v Speaker 1>Just get the cliff notes. But I don't know, they're

799
00:37:54.320 --> 00:37:56.599
<v Speaker 1>really great. They're one of my favorite series. Go for It.

800
00:37:56.800 --> 00:37:59.079
<v Speaker 1>So there's that, and then I think on tech pics,

801
00:37:59.119 --> 00:38:03.159
<v Speaker 1>I've been playing with this program called Hissora, which is

802
00:38:03.480 --> 00:38:06.119
<v Speaker 1>like as it's one of these web frameworks, you like

803
00:38:06.159 --> 00:38:07.840
<v Speaker 1>throw it on top of the database and then it

804
00:38:07.920 --> 00:38:10.320
<v Speaker 1>just kind of spins up all your APIs. But one

805
00:38:10.360 --> 00:38:12.599
<v Speaker 1>kind of thing is that it has subscriptions and real

806
00:38:12.679 --> 00:38:15.400
<v Speaker 1>time events, and another nice thing is you can also

807
00:38:15.480 --> 00:38:18.920
<v Speaker 1>pull in like additional APIs, so if you have if

808
00:38:18.920 --> 00:38:21.199
<v Speaker 1>you have like a series of micro services, you could

809
00:38:21.280 --> 00:38:22.840
<v Speaker 1>use to have to kind of tie them all together

810
00:38:22.920 --> 00:38:25.199
<v Speaker 1>and then it could handle, you know, throwing your authentication

811
00:38:25.280 --> 00:38:27.760
<v Speaker 1>tokens and stuff like that around. So I've just been

812
00:38:27.800 --> 00:38:30.559
<v Speaker 1>playing a little bit with that. It's been fun. So's

813
00:38:30.719 --> 00:38:32.800
<v Speaker 1>it's a good program. I recommend it. Go see it.

814
00:38:32.800 --> 00:38:35.880
<v Speaker 1>I think it's got lots of stars on GitHub. And yeah,

815
00:38:35.960 --> 00:38:38.480
<v Speaker 1>that's it for me. All right, guys, Well that's a wrap.

816
00:38:38.599 --> 00:38:40.519
<v Speaker 1>Thanks and talk to you next week, all right, See

817
00:38:40.519 --> 00:38:41.639
<v Speaker 1>you guys,
