WEBVTT

1
00:00:01.080 --> 00:00:04.839
<v Speaker 1>How'd you like to listen to dot NetRocks with no ads? Easy?

2
00:00:05.360 --> 00:00:08.560
<v Speaker 1>Become a patron for just five dollars a month. You

3
00:00:08.599 --> 00:00:11.320
<v Speaker 1>get access to a private RSS feed where all the

4
00:00:11.359 --> 00:00:14.560
<v Speaker 1>shows have no ads. Twenty dollars a month, we'll get

5
00:00:14.599 --> 00:00:18.440
<v Speaker 1>you that and a special dot NetRocks patron mug. Sign

6
00:00:18.519 --> 00:00:34.320
<v Speaker 1>up now at Patreon dot dot NetRocks dot com. Hey,

7
00:00:34.560 --> 00:00:37.560
<v Speaker 1>welcome back to dot net rocks. I'm Carl Franklin, an

8
00:00:37.600 --> 00:00:41.320
<v Speaker 1>amateur Campbell, and we're here again for show nineteen twenty one.

9
00:00:41.759 --> 00:00:43.399
<v Speaker 2>You're enjoying the twentieth century, are you?

10
00:00:43.640 --> 00:00:45.280
<v Speaker 1>I am? And you know, I kind of like this

11
00:00:45.320 --> 00:00:50.439
<v Speaker 1>little history summary that I'm doing. Okay, So I went

12
00:00:50.479 --> 00:00:54.679
<v Speaker 1>to thepeoplehistory dot com slash nineteen twenty one dot html

13
00:00:54.960 --> 00:00:57.240
<v Speaker 1>and as you can guess, they have an HTML file

14
00:00:57.280 --> 00:01:00.320
<v Speaker 1>for every year that where they have data from. So

15
00:01:00.479 --> 00:01:04.000
<v Speaker 1>here's just a summary. In nineteen twenty one, the US

16
00:01:04.040 --> 00:01:07.439
<v Speaker 1>passed the Emergency Quota Act, which limited the number of

17
00:01:07.439 --> 00:01:09.879
<v Speaker 1>immigrants that were allowed to come to the United States.

18
00:01:10.439 --> 00:01:13.400
<v Speaker 1>The Irish Free State was created as the Irish Republic

19
00:01:13.439 --> 00:01:17.079
<v Speaker 1>issued their declaration of independence from the UK, and later

20
00:01:17.159 --> 00:01:20.159
<v Speaker 1>that year, the ira and British forces agreed to a

21
00:01:20.200 --> 00:01:23.319
<v Speaker 1>cease fire. We all know how that worked out. The

22
00:01:23.719 --> 00:01:28.760
<v Speaker 1>nineteen twenty one, yeah, twenty one, the Tulsa Race massacre

23
00:01:28.959 --> 00:01:31.000
<v Speaker 1>happened in the US. An unfortunate event.

24
00:01:31.280 --> 00:01:32.680
<v Speaker 2>That's the one that was on my mind for nineteen

25
00:01:32.680 --> 00:01:33.640
<v Speaker 2>twenty one was Greenwood.

26
00:01:33.680 --> 00:01:36.239
<v Speaker 1>Oh yeah, you know, three hundred or so black Americans

27
00:01:36.239 --> 00:01:36.760
<v Speaker 1>were killed.

28
00:01:36.959 --> 00:01:40.719
<v Speaker 2>Not good but also one of the most affluent neighborhoods.

29
00:01:40.760 --> 00:01:43.480
<v Speaker 2>Like it really tore the culture apart.

30
00:01:43.359 --> 00:01:46.680
<v Speaker 1>Really did. It was pretty evil. The TWMB of the

31
00:01:46.760 --> 00:01:52.040
<v Speaker 1>Unknown Soldier was established. That's cool. The Shepherd Towner Maternity

32
00:01:52.040 --> 00:01:54.799
<v Speaker 1>and Infancy Act became law, making one of the first

33
00:01:54.799 --> 00:01:59.840
<v Speaker 1>times the United States ventured into social security. The USSR

34
00:01:59.879 --> 00:02:04.560
<v Speaker 1>and Poland agreed to the Treaty of Riga. The Soviet

35
00:02:04.680 --> 00:02:10.319
<v Speaker 1>Union also invaded the Democratic Republic of Georgia, and the

36
00:02:10.479 --> 00:02:13.159
<v Speaker 1>US and Germany signed the Treaty of Berlin, ending World

37
00:02:13.240 --> 00:02:17.159
<v Speaker 1>War One. For the US. New York Yankees pitcher Babe

38
00:02:17.240 --> 00:02:19.599
<v Speaker 1>Ruth hit his one hundred and thirty eight home run

39
00:02:20.080 --> 00:02:25.840
<v Speaker 1>in June, and Crimea was officially brought into the USSR.

40
00:02:25.919 --> 00:02:30.159
<v Speaker 1>The Crimean autonomous Soviet Socialist Republic is created. Also one

41
00:02:30.199 --> 00:02:33.800
<v Speaker 1>of the worst famines in modern times, gript Russia due

42
00:02:33.840 --> 00:02:36.840
<v Speaker 1>to crop failure. That's what I found.

43
00:02:37.560 --> 00:02:41.680
<v Speaker 2>What would I add? I mean if the Soviet Union

44
00:02:41.680 --> 00:02:44.120
<v Speaker 2>is still forming, then right, it really only really gets

45
00:02:44.120 --> 00:02:48.639
<v Speaker 2>its act together another year or so. Oh hofra House Hitler.

46
00:02:48.680 --> 00:02:51.240
<v Speaker 2>Oh yeah, Hitler's famous speech of the Haffro House that

47
00:02:51.360 --> 00:02:54.240
<v Speaker 2>leads to the riots, because admittedly, at that point, the

48
00:02:54.479 --> 00:02:57.080
<v Speaker 2>runaway inflation from the Treaty of Versailles is really taking

49
00:02:57.120 --> 00:02:59.560
<v Speaker 2>hold of the Warmark Republic. And so this is when

50
00:02:59.599 --> 00:03:02.680
<v Speaker 2>you had we have a wheelbarrow of Deutsche marks. You

51
00:03:02.680 --> 00:03:07.319
<v Speaker 2>get biol over bread, right, and Hitler is inciting violence. Yeah,

52
00:03:07.360 --> 00:03:09.479
<v Speaker 2>stop me if you've heard this one. Yeah, it's a

53
00:03:09.599 --> 00:03:11.800
<v Speaker 2>kind of ringing a bell for me. Weird.

54
00:03:11.879 --> 00:03:14.000
<v Speaker 1>Huh, Yeah, it is kind of weird how that happens.

55
00:03:14.039 --> 00:03:16.159
<v Speaker 1>You know, when somebody comes along and says, it's not

56
00:03:16.199 --> 00:03:20.120
<v Speaker 1>your fault, it's these people's faulty. You're suffering, Yeah, so much.

57
00:03:21.479 --> 00:03:25.520
<v Speaker 1>You know, people tend to gravitate towards those people. Yeah. So, anyway,

58
00:03:26.560 --> 00:03:30.319
<v Speaker 1>enough of nineteen twenty one, let's get on with better

59
00:03:30.360 --> 00:03:30.960
<v Speaker 1>no framework.

60
00:03:31.080 --> 00:03:42.479
<v Speaker 3>Awesome, all right, man, what do you got?

61
00:03:42.680 --> 00:03:45.039
<v Speaker 1>Have you ever heard of Garnet? Maybe, Chris, you have

62
00:03:45.240 --> 00:03:46.560
<v Speaker 1>well the stone Okay.

63
00:03:47.199 --> 00:03:50.919
<v Speaker 4>Yeah, So Garnet isn't that the replacement for Reddish or

64
00:03:50.960 --> 00:03:54.280
<v Speaker 4>something like that, Not replacement, but an option to Reddish

65
00:03:54.360 --> 00:03:55.479
<v Speaker 4>because of some stuff.

66
00:03:55.879 --> 00:03:59.240
<v Speaker 1>Yep. So it's a remote cash store for Microsoft Research

67
00:03:59.840 --> 00:04:04.919
<v Speaker 1>that offers strong performance in both throughput and latency, scalability,

68
00:04:05.039 --> 00:04:09.560
<v Speaker 1>storage recovery, cluster sharding, key migration, and replication features, and

69
00:04:09.599 --> 00:04:13.840
<v Speaker 1>it can work, as you said, with existing Reddish clients.

70
00:04:14.680 --> 00:04:17.639
<v Speaker 1>So it's that's pretty cool. It's just something that's trending

71
00:04:17.680 --> 00:04:21.160
<v Speaker 1>that I found in. It's Microsoft Research. Who knew, Yes,

72
00:04:21.160 --> 00:04:22.199
<v Speaker 1>these guys do good work.

73
00:04:22.399 --> 00:04:24.560
<v Speaker 2>There's smart folks over there from the people who brought

74
00:04:24.600 --> 00:04:25.560
<v Speaker 2>you F.

75
00:04:25.519 --> 00:04:28.199
<v Speaker 1>Sharp F sharp and all sorts of goodness.

76
00:04:28.480 --> 00:04:31.000
<v Speaker 2>And I love that they're using their you know, the

77
00:04:31.120 --> 00:04:34.120
<v Speaker 2>layer Garnet is the name of the product, and underneath

78
00:04:34.199 --> 00:04:37.079
<v Speaker 2>is a storage's layer called Svarite, which is a kind

79
00:04:37.120 --> 00:04:37.639
<v Speaker 2>of Garnet.

80
00:04:39.920 --> 00:04:45.079
<v Speaker 1>All right, some of these with the naming, yeah, okay,

81
00:04:45.120 --> 00:04:46.720
<v Speaker 1>I guess dot net does rock.

82
00:04:47.720 --> 00:04:48.120
<v Speaker 2>Literally.

83
00:04:49.199 --> 00:04:51.519
<v Speaker 4>The fact that they do release them under a bit

84
00:04:51.600 --> 00:04:54.680
<v Speaker 4>cooler names now is cool. Though previously that would have

85
00:04:54.680 --> 00:04:59.279
<v Speaker 4>been released as the Hyper Performance Scalable Cash Enterprise V

86
00:04:59.600 --> 00:05:01.519
<v Speaker 4>three for Foundation Edition.

87
00:05:04.199 --> 00:05:05.759
<v Speaker 2>Dang, right, yeah.

88
00:05:05.839 --> 00:05:08.720
<v Speaker 1>Good. Anyway, Well that's what I got, Richard, who's talking

89
00:05:08.759 --> 00:05:09.399
<v Speaker 1>to us today.

90
00:05:09.560 --> 00:05:10.519
<v Speaker 2>I love everything about that.

91
00:05:11.199 --> 00:05:11.399
<v Speaker 1>Oh.

92
00:05:11.439 --> 00:05:13.040
<v Speaker 2>I decided to go into the wayback machine and I

93
00:05:13.079 --> 00:05:15.519
<v Speaker 2>grabbed a Chris Klub show from twenty to fifteen, the

94
00:05:15.519 --> 00:05:18.959
<v Speaker 2>one where we talked about Solid principles and dot net cool,

95
00:05:18.959 --> 00:05:21.480
<v Speaker 2>because I'm sure he'll remember this. It was only what

96
00:05:21.759 --> 00:05:22.639
<v Speaker 2>nine years ago?

97
00:05:23.839 --> 00:05:24.680
<v Speaker 4>I did remember it.

98
00:05:24.879 --> 00:05:25.519
<v Speaker 1>I never know.

99
00:05:25.560 --> 00:05:27.720
<v Speaker 2>We're talking about how Solid worked with dot net, right,

100
00:05:27.800 --> 00:05:30.000
<v Speaker 2>And there's a bunch of comments that are actually a

101
00:05:30.040 --> 00:05:34.279
<v Speaker 2>ton some going into detail, some really appreciating your pragmatic

102
00:05:34.319 --> 00:05:36.759
<v Speaker 2>view of it, Chris, which is something I've always appreciated.

103
00:05:36.800 --> 00:05:40.120
<v Speaker 2>You know, you're obviously an experienced architect. We've talked about

104
00:05:40.160 --> 00:05:42.759
<v Speaker 2>some great projects, but you're not an idealist in any ways.

105
00:05:43.040 --> 00:05:45.319
<v Speaker 2>And we actually make this work. No, it has to work,

106
00:05:45.360 --> 00:05:48.560
<v Speaker 2>and it has to work oddly enough. If the software

107
00:05:48.600 --> 00:05:52.199
<v Speaker 2>doesn't work, it's really not that valuable. And Michael Reid

108
00:05:52.199 --> 00:05:54.759
<v Speaker 2>Smith had this comment and middle nine years ago he said,

109
00:05:54.800 --> 00:05:56.600
<v Speaker 2>you all need to work with Some younger developers are

110
00:05:56.600 --> 00:05:59.759
<v Speaker 2>really old legacy systems. They violate Solid all the time.

111
00:06:00.480 --> 00:06:03.360
<v Speaker 2>Some younger developers don't even know what SOLID is. We

112
00:06:03.439 --> 00:06:05.920
<v Speaker 2>teach classes where I work. That helps us older, more

113
00:06:05.959 --> 00:06:09.600
<v Speaker 2>experienced developers teach the younger you developers what school did not.

114
00:06:10.079 --> 00:06:12.439
<v Speaker 2>And I love the show We also go with this.

115
00:06:12.920 --> 00:06:15.439
<v Speaker 2>I don't think you can teach solid to someone and

116
00:06:15.519 --> 00:06:19.000
<v Speaker 2>have it stick until they've written some code, until they've

117
00:06:19.040 --> 00:06:22.639
<v Speaker 2>been in a project or two. Like, you've got to

118
00:06:22.759 --> 00:06:25.279
<v Speaker 2>know what the pain is to some degree before you

119
00:06:25.399 --> 00:06:29.360
<v Speaker 2>really grasp why we need these processes.

120
00:06:30.160 --> 00:06:32.639
<v Speaker 4>And then you have to go over the line and

121
00:06:32.680 --> 00:06:35.959
<v Speaker 4>go way too far and then start scaling it back

122
00:06:36.000 --> 00:06:38.160
<v Speaker 4>when you realize that going too far when solid is

123
00:06:38.160 --> 00:06:40.040
<v Speaker 4>going to put you in the whole heap of other problems.

124
00:06:40.120 --> 00:06:43.079
<v Speaker 2>Yeah, different set of problems. I just traded my problems

125
00:06:43.079 --> 00:06:45.720
<v Speaker 2>at so. Yeah, there is a balance in there, So

126
00:06:46.160 --> 00:06:48.519
<v Speaker 2>I in that sense, I always say the experienced folks

127
00:06:48.600 --> 00:06:50.720
<v Speaker 2>like be patient with the youngers. They don't know why

128
00:06:50.720 --> 00:06:54.800
<v Speaker 2>they should be afraid, right, It's hard to convince them

129
00:06:54.839 --> 00:06:57.560
<v Speaker 2>other than you're just being mean. Sometimes you just got

130
00:06:57.560 --> 00:06:59.560
<v Speaker 2>to let them set themselves on fire first, and then

131
00:06:59.560 --> 00:07:01.560
<v Speaker 2>it's like, hey, hey, would you like to not burn?

132
00:07:01.720 --> 00:07:04.959
<v Speaker 1>There's a way that's good.

133
00:07:05.600 --> 00:07:07.240
<v Speaker 2>So, Michael, thank you so much for your comment. At

134
00:07:07.240 --> 00:07:08.879
<v Speaker 2>A copy of music Code by is on its way

135
00:07:08.879 --> 00:07:10.439
<v Speaker 2>to you. And if you'd like a copy of music

136
00:07:10.439 --> 00:07:12.399
<v Speaker 2>Code by, write a comment on the website at dot

137
00:07:12.439 --> 00:07:14.560
<v Speaker 2>at rocks dot com. Ra on the facebooks. We publish

