1
00:00:00,000 --> 00:00:06,880
Well, hey, everybody. This is another dual episode of Tanzu Talk. Rick and I recorded this live

2
00:00:06,880 --> 00:00:13,060
streaming on the Tanzu TV. You can go check that out if you go to Tanzu.tv. It's all sorts of great

3
00:00:13,060 --> 00:00:18,920
shows we have there from programming to operations to this one. There's an upcoming one that's all

4
00:00:18,920 --> 00:00:23,720
about architecture and design of software and things like that that I'm looking forward to,

5
00:00:23,800 --> 00:00:29,720
sort of an interview format. And if you're watching this in video form, you should also

6
00:00:29,720 --> 00:00:35,620
subscribe to the podcast, which has all sorts of podcasting interviews we've been doing for years

7
00:00:35,620 --> 00:00:41,560
on Tanzu Talk. So anyhow, in this conversation, you know, Rick and I talked for quite some time,

8
00:00:41,560 --> 00:00:46,540
and I wanted to edit it down to just highlight one bit. If you had wanted to see the full thing,

9
00:00:46,540 --> 00:00:51,840
you could have tuned in live to see all the stuff that I took out. I mean, it was fine. I just thought

10
00:00:51,840 --> 00:00:57,280
I would focus at some. But anyways, we had been talking about something that Rick has been seeing

11
00:00:57,280 --> 00:01:01,760
with large organizations he talks with. There's, of course, lots of people who are interested in

12
00:01:01,760 --> 00:01:07,180
getting Kubernetes up and running and are kind of trying to fit that into their overall idea of

13
00:01:07,180 --> 00:01:12,600
improving the way that they do software. And he's been noticing, as have I, that there are many sort

14
00:01:12,600 --> 00:01:18,880
of perspectives and theories about what Kubernetes is and why you would be using it. So one of the

15
00:01:18,880 --> 00:01:24,340
things I've been thinking about recently is that there's this very implied enterprise architecture

16
00:01:24,340 --> 00:01:29,680
architecture that's in Kubernetes based on the constraints that it puts on you and the way

17
00:01:29,680 --> 00:01:34,960
that you need to organize your applications. Well, I mean, I'll get into it when I jump into it.

18
00:01:35,380 --> 00:01:41,180
But you can see where we pick up in the conversation is I kind of lay out this idea that there's an

19
00:01:41,180 --> 00:01:45,260
enterprise architecture and then we go from there. So enjoy.

20
00:01:45,720 --> 00:01:50,700
Yeah. And, you know, to start to pull apart a perspective of this platform that you're building,

21
00:01:50,820 --> 00:01:55,180
of Kubernetes that you're standing up. I was watching, you know, a couple of weeks ago,

22
00:01:55,200 --> 00:02:01,320
we had SpringOne platform and there's a, there's a good, I think kind of a good 27 minute tour

23
00:02:01,320 --> 00:02:07,300
of, of Tanzu Kubernetes and all the ancillary things around it, the portfolio that Tiffany on my team

24
00:02:07,300 --> 00:02:13,900
did. And it's really, it's fun to watch it because she kind of starts off from here is,

25
00:02:14,320 --> 00:02:17,560
here's kind of like a dashboard, a visual of what everything looks like.

26
00:02:17,780 --> 00:02:22,780
Here's how you manage multiple cross clusters. And here are some of the other things that you'll

27
00:02:22,780 --> 00:02:28,040
need to be able to do, like, uh, have configuration and policy backing up things like all these,

28
00:02:28,120 --> 00:02:33,000
I keep saying ancillary, but all these supporting things, uh, that you layer on top of it.

29
00:02:33,380 --> 00:02:39,720
And then she even manages, uh, well not manages, but she manages to fit in, uh, deploying like the

30
00:02:39,720 --> 00:02:44,380
spring pet shop. Right. So, and kind of showing some of the basics of like, if you have an

31
00:02:44,380 --> 00:02:50,320
application, here's how you kind of break it up and deploy it and you can see it running, uh, you know,

32
00:02:50,840 --> 00:02:56,180
across whatever infrastructure that you have. And then also here's an example of like using, um,

33
00:02:56,340 --> 00:03:02,780
we call it, uh, observability now, but it's wave front and how you can kind of trace a request that

34
00:03:02,780 --> 00:03:09,760
goes through, uh, your application and how that surface is up there. And I think, you know, early on,

35
00:03:09,760 --> 00:03:14,400
when, when, when I was learning about Kubernetes, at least I sort of assumed that a lot of everything

36
00:03:14,400 --> 00:03:19,840
that I went over was like what it was. And I remember, I remember last year, I spent a lot of

37
00:03:19,840 --> 00:03:26,880
time to actually, uh, learn and look things up. And, and just recently, like the conclusion that I've

38
00:03:26,880 --> 00:03:34,740
come to, uh, is, and, and you kind of hinted at this, but is that essentially I struggle with what's,

39
00:03:34,740 --> 00:03:42,400
how to describe it, but it's sort of like a standard set of interfaces and practices that are codified

40
00:03:42,400 --> 00:03:49,380
in what we used to call APIs. I don't know what all the still APIs. Yeah. What, what all the cloud

41
00:03:49,380 --> 00:03:55,840
native people mean when they say API is confusing to old programmer me, but I, I think what it means is

42
00:03:55,840 --> 00:04:05,680
like a standard set of data formatting and steps that are taken. And then also what I would call an API,

43
00:04:05,680 --> 00:04:10,260
just like, here's some methods that you call on a thing, right? Like here's some operations that you

44
00:04:10,260 --> 00:04:14,880
call, but they sort of mean the combination. So you got two separate things, right? So I think you've

45
00:04:14,880 --> 00:04:19,200
hit on the, this is the real value of Kubernetes. It's what people miss, right? Yeah. The value of

46
00:04:19,200 --> 00:04:29,080
Kubernetes is that the industry and the world is coalescing on an interface for, uh, deploying

47
00:04:29,080 --> 00:04:34,680
and managing infrastructure, right? Those that, that matters a lot more. If you look at containers,

48
00:04:34,880 --> 00:04:39,680
um, what Kubernetes does with containers, that's not actually that interesting. Yeah. You're small

49
00:04:39,680 --> 00:04:46,600
evolutionary steps from a PC on your desk, right? It's, it, it is marginally more efficient than

50
00:04:46,600 --> 00:04:52,860
virtual machines. Right. It is on its own. That part of the technology isn't exciting. What's exciting

51
00:04:52,860 --> 00:04:59,480
is that we shouldn't have to care about this stuff anymore, right? We should have this default API,

52
00:04:59,480 --> 00:05:04,400
this interface into these things. That's, that's the important part. You know, that, that's the thing

53
00:05:04,400 --> 00:05:08,580
that, that, that matters to me. And I think that's what a lot of people miss. People think that

54
00:05:08,580 --> 00:05:15,580
Kubernetes is, is somehow this, uh, miraculous thing. And it, it, it's, it's, it's not,

55
00:05:15,780 --> 00:05:21,380
it's that it's becoming a standard. That to me is the big thing. I mean, that's what actually adds the

56
00:05:21,380 --> 00:05:26,100
value that there's a standard and, and what's underneath that standard, what's underneath that

57
00:05:26,100 --> 00:05:31,620
interface can change. You know, I'm, I, you, you have a long history in OpenStack and I, and I'm

58
00:05:31,620 --> 00:05:37,640
curious, like, like that was the goal of OpenStack as well, right? Like how would you have, I was

59
00:05:37,640 --> 00:05:42,160
thinking about that this morning. So yeah, the, the, that was the goal of, of OpenStack initially. I think,

60
00:05:42,160 --> 00:05:48,980
you know, some serious strategic mistakes made that not happen. In fact, in 2011, I actually, um,

61
00:05:49,840 --> 00:05:55,180
was pitching at OpenStack at the, the third summit, a project called Donabe, which was container

62
00:05:55,180 --> 00:06:02,580
orchestration in 2011 that no one got behind. Same, same basic thing. Um, so yeah, there, there's,

63
00:06:03,120 --> 00:06:08,820
that was, that was the goal. Um, and it'd, it'd be interesting that that's a whole nother topic.

64
00:06:08,820 --> 00:06:10,860
Why that seemed to, why that missed the mark.

65
00:06:11,360 --> 00:06:18,200
Yeah. Yeah. But was it, was it a similar goal that, that people were following? Like, I think

66
00:06:18,200 --> 00:06:23,260
it's instructive both on the, for the community that, that, that like is creating Kubernetes,

67
00:06:23,260 --> 00:06:30,280
but also for the people who are trying to use it. Um, because I mean, the way we opened is like kind

68
00:06:30,280 --> 00:06:34,380
of a build buy versus decision, right? Like what, what do you want to build on your own versus buy it?

69
00:06:34,840 --> 00:06:40,500
And, you know, in the OpenStack days, um, it seemed like there was a lot of building,

70
00:06:40,740 --> 00:06:48,080
right? Like, like, and I was never sure if that was encouraged or not encouraged. I mean,

71
00:06:48,080 --> 00:06:52,180
I guess there were a lot of vendors selling distros, but I remember there was one story,

72
00:06:52,240 --> 00:06:56,680
I forget who it was, but there was this, this infamous story in the OpenStack world of one,

73
00:06:56,880 --> 00:07:02,940
one big company that had built their own and they quickly like fell behind on, uh, on getting the

74
00:07:02,940 --> 00:07:07,800
new versions of OpenStack. That probably comes up quite a bit, but it was, uh, retold over and over

75
00:07:07,800 --> 00:07:14,260
again. And it seems like, it seems like the same lessons would apply between the two.

76
00:07:14,260 --> 00:07:19,240
Absolutely. And even, you know, even if Kubernetes is done better, right? Even if it's more,

77
00:07:19,480 --> 00:07:27,460
it's, it's integrated better and it, it upgrades more easily. Um, it, it's still, it's still,

78
00:07:27,460 --> 00:07:31,220
once you start integrating with other things, once you start integrating it with your stuff,

79
00:07:31,640 --> 00:07:36,400
you know, you've got a problem. You've got a problem where the, if the API start to change,

80
00:07:37,040 --> 00:07:42,300
you, you can't update and you get stuck. And that's, that's, that's the same problem. And that's,

81
00:07:42,300 --> 00:07:47,960
that to me is one of the biggest risks of, of, of DIY of building your own. I mean, it's,

82
00:07:48,080 --> 00:07:52,840
it's really, to me, it's no different than a Linux distribution. You know, you, you, you wouldn't,

83
00:07:53,240 --> 00:07:58,320
you wouldn't build your own Linux distribution. And I have experience with that. I, I, I, um,

84
00:07:58,560 --> 00:08:03,520
led the team that created Ubuntu server and it's not easy. Um, but I saw, I've actually seen

85
00:08:03,520 --> 00:08:10,140
companies think that they should build their own. And I've seen, especially startups think they should

86
00:08:10,140 --> 00:08:14,940
build their own Linux and think that there was value in that. And they, they all failed and they all

87
00:08:14,940 --> 00:08:20,040
were wrong. Um, they all ended up with, with problems. They, they didn't keep their main thing,