138
00:07:14.560 --> 00:07:16.279
<v Speaker 2>every show there and if you comment there and I

139
00:07:16.360 --> 00:07:18.519
<v Speaker 2>read on the show, we'll send you copy music code by.

140
00:07:18.480 --> 00:07:21.040
<v Speaker 1>Still selling music to Code, buy music tocode, buy dot

141
00:07:21.079 --> 00:07:25.600
<v Speaker 1>net and people are loving it, getting break comments every day.

142
00:07:26.600 --> 00:07:30.920
<v Speaker 1>I still haven't started that next track, however, I'm I'm

143
00:07:30.959 --> 00:07:34.319
<v Speaker 1>still fixing to think about it.

144
00:07:33.839 --> 00:07:36.079
<v Speaker 2>It's got to just boil in the back of your head,

145
00:07:36.120 --> 00:07:36.759
<v Speaker 2>all right.

146
00:07:36.959 --> 00:07:39.560
<v Speaker 1>It's not that simple, all right, So let us introduce

147
00:07:39.720 --> 00:07:43.120
<v Speaker 1>Chris Kloague with an older bio. You can tell me

148
00:07:43.199 --> 00:07:46.199
<v Speaker 1>Chris if anything has changed. But Chris works as a

149
00:07:46.319 --> 00:07:50.920
<v Speaker 1>developer architect at Active Solution in Stockholm, still yep, still

150
00:07:51.120 --> 00:07:53.920
<v Speaker 1>working mostly with cloud based solutions for clients and a

151
00:07:53.959 --> 00:07:57.279
<v Speaker 1>wide range of domains. Lately, his contracts have pulled him

152
00:07:57.279 --> 00:08:00.360
<v Speaker 1>towards the DevOps area, working almost entirely with build and

153
00:08:00.399 --> 00:08:04.000
<v Speaker 1>release automation as well as infrastructure as code. Both were

154
00:08:04.040 --> 00:08:07.160
<v Speaker 1>somewhat uncharted areas to him, which suited him find as

155
00:08:07.160 --> 00:08:09.319
<v Speaker 1>he loves learning new things. Now I remember this is

156
00:08:09.360 --> 00:08:12.519
<v Speaker 1>what twelve years ago and figuring out how to make

157
00:08:12.560 --> 00:08:14.800
<v Speaker 1>them do what he wants them to. I imagine, Chris,

158
00:08:14.800 --> 00:08:16.480
<v Speaker 1>you're still doing that kind of stuff.

159
00:08:16.720 --> 00:08:19.720
<v Speaker 4>I am still getting computers to do what I want

160
00:08:19.759 --> 00:08:23.160
<v Speaker 4>them to, but I'm not so much into Develops anymore.

161
00:08:23.519 --> 00:08:28.120
<v Speaker 4>I've luckily got myself into other problems nowadays. But it's

162
00:08:28.199 --> 00:08:31.680
<v Speaker 4>still there, right, Develops has just It's kind of like

163
00:08:31.920 --> 00:08:34.399
<v Speaker 4>I talked a lot about Asher when Asher was new,

164
00:08:34.440 --> 00:08:37.080
<v Speaker 4>but then Asher becomes just another tool that you're okay with,

165
00:08:37.240 --> 00:08:39.559
<v Speaker 4>and then Develops was new, and then all of a sudden,

166
00:08:39.559 --> 00:08:41.720
<v Speaker 4>Develops is just something that you have and you do

167
00:08:41.799 --> 00:08:44.440
<v Speaker 4>when you implement in your projects and get pipelines and

168
00:08:44.480 --> 00:08:45.039
<v Speaker 4>stuff working.

169
00:08:45.279 --> 00:08:45.840
<v Speaker 1>Just software.

170
00:08:46.480 --> 00:08:50.159
<v Speaker 4>Yeah, now it's I move around a bit currently doing

171
00:08:50.279 --> 00:08:53.799
<v Speaker 4>a lot of API development for a client, which is

172
00:08:54.320 --> 00:08:55.120
<v Speaker 4>fun as such.

173
00:08:55.279 --> 00:08:55.519
<v Speaker 1>Yeah.

174
00:08:55.559 --> 00:08:57.639
<v Speaker 2>Well, and we talked about if she should go back

175
00:08:57.679 --> 00:09:00.200
<v Speaker 2>in the day just a couple of years ago. Is

176
00:09:00.240 --> 00:09:02.480
<v Speaker 2>exactly that. It's like, how is this stuff maturing out?

177
00:09:02.519 --> 00:09:04.519
<v Speaker 2>And I knew from I think it was your blog

178
00:09:04.559 --> 00:09:07.200
<v Speaker 2>post that you had been dabbling in all the different platforms, Like,

179
00:09:07.240 --> 00:09:08.840
<v Speaker 2>all right, Chris, come and talk to us about the

180
00:09:08.840 --> 00:09:11.320
<v Speaker 2>different platforms together. But I got to agree with you.

181
00:09:11.360 --> 00:09:13.720
<v Speaker 2>These days, you don't find anyone who doesn't have some

182
00:09:13.840 --> 00:09:17.000
<v Speaker 2>kind of pipeline, at least, not that that's the only

183
00:09:17.080 --> 00:09:19.480
<v Speaker 2>thing in DevOps. Is much more to it than that,

184
00:09:19.639 --> 00:09:22.279
<v Speaker 2>But that's where a lot of people stop. They just don't,

185
00:09:22.480 --> 00:09:23.159
<v Speaker 2>let's get a pipeline.

186
00:09:23.200 --> 00:09:25.200
<v Speaker 4>Yeah, I think that's the kind of the first and

187
00:09:25.519 --> 00:09:28.320
<v Speaker 4>actually it's the really tangible thing I think with develops

188
00:09:28.320 --> 00:09:30.279
<v Speaker 4>that you actually automate a bunch of things and get

189
00:09:30.399 --> 00:09:33.759
<v Speaker 4>things running. But yeah, there's a lot more to the

190
00:09:33.919 --> 00:09:36.879
<v Speaker 4>process as such, and to the whole area of develops.

191
00:09:36.879 --> 00:09:39.960
<v Speaker 4>I completely agree. But at least automating your things is

192
00:09:40.000 --> 00:09:40.360
<v Speaker 4>a start.

193
00:09:40.440 --> 00:09:43.360
<v Speaker 2>Getting rid of unreliable deployments is a useful part piece

194
00:09:43.399 --> 00:09:46.399
<v Speaker 2>of the equation. You're not going to suffer for that anyway,

195
00:09:46.720 --> 00:09:48.879
<v Speaker 2>and it's certainly gotten a heck of a lot easier

196
00:09:48.919 --> 00:09:51.080
<v Speaker 2>to do that. I mean, goodness knows we do in

197
00:09:51.080 --> 00:09:52.960
<v Speaker 2>this show long enough that I remember when we were

198
00:09:52.960 --> 00:09:54.679
<v Speaker 2>talking about the weird add ons you had to put

199
00:09:54.720 --> 00:09:57.240
<v Speaker 2>into visual studio to even to begin to build something

200
00:09:57.240 --> 00:10:01.600
<v Speaker 2>we would eventually call a pipeline. It's better now, make

201
00:10:01.679 --> 00:10:04.080
<v Speaker 2>no mistake, it's definitely better now.

202
00:10:04.159 --> 00:10:06.679
<v Speaker 4>Well, at least if you're in the cloud. I still

203
00:10:06.679 --> 00:10:10.600
<v Speaker 4>have clients to deploy to on premis machines, so it

204
00:10:10.679 --> 00:10:13.120
<v Speaker 4>is still a bit of a tedious process compared to

205
00:10:13.320 --> 00:10:14.519
<v Speaker 4>just deploying to the cloud.

206
00:10:15.080 --> 00:10:17.120
<v Speaker 2>Well, just because you can get away without building a

207
00:10:17.120 --> 00:10:19.879
<v Speaker 2>good enough automation, a cloud kind of forces you down

208
00:10:19.919 --> 00:10:20.799
<v Speaker 2>a righteous path.

209
00:10:21.120 --> 00:10:24.000
<v Speaker 1>So you're thinking a lot about cloud native these days.

210
00:10:24.120 --> 00:10:27.039
<v Speaker 1>Is that a term whose time has come? Do we

211
00:10:27.080 --> 00:10:30.200
<v Speaker 1>all understand what that means? Does it mean different things

212
00:10:30.240 --> 00:10:31.000
<v Speaker 1>to different people?

213
00:10:31.159 --> 00:10:33.519
<v Speaker 4>I think it means different things to different people. I

214
00:10:33.559 --> 00:10:37.360
<v Speaker 4>think cloud native people are going to attack me for this,

215
00:10:37.440 --> 00:10:39.960
<v Speaker 4>I know, but it seems like that whole thing has

216
00:10:40.000 --> 00:10:44.440
<v Speaker 4>been hijacked by kubernaties. If you're not building Kubernatis apps

217
00:10:44.519 --> 00:10:48.039
<v Speaker 4>or based solutions, you're not cloud native. And it's like

218
00:10:48.080 --> 00:10:52.240
<v Speaker 4>the cloud native, the CNCF thingy, it's all about Kubernati stuff.

219
00:10:52.480 --> 00:10:54.879
<v Speaker 4>I think there's more to it. I think it's a

220
00:10:54.919 --> 00:10:58.279
<v Speaker 4>paradigm or a way of thinking of how you build

221
00:10:58.279 --> 00:11:02.519
<v Speaker 4>your code, making sure that it is scalable horizontally, and

222
00:11:02.679 --> 00:11:06.519
<v Speaker 4>it makes use of resources in a good way, and

223
00:11:06.840 --> 00:11:10.919
<v Speaker 4>all of that stuff that's not necessarily specific. And I

224
00:11:10.960 --> 00:11:13.559
<v Speaker 4>think we are moving in that direction, and I think

225
00:11:13.559 --> 00:11:16.000
<v Speaker 4>a lot of people are in the cloud and doing

226
00:11:16.639 --> 00:11:20.759
<v Speaker 4>sort of cloud native, even if I'm seeing a slight

227
00:11:20.879 --> 00:11:24.000
<v Speaker 4>pull towards going on prem again, at least for bigger clients,

228
00:11:24.000 --> 00:11:27.519
<v Speaker 4>because cloud is not necessarily cheap when you go to

229
00:11:27.519 --> 00:11:28.399
<v Speaker 4>a certain size.

230
00:11:28.960 --> 00:11:32.120
<v Speaker 1>The term cloud native always rang weird with me because

231
00:11:32.159 --> 00:11:35.840
<v Speaker 1>I'm like, well, what's the what's the opposite of that

232
00:11:35.960 --> 00:11:37.159
<v Speaker 1>cloud interpreted?

233
00:11:37.759 --> 00:11:38.759
<v Speaker 2>Cloud immigrant?

234
00:11:39.600 --> 00:11:40.440
<v Speaker 1>Cloud immigrant?

235
00:11:40.559 --> 00:11:45.279
<v Speaker 2>Yeah, migrated on prem native? Hey yeah, what's a virtual

236
00:11:45.360 --> 00:11:48.559
<v Speaker 2>machine city behind Azure Fireworld like a cloud immigrant?

237
00:11:48.679 --> 00:11:50.200
<v Speaker 4>Yeah?

238
00:11:50.320 --> 00:11:56.200
<v Speaker 1>Yeah, okay. So in other words, applying on prem technologies

239
00:11:56.240 --> 00:11:59.519
<v Speaker 1>and processes to the cloud is not cloud native? Is

240
00:11:59.519 --> 00:12:01.080
<v Speaker 1>that what you basically getting out?

241
00:12:01.360 --> 00:12:04.080
<v Speaker 4>I would say, So if you're building on prem, you

242
00:12:04.559 --> 00:12:08.279
<v Speaker 4>tend to make other assumptions. In my world, things like

243
00:12:09.240 --> 00:12:12.559
<v Speaker 4>your database you potentially assume is always online, because if

244
00:12:12.600 --> 00:12:15.919
<v Speaker 4>the database goes offline, your machine, your database server is

245
00:12:15.960 --> 00:12:18.240
<v Speaker 4>actually having problems and you'll see that in other parts

246
00:12:18.240 --> 00:12:21.679
<v Speaker 4>and it is probably not going to be an intermittent issue.

247
00:12:21.720 --> 00:12:23.840
<v Speaker 4>But if you're in the cloud, you have more of

248
00:12:23.879 --> 00:12:26.679
<v Speaker 4>those intermittent things, so you take it into account when

249
00:12:26.679 --> 00:12:28.799
<v Speaker 4>you build your application. For example, I think there are

250
00:12:29.200 --> 00:12:31.399
<v Speaker 4>lots of little niggles here and there that you sort

251
00:12:31.440 --> 00:12:32.879
<v Speaker 4>of have to change a little bit when you go

252
00:12:32.919 --> 00:12:33.200
<v Speaker 4>to the.

253
00:12:33.120 --> 00:12:36.240
<v Speaker 2>Cloud be tolerated of a one minute outage, yeah, something

254
00:12:36.320 --> 00:12:36.639
<v Speaker 2>like that.

255
00:12:37.039 --> 00:12:40.639
<v Speaker 4>Yeah, Yeah, pretty much everything can come and go. It's

256
00:12:40.639 --> 00:12:42.279
<v Speaker 4>going to be gone for a little while, but it's

257
00:12:42.360 --> 00:12:44.679
<v Speaker 4>hopefully just going to come back. But you have to

258
00:12:44.720 --> 00:12:48.440
<v Speaker 4>survive that. Whereas that obviously can happen on prem as well.

259
00:12:48.480 --> 00:12:50.440
<v Speaker 4>But as I said, if a server go that goes

260
00:12:50.480 --> 00:12:54.840
<v Speaker 4>down on Prem, that's a different story. That's not going

261
00:12:54.840 --> 00:12:56.919
<v Speaker 4>to be a little blip and it comes back thirty

262
00:12:56.919 --> 00:12:59.559
<v Speaker 4>seconds later. It's probably going to be somebody running around

263
00:12:59.600 --> 00:13:03.879
<v Speaker 4>in their center freaking out because power supply is blown

264
00:13:03.919 --> 00:13:04.759
<v Speaker 4>up or something like that.

265
00:13:04.919 --> 00:13:07.200
<v Speaker 2>So step one, something is not going to be back

266
00:13:07.320 --> 00:13:09.039
<v Speaker 2>before you can write up the ticket for it.

267
00:13:09.120 --> 00:13:12.519
<v Speaker 1>Yeah, so step one is let's let's focus one hundred

268
00:13:12.559 --> 00:13:14.480
<v Speaker 1>percent on our please wait screen.

269
00:13:15.039 --> 00:13:18.919
<v Speaker 2>Yeah, I would argue this is all about Polly, right,

270
00:13:18.960 --> 00:13:23.639
<v Speaker 2>as Polly's everywhere right, so that everything is recovering, then

271
00:13:24.240 --> 00:13:24.879
<v Speaker 2>you'll be fine.

272
00:13:24.919 --> 00:13:26.519
<v Speaker 4>Yeah, it still need to take it even if you

273
00:13:26.519 --> 00:13:28.960
<v Speaker 4>had Pulley. It's it's yes, it's going to do read

274
00:13:29.000 --> 00:13:31.879
<v Speaker 4>try and you can do gate gates and things like that,

275
00:13:32.000 --> 00:13:34.039
<v Speaker 4>but it's in the end, you still have to make

276
00:13:34.080 --> 00:13:37.120
<v Speaker 4>sure that your client gets a decent message as well.

277
00:13:37.159 --> 00:13:38.919
<v Speaker 4>So I think Carlos is onto it something. It's like,

278
00:13:38.960 --> 00:13:41.200
<v Speaker 4>if it's down, have a nice screen that says, hey,

279
00:13:41.240 --> 00:13:44.080
<v Speaker 4>we're actually down for a little while, or find a

280
00:13:44.080 --> 00:13:47.159
<v Speaker 4>way to just work in a different way. I think