88
00:08:20,100 --> 00:08:25,760
their main thing. And, um, and I, I think that's one of the biggest risks with Kubernetes is you end up

89
00:08:25,760 --> 00:08:33,240
being an IT shop that does nothing but care and feeding of Kubernetes and other things that actually

90
00:08:33,240 --> 00:08:37,740
move your service, your, your customers, the business, those don't get done.

91
00:08:39,220 --> 00:08:41,580
And back to the disconnect we always talk about.

92
00:08:41,580 --> 00:08:46,580
Yeah. Yeah. Yeah. Yeah. The, uh, way up there is, uh, your, your customers wanting to do things

93
00:08:46,580 --> 00:08:54,360
with your software and then way down below is, uh, configuring YAML files, like is, is, uh,

94
00:08:54,360 --> 00:08:58,520
what things about to break it into two chunks of, of things we've talked about in the past. The first

95
00:08:58,520 --> 00:09:07,920
chunk is, uh, something, you know, we'll skip over the first chunk, which is like, you're, you're not,

96
00:09:08,040 --> 00:09:13,880
you're choosing to spend your time on plumbing basically. Right. We can return to that. But

97
00:09:13,880 --> 00:09:19,140
the second thing that I'm always intrigued with, and my dog is getting very excited about it is,

98
00:09:19,140 --> 00:09:27,480
is all of the things that need to be added. Right. Like, I think, I think you kind of alluded to this,

99
00:09:27,480 --> 00:09:32,020
like integrating with your systems and your policy and, and kind of crafting those things.

100
00:09:32,020 --> 00:09:37,820
And like, there's even, even more than that. I mean, so the thing that people miss and something

101
00:09:37,820 --> 00:09:41,700
that I think that, I mean, this is one of, to me, this is the biggest, one of the biggest advantages

102
00:09:41,700 --> 00:09:50,020
of Tonsu that VMware offers. Um, you have to build containers, building containers and managing

103
00:09:50,020 --> 00:09:56,580
containers is probably the most complicated part. Once you get stuff set up that, you know, anyone can

104
00:09:56,580 --> 00:10:02,220
read a guide and set up Kubernetes. But if you can't build and manage containers, well, you're

105
00:10:02,220 --> 00:10:08,100
going to end up with a giant cesspool of a mess and the Tonsu build service, which, you

106
00:10:08,100 --> 00:10:15,400
know, is the descendant of, um, of the build service and PCF. It does that beautifully and,

107
00:10:15,400 --> 00:10:20,980
and lets you, lets you make sure that you have upgradable applications, not just an upgradable,

108
00:10:21,480 --> 00:10:26,140
manageable Kubernetes infrastructure, but the, the applications on top of it. That's really,

109
00:10:26,240 --> 00:10:26,740
really important.

110
00:10:27,520 --> 00:10:32,580
Right. And so, so that's like the first major thing is the, uh, what would you call it?

111
00:10:33,000 --> 00:10:41,580
The, uh, front loading, right? Like, like, and, and, and describe, like, describe what that process is,

112
00:10:41,580 --> 00:10:46,880
right? Like, so I'm a developer here writing code and I'm done writing the code. Like, then what,

113
00:10:46,980 --> 00:10:53,000
how do, how do I get my feature, uh, running on the platform? Like what, what, what's all the stuff

114
00:10:53,000 --> 00:10:53,940
that goes through that?

115
00:10:54,640 --> 00:10:57,800
Well, you know, so, so that's, that's interesting. So if you do this from the,

116
00:10:58,720 --> 00:11:04,180
in my mind, what, what I think should be and what most companies are doing are not the same thing.

117
00:11:04,440 --> 00:11:04,740
Yeah.

118
00:11:04,740 --> 00:11:09,860
So, um, I think that you should, you know, you should have a developer, they should write a spring app,

119
00:11:10,260 --> 00:11:16,760
they should commit it. They should do a get pull request. And that is their interface into the

120
00:11:16,760 --> 00:11:21,640
system. If they have to know they're using Kubernetes, they have to know the environment. You've sort of

121
00:11:21,640 --> 00:11:30,780
already failed. Everything should be CICD driven, getting something from the developer's laptop

122
00:11:30,780 --> 00:11:36,120
to, to production. And what I see more often, and this comes from sort of the fallacy that

123
00:11:36,120 --> 00:11:42,240
developers want Kubernetes and that some of them might, but they shouldn't.

124
00:11:43,100 --> 00:11:48,620
Right. It's like saying it, drivers want asphalt roads. You know, I don't really care what my

125
00:11:48,620 --> 00:11:51,620
road's made of. I just care where I'm going and they should care where they're going.

126
00:11:51,640 --> 00:11:56,400
And the whole goal of this, the whole goal of all of this, right, is to accelerate your

127
00:11:56,400 --> 00:12:02,280
development and to remove barriers, to remove things that are not important, things that they

128
00:12:02,280 --> 00:12:09,500
shouldn't have to care about. If they're writing something that tokenizes someone's identity,

129
00:12:09,940 --> 00:12:14,780
you know, to, to anonymize them for, for an app, they shouldn't have to think about, uh,

130
00:12:14,780 --> 00:12:18,500
Kubernetes. They shouldn't have to think about the environment. They should just write that

131
00:12:18,500 --> 00:12:22,960
business line. There is another thing that I kind of disagree with, which is the full stack

132
00:12:22,960 --> 00:12:29,220
developer. Um, they're, they're wanting people to be full stack developers. I'm going to build the

133
00:12:29,220 --> 00:12:32,920
OS. I'm going to build all the different parts. I have to know everything. And I don't think that's

134
00:12:32,920 --> 00:12:38,260
efficient. I don't think that's the way that you quickly get something from, I, from ideation to

135
00:12:38,260 --> 00:12:43,460
production. I think that, that you have to have all that stuff done in the background. You have to

136
00:12:43,460 --> 00:12:48,360
have automation that handles that. And there's a lot of complexity underneath having that kind

137
00:12:48,360 --> 00:12:53,900
of automation. And that's what Kubernetes provides. If you do it right and you use the right

138
00:12:53,900 --> 00:12:57,260
distribution, like something like, like times, it provides all of that for you.

139
00:12:57,260 --> 00:13:03,360
The issue over the years that you encounter with like, uh, a full stack developer is, is what you've

140
00:13:03,360 --> 00:13:11,340
already alluded to is, is just how you prioritize your time, like, like your resources of time and

141
00:13:11,340 --> 00:13:20,300
attention and all of that. And, you know, I, I don't really know the generalized case, but it seems like,

142
00:13:20,300 --> 00:13:27,980
you know, spending time on your platform is often not worth it. Like building your own platform,

143
00:13:27,980 --> 00:13:34,000
right. And doing your own configuring. Now, I think, you know, I, I think the idea of a full stack

144
00:13:34,000 --> 00:13:43,220
developer like came about in maybe the late 2000s, the early 2010s when there were no other options,

145
00:13:43,220 --> 00:13:49,440
right? Like, like if you wanted to do things at web scale, you had to like build a bunch of your

146
00:13:49,440 --> 00:13:55,120
own stuff, right? Like you had to figure out how things fit together and build it out. And so there

147
00:13:55,120 --> 00:14:00,960
was probably some validity back then, but to the, you know, there wasn't more of a standard way of doing

148
00:14:00,960 --> 00:14:04,540
all of this and an understanding of how to package things up and make sure that it's manageable.

149
00:14:04,920 --> 00:14:09,120
And so, you know, there's still kind of this lingering idea that you need to be a full stack

150
00:14:09,120 --> 00:14:15,480
person to like be a great developer or to do any development at all. Whereas I think nowadays,

151
00:14:15,480 --> 00:14:23,680
there's plenty of, uh, there's lots of understanding and tools and platforms like things like Kubernetes

152
00:14:23,680 --> 00:14:29,180
kind of filled out that will, uh, do those things for you. Right. So you don't really need to have

153
00:14:29,180 --> 00:14:35,480
that huge skillset of, of doing everything. Well, and you know, not needing to have it. That's one

154
00:14:35,480 --> 00:14:41,660
thing. Most people don't have it. That's the, the, if you think you're going to hire a bunch of people

155
00:14:41,660 --> 00:14:48,180
that, that know the stack from top to bottom that can replace a sys admin for you, they can replace

156
00:14:48,180 --> 00:14:54,760
all of those different, uh, knowledge sets that people have. I, I mean, unless you're a startup,

157
00:14:54,760 --> 00:14:59,300
a very small startup, I don't think that makes sense at all. I've, I've, that's never made sense

158
00:14:59,300 --> 00:15:04,440
to me. I mean, the, I came up through operations through system administration. I was an infrastructure

159
00:15:04,440 --> 00:15:14,820
guy. Right. And, um, I can't imagine the developers being able to do, do their jobs without me providing

160
00:15:14,820 --> 00:15:19,620
that infrastructure and that base for them. And really, I don't think that that's really changed.

161
00:15:19,620 --> 00:15:24,360
I think that's what the platform team should be doing. They should be, they should be supporting

162
00:15:24,360 --> 00:15:28,180
with, with the way they deploy Kubernetes, with their automation, they should be supporting

163
00:15:28,180 --> 00:15:32,540
developers so that they can not have to think about other things, write your business logic,

164
00:15:32,540 --> 00:15:34,720
man. You shouldn't have to think about anything else.

165
00:15:34,720 --> 00:15:41,460
So, so I think, I think like in the delivering on, I think, I think if we were to take, if

166
00:15:41,460 --> 00:15:45,820
we were to take like an infrastructure person's idea of who their customer is, right. And in

167
00:15:45,820 --> 00:15:51,680
our conversation, it's developers, right? So they want to provide value to their customers

168
00:15:51,680 --> 00:15:55,520
and sure, ultimately you want to do it for your organization, but that's kind of the most

169
00:15:55,520 --> 00:16:00,840
immediate customer that you have to deliver to. Uh, so you've identified one thing that's

170
00:16:00,840 --> 00:16:06,160
part of, of all of this, just the, you know, the build path, right? Like, like putting,

171
00:16:06,260 --> 00:16:11,260
putting your pipeline in place and making sure you can do that. Another, another thing that,

172
00:16:11,260 --> 00:16:16,040
uh, that, that you mentioned, or that, that I forget if it was when we've talked before

173
00:16:16,040 --> 00:16:23,140
or when we're talking now, but as this idea of like how you enforce governance and policy

174
00:16:23,140 --> 00:16:31,280
and how, how that gets added in versus kind of being more open and free floating. And I

175
00:16:31,280 --> 00:16:38,160
feel, I feel like with my limited technical understanding of Kubernetes, there are ways of

176
00:16:38,160 --> 00:16:45,220
enforcing policy built into it, APIs, if you will, but to a certain extent, how you implement

177
00:16:45,220 --> 00:16:50,480
those and how you kind of do it at a, at a large scale or sort of left up as an exercise

178
00:16:50,480 --> 00:16:55,760
to the reader. There's a lot of choices of, of how to enforce those things. The other area