281
00:13:47.200 --> 00:13:48.200
<v Speaker 4>I read somewhere.

282
00:13:47.919 --> 00:13:51.840
<v Speaker 1>That while you're waiting read this today in the history paragraph,

283
00:13:52.039 --> 00:13:56.080
<v Speaker 1>expect me go get a coffee and we'll be right back.

284
00:13:56.200 --> 00:13:59.639
<v Speaker 4>Yeah, And I think maybe a lot of people are

285
00:13:59.759 --> 00:14:01.639
<v Speaker 4>missing up and that I think I've read somewhere that's

286
00:14:01.679 --> 00:14:04.120
<v Speaker 4>sort of like at Netflix where they're doing micro services,

287
00:14:04.159 --> 00:14:07.480
<v Speaker 4>which is cloud native and all of that, then they

288
00:14:07.639 --> 00:14:10.679
<v Speaker 4>every service should survive that other services are down. So basically,

289
00:14:10.720 --> 00:14:13.120
<v Speaker 4>if you want to see the list of movies to

290
00:14:13.200 --> 00:14:16.399
<v Speaker 4>watch today, maybe it depends on one service to look

291
00:14:16.399 --> 00:14:19.840
<v Speaker 4>at your latest movies or whatever your ongoing and if

292
00:14:19.840 --> 00:14:21.639
<v Speaker 4>that service is down, then they can look at another

293
00:14:21.679 --> 00:14:24.279
<v Speaker 4>service to find the top top ten movies at the moment,

294
00:14:24.399 --> 00:14:26.600
<v Speaker 4>or if that service is down, maybe there's a hard

295
00:14:26.600 --> 00:14:28.919
<v Speaker 4>coded list of movies that you can show. So there's

296
00:14:28.919 --> 00:14:32.919
<v Speaker 4>always fallbacks upon fallbacks if services are down, and I

297
00:14:32.919 --> 00:14:35.639
<v Speaker 4>think I'm guilty of that. As well. But I think

298
00:14:35.639 --> 00:14:37.559
<v Speaker 4>a lot of us forget about that. We basically go

299
00:14:37.639 --> 00:14:40.039
<v Speaker 4>if the service is down, then we just return an error.

300
00:14:40.120 --> 00:14:43.039
<v Speaker 4>Maybe we can do something more. And I guess that's

301
00:14:43.080 --> 00:14:46.360
<v Speaker 4>the cloud native way is being better prepared that things

302
00:14:46.440 --> 00:14:47.960
<v Speaker 4>being unavailable.

303
00:14:47.879 --> 00:14:51.039
<v Speaker 2>Getting this idea of discovery that I know where I'm

304
00:14:51.159 --> 00:14:52.840
<v Speaker 2>likely to go, but I'm willing to take a few

305
00:14:52.879 --> 00:14:56.120
<v Speaker 2>other choices. So, you know, building a maximum says you

306
00:14:56.159 --> 00:14:59.559
<v Speaker 2>can provide a difference alternative to this as well as

307
00:14:59.600 --> 00:15:02.559
<v Speaker 2>some of the Here's one it's that I've definitely seen

308
00:15:02.679 --> 00:15:04.279
<v Speaker 2>on prem do all the time. You just can't get

309
00:15:04.279 --> 00:15:08.600
<v Speaker 2>away with the cloud IP addresses right like you can

310
00:15:08.639 --> 00:15:10.639
<v Speaker 2>get it if it's your network, you can get away

311
00:15:10.679 --> 00:15:13.240
<v Speaker 2>with those are my ips. You don't get away with

312
00:15:13.279 --> 00:15:14.879
<v Speaker 2>that in the cloud. That is not an option.

313
00:15:17.240 --> 00:15:21.240
<v Speaker 1>Yeah, all of these things bring to mind, you know

314
00:15:21.279 --> 00:15:25.559
<v Speaker 1>the difference between more client side technology like web assembly

315
00:15:25.759 --> 00:15:30.159
<v Speaker 1>and more server side technology like Blazer server. And you know,

316
00:15:30.240 --> 00:15:33.799
<v Speaker 1>Blazer server is more apt to have those please weight

317
00:15:33.840 --> 00:15:36.799
<v Speaker 1>screens because of you know, if it's down, it's down, right,

318
00:15:37.360 --> 00:15:40.120
<v Speaker 1>But in you know, if you've got good caching and

319
00:15:40.200 --> 00:15:44.519
<v Speaker 1>good messaging and all that stuff, your client can survive

320
00:15:44.679 --> 00:15:47.799
<v Speaker 1>just about anything as long as you have you know,

321
00:15:48.000 --> 00:15:50.559
<v Speaker 1>prepared the user for that and have some sort of

322
00:15:51.080 --> 00:15:56.759
<v Speaker 1>good contingency plan when things are pausing or not completing yet.

323
00:15:57.399 --> 00:16:01.480
<v Speaker 2>Fallbacks always ways to fall back. And also like not

324
00:16:01.559 --> 00:16:04.679
<v Speaker 2>that cross dependency thing, like you can different pieces of

325
00:16:04.679 --> 00:16:09.039
<v Speaker 2>the app can be updated and everything keeps running, like right,

326
00:16:09.200 --> 00:16:12.320
<v Speaker 2>don't have you don't have that master, we shut down

327
00:16:12.320 --> 00:16:14.519
<v Speaker 2>at five o'clock, do a big update, It'll be back

328
00:16:14.559 --> 00:16:17.360
<v Speaker 2>up tomorrow morning. Like that's just not the cloud dated world.

329
00:16:18.360 --> 00:16:21.039
<v Speaker 2>I started rolling update mindset, which I mean I did

330
00:16:21.080 --> 00:16:22.399
<v Speaker 2>a lot of that back in the e commerce state

331
00:16:22.399 --> 00:16:24.559
<v Speaker 2>when we did it far more by hand, just because

332
00:16:24.960 --> 00:16:27.879
<v Speaker 2>we made money every minute of every day and every

333
00:16:27.879 --> 00:16:30.639
<v Speaker 2>bit of outage was money loss. So people got grumpy

334
00:16:31.039 --> 00:16:32.759
<v Speaker 2>and we had to find a way to roll out

335
00:16:32.840 --> 00:16:34.799
<v Speaker 2>updates without stopping the cash for no.

336
00:16:35.039 --> 00:16:37.639
<v Speaker 4>Yeah, and it's funny now that we talk about all this,

337
00:16:37.720 --> 00:16:39.840
<v Speaker 4>I'm like, looking at I've been doing this for twenty

338
00:16:39.840 --> 00:16:42.519
<v Speaker 4>five years now, and I'm just so happy I'm not

339
00:16:42.519 --> 00:16:46.320
<v Speaker 4>coming into the industry right now because there's there's it's

340
00:16:46.320 --> 00:16:48.279
<v Speaker 4>a good time coming as well. I'm just I would

341
00:16:48.320 --> 00:16:51.799
<v Speaker 4>probably as a person be overwhelmed by everything that you

342
00:16:51.919 --> 00:16:53.960
<v Speaker 4>kind of need to know because it used to be

343
00:16:54.039 --> 00:16:55.759
<v Speaker 4>that you could know a bit, you can know code,

344
00:16:55.840 --> 00:16:57.840
<v Speaker 4>and then the ops team would make sure that it ran.

345
00:16:57.960 --> 00:17:02.559
<v Speaker 4>But now we develops and asher and cloud Native and

346
00:17:02.559 --> 00:17:04.119
<v Speaker 4>all of that stuff. All of a sudden, there's the

347
00:17:04.200 --> 00:17:06.559
<v Speaker 4>whole Oh we need I need to know how networks

348
00:17:06.599 --> 00:17:10.880
<v Speaker 4>work and how machines are set up, and service discovery

349
00:17:10.920 --> 00:17:14.039
<v Speaker 4>and a lot of other stuff that as a junior

350
00:17:14.119 --> 00:17:16.319
<v Speaker 4>you need to get somebody else to help you with

351
00:17:16.440 --> 00:17:19.319
<v Speaker 4>and basically show you the rogues. But there's a lot

352
00:17:19.400 --> 00:17:21.160
<v Speaker 4>to learn today if you're new in the business.

353
00:17:21.200 --> 00:17:22.759
<v Speaker 2>In my mind, I mean, I would argue back, they

354
00:17:22.799 --> 00:17:24.759
<v Speaker 2>also don't have the baggage like we're doing a lot

355
00:17:24.799 --> 00:17:27.839
<v Speaker 2>of unlearning too. We have bad habits, we have craft

356
00:17:28.240 --> 00:17:31.440
<v Speaker 2>we need to scrape off right this you know, the

357
00:17:32.640 --> 00:17:37.480
<v Speaker 2>pets versus cattle mindset, Yeah, just like you know we don't.

358
00:17:37.559 --> 00:17:40.200
<v Speaker 2>We don't update servers around here. We build new ones

359
00:17:40.240 --> 00:17:43.720
<v Speaker 2>and kill the old ones, right because they're all virtual,

360
00:17:43.759 --> 00:17:47.000
<v Speaker 2>they're ephemeral, and that's a pretty hard thing to get

361
00:17:47.079 --> 00:17:50.880
<v Speaker 2>into your head when you're used to years and years

362
00:17:50.920 --> 00:17:52.960
<v Speaker 2>of carrying and feeding of a set of boxes with

363
00:17:53.000 --> 00:17:53.839
<v Speaker 2>blinky lights.

364
00:17:53.960 --> 00:17:56.279
<v Speaker 4>I had an argument with a with the developer a

365
00:17:56.279 --> 00:18:00.759
<v Speaker 4>while back, and it'said the argument spiral Bit said, I've

366
00:18:00.759 --> 00:18:03.000
<v Speaker 4>been doing it like this for the last fifteen years

367
00:18:03.000 --> 00:18:05.720
<v Speaker 4>and it's worked fine. And that's to me, that's when

368
00:18:05.720 --> 00:18:08.279
<v Speaker 4>the argument ends, because if you're doing what you did

369
00:18:08.720 --> 00:18:12.839
<v Speaker 4>fifteen years ago in the same way, there is probably

370
00:18:12.920 --> 00:18:15.759
<v Speaker 4>a better way. Things have shifted in fifteen years.

371
00:18:15.920 --> 00:18:19.079
<v Speaker 2>You have one years of experience. You repeated fifteen times.

372
00:18:19.640 --> 00:18:25.039
<v Speaker 2>Let's go learn something, man. Yeah, that is tough. I

373
00:18:25.039 --> 00:18:27.400
<v Speaker 2>mean I don't want to. I understand the resistance to

374
00:18:27.440 --> 00:18:30.880
<v Speaker 2>kubrinetties because it seems to be all things, but this

375
00:18:31.480 --> 00:18:33.960
<v Speaker 2>containers just seem like to be a good idea.

376
00:18:34.240 --> 00:18:37.720
<v Speaker 4>I agree containers is a great idea. My problem with

377
00:18:39.559 --> 00:18:43.400
<v Speaker 4>kubernet is mostly because you end up having to run

378
00:18:43.440 --> 00:18:47.880
<v Speaker 4>the cluster. I know that AKS is semi managed, but

379
00:18:48.000 --> 00:18:51.200
<v Speaker 4>it's not fully managed, and to me it just seems

380
00:18:51.240 --> 00:18:55.559
<v Speaker 4>like I'm not a Linux person, so running an AKS

381
00:18:55.599 --> 00:18:58.000
<v Speaker 4>cluster or running a Coubrettes cluster is this a bunch

382
00:18:58.000 --> 00:19:01.839
<v Speaker 4>of stuff I don't feel comfortable with. And also, when

383
00:19:02.039 --> 00:19:06.519
<v Speaker 4>stuff happens, they're generally not the most simple thing to fix.

384
00:19:06.680 --> 00:19:10.160
<v Speaker 4>Either it's very simple or it's some weird network thing

385
00:19:10.240 --> 00:19:13.160
<v Speaker 4>that happened inside of your Linux servers and then I

386
00:19:13.200 --> 00:19:15.640
<v Speaker 4>am screwed. I don't know how to fix that, so

387
00:19:16.279 --> 00:19:18.319
<v Speaker 4>that's why I'm a little bit scared of it. But

388
00:19:18.400 --> 00:19:20.480
<v Speaker 4>if you have the people that can run your cluster,

389
00:19:20.960 --> 00:19:23.319
<v Speaker 4>I am more than happy to be building for it.

390
00:19:24.480 --> 00:19:26.920
<v Speaker 4>But it's a separate skill set in my mind.

391
00:19:27.079 --> 00:19:30.559
<v Speaker 2>Have you dove into as your container apps as sort

392
00:19:30.559 --> 00:19:35.039
<v Speaker 2>of the more managed version than AKS.

393
00:19:35.480 --> 00:19:37.599
<v Speaker 4>I don't know how politically correct I'm supposed to be

394
00:19:37.720 --> 00:19:42.079
<v Speaker 4>right now, I am page. I probably should be politically correct.

395
00:19:41.759 --> 00:19:43.799
<v Speaker 1>But honestly, just be honest, man.

396
00:19:44.319 --> 00:19:47.519
<v Speaker 4>The very honest thing is that, yes, I have been

397
00:19:47.640 --> 00:19:50.759
<v Speaker 4>on a product where we're using container apps. I am

398
00:19:50.799 --> 00:19:53.960
<v Speaker 4>not touching it again unless I have to. Because we

399
00:19:54.119 --> 00:19:57.960
<v Speaker 4>had our dev environment locking up and having to be

400
00:19:58.079 --> 00:20:01.200
<v Speaker 4>real built like four times since six months. Our production

401
00:20:01.359 --> 00:20:04.440
<v Speaker 4>environment got locked up for about five days where we

402
00:20:04.480 --> 00:20:07.160
<v Speaker 4>couldn't deploy because all of a suddenly it said that

403
00:20:07.200 --> 00:20:10.880
<v Speaker 4>we had no more cores available, and that was basically

404
00:20:10.920 --> 00:20:13.519
<v Speaker 4>either we had to rebuild production, which is not really

405
00:20:13.559 --> 00:20:16.880
<v Speaker 4>an option, or we would need to wait for micro

406
00:20:17.039 --> 00:20:19.759
<v Speaker 4>support to fix that for us, which it did eventually.

407
00:20:20.359 --> 00:20:21.599
<v Speaker 2>So it was buggy.

408
00:20:21.799 --> 00:20:25.599
<v Speaker 4>I find it very buggy. And besides that, it kind

409
00:20:25.599 --> 00:20:28.480
<v Speaker 4>of annoys me because when it starts bugging out, the

410
00:20:28.640 --> 00:20:31.559
<v Speaker 4>layer that container Wraps ads on top of kubernet is

411
00:20:31.599 --> 00:20:35.079
<v Speaker 4>for me, is so thin. You can see kubernet is underneath.

412
00:20:35.079 --> 00:20:37.039
<v Speaker 4>You just scrap a little bit. You can still see

413
00:20:37.079 --> 00:20:39.240
<v Speaker 4>the ingris stuff and the pods and all the stuff

414
00:20:39.279 --> 00:20:42.640
<v Speaker 4>that is kubernet is underneath. But when stuff starts failing,

415
00:20:43.279 --> 00:20:46.079
<v Speaker 4>you cannot go to cube control and start mucking about

416
00:20:46.119 --> 00:20:49.160
<v Speaker 4>and trying to figure out what's wrong, because you stuck.

417
00:20:49.240 --> 00:20:50.480
<v Speaker 2>You're waiting on a ticket.

418
00:20:50.519 --> 00:20:53.480
<v Speaker 1>It's a yeah, it's a glass bottom boat yep with

419
00:20:53.599 --> 00:20:55.759
<v Speaker 1>a hole in it pretty much.

420
00:20:56.240 --> 00:20:59.319
<v Speaker 4>So I'm not a huge fan. I'd rather deploy to

421
00:20:59.480 --> 00:21:06.200
<v Speaker 4>akas if I'm going to go full container style or honestly,