179
00:16:55,760 --> 00:17:02,340
of, you know, it's interesting and kind of just thinking out loud about this, all of a sudden

180
00:17:02,340 --> 00:17:09,140
you're getting like enterprise architecture involved to, to specify, like, here's the types of

181
00:17:09,140 --> 00:17:14,300
applications that we want to be running. Here's like the policies that they need to follow. And

182
00:17:14,300 --> 00:17:19,260
here's how we enforce those policies, right? You can use this framework, you can use that API,

183
00:17:19,260 --> 00:17:22,840
but you shouldn't use this one. And you've got to follow this stance so forth and so on.

184
00:17:23,460 --> 00:17:27,860
And, you know, getting back to the idea of how you're spending your time building out this

185
00:17:27,860 --> 00:17:33,980
platform, that seems like a lot of time that you need to spend deciding on all those things.

186
00:17:34,220 --> 00:17:41,200
And I, and I think, so that architecture being, uh, like basically distributed application,

187
00:17:41,200 --> 00:17:48,120
right? Where, where you, you've broken up your application into smaller components that coordinate

188
00:17:48,120 --> 00:17:53,400
with each other over a network. And, you know, they need a registry to look things up and do service

189
00:17:53,400 --> 00:17:59,880
discovery and all of this kind of stuff. That's, uh, that's all very exciting. Um, and I think by

190
00:17:59,880 --> 00:18:06,000
nature of having to put things in containers and then also having this very constrained, um,

191
00:18:06,540 --> 00:18:13,320
I don't know, connection policy, the way that various, uh, containers in nodes and pods can talk with each

192
00:18:13,320 --> 00:18:20,740
other in, in Kubernetes, it really has this like limiting effect on how you can architect your

193
00:18:20,740 --> 00:18:26,620
application. And more importantly, if you want your application to be, uh, like manageable in

194
00:18:26,620 --> 00:18:32,220
production and to be able to do all sorts of things like, you know, uh, all, all the great things like

195
00:18:32,220 --> 00:18:37,340
rolling upgrades and kind of separating out to get all the benefits, you really have to like separate

196
00:18:37,340 --> 00:18:42,780
things out and put a lot of thought into how you're architecting it. And it feels like the way,

197
00:18:42,780 --> 00:18:50,120
uh, that Kubernetes things were built was exactly around this application architecture and, and it's

198
00:18:50,120 --> 00:18:57,980
to service this way of doing applications, which I think, I think what that, you know, why, why I get

199
00:18:57,980 --> 00:19:02,500
interested in this is it's kind of moving further up the stack of things to pay attention to that you're

200
00:19:02,500 --> 00:19:09,580
alluding to where I think sort of like understanding that this is our new architecture and therefore

201
00:19:10,580 --> 00:19:14,320
that's what we need to kind of focus on that, you know, when we go to our customers, what we're

202
00:19:14,320 --> 00:19:20,520
delivering is this architecture to them in the same way that like way back when for better or worse,

203
00:19:20,520 --> 00:19:25,760
the architecture we were delivering was like an ESB with, with data change in our formats. And,

204
00:19:25,760 --> 00:19:30,880
uh, or we were delivering like J2EE as an architecture to them. And, you know, what,

205
00:19:30,880 --> 00:19:40,080
what I'm interested more of like going forward is this discussion of like what that architecture is

206
00:19:40,080 --> 00:19:45,600
and, and what, what the, the best practices, uh, that people follow it are. Like I was watching

207
00:19:45,600 --> 00:19:51,980
another talk from, uh, from Swing Run kind of going over like a comparison of what was it, uh,

208
00:19:51,980 --> 00:19:58,060
Spring Cloud stuff and Istio. And it's like very minor, like what a service mesh does for you seemingly,

209
00:19:58,060 --> 00:20:05,500
but it has this great, like, uh, there's, it's that, that presentation is a great view into how you

210
00:20:05,500 --> 00:20:11,220
coordinate all those little nodes talking with each other. And therefore this is like the architectural

211
00:20:11,220 --> 00:20:15,900
focus of the application that you're doing, right? Like this is, this is how you coordinate and

212
00:20:15,900 --> 00:20:22,780
describe all the lines and dotted lines between things. And it seems like in contrast, a lot of

213
00:20:22,780 --> 00:20:29,500
the effort people are spending on Kubernetes now is basically on like getting it up and running and

214
00:20:29,500 --> 00:20:35,740
building it and kind of, you know, getting to that blinking cursor instead of, instead of describing,

215
00:20:35,740 --> 00:20:40,780
like, here's the patterns of how to do applications. And here's how you, uh, you move forward with it.

216
00:20:40,780 --> 00:20:47,420
You know, I, I think some of that's intentional. I think that, um, there's kind of, uh, a movement,

217
00:20:47,420 --> 00:20:55,900
a trend to think that developers need infinite flexibility, but infinite flexibility is sort of

218
00:20:55,900 --> 00:21:03,020
the, the opposite of where we've been going with, with, uh, the cloud, cloud native, right? If, if you

219
00:21:03,020 --> 00:21:06,860
want things to be fast, if you want to do things quickly, if you want things to be maintainable and

220
00:21:06,860 --> 00:21:14,540
scalable, they kind of need to be uniform, you know, and, and, and I think another fallacy that,

221
00:21:14,540 --> 00:21:20,780
that's, that's out there is that developers need access to, you need, you could end up with a

222
00:21:20,780 --> 00:21:25,340
problem. So you have to have access to everything. I need to be able to use everything. I need access

223
00:21:25,340 --> 00:21:32,860
to every tool, to every library, to every service. But, um, I don't, I don't think that's actually