422
00:21:06.240 --> 00:21:09.640
<v Speaker 4>I still like web baps for containers. Right, I'm old school.

423
00:21:09.720 --> 00:21:13.359
<v Speaker 1>Did you did you say how long ago this experience was?

424
00:21:13.920 --> 00:21:18.279
<v Speaker 4>It was, let's see, about six months ago, six months,

425
00:21:18.359 --> 00:21:19.480
<v Speaker 4>nine months ago or something like that.

426
00:21:19.559 --> 00:21:21.359
<v Speaker 1>Okay, so still very current.

427
00:21:22.000 --> 00:21:24.319
<v Speaker 4>Yeah. And the funnly thing is I have a guy

428
00:21:24.359 --> 00:21:27.279
<v Speaker 4>at the office who's also an MVP, and he was like,

429
00:21:27.400 --> 00:21:29.720
<v Speaker 4>container Wraps is awesome, and we talked about it, and

430
00:21:29.720 --> 00:21:31.680
<v Speaker 4>he had never seen the issues that we were having.

431
00:21:31.720 --> 00:21:36.279
<v Speaker 4>And then very recently their environment went down as well

432
00:21:36.319 --> 00:21:38.960
<v Speaker 4>because all of a sudden they had intermittent issues talking

433
00:21:39.000 --> 00:21:42.160
<v Speaker 4>to seql and they filed the ticket and apparently there

434
00:21:42.200 --> 00:21:45.119
<v Speaker 4>was a network issue in ashure that actually made some

435
00:21:45.160 --> 00:21:48.480
<v Speaker 4>of the packages to seql Ashure go down, so they

436
00:21:48.680 --> 00:21:52.960
<v Speaker 4>couldn't talk to Azure, which is a sequel, which caused

437
00:21:52.960 --> 00:21:56.079
<v Speaker 4>a bunch of problems. It got fixed very rapidly, but

438
00:21:56.119 --> 00:21:58.880
<v Speaker 4>the fact that things like that happens makes me not

439
00:21:59.039 --> 00:22:00.359
<v Speaker 4>trust the platform, makes.

440
00:22:00.240 --> 00:22:01.079
<v Speaker 2>You squirrel down.

441
00:22:01.440 --> 00:22:02.240
<v Speaker 4>Yeah.

442
00:22:02.279 --> 00:22:05.680
<v Speaker 2>So, and web apps for containers, I mean, yet another

443
00:22:05.799 --> 00:22:09.319
<v Speaker 2>strategy for using containers and actually, like you can't blame

444
00:22:09.359 --> 00:22:11.480
<v Speaker 2>anybody for staring this and going can you make up

445
00:22:11.519 --> 00:22:12.119
<v Speaker 2>your mind?

446
00:22:12.440 --> 00:22:13.160
<v Speaker 4>Yeah? No, I know.

447
00:22:13.279 --> 00:22:14.440
<v Speaker 2>Are we supposed to do this?

448
00:22:15.079 --> 00:22:18.079
<v Speaker 4>And it's like they're they're pros to Astra container wraps

449
00:22:18.359 --> 00:22:21.160
<v Speaker 4>in the form of service discovery gets built in and

450
00:22:21.480 --> 00:22:23.799
<v Speaker 4>it's easy to run Dapper. I'm not a big Dapper fan,

451
00:22:23.880 --> 00:22:26.039
<v Speaker 4>but that that's plugged in there as well. But your

452
00:22:26.079 --> 00:22:28.279
<v Speaker 4>t a p R Dapper, not e a p P

453
00:22:28.400 --> 00:22:33.279
<v Speaker 4>E R No, that is hard yep. But you can

454
00:22:33.359 --> 00:22:36.160
<v Speaker 4>do most of that stuff with with just v nets

455
00:22:36.160 --> 00:22:39.200
<v Speaker 4>and container apps as well, or sorry, not gonna webouts

456
00:22:39.200 --> 00:22:43.359
<v Speaker 4>for containers. So I'd rather go of that route because

457
00:22:44.079 --> 00:22:46.440
<v Speaker 4>I've seen too many issues we contain wraps today that

458
00:22:46.480 --> 00:22:49.079
<v Speaker 4>somebody comes and says that it has matured, then I'll

459
00:22:49.079 --> 00:22:51.759
<v Speaker 4>come back because I really like the idea of container wraps.

460
00:22:51.799 --> 00:22:54.480
<v Speaker 2>But eventually there'll be a good version. You just don't

461
00:22:54.519 --> 00:22:57.119
<v Speaker 2>know if it's there yet exactly well, And it's one

462
00:22:57.119 --> 00:22:59.319
<v Speaker 2>of the you know, we talk about not getting hung

463
00:22:59.400 --> 00:23:01.920
<v Speaker 2>up on a give implementation, but it seems like it's

464
00:23:01.920 --> 00:23:07.079
<v Speaker 2>tough to move into or out of as your container apps,

465
00:23:07.160 --> 00:23:09.559
<v Speaker 2>Like I don't know what it takes to actually pull

466
00:23:09.599 --> 00:23:09.960
<v Speaker 2>out of that.

467
00:23:10.279 --> 00:23:13.279
<v Speaker 4>It's fairly easy to pull out of container apps if

468
00:23:13.319 --> 00:23:18.559
<v Speaker 4>you go into AKS. SoC scaling kind of up into

469
00:23:18.640 --> 00:23:21.200
<v Speaker 4>AKS beastly mature in your solution to say.

470
00:23:21.240 --> 00:23:23.920
<v Speaker 2>Which seemed to be the intent right is like here's

471
00:23:23.960 --> 00:23:26.960
<v Speaker 2>the training wheels versions of orchestrated containers, and when you're

472
00:23:26.960 --> 00:23:29.559
<v Speaker 2>ready to throw out the training wheels, you go to AKS.

473
00:23:29.799 --> 00:23:33.799
<v Speaker 4>Yep, okay, And that's a cool idea. And I believe

474
00:23:33.839 --> 00:23:36.319
<v Speaker 4>that there is an AKAS version on the way that

475
00:23:36.480 --> 00:23:38.400
<v Speaker 4>is fully managed. I don't know if it's been released

476
00:23:38.480 --> 00:23:41.119
<v Speaker 4>or think, but I do believe that that's where they're headed.

477
00:23:41.160 --> 00:23:43.440
<v Speaker 4>I haven't looked at AKS for a while. But once

478
00:23:43.519 --> 00:23:45.039
<v Speaker 4>you get to the point where I can tick a

479
00:23:45.079 --> 00:23:48.200
<v Speaker 4>box and say I want an AKS cluster and I

480
00:23:48.240 --> 00:23:51.599
<v Speaker 4>don't want to see the worker notes, I just want

481
00:23:51.640 --> 00:23:54.880
<v Speaker 4>to see the API just host everything for me and

482
00:23:55.000 --> 00:23:58.359
<v Speaker 4>just fix the NOE thing for me, then I'm in love.

483
00:23:58.559 --> 00:24:00.440
<v Speaker 4>And at that point that would be might go to

484
00:24:00.440 --> 00:24:02.519
<v Speaker 4>a platform for for astress us.

485
00:24:02.799 --> 00:24:05.119
<v Speaker 1>So are you saying basically we should just bite the bullet,

486
00:24:05.200 --> 00:24:08.400
<v Speaker 1>learn yam or figure out how to write these things ourselves.

487
00:24:08.920 --> 00:24:12.599
<v Speaker 4>Yeah, unfortunately. Yeah, it's it's not that hard.

488
00:24:13.319 --> 00:24:15.519
<v Speaker 1>It's not You're right, I just don't like it.

489
00:24:15.680 --> 00:24:18.319
<v Speaker 2>Here's the question, is it necessary? Like why do I

490
00:24:18.400 --> 00:24:20.759
<v Speaker 2>need this? As Like you said, I could just go

491
00:24:20.799 --> 00:24:22.160
<v Speaker 2>to app Service. Yep.

492
00:24:23.119 --> 00:24:25.039
<v Speaker 4>I don't know how much development they're doing on app

493
00:24:25.039 --> 00:24:27.279
<v Speaker 4>Service anymore. I know it's a very old service, but

494
00:24:27.359 --> 00:24:30.000
<v Speaker 4>it seems like it does everything I need and done

495
00:24:30.000 --> 00:24:31.680
<v Speaker 4>some and.

496
00:24:30.960 --> 00:24:35.319
<v Speaker 2>So for you know, basic websites. Man, that thing just

497
00:24:35.400 --> 00:24:37.960
<v Speaker 2>works right. It's you know, run and you run two

498
00:24:37.960 --> 00:24:40.240
<v Speaker 2>instances with a minor load balance con figured on it

499
00:24:40.279 --> 00:24:44.039
<v Speaker 2>and void the outages are low, Like, it's just I'm

500
00:24:44.039 --> 00:24:46.680
<v Speaker 2>not saying it's one hundred percent roadways recovers, but it's

501
00:24:46.720 --> 00:24:47.440
<v Speaker 2>hard to complain.

502
00:24:47.559 --> 00:24:49.920
<v Speaker 1>Well, we got to talk about what kind of applications,

503
00:24:49.960 --> 00:24:53.039
<v Speaker 1>you know, what our audience is, and how big it is,

504
00:24:53.599 --> 00:24:56.319
<v Speaker 1>and how much scalability we want to build in. I

505
00:24:56.319 --> 00:24:58.799
<v Speaker 1>think that's probably the reason why people went to Kubernetes

506
00:24:58.799 --> 00:25:01.480
<v Speaker 1>in the first place, is because you know, they picture

507
00:25:01.519 --> 00:25:06.680
<v Speaker 1>their application being the next you know, Reddit or Facebook

508
00:25:06.799 --> 00:25:09.440
<v Speaker 1>or whatever that's going to scale to millions of users,

509
00:25:09.880 --> 00:25:12.359
<v Speaker 1>and oh my gosh, how we have to plan for

510
00:25:12.400 --> 00:25:12.960
<v Speaker 1>that now.

511
00:25:13.839 --> 00:25:17.039
<v Speaker 4>So yeah, and I think a lot of that scale

512
00:25:17.079 --> 00:25:19.599
<v Speaker 4>can be handled by on the web apps as well

513
00:25:19.640 --> 00:25:22.839
<v Speaker 4>with scaling building, and it's just it's a different miset.

514
00:25:23.000 --> 00:25:24.920
<v Speaker 4>I guess the fact that you can spin up containers

515
00:25:24.960 --> 00:25:29.079
<v Speaker 4>faster in akas, and you can play around a bit more,

516
00:25:29.119 --> 00:25:32.559
<v Speaker 4>and you have more configuration ability with services, so you

517
00:25:32.599 --> 00:25:35.039
<v Speaker 4>can map around things, you can deploy things and cannery

518
00:25:35.079 --> 00:25:38.000
<v Speaker 4>builds and things like that. All of that deployment stuff

519
00:25:38.039 --> 00:25:40.920
<v Speaker 4>of being able to point to different services and deploy

520
00:25:41.000 --> 00:25:42.640
<v Speaker 4>to a small group of people, all of that is

521
00:25:43.000 --> 00:25:45.440
<v Speaker 4>easier in akas than it is in web aps. You

522
00:25:45.480 --> 00:25:49.359
<v Speaker 4>have to build all of that yourself, I guess. But yeah,

523
00:25:49.400 --> 00:25:51.200
<v Speaker 4>I think there's a maturity part to it as well,

524
00:25:51.200 --> 00:25:53.960
<v Speaker 4>and people have and understandings like you have to learn

525
00:25:54.279 --> 00:25:56.720
<v Speaker 4>akas or sorry kubernatis.

526
00:25:56.599 --> 00:25:57.319
<v Speaker 2>To work with it.

527
00:25:57.359 --> 00:26:00.920
<v Speaker 4>And it's it's not just the AMO else, it's a

528
00:26:01.039 --> 00:26:03.839
<v Speaker 4>it's a mind shift of of how you think about

529
00:26:03.839 --> 00:26:05.960
<v Speaker 4>your deployments that you have to get into as well.

530
00:26:06.160 --> 00:26:09.799
<v Speaker 1>Sure, and with great power comes great responsibility, right, I mean,

531
00:26:09.839 --> 00:26:14.519
<v Speaker 1>if you can push a button and launch a million

532
00:26:15.480 --> 00:26:19.480
<v Speaker 1>web services, you can do that, right, so you better

533
00:26:19.519 --> 00:26:21.240
<v Speaker 1>be careful about what you're.

534
00:26:21.039 --> 00:26:25.240
<v Speaker 4>Doing and to be honest developers and lots of responsibilities.

535
00:26:25.480 --> 00:26:29.759
<v Speaker 4>Like we, we tend to go with the question can

536
00:26:29.799 --> 00:26:31.559
<v Speaker 4>we and not so much should we?

537
00:26:31.559 --> 00:26:32.079
<v Speaker 1>Should we?

538
00:26:33.519 --> 00:26:36.359
<v Speaker 2>That's why you keep SIS admins around. We're the suspicious ones.

539
00:26:38.160 --> 00:26:40.440
<v Speaker 2>This is actually a good idea. I don't think we

540
00:26:40.480 --> 00:26:41.200
<v Speaker 2>can do it.

541
00:26:41.319 --> 00:26:42.160
<v Speaker 1>We can do it?

542
00:26:42.279 --> 00:26:43.359
<v Speaker 2>No you can't, No.

543
00:26:43.400 --> 00:26:43.960
<v Speaker 3>You can't.

544
00:26:45.440 --> 00:26:48.279
<v Speaker 4>It's like we as developers we look at SIS admins

545
00:26:48.279 --> 00:26:51.920
<v Speaker 4>and DBAs and security people as really boring people who

546
00:26:51.960 --> 00:26:55.680
<v Speaker 4>say no to everything. There might actually be reason for

547
00:26:55.759 --> 00:26:57.519
<v Speaker 4>them say it.

548
00:26:58.559 --> 00:27:00.839
<v Speaker 1>You might want to put some guard around this.

549
00:27:02.240 --> 00:27:04.720
<v Speaker 2>When you devs do something to build a cool new feature,

550
00:27:04.759 --> 00:27:07.240
<v Speaker 2>like you can get an A. Like people get really excited.

551
00:27:07.279 --> 00:27:10.319
<v Speaker 2>They throw parties and stuff when an AMN does their

552
00:27:10.400 --> 00:27:13.839
<v Speaker 2>job perfectly. Nobody can tell. Like the guest you can

553
00:27:13.880 --> 00:27:16.160
<v Speaker 2>get is a C. I mean it's easy to get

554
00:27:16.160 --> 00:27:18.680
<v Speaker 2>an F just turn a server off like that. You're like,

555
00:27:18.920 --> 00:27:20.920
<v Speaker 2>you're like the sound guys. You're gonna do is a C.

556
00:27:21.599 --> 00:27:25.079
<v Speaker 1>You're like the sound guy right that if there's no feedback,

557
00:27:25.160 --> 00:27:28.440
<v Speaker 1>you don't exist. But the minute somebody hears feedback, oh

558
00:27:28.519 --> 00:27:30.960
<v Speaker 1>that sound guy.

559
00:27:31.000 --> 00:27:35.279
<v Speaker 2>Exactly where does serverleists fit in this equation for you? Chris?

560
00:27:36.400 --> 00:27:38.960
<v Speaker 4>So, I this is going to sound weird because I've

561
00:27:38.960 --> 00:27:40.359
<v Speaker 4>been doing it. I should be doing a lot more

562
00:27:40.359 --> 00:27:42.519
<v Speaker 4>servilists and more usher functions than I am doing at

563
00:27:42.519 --> 00:27:47.160
<v Speaker 4>the moment. I've I do mostly API apps, and I

564
00:27:47.200 --> 00:27:50.160
<v Speaker 4>know that you can build APIs using serverallest functions and

565
00:27:50.200 --> 00:27:52.400
<v Speaker 4>as your functions and all that stuff, But I actually

566
00:27:52.480 --> 00:27:55.680
<v Speaker 4>tend to go for a core APIs for that because

567
00:27:55.680 --> 00:27:57.960
<v Speaker 4>they need to be online anyways. I need to have

568
00:27:58.039 --> 00:28:02.359
<v Speaker 4>an instance running and they can scale. I think serverlus

569
00:28:02.480 --> 00:28:05.480
<v Speaker 4>is the astra function stuff is really really neat for

570
00:28:05.559 --> 00:28:09.519
<v Speaker 4>things like managing ques, so basically being able to send

571
00:28:09.920 --> 00:28:12.200
<v Speaker 4>things onto the service bus and then have functions pick

572
00:28:12.279 --> 00:28:14.799
<v Speaker 4>them up and act on that, not having to run

573
00:28:14.839 --> 00:28:19.039
<v Speaker 4>my own stuff for that. That fits imperfectly. But once again,

574
00:28:19.039 --> 00:28:21.119
<v Speaker 4>I think it's a mindset. I have colleagues who do

575
00:28:21.279 --> 00:28:25.880
<v Speaker 4>basically everything using functions, including their APIs, because they're used

576
00:28:25.880 --> 00:28:27.799
<v Speaker 4>to that, and I think that idea is really good.

577
00:28:28.559 --> 00:28:31.240
<v Speaker 4>If you can build it like that, then yeah, I

578
00:28:31.240 --> 00:28:33.079
<v Speaker 4>guess there's money to be made as well. And that's

579
00:28:33.079 --> 00:28:34.559
<v Speaker 4>the big part. I assume you.

580
00:28:34.519 --> 00:28:37.319
<v Speaker 1>Said the magic word though, ques right, If you have

581
00:28:37.440 --> 00:28:40.279
<v Speaker 1>Q and you have retry policies with poly or something

582
00:28:40.359 --> 00:28:42.880
<v Speaker 1>like that around, the functions make a lot more sense

583
00:28:42.960 --> 00:28:45.039
<v Speaker 1>because it doesn't matter if they're going to take a

584
00:28:45.119 --> 00:28:47.319
<v Speaker 1>minute to spin up, they'll eventually get the message and

585
00:28:47.359 --> 00:28:52.440
<v Speaker 1>passing on. And you know, in asynchronous processes anyway, in

586
00:28:52.599 --> 00:28:57.519
<v Speaker 1>more synchronous or near synchronous processes where you need to

587
00:28:57.559 --> 00:29:00.279
<v Speaker 1>reply right away, maybe.

588
00:29:00.519 --> 00:29:02.519
<v Speaker 4>Yeah, I agree with that well.

589
00:29:02.559 --> 00:29:06.720
<v Speaker 2>And again I think cloud lends itself to asynchronicity just

590
00:29:06.720 --> 00:29:08.960
<v Speaker 2>because you can't. You don't want to hold a connection

591
00:29:09.039 --> 00:29:11.400
<v Speaker 2>longer than absolutely need to. But it is a mindset

592
00:29:11.480 --> 00:29:13.680
<v Speaker 2>to get into. I push the message to the que

593
00:29:13.720 --> 00:29:16.039
<v Speaker 2>and I have a separate pipeline for a response, and

594
00:29:16.119 --> 00:29:19.119
<v Speaker 2>even though that responds maybe a few milliseconds later, it's

595
00:29:19.200 --> 00:29:20.519
<v Speaker 2>just not actually well.

596
00:29:20.559 --> 00:29:25.039
<v Speaker 1>Yeah, and to add to that, Richard, you think it's synchronous,

597
00:29:25.079 --> 00:29:27.440
<v Speaker 1>but it's a synchronous So in those things that there

598
00:29:27.440 --> 00:29:30.839
<v Speaker 1>are all asynchronous processes, but when you want to show

599
00:29:30.880 --> 00:29:34.240
<v Speaker 1>the user the result right away, right and you don't

600
00:29:34.279 --> 00:29:37.440
<v Speaker 1>want them to wait maybe a minute because something is down,

601
00:29:37.759 --> 00:29:40.079
<v Speaker 1>some function is now needs to spin up, and there's

602
00:29:40.200 --> 00:29:42.640
<v Speaker 1>cues to handle it, and they'll eventually get there. But

603
00:29:42.759 --> 00:29:45.920
<v Speaker 1>for those things, I agree with Chris that you know,

604
00:29:45.960 --> 00:29:48.119
<v Speaker 1>you kind of want to hit those and make sure

605
00:29:48.160 --> 00:29:49.640
<v Speaker 1>that they come back as soon as possible.

606
00:29:49.720 --> 00:29:52.000
<v Speaker 4>Yeah, it's kind of exactly where I was going. Is

607
00:29:53.039 --> 00:29:57.319
<v Speaker 4>we as developers love ACYNC because it makes it resilient

608
00:29:57.359 --> 00:29:59.400
<v Speaker 4>and it can handle load and all of that stuff,

609
00:29:59.400 --> 00:30:03.599
<v Speaker 4>But it also needs a shift in the UX because

610
00:30:03.680 --> 00:30:05.519
<v Speaker 4>all of a sudden, when you press a button and

611
00:30:05.559 --> 00:30:10.279
<v Speaker 4>you get yes, that's done, it's not actually done. And

612
00:30:10.319 --> 00:30:13.039
<v Speaker 4>I think for us as developers, a UI like that

613
00:30:13.119 --> 00:30:16.319
<v Speaker 4>makes sense, but for any other developed user of a

614
00:30:16.359 --> 00:30:19.079
<v Speaker 4>system that's not a developer. The whole idea of having

615
00:30:19.160 --> 00:30:22.440
<v Speaker 4>a synchronis process a press a button and the button

616
00:30:22.480 --> 00:30:25.039
<v Speaker 4>doesn't actually do it. The button just sends a message

617
00:30:25.039 --> 00:30:27.319
<v Speaker 4>and then it will happen at some point later on.

618
00:30:27.519 --> 00:30:31.519
<v Speaker 4>Is a hard to understand because they don't understand how

619
00:30:31.519 --> 00:30:34.640
<v Speaker 4>this technology works and be really hard to do a

620
00:30:34.759 --> 00:30:37.799
<v Speaker 4>UX that makes sense, and then that conveys that idea

621
00:30:37.839 --> 00:30:41.480
<v Speaker 4>that yes, we have kind of done what you've asked

622
00:30:41.519 --> 00:30:43.880
<v Speaker 4>us to do, but it will take time and if

623
00:30:43.920 --> 00:30:46.160
<v Speaker 4>you refresh the list where you added the thing to

624
00:30:46.319 --> 00:30:49.720
<v Speaker 4>that list will unless you have somehow cash did client

625
00:30:49.839 --> 00:30:52.200
<v Speaker 4>side and remember that you have made that thing and

626
00:30:52.240 --> 00:30:55.480
<v Speaker 4>added on the client, it wi't actually show up in

627
00:30:55.480 --> 00:30:59.279
<v Speaker 4>that list until X time later, which is confusing.

628
00:30:59.599 --> 00:31:02.039
<v Speaker 2>I mean I found more users are used to that

629
00:31:02.119 --> 00:31:06.200
<v Speaker 2>now because Facebook, right, yeah, because eventual consistency is part

630
00:31:06.240 --> 00:31:06.960
<v Speaker 2>of their lives now.

631
00:31:07.200 --> 00:31:09.920
<v Speaker 1>And if you want to understand the asn QI process,

632
00:31:10.000 --> 00:31:11.880
<v Speaker 1>go order something on Amazon.

633
00:31:11.519 --> 00:31:14.880
<v Speaker 2>Yeah, because it doesn't immediately it says, okay, I've taken

634
00:31:14.920 --> 00:31:17.039
<v Speaker 2>your order. But then if thank you for your order. Yeah,

635
00:31:17.480 --> 00:31:19.279
<v Speaker 2>you know, we learned this in e commerce a long

636
00:31:19.319 --> 00:31:21.519
<v Speaker 2>time ago. Just feed them emails. Hey, you know now

637
00:31:21.519 --> 00:31:23.519
<v Speaker 2>I send you emails I got your order, yeah, and

638
00:31:23.519 --> 00:31:26.880
<v Speaker 2>I'm like, hey, I picked your order, We've packed your order,

639
00:31:26.960 --> 00:31:29.279
<v Speaker 2>we're shipping your order. Here's a tracking number like people

640
00:31:29.559 --> 00:31:32.200
<v Speaker 2>like that. But you said it's a sense of progress.

641
00:31:32.559 --> 00:31:35.359
<v Speaker 4>You still kind of need and a sink part of

642
00:31:35.400 --> 00:31:38.039
<v Speaker 4>the ordering as well, because you need you need to create.

643
00:31:38.279 --> 00:31:41.519
<v Speaker 4>In my opinion, you need to create the order synchronously

644
00:31:41.599 --> 00:31:44.200
<v Speaker 4>in a sort of a created state, so that when

645
00:31:44.200 --> 00:31:47.759
<v Speaker 4>you refresh your orders page, it actually finds the thing.

646
00:31:47.880 --> 00:31:51.200
<v Speaker 4>Even so, it becomes a combination of a synchronous thing

647
00:31:51.240 --> 00:31:53.200
<v Speaker 4>that goes back and says here is your order ID,

648
00:31:53.920 --> 00:31:56.079
<v Speaker 4>and then a message that goes away and does the

649
00:31:56.119 --> 00:31:59.119
<v Speaker 4>rest of it. That makes that makes sense, But there's

650
00:31:59.119 --> 00:32:01.559
<v Speaker 4>still a sink a part in that, because if you

651
00:32:01.599 --> 00:32:03.680
<v Speaker 4>were just to say at order and then you go

652
00:32:03.720 --> 00:32:05.640
<v Speaker 4>to your orders page and there's no order in there

653
00:32:05.720 --> 00:32:06.799
<v Speaker 4>that says that you have made.

654
00:32:06.680 --> 00:32:09.039
<v Speaker 2>It, it should it should definitely appear the fact the

655
00:32:09.079 --> 00:32:11.319
<v Speaker 2>issues that I have received the order. That's as much

656
00:32:11.319 --> 00:32:13.519
<v Speaker 2>as I'm saying, I've just gotten your message, I haven't

657
00:32:13.519 --> 00:32:14.279
<v Speaker 2>done anything else.

658
00:32:14.599 --> 00:32:19.640
<v Speaker 1>And that's a fairly low low costing, low cost API call,

659
00:32:19.720 --> 00:32:20.160
<v Speaker 1>isn't it.

660
00:32:20.160 --> 00:32:23.680
<v Speaker 2>It's like it's an insert and inserts are easy.

661
00:32:24.000 --> 00:32:26.839
<v Speaker 1>Yeah, it's an insert. Right, here's the customer ID, here's

662
00:32:26.880 --> 00:32:29.559
<v Speaker 1>the order I D here's the data and time, and

663
00:32:29.599 --> 00:32:32.880
<v Speaker 1>here are the products. Boom put it in the database.

664
00:32:33.279 --> 00:32:34.920
<v Speaker 2>I mean in the end, all you're doing is showing

665
00:32:34.960 --> 00:32:35.920
<v Speaker 2>the chain of messages.

666
00:32:36.119 --> 00:32:37.359
<v Speaker 1>Yeah, so it is.

667
00:32:37.519 --> 00:32:39.160
<v Speaker 2>I think it's more to do with the way we

668
00:32:39.319 --> 00:32:43.559
<v Speaker 2>need to think to separate the flow of data from

669
00:32:43.599 --> 00:32:47.119
<v Speaker 2>the flow of the product. But you know, we fall

670
00:32:47.160 --> 00:32:49.119
<v Speaker 2>back on the e commerce scenario because the async works

671
00:32:49.119 --> 00:32:51.599
<v Speaker 2>really well there. I think it's far more challenging and

672
00:32:51.720 --> 00:32:55.119
<v Speaker 2>people understand it working in an info worker space with

673
00:32:55.200 --> 00:32:57.799
<v Speaker 2>some kind of custom app where you want to use

674
00:32:57.799 --> 00:33:01.680
<v Speaker 2>asynchronosy for performance, but it does frustrate the user to

675
00:33:01.759 --> 00:33:04.240
<v Speaker 2>see when does my changes actually appear?

676
00:33:04.480 --> 00:33:07.519
<v Speaker 4>Yeah, but there's also scenarios where asynchros doesn't work at

677
00:33:07.559 --> 00:33:10.720
<v Speaker 4>all like I've used I've worked a little bit with

678
00:33:11.000 --> 00:33:17.640
<v Speaker 4>online auctioning. Asynchronous auction bids is a bad IDEA.

679
00:33:16.759 --> 00:33:20.039
<v Speaker 2>Little tricky, little tricky. Yeah, And Chris, we got interrupt

680
00:33:20.039 --> 00:33:22.480
<v Speaker 2>for one moment with this very important set of messages,

681
00:33:26.519 --> 00:33:28.920
<v Speaker 2>and we're back is dot net Rocks. I'm Richard Campbell.

682
00:33:28.960 --> 00:33:32.319
<v Speaker 2>Let's call Franklin. Hey talking to Frank Chris Kluck and

683
00:33:32.480 --> 00:33:34.839
<v Speaker 2>a little a little bit about this whole cloud native thing,

684
00:33:34.839 --> 00:33:37.519
<v Speaker 2>and hey, if these ads aren't something you want, you

685
00:33:37.559 --> 00:33:39.400
<v Speaker 2>can go to Patreon and sign up and get an

686
00:33:39.400 --> 00:33:41.559
<v Speaker 2>ad free version of Dona.

687
00:33:41.440 --> 00:33:44.599
<v Speaker 1>Rocks absolutely five bucks a month Patreon dot dot net,

688
00:33:44.680 --> 00:33:45.480
<v Speaker 1>rocks dot com.

689
00:33:45.519 --> 00:33:48.440
<v Speaker 2>Should we talk about Aspire? How does Aspire fitness equation?

690
00:33:48.559 --> 00:33:48.880
<v Speaker 1>Chris?

691
00:33:50.279 --> 00:33:53.680
<v Speaker 4>Yeah, So aspires is an interesting thing because it's actually

692
00:33:54.119 --> 00:33:55.240
<v Speaker 4>a few different things.

693
00:33:56.000 --> 00:33:58.000
<v Speaker 2>How do you define it? Because that seems to be

694
00:33:58.079 --> 00:33:59.640
<v Speaker 2>the magic term these days.

695
00:33:59.759 --> 00:34:03.079
<v Speaker 4>Yeah, I know, so I have a fairly pragmatic view

696
00:34:03.079 --> 00:34:05.599
<v Speaker 4>on that as well. I like being pragmatic, and so,

697
00:34:06.039 --> 00:34:08.679
<v Speaker 4>first of all, the spire is three parts in my opinion,

698
00:34:08.760 --> 00:34:10.920
<v Speaker 4>so you are actually kind of for but I ignore

699
00:34:10.960 --> 00:34:15.079
<v Speaker 4>the fourth because I don't like it. Very pragmatic view

700
00:34:15.119 --> 00:34:20.280
<v Speaker 4>on things. The first part is orchestration, so for dev time,

701
00:34:20.599 --> 00:34:24.480
<v Speaker 4>it gives you orchestration of services on your local machine.

702
00:34:24.519 --> 00:34:29.239
<v Speaker 4>So basically you get to encode, define what your set

703
00:34:29.320 --> 00:34:31.440
<v Speaker 4>up looks like, what services you have. If you have

704
00:34:31.800 --> 00:34:34.480
<v Speaker 4>seql server and read this, and you have three APIs

705
00:34:34.559 --> 00:34:37.280
<v Speaker 4>and a web app and a few things like that, so.

706
00:34:37.239 --> 00:34:40.199
<v Speaker 2>It's sort of set up to an infrastructures to service implement.

707
00:34:40.480 --> 00:34:44.159
<v Speaker 4>Yeah, and you basically it's implemented the cool way because