224
00:21:32,860 --> 00:21:38,460
true. You know, I think that you, you, uh, you lose a lot and I think, you know, like I'm looking

225
00:21:38,460 --> 00:21:43,900
for a house right now and it would be a lot easy, easier for me if there was only one house.

226
00:21:45,260 --> 00:21:52,540
I have to look up in Atlanta, there's a million houses and I'm spending a lot of time instead of

227
00:21:52,540 --> 00:21:57,820
just finding the house and moving, I'm spending a lot of time thinking about it. And while that's

228
00:21:57,820 --> 00:22:01,980
maybe good for finding a house, cause I want to find the right house. That's not good for a developer.

229
00:22:01,980 --> 00:22:06,140
If, if I have to spend time figuring out what tools to use, what libraries I need to use,

230
00:22:06,140 --> 00:22:10,940
what language you need to write, I, I think that that is not efficient. I think that's not modern.

231
00:22:11,980 --> 00:22:20,540
Um, and I think that 95% of what we do is the same across every application, across every industry.

232
00:22:21,020 --> 00:22:26,700
You know, 5% might be unique to, to, to, to the project you're doing or to your company,

233
00:22:26,700 --> 00:22:31,100
but we all basically do the same thing. So we don't, we don't need,

234
00:22:31,980 --> 00:22:37,100
we don't need the confusion and the chaos that supporting every single thing in the world

235
00:22:38,140 --> 00:22:39,020
we give you.

236
00:22:39,020 --> 00:22:39,420
Right.

237
00:22:39,420 --> 00:22:44,620
But if you're, if you're, if you're an infrastructure team, you can create a list

238
00:22:44,620 --> 00:22:47,580
of the things you support and it looks pretty good for you. Look at all these things that we

239
00:22:47,580 --> 00:22:51,340
support. It's just, I think it makes it harder to be a developer. It makes it harder to actually

240
00:22:51,340 --> 00:22:57,340
get your business code out there to actually push your stuff. And you know, the, the key,

241
00:22:57,340 --> 00:23:02,700
the goal, right, is to get from ideation to production quickly. It's the path to production.

242
00:23:02,700 --> 00:23:07,100
And if you put a thousand more decisions in there, you're not speeding up that path. You're slowing

243
00:23:07,100 --> 00:23:11,980
down that path. And I guess one of the reasons I joined Pivotal is that I'm, I'm a true believer in,

244
00:23:11,980 --> 00:23:19,500
in that way, that walled garden that, you know, support 90% of what people need to do. And that's

245
00:23:19,500 --> 00:23:20,860
most of, most of everything.

246
00:23:21,340 --> 00:23:27,500
Yeah. Yeah. It's sort of, sort of like using constraints to reduce variability. Right. So

247
00:23:27,500 --> 00:23:32,620
instead of having a lot of options or choices, I mean, this is the, uh, was it, uh, was it in the

248
00:23:32,620 --> 00:23:37,660
nineties? There was, I think it was, uh, that Ruskoff guy who introduced the idea of like the serial

249
00:23:37,660 --> 00:23:42,860
row is overwhelming. Like not, not here in the Netherlands, but maybe since you're back in Atlanta,

250
00:23:42,860 --> 00:23:48,220
you've now encountered this where you go to the serial row and there's just like too many choices,

251
00:23:48,220 --> 00:23:53,900
right? Like there's, there's hundreds. Would it be hundreds? Well, there's probably, I think it's

252
00:23:53,900 --> 00:24:00,300
hundreds. Yeah. There's probably, I mean, it is 80 to 150 different options for cereal in, in,

253
00:24:00,300 --> 00:24:06,860
in an American grocery store, not to mention the various, uh, what would we call them skews? There

254
00:24:06,860 --> 00:24:12,700
are, there are cereal sweets in the cereal row that you can choose from, like the raisin brand sweet

255
00:24:12,700 --> 00:24:17,340
that you can buy, uh, all sorts of things from. And it does seem like shredded wheat sweet. Yeah.

256
00:24:17,340 --> 00:24:24,060
You definitely have those. And, and it does, it does seem like that is, um, to your point,

257
00:24:24,060 --> 00:24:28,300
right? Like if you're thinking about if, if, if you're an infrastructure person thinking about your

258
00:24:28,300 --> 00:24:34,460
customers as the developers that you're trying to basically speed up their work, right? Make it

259
00:24:34,460 --> 00:24:40,860
easier for them to, um, think about and get features out faster because there's all sorts of positive

260
00:24:40,860 --> 00:24:50,300
benefits to that. Then there's a balancing act between giving them like the tools they need and

261
00:24:50,300 --> 00:24:56,460
giving them some amount of choice, but also like not too much choice, right? Sort of constricting down

262
00:24:56,460 --> 00:25:00,860
to a standard. Um, and there's all sorts of issues that we've encountered over the years with that,

263
00:25:01,580 --> 00:25:06,860
when it comes to sort of like evolving those capabilities long-term and kind of integrating

264
00:25:06,860 --> 00:25:11,340
in like this year's new learnings, instead of getting stalled out in like a three-year-old or

265
00:25:11,340 --> 00:25:17,180
four-year-old stack. But I think, I think that's another thing that like, when you look at the cloud

266
00:25:17,180 --> 00:25:24,860
native style of developing, like it really tries to give you a minimal set of things you can do,

267
00:25:25,980 --> 00:25:31,660
right? Like, like there's a very small set of concepts of how you package things up, how they

268
00:25:31,660 --> 00:25:36,940
talk with each other. And that's kind of it. Like you're not left to just decide to do things

269
00:25:37,660 --> 00:25:42,860
willy nilly any way that you want. It's you're not sort of like, here's a server connected all