708
00:34:44.159 --> 00:34:48.159
<v Speaker 4>it gives you an actual project in visual studio and

709
00:34:48.199 --> 00:34:50.159
<v Speaker 4>then you set that as your startup and you start

710
00:34:50.159 --> 00:34:53.440
<v Speaker 4>your project, and then that project launches all the other

711
00:34:53.519 --> 00:34:57.320
<v Speaker 4>projects for you and make sure that they can organize

712
00:34:57.360 --> 00:34:59.559
<v Speaker 4>as the service discovery and making sure that it starts

713
00:34:59.599 --> 00:35:02.719
<v Speaker 4>containing that needs to be running and all of that stuff.

714
00:35:02.840 --> 00:35:04.840
<v Speaker 2>So this does feel like that pat you would do

715
00:35:04.880 --> 00:35:06.840
<v Speaker 2>all this by hand. Now you don't need to.

716
00:35:07.159 --> 00:35:10.320
<v Speaker 4>Yeah, I know people say that, oh, you can do

717
00:35:10.360 --> 00:35:12.880
<v Speaker 4>that with doctor composed, and yes you can. You can

718
00:35:12.920 --> 00:35:14.679
<v Speaker 4>do all of that with doctor composed. But there's a

719
00:35:14.719 --> 00:35:17.440
<v Speaker 4>problem with doctor composed in this case, and that's the well,

720
00:35:17.480 --> 00:35:19.599
<v Speaker 4>it's not a problem, but it makes it harder. And

721
00:35:19.639 --> 00:35:21.920
<v Speaker 4>also the cool thing about this is that it goes

722
00:35:21.960 --> 00:35:24.719
<v Speaker 4>straight into debugging for all of your projects, so you

723
00:35:24.719 --> 00:35:27.559
<v Speaker 4>don't have to mess about with getting debugging to work

724
00:35:27.599 --> 00:35:29.639
<v Speaker 4>together with a bunch of doctor composed stuff and all

725
00:35:29.639 --> 00:35:32.960
<v Speaker 4>of that. It's just it just works on your local machine.

726
00:35:33.000 --> 00:35:37.519
<v Speaker 4>And I enjoying it a lot. It's very opinionated, definitely,

727
00:35:38.679 --> 00:35:41.000
<v Speaker 4>and it basically it does run up a bunch of

728
00:35:41.079 --> 00:35:43.079
<v Speaker 4>containers on your machine and it does set up a

729
00:35:43.079 --> 00:35:46.360
<v Speaker 4>bunch of yar reverse proxy work and figures out ports

730
00:35:46.360 --> 00:35:49.760
<v Speaker 4>on your machine and stuff like that, and everything you

731
00:35:49.840 --> 00:35:52.320
<v Speaker 4>put in can then basically expose a port or a

732
00:35:52.320 --> 00:35:54.880
<v Speaker 4>connection string. And once a thing exposes a port or

733
00:35:54.880 --> 00:35:57.400
<v Speaker 4>a connection string, you can then say that service A

734
00:35:57.639 --> 00:36:00.199
<v Speaker 4>depends on service B, and then automatically a service A

735
00:36:00.440 --> 00:36:04.400
<v Speaker 4>gets the correct port or the correct connection stream for

736
00:36:04.599 --> 00:36:06.480
<v Speaker 4>service A and things like that, and.

737
00:36:06.400 --> 00:36:08.719
<v Speaker 2>That service discovery pattern is a pain in the butt

738
00:36:08.760 --> 00:36:10.800
<v Speaker 2>to code by hand, but if someone's got to genet

739
00:36:10.840 --> 00:36:13.800
<v Speaker 2>for me, then thanks very much. But it does mean

740
00:36:14.199 --> 00:36:15.679
<v Speaker 2>naturally resilient.

741
00:36:15.440 --> 00:36:18.320
<v Speaker 4>Yes, and it's really cool because it just based it's

742
00:36:18.360 --> 00:36:21.679
<v Speaker 4>based on environment variables. So I didn't actually know that.

743
00:36:21.880 --> 00:36:23.599
<v Speaker 4>But there is a there's a new Git package that

744
00:36:23.639 --> 00:36:27.320
<v Speaker 4>you can install on any core application that basically turns

745
00:36:27.360 --> 00:36:31.719
<v Speaker 4>your your HP client for example, or your g RPC client,

746
00:36:31.800 --> 00:36:35.320
<v Speaker 4>so that if you give it your I, it can

747
00:36:35.360 --> 00:36:37.679
<v Speaker 4>go and look up that your I somewhere else than DNS.

748
00:36:37.719 --> 00:36:40.719
<v Speaker 4>So the default implementation is DNS, but what they are

749
00:36:40.760 --> 00:36:43.719
<v Speaker 4>implementing is a service discovery thing that goes and look

750
00:36:43.760 --> 00:36:46.159
<v Speaker 4>at your look up and then goes, oh, is there

751
00:36:46.199 --> 00:36:49.440
<v Speaker 4>an environment variable with a pre defined format that gives

752
00:36:49.440 --> 00:36:51.880
<v Speaker 4>me actual URL, So you go, I want to talk

753
00:36:51.920 --> 00:36:54.880
<v Speaker 4>to h GPS cal and slash lash products right, and

754
00:36:54.920 --> 00:36:57.679
<v Speaker 4>then instead of going products as a DNS resolution, it

755
00:36:57.719 --> 00:37:01.559
<v Speaker 4>goes and looks at an environment variable Aspire has injected

756
00:37:01.599 --> 00:37:02.800
<v Speaker 4>for you, and that just works.

757
00:37:03.039 --> 00:37:04.159
<v Speaker 1>Yeah, that's nice, which.

758
00:37:04.000 --> 00:37:06.400
<v Speaker 4>Also means that you can use that in production as

759
00:37:06.400 --> 00:37:08.199
<v Speaker 4>well if you want to. Yeah, because older A Suddenly,

760
00:37:08.480 --> 00:37:10.679
<v Speaker 4>as long as the environment variable is there, you're good

761
00:37:10.719 --> 00:37:10.880
<v Speaker 4>to go.

762
00:37:11.480 --> 00:37:13.840
<v Speaker 2>This is the stuff that makes this admits happy folks

763
00:37:13.920 --> 00:37:15.880
<v Speaker 2>developers too, the fact that I can go, oh, we

764
00:37:15.920 --> 00:37:17.280
<v Speaker 2>need to move that, and we need to move it

765
00:37:17.360 --> 00:37:20.199
<v Speaker 2>right now, and I can just change that environment variable

766
00:37:20.199 --> 00:37:23.360
<v Speaker 2>and the app continues running. Just can't find the old one,

767
00:37:23.400 --> 00:37:26.440
<v Speaker 2>redoes discovery, finds a new one and goes, yeah, no

768
00:37:26.599 --> 00:37:29.840
<v Speaker 2>rebooting servers. You know, that's amazing.

769
00:37:29.880 --> 00:37:32.440
<v Speaker 1>So I deployed my app to Azure and get this

770
00:37:32.559 --> 00:37:36.360
<v Speaker 1>error message that it can't find HDPS local host colon

771
00:37:36.559 --> 00:37:39.719
<v Speaker 1>five three nine seven and I don't know what to

772
00:37:39.800 --> 00:37:41.960
<v Speaker 1>do about that, and I need to open a tech

773
00:37:42.000 --> 00:37:42.800
<v Speaker 1>support ticket.

774
00:37:43.039 --> 00:37:47.559
<v Speaker 4>Yes. Yeah, So that's that's kind of one part of

775
00:37:47.639 --> 00:37:51.360
<v Speaker 4>and that's why I really enjoy Aspire because it makes

776
00:37:51.440 --> 00:37:54.119
<v Speaker 4>that very easy for me to get multiple services, And

777
00:37:54.440 --> 00:37:57.599
<v Speaker 4>even if you're just running and I spent that web

778
00:37:57.920 --> 00:38:01.639
<v Speaker 4>with a Sequel database or postcars database or something like that,

779
00:38:01.760 --> 00:38:04.679
<v Speaker 4>or you just read this, it makes sense to connect

780
00:38:04.679 --> 00:38:07.599
<v Speaker 4>that anyway, because it also means that it can actually

781
00:38:07.639 --> 00:38:10.199
<v Speaker 4>spin up your sequel server as a container for you instead,

782
00:38:10.239 --> 00:38:12.280
<v Speaker 4>So if you don't want to have seql server installed,

783
00:38:12.320 --> 00:38:14.639
<v Speaker 4>it will download and run the container through Doctor or

784
00:38:14.719 --> 00:38:20.119
<v Speaker 4>Podman for you, which is really really nice. So I'd

785
00:38:20.199 --> 00:38:23.280
<v Speaker 4>use it for basically anything I can think of. The

786
00:38:23.400 --> 00:38:29.320
<v Speaker 4>second part is I guess the tooling. You do get

787
00:38:29.360 --> 00:38:31.760
<v Speaker 4>a bit of tooling in Vicious Studio that helps you,

788
00:38:31.840 --> 00:38:36.480
<v Speaker 4>but honestly, the tooling is minute. It When you add

789
00:38:36.519 --> 00:38:41.159
<v Speaker 4>a new project into an Aspire enabled solution, it basically

790
00:38:41.159 --> 00:38:44.840
<v Speaker 4>asked you during the create new project part, It says

791
00:38:45.159 --> 00:38:47.400
<v Speaker 4>do you want to enroll this in Aspire? And you

792
00:38:47.480 --> 00:38:51.079
<v Speaker 4>go yes, and it basically configures Aspire for you with

793
00:38:51.239 --> 00:38:56.079
<v Speaker 4>like two lines of code. Not a huge deal. It

794
00:38:56.079 --> 00:38:59.480
<v Speaker 4>does give you some extra options of like add Aspire

795
00:38:59.519 --> 00:39:02.960
<v Speaker 4>component and a few little menu items like that, but

796
00:39:03.079 --> 00:39:05.719
<v Speaker 4>nothing huge from a tooling point of view in my opinion.

797
00:39:07.280 --> 00:39:11.719
<v Speaker 4>And then the third part that I like is Aspire components.

798
00:39:12.280 --> 00:39:17.559
<v Speaker 4>So Aspire components are basically nugit packages, but they're defined

799
00:39:17.599 --> 00:39:21.599
<v Speaker 4>to work with Aspire, which means that they actually have

800
00:39:22.280 --> 00:39:26.840
<v Speaker 4>open telemetry for example, pre configured and sensible defaults for

801
00:39:27.079 --> 00:39:30.360
<v Speaker 4>Azure or sorry, cloud native stuff configured. So if you

802
00:39:30.400 --> 00:39:32.599
<v Speaker 4>add sql server, for example, say that you want to

803
00:39:32.639 --> 00:39:36.239
<v Speaker 4>use antiity framework with sql server, if you do that

804
00:39:36.280 --> 00:39:39.400
<v Speaker 4>through the Aspire component, it will make sure to set

805
00:39:39.480 --> 00:39:43.400
<v Speaker 4>up retry policies and things like that for your sequel connections.

806
00:39:43.840 --> 00:39:47.199
<v Speaker 4>It will add I think context pooling for your dB context,

807
00:39:48.079 --> 00:39:51.039
<v Speaker 4>and it will also configure so that all of your

808
00:39:51.639 --> 00:39:54.599
<v Speaker 4>sequel queries and all of that goes into open telemetry

809
00:39:54.679 --> 00:39:57.400
<v Speaker 4>so you can get telemetry on your database connections and

810
00:39:57.440 --> 00:39:59.079
<v Speaker 4>things like that, and it just works out.

811
00:39:58.960 --> 00:39:59.440
<v Speaker 3>In the box.

812
00:39:59.639 --> 00:40:03.199
<v Speaker 2>Nice. It's just cloud native defaults, yes.

813
00:40:03.519 --> 00:40:06.239
<v Speaker 4>And it's all something you can configure on your own.

814
00:40:06.320 --> 00:40:09.840
<v Speaker 4>But honestly, how many of you know how to configure

815
00:40:09.880 --> 00:40:14.800
<v Speaker 4>the HTTP client correctly for a cloud native solution. It's like,

816
00:40:14.920 --> 00:40:16.559
<v Speaker 4>there are a few things that you need to set

817
00:40:16.639 --> 00:40:20.679
<v Speaker 4>up Aspire component versions, and Aspire basically does all of

818
00:40:20.719 --> 00:40:23.360
<v Speaker 4>that sensible defaults.

819
00:40:22.679 --> 00:40:25.679
<v Speaker 2>For you, yes, right every time?

820
00:40:25.760 --> 00:40:26.079
<v Speaker 1>Please?

821
00:40:29.000 --> 00:40:30.599
<v Speaker 4>And then I guess the last thing, the one that

822
00:40:30.639 --> 00:40:36.199
<v Speaker 4>I dislike is there is a deployment story, so you

823
00:40:36.239 --> 00:40:40.159
<v Speaker 4>can you can form your Aspire project, go and get

824
00:40:40.360 --> 00:40:45.360
<v Speaker 4>a manifest file that basically defines how your things are connected,

825
00:40:45.480 --> 00:40:48.519
<v Speaker 4>which is adjacent file. I think that says that I

826
00:40:48.599 --> 00:40:51.199
<v Speaker 4>have some compute and I have some environment variables and

827
00:40:51.199 --> 00:40:53.400
<v Speaker 4>they point to other compute blah blah blah, and then

828
00:40:53.840 --> 00:40:57.320
<v Speaker 4>that manifest can then be used by other tools to

829
00:40:57.480 --> 00:41:00.119
<v Speaker 4>generate and deploy environment. So, for example, if if you

830
00:41:00.199 --> 00:41:04.000
<v Speaker 4>want to deploy your Aspire solution to Azure, right, you

831
00:41:04.039 --> 00:41:07.199
<v Speaker 4>can go to the AZD and say ACD up, give

832
00:41:07.199 --> 00:41:11.599
<v Speaker 4>it a Spire project. ACD will generate the manifest and

833
00:41:11.639 --> 00:41:14.400
<v Speaker 4>based on the manifest, generate a bunch of bicyp files

834
00:41:14.480 --> 00:41:17.840
<v Speaker 4>or armed template things that will go and create an

835
00:41:18.159 --> 00:41:21.519
<v Speaker 4>environment for you in Azure and deploy your application to

836
00:41:21.599 --> 00:41:24.480
<v Speaker 4>an Azure container app set up in Azure for you automatically.

837
00:41:24.519 --> 00:41:27.280
<v Speaker 1>Okay, you do the same in Polumi or terror Form

838
00:41:27.480 --> 00:41:28.079
<v Speaker 1>for example.

839
00:41:28.159 --> 00:41:31.000
<v Speaker 4>It's it's well, the thing is you don't see any

840
00:41:31.079 --> 00:41:33.800
<v Speaker 4>of the arm stuff underneath is just magically generated by

841
00:41:33.840 --> 00:41:35.599
<v Speaker 4>the manifest.

842
00:41:35.800 --> 00:41:36.440
<v Speaker 1>Right. Yeah.

843
00:41:36.480 --> 00:41:39.239
<v Speaker 2>I would also argue you're the one person most qualified

844
00:41:39.239 --> 00:41:43.440
<v Speaker 2>to criticize that because you've written all those different forms,

845
00:41:43.480 --> 00:41:47.800
<v Speaker 2>like you strongly opinionated I how Coach would be built.

846
00:41:48.119 --> 00:41:49.920
<v Speaker 4>The thing is, I really don't care too much about

847
00:41:49.920 --> 00:41:51.920
<v Speaker 4>the code as such. That the thing that irks me

848
00:41:51.960 --> 00:41:56.000
<v Speaker 4>about it is that people have now spent years upon

849
00:41:56.199 --> 00:42:00.000
<v Speaker 4>years telling us that as professional developers, friends don't let

850
00:42:00.119 --> 00:42:04.719
<v Speaker 4>friends right click publish. And having spent a couple of

851
00:42:04.800 --> 00:42:08.920
<v Speaker 4>years doing develops and building both Terra forum and Polumi