270
00:25:42,860 --> 00:25:47,580
together. Like it's, it's a very constrained environment for you. Yeah, that's just absolutely

271
00:25:47,580 --> 00:25:51,340
right. And I think that's one of the problems we're seeing with the way enterprises are doing

272
00:25:51,340 --> 00:25:59,580
Kubernetes is they're losing track of the cloud native part of it. Like, you know, the, the,

273
00:25:59,580 --> 00:26:06,140
and I think that's because of the thing that drives the, you know, both the infrastructure team

274
00:26:06,140 --> 00:26:10,140
and the developers. Developers love to use different tools. You start using different tools,

275
00:26:10,140 --> 00:26:15,020
those just, that pads your resume, right? And the, the infrastructure team loves to build complicated

276
00:26:15,020 --> 00:26:21,660
things because that's, that's fulfilling. So I think we've kind of, there's, we're psychologically

277
00:26:21,660 --> 00:26:26,460
set up to make this more difficult, but we're losing the cloud nativeness. Can you say cloud

278
00:26:26,460 --> 00:26:31,020
nativeness? Well, you just did. We're losing that. So I think you can. Yeah, we can't say it. Yeah,

279
00:26:31,020 --> 00:26:36,460
I said it twice. Um, so I think we're, I think we're losing it. And what we've done is taken,

280
00:26:36,460 --> 00:26:42,940
and, and I see this. So we've taken the old enterprise architecture and jammed it into, uh,

281
00:26:42,940 --> 00:26:49,420
Kubernetes. We've made Kubernetes as complicated as the old enterprise architecture and lost some of

282
00:26:49,420 --> 00:26:53,980
the cloud native value, but you don't have to, you know, you, you, you don't have to do that. It can

283
00:26:53,980 --> 00:26:58,700
be done right. I think there's three main points that like, like we, we should, we should think about

284
00:26:58,700 --> 00:27:06,940
and then get back together to discuss one of them being, um, this idea of, is, is it a valuable idea

285
00:27:06,940 --> 00:27:11,820
to build out your own things, which, you know, coming from two people who work at a vendor is a

286
00:27:11,820 --> 00:27:17,660
highly suspicious conversation to have from us, but I'm also someone who likes to build things.

287
00:27:17,660 --> 00:27:22,780
So, I mean, I think that I think so I, and we can deal with this tomorrow, but the answer is yes,

288
00:27:22,780 --> 00:27:28,220
but. Right. Right. Right. And, and I think, I think as always with that, that kind of supposition,

289
00:27:28,220 --> 00:27:34,940
uh, what's important in the discussion is to kind of like frame and model, uh,

290
00:27:36,540 --> 00:27:41,500
what your requirements are like, like why, like why you would be building something on your own

291
00:27:42,300 --> 00:27:47,260
and what you would be achieving with it and, and like what the drivers are. Sometimes it's good.

292
00:27:47,260 --> 00:27:52,220
Sometimes it's bad, whatever, like who knows, but just kind of more knowing like the context of it

293
00:27:52,220 --> 00:27:56,860
instead of just assuming that you should always start with that. I've got a whole model I use to

294
00:27:56,860 --> 00:28:01,500
decide whether to build or, or to buy. And, and we can talk about that. See that, that would be nice.

295
00:28:01,500 --> 00:28:05,420
And then I think the whole matrix, I need a name for it. So maybe someone can help me name it.

296
00:28:05,420 --> 00:28:08,780
And then, and then I think the second thing, I don't know the order of the second there,

297
00:28:08,780 --> 00:28:16,220
but the second is, is to use your phrase, losing the cloud nativeness. And, and I think,

298
00:28:16,220 --> 00:28:22,380
I think what that means, what, one thing that means is that if you are an infrastructure person

299
00:28:23,500 --> 00:28:31,740
in this, in this context that we're talking about, uh, your customer are, is developers and you could

300
00:28:31,740 --> 00:28:38,140
call them, you know, product teams or, uh, you know, software enabled businesses, whatever it's,

301
00:28:38,140 --> 00:28:44,060
it's, it's the teams of people who are working on features for the software that is helping run your

302
00:28:44,060 --> 00:28:49,100
business or kind of be the storefront to your customers. Right. And you're doing that primarily

303
00:28:49,100 --> 00:28:54,700
through a software, but the customers, the infrastructure people have are those, those

304
00:28:54,700 --> 00:28:59,260
teams, those, those people who want to build that out. And then, and then the third thing that,

305
00:28:59,260 --> 00:29:05,580
you know, it's easy to lose track of that. And, and the third thing that I think kind of follows from

306
00:29:05,580 --> 00:29:14,700
that is that what you get with Kubernetes is a type. I'll just call it. This is an enterprise

307
00:29:14,700 --> 00:29:21,980
architecture. And like any enterprise architecture, it can be subverted and munged around. And you can

308
00:29:21,980 --> 00:29:28,780
always just end up running a monolithic application that requires on a scale up architecture to perform

309
00:29:28,780 --> 00:29:34,300
well. Like it's, it's easy to arrive there. But if you, if you kind of follow the enterprise

310
00:29:34,300 --> 00:29:41,420
architecture more, it's basically just like, here is a constrained set of ways, uh, to write a

311
00:29:41,420 --> 00:29:47,980
distributed application. And here's how, here's how we'll specify how everything talks with each other.

312
00:29:48,700 --> 00:29:53,740
Now, I think the fourth part after that, which is, which is the part we haven't got around to,

313
00:29:54,140 --> 00:29:59,340
which is like, all right, so we got that. And what's every single thing else I need to install