852
00:42:09.039 --> 00:42:12.480
<v Speaker 4>and BICEP templates for a bunch of as your resources,

853
00:42:13.559 --> 00:42:16.679
<v Speaker 4>the idea of going ACD up and then basically have

854
00:42:16.760 --> 00:42:20.159
<v Speaker 4>an environment generated for me by with the faults in there,

855
00:42:20.880 --> 00:42:23.920
<v Speaker 4>I don't know. It feels like a command line version

856
00:42:23.960 --> 00:42:27.039
<v Speaker 4>of right click publish, which I'm not a big fan

857
00:42:27.119 --> 00:42:31.480
<v Speaker 4>of having. That said, you can also go and get

858
00:42:31.480 --> 00:42:34.119
<v Speaker 4>the bicsep files from your thing, so you can there's

859
00:42:34.159 --> 00:42:35.039
<v Speaker 4>a command, it's.

860
00:42:34.880 --> 00:42:37.199
<v Speaker 2>Just a generator. You don't have to die yes no.

861
00:42:37.440 --> 00:42:39.960
<v Speaker 4>So you can go and ask for the biceps specifically,

862
00:42:40.239 --> 00:42:41.719
<v Speaker 4>and then you can go and look at the bicet

863
00:42:41.719 --> 00:42:43.800
<v Speaker 4>files and you can make modifications to them. But every

864
00:42:43.800 --> 00:42:46.920
<v Speaker 4>time you make a change to your Aspire project, you're

865
00:42:46.960 --> 00:42:49.000
<v Speaker 4>going to have to create new biset templates and you're

866
00:42:49.039 --> 00:42:51.280
<v Speaker 4>going to have to reapply all of your modifications that

867
00:42:51.280 --> 00:42:55.480
<v Speaker 4>you added to them. I like the idea of giving

868
00:42:55.480 --> 00:42:58.599
<v Speaker 4>me a foundation so that I know what environment variables

869
00:42:58.639 --> 00:43:01.320
<v Speaker 4>I need to set up and what it needs to run.

870
00:43:01.360 --> 00:43:04.400
<v Speaker 4>But I want to do it myself. But that's because

871
00:43:04.480 --> 00:43:07.000
<v Speaker 4>I'm old school and meticulous in the way that I

872
00:43:07.000 --> 00:43:07.760
<v Speaker 4>want my things to work.

873
00:43:07.840 --> 00:43:11.559
<v Speaker 1>Did you use Octopus deploy back in the day? Are

874
00:43:11.599 --> 00:43:13.440
<v Speaker 1>you still I have still like it?

875
00:43:13.599 --> 00:43:17.199
<v Speaker 4>I have used Octopus deploy back in the day. I'm

876
00:43:17.239 --> 00:43:20.760
<v Speaker 4>torn because I've always come in with it already pre configured,

877
00:43:20.800 --> 00:43:24.519
<v Speaker 4>and the systems I've been involved in with Octopus are

878
00:43:24.559 --> 00:43:28.440
<v Speaker 4>a bit too complicated. There's been lots of the pipelines

879
00:43:28.440 --> 00:43:30.360
<v Speaker 4>and this thing does that thing, and it deploys this

880
00:43:30.440 --> 00:43:32.519
<v Speaker 4>thing here, and there are four different versions of this

881
00:43:32.519 --> 00:43:34.840
<v Speaker 4>thing over here, and it was hard to figure out.

882
00:43:34.880 --> 00:43:38.159
<v Speaker 4>I think Octopus is a very powerful tool and can

883
00:43:38.239 --> 00:43:42.320
<v Speaker 4>do more than your regular as your pipe develps pipeline

884
00:43:42.360 --> 00:43:48.039
<v Speaker 4>or gettub pipeline as such. But yeah, I guess that

885
00:43:48.159 --> 00:43:51.079
<v Speaker 4>the acd up thing tries to make it as simple

886
00:43:51.119 --> 00:43:53.800
<v Speaker 4>as possible, to make the simplest release possible. So if

887
00:43:53.800 --> 00:43:56.000
<v Speaker 4>you have a little blog or a little personal website.

888
00:43:56.199 --> 00:43:58.639
<v Speaker 4>It can do it for you. But honestly, if I'm

889
00:43:58.639 --> 00:44:00.559
<v Speaker 4>doing something that simple, I.

890
00:44:00.360 --> 00:44:03.239
<v Speaker 2>Don't need this probably not. Yeah, I mean it's a

891
00:44:03.239 --> 00:44:04.840
<v Speaker 2>problem is when you go simple, it's like, why are

892
00:44:04.880 --> 00:44:06.440
<v Speaker 2>you worried about being cloud native? You could have just

893
00:44:06.480 --> 00:44:08.559
<v Speaker 2>been in app service. As soon as you're complex enough,

894
00:44:08.639 --> 00:44:10.920
<v Speaker 2>this is a struggle yep. And I don't know, as

895
00:44:10.920 --> 00:44:14.199
<v Speaker 2>soon as you're in a significant environment with a team

896
00:44:14.280 --> 00:44:18.239
<v Speaker 2>that's working on it, it's not up to you to

897
00:44:18.440 --> 00:44:22.039
<v Speaker 2>run those deployment files. No, I mean I would suggest

898
00:44:22.199 --> 00:44:25.440
<v Speaker 2>you generate them and then you hand them to the

899
00:44:25.440 --> 00:44:28.000
<v Speaker 2>service engineers who now can look at them and say,

900
00:44:28.000 --> 00:44:30.639
<v Speaker 2>what's the difference is from the one we're currently running,

901
00:44:30.679 --> 00:44:32.400
<v Speaker 2>like and sort of can talk through it like it's

902
00:44:32.440 --> 00:44:35.440
<v Speaker 2>a talking point for what the new deployment looks like. Yeah,

903
00:44:35.559 --> 00:44:37.840
<v Speaker 2>but should probably never directly run them.

904
00:44:38.119 --> 00:44:40.480
<v Speaker 4>Or if somebody can build a framework on top of

905
00:44:40.559 --> 00:44:43.519
<v Speaker 4>the manifest so that I can plug in and say

906
00:44:43.559 --> 00:44:46.079
<v Speaker 4>what I want to generate based on the manifest, because

907
00:44:46.159 --> 00:44:49.559
<v Speaker 4>I know that AWS has done a bunch of work

908
00:44:49.639 --> 00:44:52.000
<v Speaker 4>for as Fire as well, so it's not asture only.

909
00:44:52.400 --> 00:44:54.400
<v Speaker 4>And as far as I understand, they are going to

910
00:44:54.480 --> 00:44:56.800
<v Speaker 4>have where they probably already have a way to run

911
00:44:56.840 --> 00:45:01.039
<v Speaker 4>the manifest to generate the AWS resources, so if I

912
00:45:01.039 --> 00:45:03.400
<v Speaker 4>should plug into that. Yeah, so if I could plug

913
00:45:03.440 --> 00:45:06.119
<v Speaker 4>into that and find a way for my develops team

914
00:45:06.159 --> 00:45:08.880
<v Speaker 4>to basically say, okay, so you need some compute, but

915
00:45:08.920 --> 00:45:10.960
<v Speaker 4>we're not running contained reps, I'm going to go and

916
00:45:11.000 --> 00:45:13.920
<v Speaker 4>create AKS pods or I'm going to go and create

917
00:45:13.960 --> 00:45:17.079
<v Speaker 4>a web app environment or whatever for it. But currently

918
00:45:17.159 --> 00:45:19.760
<v Speaker 4>there is no I haven't seen anything like that, but

919
00:45:19.800 --> 00:45:23.079
<v Speaker 4>I think early days so hopefully there will be other

920
00:45:23.159 --> 00:45:26.920
<v Speaker 4>deployment scenarios that can use the manifest file to do

921
00:45:26.960 --> 00:45:30.400
<v Speaker 4>a more sort of configured deployment of what you want.

922
00:45:30.519 --> 00:45:32.239
<v Speaker 2>Yeah, if I think if I were on the inside

923
00:45:32.239 --> 00:45:34.199
<v Speaker 2>of this, I would want those files, but I'd be

924
00:45:34.320 --> 00:45:38.440
<v Speaker 2>diffing them against the existent deploy as a talking point

925
00:45:38.480 --> 00:45:40.239
<v Speaker 2>for how are we utilizing cloud? Like now I can

926
00:45:40.280 --> 00:45:43.199
<v Speaker 2>start making estimates for your utilization like that sort of thing,

927
00:45:43.519 --> 00:45:46.400
<v Speaker 2>and then ask questions about why stuff has changed. Although

928
00:45:46.480 --> 00:45:48.400
<v Speaker 2>arguably half the time the devs are going to go

929
00:45:48.480 --> 00:45:51.159
<v Speaker 2>I don't know, because I just that file is just

930
00:45:51.199 --> 00:45:54.840
<v Speaker 2>magically made for me, right yep. But I associate your

931
00:45:54.880 --> 00:45:58.440
<v Speaker 2>concern there that it is odds are that's going to

932
00:45:58.480 --> 00:46:00.760
<v Speaker 2>work the first time you do it, it'll never work again.

933
00:46:00.840 --> 00:46:04.880
<v Speaker 4>Yeah, I think there's a risk of that. Yes, and

934
00:46:05.119 --> 00:46:07.519
<v Speaker 4>as I said, it's early, it might get a lot better.

935
00:46:07.639 --> 00:46:12.280
<v Speaker 4>But and also to be honest, once your product matures,

936
00:46:12.440 --> 00:46:15.559
<v Speaker 4>the infrastructure might not change as much Anymore's like at

937
00:46:15.599 --> 00:46:18.079
<v Speaker 4>the beginning of the project, you get new service twitch,

938
00:46:18.280 --> 00:46:20.880
<v Speaker 4>you get yeah, there's oh we need that. I read

939
00:46:20.880 --> 00:46:22.519
<v Speaker 4>this cash as well, and oh, by the way, we

940
00:46:22.559 --> 00:46:24.639
<v Speaker 4>need a couple of cues and we need But after

941
00:46:24.679 --> 00:46:27.039
<v Speaker 4>a while, I think from what I've seen that the

942
00:46:27.199 --> 00:46:30.800
<v Speaker 4>environment tends to stabilize and you you change the features.

943
00:46:30.800 --> 00:46:30.920
<v Speaker 1>You know.

944
00:46:30.960 --> 00:46:33.679
<v Speaker 2>What it reminds me of is sql compare back in

945
00:46:33.679 --> 00:46:37.280
<v Speaker 2>the day, Yeah, right, where whereas the dev now I

946
00:46:37.320 --> 00:46:39.440
<v Speaker 2>could use tools like you compare her to say, here's

947
00:46:39.519 --> 00:46:41.119
<v Speaker 2>the delta of the changes I need to make to

948
00:46:41.159 --> 00:46:44.800
<v Speaker 2>the database for the new version, and no DBA like that.

949
00:46:45.480 --> 00:46:47.239
<v Speaker 2>But I'd at least give them the script so they

950
00:46:47.239 --> 00:46:50.119
<v Speaker 2>could see what the change, what we're proposing for the changes,

951
00:46:50.320 --> 00:46:53.199
<v Speaker 2>as opposed to here's the new database. Figure it out

952
00:46:53.280 --> 00:46:55.679
<v Speaker 2>like you save them a lot of work actually, but

953
00:46:55.800 --> 00:46:58.760
<v Speaker 2>it was taken on slowly, like it was a battle

954
00:46:59.079 --> 00:47:02.840
<v Speaker 2>to get that. But the only thing I can say

955
00:47:02.840 --> 00:47:06.159
<v Speaker 2>in favor of it was sometimes you could revert like that,

956
00:47:06.199 --> 00:47:09.880
<v Speaker 2>you could apply those changes in reverse, and normally databases

957
00:47:09.920 --> 00:47:12.039
<v Speaker 2>we could never revert. But the fact that even occasionally

958
00:47:12.119 --> 00:47:17.239
<v Speaker 2>became possible was an astonishing thing. And I wonder, I mean,

959
00:47:17.280 --> 00:47:19.280
<v Speaker 2>this is less of that problem because you're not persisting

960
00:47:19.320 --> 00:47:24.079
<v Speaker 2>data from instance to instance per se, but eventually that

961
00:47:24.400 --> 00:47:27.239
<v Speaker 2>those engineers are getting overwhelmed with changes anyway, So anything

962
00:47:27.280 --> 00:47:30.280
<v Speaker 2>that makes it easier for them to at least see

963
00:47:30.320 --> 00:47:31.559
<v Speaker 2>the changes and move ahead.

964
00:47:31.840 --> 00:47:34.719
<v Speaker 4>Yeah, Yeah, I guess that's kind of the develops way right.

965
00:47:34.840 --> 00:47:37.079
<v Speaker 4>As a developer, I should take an interest in the

966
00:47:37.480 --> 00:47:40.079
<v Speaker 4>part as well and work with the OPS team to

967
00:47:40.159 --> 00:47:42.920
<v Speaker 4>make their lives as easy as possible. And if we

968
00:47:42.960 --> 00:47:45.119
<v Speaker 4>can do that nicely, that would be cool.

969
00:47:45.239 --> 00:47:47.360
<v Speaker 2>Well, and more importantly, with no attention by me because

970
00:47:47.360 --> 00:47:48.039
<v Speaker 2>it's automated.

971
00:47:48.639 --> 00:47:51.960
<v Speaker 4>Yeah, but I guess there's some work to be done

972
00:47:52.000 --> 00:47:55.559
<v Speaker 4>on the manifest for you. For now, I keep saying

973
00:47:55.559 --> 00:47:58.519
<v Speaker 4>that I believe that Aspire is awesome. It's part of

974
00:47:58.519 --> 00:48:01.960
<v Speaker 4>my new workshop that I'm looking on. I'm using it

975
00:48:02.000 --> 00:48:04.960
<v Speaker 4>for everything in there, but I'm not doing anything with

976
00:48:05.000 --> 00:48:08.320
<v Speaker 4>the deployment because it's well in fact, it deploys to

977
00:48:08.400 --> 00:48:10.840
<v Speaker 4>container apps as well. And I've already told you what

978
00:48:10.920 --> 00:48:12.079
<v Speaker 4>I think about Yeah.

979
00:48:11.920 --> 00:48:13.880
<v Speaker 2>Well it said there's that you get that other problem

980
00:48:14.239 --> 00:48:17.039
<v Speaker 2>is h and they ought to have more options there,

981
00:48:17.119 --> 00:48:19.360
<v Speaker 2>like could I deploy this as functions? Could I deploy

982
00:48:19.400 --> 00:48:21.480
<v Speaker 2>this as as web afric containers.

983
00:48:21.880 --> 00:48:26.400
<v Speaker 1>So Chris to you is to Aspire a green field

984
00:48:26.480 --> 00:48:30.039
<v Speaker 1>only no tool or is it something that you can

985
00:48:30.159 --> 00:48:31.800
<v Speaker 1>retrofit into your existing app?

986
00:48:31.960 --> 00:48:34.920
<v Speaker 4>You can definitely retrofit. That's actually part of the tooling

987
00:48:34.920 --> 00:48:37.760
<v Speaker 4>in Visual Studio for Aspire is that if you have

988
00:48:37.800 --> 00:48:40.199
<v Speaker 4>an existing solution, you can right click a project and

989
00:48:40.239 --> 00:48:42.840
<v Speaker 4>say AD or Aspire Orchestration spiify.

990
00:48:43.719 --> 00:48:44.599
<v Speaker 1>I think that's.

991
00:48:46.719 --> 00:48:50.599
<v Speaker 4>AD Aspire Orchestration and it basically if you do that

992
00:48:50.639 --> 00:48:53.280
<v Speaker 4>in a in a brown field project, it will it

993
00:48:53.320 --> 00:48:56.320
<v Speaker 4>will create the Aspire app posts for you, It will

994
00:48:56.320 --> 00:48:58.960
<v Speaker 4>create the service default project that you also need, and

995
00:48:59.000 --> 00:49:00.840
<v Speaker 4>it will plug it in for you so you can start.

996
00:49:00.880 --> 00:49:03.920
<v Speaker 4>So you can definitely add it to any solution more

997
00:49:04.039 --> 00:49:06.679
<v Speaker 4>or less that's out there. And a really cool feature

998
00:49:06.760 --> 00:49:08.840
<v Speaker 4>is that it can also being that it can run

999
00:49:08.920 --> 00:49:13.760
<v Speaker 4>not just projects or containers. It can go and run

1000
00:49:13.840 --> 00:49:16.400
<v Speaker 4>NPM project for example. So if you're running NPM in

1001
00:49:16.480 --> 00:49:19.159
<v Speaker 4>the front end for React stuff, you can go and

1002
00:49:19.280 --> 00:49:21.639
<v Speaker 4>tell it that, hey, I have an NPM project is

1003
00:49:21.719 --> 00:49:24.480
<v Speaker 4>located in this folder, go and run that for me. Hey,

1004
00:49:24.519 --> 00:49:28.679
<v Speaker 4>I have a pre existing image that's in Azure or ACR,

1005
00:49:28.880 --> 00:49:31.320
<v Speaker 4>or I have locally run that for me. Or by

1006
00:49:31.320 --> 00:49:33.719
<v Speaker 4>the way, I have a project over here that has

1007
00:49:33.760 --> 00:49:36.280
<v Speaker 4>a doctor file. So go and build an image for

1008
00:49:36.360 --> 00:49:39.360
<v Speaker 4>me and run that image for me automatically. Because well,

1009
00:49:39.400 --> 00:49:40.920
<v Speaker 4>as soon as you do that, you can't debug it.

1010
00:49:40.960 --> 00:49:42.559
<v Speaker 4>But if you just want to run it, for example,

1011
00:49:42.840 --> 00:49:45.159
<v Speaker 4>then you can go and do that. So for example,

1012
00:49:45.159 --> 00:49:48.039
<v Speaker 4>in my course, I use I have a UI that's

1013
00:49:48.079 --> 00:49:51.079
<v Speaker 4>already built, which is an MPM app, and I run

1014
00:49:51.119 --> 00:49:54.000
<v Speaker 4>that as a Docker file, and then I run Identity

1015
00:49:54.039 --> 00:49:57.320
<v Speaker 4>Server as a supporting thing, as just a pre existing

1016
00:49:57.360 --> 00:49:59.880
<v Speaker 4>image as well. So all of these things just plug

1017
00:49:59.880 --> 00:50:01.719
<v Speaker 4>in nicely, and all of a sudden they start talking

1018
00:50:01.719 --> 00:50:02.920
<v Speaker 4>to each other, which is really cool.

1019
00:50:03.119 --> 00:50:07.440
<v Speaker 1>So we have a customer that has a Blazer server

1020
00:50:07.480 --> 00:50:12.920
<v Speaker 1>application and they wanted to aspire ify their existing app,

1021
00:50:13.159 --> 00:50:15.719
<v Speaker 1>and so one of our guys did the work and

1022
00:50:15.840 --> 00:50:19.519
<v Speaker 1>they found that there was you know, the typical stuff

1023
00:50:19.559 --> 00:50:23.519
<v Speaker 1>when you're doing migrations or whatever that Aspire kind of

1024
00:50:24.119 --> 00:50:28.760
<v Speaker 1>over wrote, not overwrote, but re implemented things that were

1025
00:50:28.760 --> 00:50:31.639
<v Speaker 1>already implemented. And so now you have namespace clashes and

1026
00:50:31.679 --> 00:50:34.199
<v Speaker 1>stuff like that, and you have to make decisions if

1027
00:50:34.199 --> 00:50:37.320
<v Speaker 1>you're going to continue using your code or you're going

1028
00:50:37.360 --> 00:50:41.159
<v Speaker 1>to use the Aspire code. And I can't remember exactly

1029
00:50:41.199 --> 00:50:45.039
<v Speaker 1>what that was, but I remember that was a sticking point.

1030
00:50:45.159 --> 00:50:46.559
<v Speaker 1>It got fixed, of course, but.

1031
00:50:46.840 --> 00:50:50.000
<v Speaker 4>Yeah, I think there might be there might be jagged

1032
00:50:50.119 --> 00:50:52.519
<v Speaker 4>just when you start doing it on ground films for

1033
00:50:52.559 --> 00:50:56.199
<v Speaker 4>obvious reasons. But I think the goal for it is

1034
00:50:56.280 --> 00:50:58.480
<v Speaker 4>to be as much as possible out of the way

1035
00:50:58.559 --> 00:51:01.280
<v Speaker 4>of your actual application code. Even though as I said,

1036
00:51:01.320 --> 00:51:04.039
<v Speaker 4>there are Aspire components that you want to use. So

1037
00:51:04.039 --> 00:51:05.239
<v Speaker 4>even if you do if you do it on a

1038
00:51:05.239 --> 00:51:08.079
<v Speaker 4>brand field, for example, you do want to go and

1039
00:51:08.159 --> 00:51:11.039
<v Speaker 4>change the way that you register your dB context for

1040
00:51:11.320 --> 00:51:13.960
<v Speaker 4>anti the framework, for example, because the one that comes

1041
00:51:13.960 --> 00:51:17.559
<v Speaker 4>through Aspire has the the open telemeter stuff plugged in,

1042
00:51:17.599 --> 00:51:20.079
<v Speaker 4>for example. And you do want if you use Sequel

1043
00:51:20.320 --> 00:51:22.679
<v Speaker 4>connections for example, there's a package for that, and if

1044
00:51:22.679 --> 00:51:24.760
<v Speaker 4>you're using reddis you might want to use the reddis

1045
00:51:25.639 --> 00:51:29.239
<v Speaker 4>core or Aspire component and so on. So there's a

1046
00:51:29.239 --> 00:51:32.320
<v Speaker 4>bit of a walkthrough of upgrading your things, but I

1047
00:51:32.519 --> 00:51:36.400
<v Speaker 4>definitely think it could be worth it for existing projects

1048
00:51:36.440 --> 00:51:39.280
<v Speaker 4>as well, just so that it makes the dev experience

1049
00:51:39.320 --> 00:51:41.679
<v Speaker 4>better because the idea of being able to press F five,

1050
00:51:42.360 --> 00:51:44.119
<v Speaker 4>run the thing, and oh yeah, I forgot to mention.

1051
00:51:44.239 --> 00:51:46.559
<v Speaker 4>You do get an aspired dashboard as well, so when

1052
00:51:46.599 --> 00:51:49.880
<v Speaker 4>you start the application, it starts up a nice uy

1053
00:51:50.039 --> 00:51:53.320
<v Speaker 4>that shows you what services you have, if they're online

1054
00:51:53.400 --> 00:51:55.760
<v Speaker 4>or offline, what ports they're on. You get all the

1055
00:51:55.840 --> 00:51:59.039
<v Speaker 4>logs in one place, filtered by the different applications. You

1056
00:51:59.079 --> 00:52:04.280
<v Speaker 4>get structured logging, you get open telemetry, tracing support, and

1057
00:52:04.360 --> 00:52:07.760
<v Speaker 4>things like that. So it's just that is worth so

1058
00:52:07.920 --> 00:52:10.199
<v Speaker 4>much to me of being able to go and say, oh,

1059
00:52:10.320 --> 00:52:12.960
<v Speaker 4>something went wrong when I talk to Identity server. Sweet,

1060
00:52:12.960 --> 00:52:15.480
<v Speaker 4>I'm just going to look at the logs specifically for

1061
00:52:15.599 --> 00:52:18.559
<v Speaker 4>Identity server, and it's easy for me to go and say, oh,

1062
00:52:18.599 --> 00:52:20.519
<v Speaker 4>that's the thing that went wrong in Identity server. I

1063
00:52:20.519 --> 00:52:22.199
<v Speaker 4>need to go and reconfigure this for example.

1064
00:52:22.280 --> 00:52:26.000
<v Speaker 1>Yeah, right, and this aspiification, if you call it, that

1065
00:52:26.159 --> 00:52:30.039
<v Speaker 1>was very successful and the customers happy. And I love

1066
00:52:30.079 --> 00:52:34.159
<v Speaker 1>the term that you use jagged edges. I mean, I

1067
00:52:34.360 --> 00:52:36.800
<v Speaker 1>know I've heard I've heard that before, but man, it

1068
00:52:36.840 --> 00:52:38.039
<v Speaker 1>really just hits home right here.

1069
00:52:38.079 --> 00:52:39.760
<v Speaker 4>Well, it's that or there'll be dragons.

1070
00:52:39.760 --> 00:52:42.000
<v Speaker 1>There's a few jagged edges you need to yeah, yeah,

1071
00:52:42.039 --> 00:52:43.239
<v Speaker 1>you need to file them down.

1072
00:52:44.119 --> 00:52:44.360
<v Speaker 4>Yep.

1073
00:52:45.039 --> 00:52:46.079
<v Speaker 3>Yeah, it's fine.

1074
00:52:46.119 --> 00:52:48.320
<v Speaker 4>It's tough, and there's always going to be jagged edges

1075
00:52:48.639 --> 00:52:52.519
<v Speaker 4>or dragons at the beginning of a project. And yes,

1076
00:52:52.599 --> 00:52:55.519
<v Speaker 4>the Spire was released quite a while ago now, but

1077
00:52:55.599 --> 00:52:59.119
<v Speaker 4>it's still early days and some of the things, funnily enough,

1078
00:52:59.280 --> 00:53:03.079
<v Speaker 4>is still in beta. There is a there's a thing

1079
00:53:03.079 --> 00:53:06.360
<v Speaker 4>that's commented out if you want to do g RPC telemetry,

1080
00:53:07.039 --> 00:53:10.079
<v Speaker 4>it says, just just removed this comment and you can

1081
00:53:10.079 --> 00:53:13.159
<v Speaker 4>get EUROPC come. And basically that extension method that they're

1082
00:53:13.199 --> 00:53:16.400
<v Speaker 4>calling is not in the actual project. And when you

1083
00:53:16.440 --> 00:53:18.119
<v Speaker 4>need to go and add the NuGet package for it,

1084
00:53:18.159 --> 00:53:20.440
<v Speaker 4>there's only a pre release version of it available. So,

1085
00:53:20.840 --> 00:53:25.039
<v Speaker 4>as I said, early days, but it looks really really promising.

1086
00:53:25.159 --> 00:53:28.559
<v Speaker 2>Mm hmm. That's great, and it's I said, this is

1087
00:53:29.039 --> 00:53:31.280
<v Speaker 2>only came in the in the in New Existence a

1088
00:53:31.320 --> 00:53:34.440
<v Speaker 2>few months ago, like they've been racing to figure it out,

1089
00:53:34.559 --> 00:53:36.320
<v Speaker 2>like it's going to twitch a lot for the first

1090
00:53:36.360 --> 00:53:38.760
<v Speaker 2>couple of versions for sure and already has boy I

1091
00:53:38.920 --> 00:53:42.239
<v Speaker 2>was I did another year from now, who knows well.

1092
00:53:42.639 --> 00:53:44.760
<v Speaker 4>I did a I've done a couple of talks on it,

1093
00:53:44.800 --> 00:53:47.039
<v Speaker 4>and I did my first talk prepped it, and then

1094
00:53:47.039 --> 00:53:48.840
<v Speaker 4>when I was about to do the talk at the conference,

1095
00:53:49.280 --> 00:53:51.400
<v Speaker 4>I ran my code and it didn't work because apparently

1096
00:53:51.440 --> 00:53:54.599
<v Speaker 4>between the two preview versions that I was running, they

1097
00:53:54.599 --> 00:53:57.320
<v Speaker 4>actually read did a lot of the API. I think

1098
00:53:57.400 --> 00:53:59.960
<v Speaker 4>the API now with version one being released is fairy

1099
00:54:00.079 --> 00:54:02.639
<v Speaker 4>is stable, but there are things that can be better.

1100
00:54:03.119 --> 00:54:06.079
<v Speaker 4>And I can also see that the way that components

1101
00:54:06.119 --> 00:54:09.880
<v Speaker 4>work mean and the way that the whole provider model

1102
00:54:09.920 --> 00:54:13.519
<v Speaker 4>for resources and Inspire works means that the community is

1103
00:54:13.519 --> 00:54:15.559
<v Speaker 4>going to start adding things to it. So you're going

1104
00:54:15.639 --> 00:54:17.199
<v Speaker 4>to be able to as I said today, you can

1105
00:54:17.199 --> 00:54:19.760
<v Speaker 4>see a bunch of ASK stuff, but there's also AWS

1106
00:54:19.760 --> 00:54:23.480
<v Speaker 4>stuff that's coming out or has come out there. People

1107
00:54:23.480 --> 00:54:26.119
<v Speaker 4>have added their own things to it already, so we're

1108
00:54:26.159 --> 00:54:28.239
<v Speaker 4>going to see more and more things plug in and

1109
00:54:28.320 --> 00:54:31.119
<v Speaker 4>make your life easier to work with when it comes

1110
00:54:31.119 --> 00:54:33.480
<v Speaker 4>to Aspire than doing it without Aspire.

1111
00:54:33.519 --> 00:54:36.960
<v Speaker 1>I think absolutely very good Chris. You know, pleasure talking

1112
00:54:36.960 --> 00:54:39.159
<v Speaker 1>to you as always. We really enjoy having you on

1113
00:54:39.239 --> 00:54:41.320
<v Speaker 1>the show and thanks for your insight.

1114
00:54:41.480 --> 00:54:43.559
<v Speaker 4>Well, thank you for having me. It's always a pleasure

1115
00:54:43.599 --> 00:54:46.280
<v Speaker 4>to be on the show. So I'm willing to come

1116
00:54:46.280 --> 00:54:47.519
<v Speaker 4>back whenever you feel like it.

1117
00:54:47.719 --> 00:54:50.159
<v Speaker 1>Thanks very yeah, or whenever you have something new to say.

1118
00:54:50.519 --> 00:54:52.960
<v Speaker 1>Don't hesitate to reach out. I will all right, and

1119
00:54:53.039 --> 00:54:55.679
<v Speaker 1>we'll talk to you, dear listener next time on dot

1120
00:54:55.719 --> 00:55:18.920
<v Speaker 1>net rocks. Dot net Rocks is brought to you by

1121
00:55:19.000 --> 00:55:23.679
<v Speaker 1>Franklin's Net and produced by Pop Studios, a full service audio,

1122
00:55:23.800 --> 00:55:28.239
<v Speaker 1>video and post production facility located physically in New London, Connecticut,

1123
00:55:28.480 --> 00:55:33.320
<v Speaker 1>and of course in the cloud online at pwop dot com.

1124
00:55:33.480 --> 00:55:34.679
<v Speaker 2>Visit our website at d.

1125
00:55:34.719 --> 00:55:36.719
<v Speaker 5>O T N E t R O c k S

1126
00:55:36.800 --> 00:55:41.840
<v Speaker 5>dot com for RSS feeds, downloads, mobile apps, comments, and

1127
00:55:41.920 --> 00:55:45.199
<v Speaker 5>access to the full archives going back to show number one,

1128
00:55:45.400 --> 00:55:47.440
<v Speaker 5>recorded in September two thousand and two.

1129
00:55:48.039 --> 00:55:50.400
<v Speaker 1>And make sure you check out our sponsors. They keep

1130
00:55:50.480 --> 00:55:53.639
<v Speaker 1>us in business. Now, go write some code. See you

1131
00:55:53.679 --> 00:55:54.119
<v Speaker 1>next time.

1132
00:55:55.000 --> 00:55:56.480
<v Speaker 3>You got j middlevan

1133
00:56:00.360 --> 00:56:05.320
<v Speaker 1>To that bed is hard, then my texas a lie

1134
00:56:06.000 --> 00:56:06.199
<v Speaker 1>vole