314
00:29:59,340 --> 00:30:03,740
to, to, to make things work well. Like we talked about the infrastructure layer a little bit,

315
00:30:03,740 --> 00:30:07,900
but I think if you kind of start off with that goal of a product that we're trying to build,

316
00:30:07,900 --> 00:30:12,780
right, this platform, you know, everything else kind of follows out of that. Like all of the kind

317
00:30:12,780 --> 00:30:18,060
of governance and security that you need, uh, the monitoring and observability, and you sort of

318
00:30:18,060 --> 00:30:23,260
kind of start to build up this, uh, this, I don't know, you can product manage out of platform,

319
00:30:23,820 --> 00:30:29,420
uh, which I think, I think is, is useful for doing over the longterm. Cause that, you know,

320
00:30:29,420 --> 00:30:34,060
going back to my original question, when the, uh, the infrastructure people are looking at an empty

321
00:30:34,060 --> 00:30:38,700
whiteboard, that's what they're going to be building out, right? Like that, that kind of drives all the

322
00:30:38,700 --> 00:30:45,100
different components and, uh, the teams that they need, but we'll see. Perhaps we could, uh, pick

323
00:30:45,100 --> 00:30:49,900
this up tomorrow or some other time this week. And, uh, I'm sure we'll have thought of something that

324
00:30:49,900 --> 00:30:55,820
has nothing to do with my summary by then, but we can, uh, we, we can try to fill out the rest of that

325
00:30:55,820 --> 00:31:01,980
whiteboard. Well, uh, for people who are only listening, do you have a Twitter handle or someplace

326
00:31:01,980 --> 00:31:07,260
someone can go to follow you? Oh, I do. Dendrobates. D-E-N-D-R-O-B-A-T-E-S.

327
00:31:07,260 --> 00:31:09,420
Now, have I ever asked you, what is that?

328
00:31:11,900 --> 00:31:18,140
That is the genus for poison dart frogs. Oh, poison dart frogs. Okay. What makes them

329
00:31:18,140 --> 00:31:22,860
dart frogs? And like, do they, do they like go forward? Because they, because, you know,

330
00:31:22,860 --> 00:31:28,700
because traditionally, um, you could dip your arrow or dart in there on their skin,

331
00:31:28,700 --> 00:31:32,940
rub it on their skin and it would paralyze something. Huh? But so that one of the reasons I

332
00:31:32,940 --> 00:31:39,180
have the, the, the, the, the, I use that handle, which I've used for decades now is, um, they are

333
00:31:39,180 --> 00:31:46,620
only poisonous in the wild. They are, um, they are, they are completely tame and safe in captivity.

334
00:31:46,620 --> 00:31:53,900
Just like you, I guess. Just like me. Yes. Yes. Now, now we need to do, have some sessions to

335
00:31:53,900 --> 00:31:59,340
define what the wild is versus captivity for you. That that's, that's the, uh, the next layer there.

336
00:31:59,740 --> 00:32:04,460
Yeah. Yeah. Yeah. That's good. I like that. Well, you know, I bet, I bet there's, there's a name

337
00:32:05,020 --> 00:32:12,380
for, there must be a word that describes naming something based on the function it gives humans,

338
00:32:12,380 --> 00:32:19,900
right? Like, like sometimes we call cow beef, right? And, uh, you know, like, like it's not named

339
00:32:19,900 --> 00:32:24,940
based on its own virtues, but the way that it's used in our, what we do with it on the whiteboard,

340
00:32:24,940 --> 00:32:28,620
so to speak. Yeah. And pork, but chicken is pretty much chicken. It's, it's, it's interesting,

341
00:32:28,620 --> 00:32:34,540
interesting linguistic thing. Yeah. I like that. Whereas, you know, an eagle isn't called like

342
00:32:35,180 --> 00:32:41,100
mascot, like, or you would think over the years, a lion or a bear could be called. Anyways,

343
00:32:41,100 --> 00:32:47,900
uh, that's, that's, uh, an idea for another time anyways. So, uh, as always, this has been a,

344
00:32:47,900 --> 00:32:52,620
uh, a little Tanzu talk episode. If you want to get the show notes, I mentioned a couple of videos

345
00:32:53,180 --> 00:33:00,220
and, uh, maybe I'll put in a link to a dart frog, but you can go to tanzu.vmware.com/podcast and look

346
00:33:00,220 --> 00:33:05,260
that up. And also, uh, if you're listening to this, uh, you should check out the schedule that we have

347
00:33:05,260 --> 00:33:09,820
for the, uh, VMware Tanzu, uh, streaming. It's, it's fun. And you

348
00:33:09,820 --> 00:33:13,660
get to see the, or I guess you see, you get to see and hear the sausage being made.

349
00:33:13,660 --> 00:33:17,980
Uh, you know, it's, it's, uh, that can be, which everyone should do. I mean, that's really

350
00:33:17,980 --> 00:33:20,860
important. They, they recommend that before you eat sausage, you should see it made.

351
00:33:20,860 --> 00:33:25,500
Exactly. It's, it's, it's, there must be some alternate phrases for that, that, uh,

352
00:33:25,500 --> 00:33:29,500
I need, I need to look up, but, uh, if you want to get on that, you can go to, uh,

353
00:33:29,500 --> 00:33:35,900
uh, twitch.tv/vmwaretanzu, and, uh, there's all sorts of other things that you can look up,

354
00:33:35,900 --> 00:33:38,220
but we'll see everyone next time. Bye-bye.

355
00:33:38,220 --> 00:33:39,340
Bye-bye.

356
00:33:39,340 --> 00:33:39,820
Bye-bye.
