1
00:00:00,000 --> 00:00:06,000
We are in Austin, and we're lucky enough to have someone to talk with.

2
00:00:06,000 --> 00:00:07,000
Would you like to introduce yourself?

3
00:00:07,000 --> 00:00:10,000
I am Luke Knies. I'm the founder of Reducted Labs,

4
00:00:10,000 --> 00:00:14,000
and I'm the principal author of Puppet, which is a server automation tool.

5
00:00:14,000 --> 00:00:19,000
And before that I was doing consulting and other work in system administration.

6
00:00:19,000 --> 00:00:24,000
So would you say you're sort of in the IT management provisioning area, open source sort of thing?

7
00:00:24,000 --> 00:00:28,000
I don't like the word provisioning because that implies I provisioned the machine and then I went home.

8
00:00:28,000 --> 00:00:31,000
And really Puppet is about managing the entire life cycle.

9
00:00:31,000 --> 00:00:35,000
More like change management maybe then. What word or phrase do you like?

10
00:00:35,000 --> 00:00:40,000
I don't think there is one that I like. I spent the last three years trying to come up with a good term.

11
00:00:40,000 --> 00:00:43,000
The best term I've come up with so far that I kind of like is meta infrastructure.

12
00:00:43,000 --> 00:00:47,000
I produce the infrastructure that produces your infrastructure, that manages your infrastructure.

13
00:00:47,000 --> 00:00:52,000
So Puppet is the thing behind everything else. That's the best I can come up with.

14
00:00:52,000 --> 00:00:55,000
So then what does Puppet actually do?

15
00:00:55,000 --> 00:01:00,000
You explain to Puppet what services you want, how you want those services to look.

16
00:01:00,000 --> 00:01:04,000
I've got these packages, these processes, they have this relationship.

17
00:01:04,000 --> 00:01:09,000
When this happens I want these to react. When this configuration file is updated I want the service to react in this way.

18
00:01:09,000 --> 00:01:14,000
So you explain all these things to Puppet and then Puppet makes sure all your machines look that way.

19
00:01:14,000 --> 00:01:19,000
Well that's a mail server, it's a Solaris server, it's in this data center, which means it acquires these traits.

20
00:01:19,000 --> 00:01:22,000
So Puppet will configure those traits with all those resources.

21
00:01:22,000 --> 00:01:28,000
And as you change those definitions over time, as you update the definition of a mail server, or as you update what it means to be a Solaris server,

22
00:01:28,000 --> 00:01:31,000
Puppet will update all those machines that match those criteria.

23
00:01:31,000 --> 00:01:39,000
So you don't have to go to those machines and say, oh by the way, here's a patch up, here's an upgrade, or, you know, update this configuration file and restart the service.

24
00:01:39,000 --> 00:01:40,000
Right.

25
00:01:40,000 --> 00:01:41,000
Puppet just does that.

26
00:01:41,000 --> 00:01:48,000
Yeah, it sounds like it's sort of, I don't really know what you call this, but there's this sort of part of IT management where it's kind of model driven.

27
00:01:48,000 --> 00:01:49,000
Right.

28
00:01:49,000 --> 00:01:57,000
Where you establish a model and then you hand it over to a tool to implement that model or to sort of make sure that model is executed properly.

29
00:01:57,000 --> 00:01:58,000
Right.

30
00:01:58,000 --> 00:02:01,000
Rather than necessarily directly modifying scripts and things directly.

31
00:02:01,000 --> 00:02:05,000
And executed is the right word, like I always talk about having executable content.

32
00:02:05,000 --> 00:02:10,000
This is your, you're basically speaking to Puppet, you're writing, you're writing code in Puppet.

33
00:02:10,000 --> 00:02:11,000
Right.

34
00:02:11,000 --> 00:02:13,000
And that, it is executable code, it's an executable configuration.

35
00:02:13,000 --> 00:02:16,000
You can write security policies in Puppet and they're executable.

36
00:02:16,000 --> 00:02:22,000
So everyone, you know, most companies have this Word document or this Excel spreadsheet that says, here are the things that must be true for us to be secure.

37
00:02:22,000 --> 00:02:26,000
And then they have some dude whose job it is to SSH to each of the machines and run a bunch of commands to see if it's true.

38
00:02:26,000 --> 00:02:27,000
Right, right.

39
00:02:27,000 --> 00:02:29,000
And that's, you know, it's not true.

40
00:02:29,000 --> 00:02:37,000
Whereas if you have an executable security policy or an executable configuration policy, then it's always true, you know, within reason.

41
00:02:37,000 --> 00:02:42,000
What is that process like with Puppet as far as, I mean, I'm assuming you sort of start with that document or that model.

42
00:02:42,000 --> 00:02:45,000
I mean, what does it look like to the full life cycle of the model?

43
00:02:45,000 --> 00:02:53,000
So what I do with customers, as an example, so one of the services I provide is I come in the door and I provide some combination of training and implementation.

44
00:02:53,000 --> 00:02:59,000
And the goal upon leaving is they'll have at least one person who really knows the product well and they'll have a basic implementation.

45
00:02:59,000 --> 00:03:04,000
And what we do is we start with a kernel and you say, okay, well, the first thing we're going to do is we're going to build our Puppet server.

46
00:03:04,000 --> 00:03:07,000
So we define a Puppet server class and we flesh out what that means.

47
00:03:07,000 --> 00:03:11,000
Well, it means that I've got these packages, I've got these configurations, and I've got these services.

48
00:03:11,000 --> 00:03:20,000
And so what you do is you define these resources, you specify them all, and you say, you wrap those resources in a class, and then you define this node.

49
00:03:20,000 --> 00:03:28,000
Okay, this box is my Puppet server, so its name is blah, its name is Johnny, and include the Puppet server class in it.

50
00:03:28,000 --> 00:03:34,000
And then you run Puppet on that machine and it goes, ah, and it goes, compiles its configuration, which results in this list of resources.

51
00:03:34,000 --> 00:03:39,000
And the resources are the things that we already think about but we can't usually talk about directly.

52
00:03:39,000 --> 00:03:44,000
Users, packages, groups, services, hosts, cron jobs.

53
00:03:44,000 --> 00:03:50,000
The things that we think about but are obscured by file formats or weird commands or things like that.

54
00:03:50,000 --> 00:03:55,000
So you just talk about these entities to Puppet, compile that into configuration, and then it handles that for you.

55
00:03:55,000 --> 00:04:04,000
In terms of the actual user process, you're usually doing something like you've got an SVN repository or my last client, we used a Git repository.

56
00:04:04,000 --> 00:04:11,000
You make your changes in, you know, you check out that repository, make your changes, you commit that change, and then it works its way.

57
00:04:11,000 --> 00:04:19,000
The server automatically pulls the changes from the repository, and then the clients, by default every half an hour, recompile their configuration, reapply the configuration.

58
00:04:19,000 --> 00:04:29,000
The data flow looks, you have your idea, you commit that idea, you turn that idea into code, commit that code to the repository, the server pulls it down, and the clients pull it from the server.

59
00:04:29,000 --> 00:04:32,000
And there's a client on each machine that's going to be configured, right?

60
00:04:32,000 --> 00:04:33,000
Exactly.

61
00:04:33,000 --> 00:04:36,000
So there's sort of a little agent-based network with a central brain in the middle.

62
00:04:36,000 --> 00:04:37,000
Indeed.

63
00:04:37,000 --> 00:04:44,000
I imagine there's a bunch of stuff to sort of normalize the different ways that these machines and servers get configured, right?

64
00:04:44,000 --> 00:04:45,000
Exactly.

65
00:04:45,000 --> 00:04:52,000
In the sense that a person expresses a mail server should look like this, and that could mean different things depending on which OS or Linux distribution or whatever you have on there.

66
00:04:52,000 --> 00:04:59,000
Right. So Puppet has two ways to talk about portability. At the lowest level of portability, the resources themselves are built to be portable.

67
00:04:59,000 --> 00:05:08,000
So when you talk about a package or a user or a service, you can talk about it in the same way on FreeBSD or Solaris or Gen2 or Red Hat.

68
00:05:08,000 --> 00:05:15,000
You can just say a package, and Puppet will say, "Ah, well, I'm on Gen2, so you're talking about Portage," or, "I'm on Solaris, so you're talking about PackageAd."

69
00:05:15,000 --> 00:05:21,000
So that's the lowest level of portability, and so that isolates you from needing to know system detail.

70
00:05:21,000 --> 00:05:24,000
What commands you need to know and things like that.

71
00:05:24,000 --> 00:05:28,000
But then the higher level is the language itself provides a lot of portability features.

72
00:05:28,000 --> 00:05:33,000
So, and this is one of the really big frustrations I had in earlier generations of tools.

73
00:05:33,000 --> 00:05:35,000
What do you think the SSH service is called?

74
00:05:35,000 --> 00:05:40,000
You know, everyone, you can go to almost anyone in the sysadmin world and say SSH, and they go, "Yes, I know what you mean."

75
00:05:40,000 --> 00:05:43,000
But then they go to their platform and they go, "Well, what's the package called?"

76
00:05:43,000 --> 00:05:49,000
Well, on Debian it's called OpenSSH and OpenSSHServer, and on FreeBSD it's called SSHD.

77
00:05:49,000 --> 00:05:54,000
And so you have all these package names that are different, and then the services themselves have different names.

78
00:05:54,000 --> 00:05:56,000
And then the configuration file is stored in a different place.

79
00:05:56,000 --> 00:06:01,000
But for you, what you have is, "I've got a package, it's got a configuration file, and there's a service."

80
00:06:01,000 --> 00:06:02,000
Right.

81
00:06:02,000 --> 00:06:07,000
And the service depends on the package and the configuration file, and if those change, I want the service to get restarted.

82
00:06:07,000 --> 00:06:14,000
So, you think about it in one way, and you need to be able to explain to your system, "When I say SSH, I always mean this."

83
00:06:14,000 --> 00:06:15,000
Right, right, right.

84
00:06:15,000 --> 00:06:28,000
So the puppet language provides the facility to say, "Here's a thing that I think of as SSH, but FreeBSD thinks of it as this, and Solaris thinks of it as that, and, you know, Debian thinks of it as another thing."

85
00:06:28,000 --> 00:06:30,000
You've got to have, like, the distribution translator for--

86
00:06:30,000 --> 00:06:31,000
Exactly.

87
00:06:31,000 --> 00:06:37,000
The language itself has portability features to provide this different naming across all the different platforms you have to deal with.

88
00:06:37,000 --> 00:06:38,000
Right.

89
00:06:38,000 --> 00:06:39,000
So--

90
00:06:39,000 --> 00:06:41,000
And is there, like, a puppet language or something?

91
00:06:41,000 --> 00:06:42,000
There is a puppet language.

92
00:06:42,000 --> 00:06:44,000
And what's that like?

93
00:06:44,000 --> 00:06:51,000
It's probably--the best way to describe it is it's some combination of--I mean, it's heavily influenced by--the functionality is heavily influenced by CFEngine.

94
00:06:51,000 --> 00:06:56,000
It looks a little bit like Ruby and a little bit like--almost like the Nagios language, in fact.

95
00:06:56,000 --> 00:06:59,000
The resources are as syntax-free as I could get.

96
00:06:59,000 --> 00:07:01,000
You have a resource type, a resource name, and a bunch of attributes.

97
00:07:01,000 --> 00:07:02,000
Yeah.

98
00:07:02,000 --> 00:07:03,000
And that's the thing.

99
00:07:03,000 --> 00:07:04,000
And then those are collected into classes.

100
00:07:04,000 --> 00:07:09,000
And if all your--if you don't have any selections, if you don't have any portability problems, it looks just like that.

101
00:07:09,000 --> 00:07:10,000
Right, right.

102
00:07:10,000 --> 00:07:17,000
As you get more complicated, as you have to have sub-classes and things like that, you get a little more complication, but it's a very simple and not very powerful--

103
00:07:17,000 --> 00:07:20,000
So would you call it, like, a DSL, a domain-specific language?

104
00:07:20,000 --> 00:07:21,000
It is exactly it.

105
00:07:21,000 --> 00:07:25,000
And what are you--did you, like, implement your own parsers and everything for it?

106
00:07:25,000 --> 00:07:32,000
I have a real, like, Yak-style parser, and I have my own Lexer, and I've got a parser generator that I--you know, so the whole thing, yes, I do.

107
00:07:32,000 --> 00:07:33,000
Right, right, right.

108
00:07:33,000 --> 00:07:36,000
And this is actually--this is interesting because this is about my fourth parser.

109
00:07:36,000 --> 00:07:40,000
It's the first parser I've written that I actually created an abstract syntax tree.

110
00:07:40,000 --> 00:07:42,000
Oh, you did it, like, correctly.

111
00:07:42,000 --> 00:07:43,000
Yeah, exactly.

112
00:07:43,000 --> 00:07:53,000
So when the compiler--when you run the compiler and you parse the thing, you build this parse tree, you parse it once, and every client that connects uses the same parse tree.

113
00:07:53,000 --> 00:07:56,000
So you can go through and parse once and compile many times.

114
00:07:56,000 --> 00:07:57,000
So it's very interesting.

115
00:07:57,000 --> 00:07:59,000
It was a very big learning experience for me, definitely.

116
00:07:59,000 --> 00:08:00,000
Well, that's exciting.

117
00:08:00,000 --> 00:08:01,000
Puppet is open source.

118
00:08:01,000 --> 00:08:02,000
Puppet is.

119
00:08:02,000 --> 00:08:09,000
And I wonder, it's not so much a question of why is it open source, but what sort of benefits and un-benefits have you gotten from it?

120
00:08:09,000 --> 00:08:12,000
How has it been working out that it's an open source project?

121
00:08:12,000 --> 00:08:15,000
It's been really great marketing-wise.

122
00:08:15,000 --> 00:08:19,000
I mean, this is--I think a lot of people realize that open source is great for marketing, but they don't know what that really means exactly.

123
00:08:19,000 --> 00:08:20,000
Right.

124
00:08:20,000 --> 00:08:23,000
But I've been able to give talks in five countries in the last year because it's open source.

125
00:08:23,000 --> 00:08:31,000
Almost all the talks, you know, I've been working on OSCON, Linuxcon Australia, FOS.IN in Bangalore, FOSDAM in Belgium, these kind of things.

126
00:08:31,000 --> 00:08:33,000
You don't get invited to these talks if you're a commercial product.

127
00:08:33,000 --> 00:08:34,000
Right.

128
00:08:34,000 --> 00:08:39,000
And you don't get people--you know, there's apparently people wandering around Europe talking about how great Puppet is.

129
00:08:39,000 --> 00:08:42,000
They aren't going to do that if they don't feel like they're part of a community, right?

130
00:08:42,000 --> 00:08:43,000
Yeah.

131
00:08:43,000 --> 00:08:46,000
So they're not going to--there's a guy who's got his entire Puppet configuration.

132
00:08:46,000 --> 00:08:48,000
He works very hard on it and he publishes the entirety of it.

133
00:08:48,000 --> 00:08:50,000
He wouldn't do that if it weren't an open community.

134
00:08:50,000 --> 00:08:51,000
Right.

135
00:08:51,000 --> 00:08:56,000
And so having it be that open and having people know that they can trust that the product's going to be there.

136
00:08:56,000 --> 00:08:58,000
And that even if I go away, yes, I'm one small dude.

137
00:08:58,000 --> 00:09:00,000
I'm one guy and it's a small project.

138
00:09:00,000 --> 00:09:03,000
But if I go away, somebody else can take my code and move on with it.

139
00:09:03,000 --> 00:09:06,000
And so there's that kind of general benefit you get.

140
00:09:06,000 --> 00:09:10,000
Because I am a commercial company behind this product, I'm not--you know, commercial is the wrong word.

141
00:09:10,000 --> 00:09:13,000
I'm trying to make money on producing open source.

142
00:09:13,000 --> 00:09:15,000
Being open source has its own limitations.

143
00:09:15,000 --> 00:09:17,000
The business model is harder.

144
00:09:17,000 --> 00:09:21,000
But it also--it's really easy to market open source people, but they're open source people.

145
00:09:21,000 --> 00:09:22,000
They're used to doing it themselves.

146
00:09:22,000 --> 00:09:23,000
Right.

147
00:09:23,000 --> 00:09:24,000
They need your help.

148
00:09:24,000 --> 00:09:28,000
So I've gotten a very good distribution across the open source world.

149
00:09:28,000 --> 00:09:29,000
And they're great.

150
00:09:29,000 --> 00:09:30,000
They're great people.

151
00:09:30,000 --> 00:09:31,000
They're really helpful.

152
00:09:31,000 --> 00:09:32,000
They invite me to conferences.

153
00:09:32,000 --> 00:09:35,000
And they work really hard on the product and on the community.

154
00:09:35,000 --> 00:09:41,000
It seems like one of the benefits, and this isn't the only thing, but essentially your marketing costs are zero, if you will.

155
00:09:41,000 --> 00:09:42,000
Or the initial boost traffic.

156
00:09:42,000 --> 00:09:44,000
Well, the flight here wasn't exactly true, but yeah.

157
00:09:44,000 --> 00:09:48,000
It's a lot more than just marketing, too, because you get all these people who are working on documentation.

158
00:09:48,000 --> 00:09:49,000
Right.

159
00:09:49,000 --> 00:09:54,000
I've been able to pass most of the documentation efforts and a lot of ticket maintenance efforts off to the community.

160
00:09:54,000 --> 00:09:59,000
I've got people who--I don't have to have, you know, tier one support people in the forums answering questions,

161
00:09:59,000 --> 00:10:03,000
because I have people who use the product every day and are in the forums answering questions.

162
00:10:03,000 --> 00:10:05,000
And so that really makes a difference.

163
00:10:05,000 --> 00:10:13,000
I mean, since we're kind of on this topic is--I see a lot of when the community attacks, so to speak, to borrow a name from an old South by Southwest panel.

164
00:10:13,000 --> 00:10:26,000
How--whether it's specific to your community or you want to generalize, like, how rich do you think you can get off of the project before--like, what's the limit where the community starts to think that you're kind of ripping them off?

165
00:10:26,000 --> 00:10:32,000
I have to say that I haven't tested the limits of that very much, to put it realistically.

166
00:10:32,000 --> 00:10:39,000
That's a real question that I struggle with all the time, because you--I do want to monetize this, but I want to do a lot more than monetize it.

167
00:10:39,000 --> 00:10:41,000
I want to change the way people think about computers.

168
00:10:41,000 --> 00:10:49,000
I mean, I was just on this panel that you were--I was on with you, and I want every operating system in the world to either be using Puppet or using something that was inspired by Puppet.

169
00:10:49,000 --> 00:10:50,000
Right.

170
00:10:50,000 --> 00:10:51,000
I'm embarrassed with the way things work.

171
00:10:51,000 --> 00:10:58,000
The only way to get that kind of change, the only way to get that kind of reach, is to get big and to get everyone talking about me and talking about the software.

172
00:10:58,000 --> 00:11:05,000
And that kind of inherently means acquiring power and acquiring wealth and acquiring more people working for me in a larger organization.

173
00:11:05,000 --> 00:11:08,000
And as that changes, I think there is a lot of concern.

174
00:11:08,000 --> 00:11:13,000
The ways that I'm planning on allaying that are trying to avoid--there are a lot of ways you can do that incorrectly.

175
00:11:13,000 --> 00:11:17,000
You can start being concerned about whether--so I was talking to another open source company, and they were saying,

176
00:11:17,000 --> 00:11:22,000
"Well, we're open source, but we require patches to have their copyright assigned over to you."

177
00:11:22,000 --> 00:11:28,000
So I'm not going to pick a business model that requires that I own the copyright for all the code that gets committed to Puppet.

178
00:11:28,000 --> 00:11:29,000
I don't think that makes sense.

179
00:11:29,000 --> 00:11:32,000
I don't think that the community will respond well to that.

180
00:11:32,000 --> 00:11:36,000
I also don't want to pick a business model that encourages me not to release some stuff.

181
00:11:36,000 --> 00:11:40,000
So I want to find a business model that more openness makes more money for everyone.

182
00:11:40,000 --> 00:11:41,000
Right.

183
00:11:41,000 --> 00:11:45,000
And I think one of the other ways, too, is that I want to make other people in the community make money, too.

184
00:11:45,000 --> 00:11:47,000
So I think there's money to be made.

185
00:11:47,000 --> 00:11:49,000
I think that there's a space that isn't visible.

186
00:11:49,000 --> 00:11:55,000
That if you're outside right now, if you're in the systems world, it's not obvious that there's money to be made.

187
00:11:55,000 --> 00:12:01,000
You can't--if you are the best sysadmin in the world right now, you literally--there's somebody out there who is the best.

188
00:12:01,000 --> 00:12:02,000
Do we know who he is?

189
00:12:02,000 --> 00:12:04,000
Is he making more money because of that?

190
00:12:04,000 --> 00:12:05,000
Right.

191
00:12:05,000 --> 00:12:07,000
Does he get speaking engagements because of that?

192
00:12:07,000 --> 00:12:08,000
He doesn't.

193
00:12:08,000 --> 00:12:13,000
It's not the same as in programming, where there's a very easy-to-spot rock star system.

194
00:12:13,000 --> 00:12:14,000
Right.

195
00:12:14,000 --> 00:12:18,000
Brian Bellendorf is sitting right over there, and everyone knows him because he's done these great things.

196
00:12:18,000 --> 00:12:24,000
There's a Brian Bellendorf in the systems world who's drudging away someplace because he can't be treated like a rock star.

197
00:12:24,000 --> 00:12:27,000
So how can I build a community that, yes, it's going to make me money?

198
00:12:27,000 --> 00:12:28,000
I certainly hope so anyway.

199
00:12:28,000 --> 00:12:33,000
But how can I make it to that sysadmin, that rock star, can also make a lot of extra money?

200
00:12:33,000 --> 00:12:35,000
He can get $10,000 speaking engagements.

201
00:12:35,000 --> 00:12:41,000
So I think that's one of the ways that you navigate that is that you make it clear that you're not the only one who's making money.

202
00:12:41,000 --> 00:12:42,000
Right.

203
00:12:42,000 --> 00:12:43,000
You're putting the whole thing up with you.

204
00:12:43,000 --> 00:12:44,000
Right.

205
00:12:44,000 --> 00:12:50,000
It seems like, and it's hard to articulate this without seeming like a non-cynical idiot, right?

206
00:12:50,000 --> 00:12:55,000
But basically that you sort of treat success like a tool in order to get a grander sort of goal.

207
00:12:55,000 --> 00:13:03,000
And it seems like the successful open source people and companies that maintain the goodwill of the community, that seems to be what they do.

208
00:13:03,000 --> 00:13:05,000
Instead of saying, "Oh, now we've cashed out."

209
00:13:05,000 --> 00:13:09,000
They realize that they can't really just be the one person that's going to change everything.

210
00:13:09,000 --> 00:13:13,000
They need to build up capital, if you will, in order to do things.

211
00:13:13,000 --> 00:13:18,000
And the thing that's great about open source is the movement, is the churn.

212
00:13:18,000 --> 00:13:19,000
Right.

213
00:13:19,000 --> 00:13:24,000
And if you draw a line and say, "These people are getting rich and these people aren't," then you lose that churn.

214
00:13:24,000 --> 00:13:26,000
Because there's this step up.

215
00:13:26,000 --> 00:13:27,000
Right.

216
00:13:27,000 --> 00:13:29,000
And you can step into the people who are making money or step back out.

217
00:13:29,000 --> 00:13:31,000
And you don't want that.

218
00:13:31,000 --> 00:13:36,000
You want this nice gradient of, "I can step in, start doing some things, start helping a little bit.

219
00:13:36,000 --> 00:13:39,000
I'm learning, I'm producing."

220
00:13:39,000 --> 00:13:41,000
And then, over time, I get a reputation.

221
00:13:41,000 --> 00:13:43,000
It's easier to get a job because people know me.

222
00:13:43,000 --> 00:13:49,000
You know, it's just starting to the point where your reputation in the puppet community can help you get a job.

223
00:13:49,000 --> 00:13:50,000
Right.

224
00:13:50,000 --> 00:13:55,000
In a year, I think your reputation in the puppet community is going to be likely to get you a job.

225
00:13:55,000 --> 00:13:59,000
In two years, I hope people will be building jobs based on the puppet community.

226
00:13:59,000 --> 00:14:02,000
There's a consulting company right now that's all their business is based on.

227
00:14:02,000 --> 00:14:04,000
They don't tell their customers, "Hey, we're a puppet consulting company."

228
00:14:04,000 --> 00:14:06,000
But all their consulting is on puppet.

229
00:14:06,000 --> 00:14:08,000
Well, all of your business is on puppet, right?

230
00:14:08,000 --> 00:14:09,000
Right.

231
00:14:09,000 --> 00:14:10,000
But they're a derivative company.

232
00:14:10,000 --> 00:14:11,000
Yeah, yeah.

233
00:14:11,000 --> 00:14:12,000
They aren't puppet committers.

234
00:14:12,000 --> 00:14:14,000
They're just people who use puppet to do their job better.

235
00:14:14,000 --> 00:14:18,000
So, there's going to be this, "I want to build an ecosystem for people who aren't just me, people who aren't just my company."

236
00:14:18,000 --> 00:14:19,000
Sure.

237
00:14:19,000 --> 00:14:32,000
And the more that this company can say, "We're a puppet company," then if I can get the marketing right so that they can advertise they're a puppet company and they make more money as a result, there's not going to be any kind of jealousy.

238
00:14:32,000 --> 00:14:33,000
Right, right.

239
00:14:33,000 --> 00:14:37,000
Nobody's going to say, "Well, Luke's making all the money and Adam Jacobs working his butt off, but he's not making any money."

240
00:14:37,000 --> 00:14:47,000
So, I think that's the main way is there's this, I'm kind of a pedant about some things and one of them is the difference in definition between jealousy and envy.

241
00:14:47,000 --> 00:14:48,000
Right.

242
00:14:48,000 --> 00:14:55,000
And envy is, "I also want what he has." And jealousy is, "I want what he has instead of him having it."

243
00:14:55,000 --> 00:14:56,000
Right, right, right.

244
00:14:56,000 --> 00:15:02,000
So, jealousy is there's one thing and he has it, but I want it. And envy is, "There's one thing, but we can have two."

245
00:15:02,000 --> 00:15:03,000
Sort of zero sum versus additive, right?

246
00:15:03,000 --> 00:15:04,000
Right.

247
00:15:04,000 --> 00:15:05,000
Yeah.

248
00:15:05,000 --> 00:15:15,000
So, in this case, I think that in open source, your goal is build envy. You want people to go, "Man, that thing he's got, I want that. And if I work hard enough, I can get that."

249
00:15:15,000 --> 00:15:23,000
And the fear is, you end up with jealousy where people say, "Only one person can have the place that he has. And I want that place instead of him."

250
00:15:23,000 --> 00:15:23,000
Right.

251
00:15:23,000 --> 00:15:33,000
And so, every time you see anything that looks like jealousy, you have to work to make it so that that gets just kind of, you know, you can't push it out, but you want to assuage that fear and say, "I'm not going to do that."

252
00:15:33,000 --> 00:15:43,000
And so, you find business models or you look for business models that are going to say, "I'm going to enable you to make money, I'm going to enable you to get..."

253
00:15:43,000 --> 00:15:50,000
And I talk about money, right? Because this is what I do for a living. If I don't succeed, then the way that I can tell I'm not succeeding is that I'm really hungry all the time.

254
00:15:50,000 --> 00:15:51,000
Right, right.

255
00:15:51,000 --> 00:16:00,000
But other people's definition of success isn't that. You know, maybe you've got a job that you love, you're not going anywhere. Maybe you've got, you know, enough medical issues, you don't want to change jobs, you can't work for yourself, you don't want to consult.

256
00:16:00,000 --> 00:16:13,000
But, you'd like people to know your name, you'd like people to read your blog, you'd like people to understand who you are, and you'd like people to use the code that you write. And I think this is, a lot of people's definition of success is, I do stuff that's important to other people, right?

257
00:16:13,000 --> 00:16:14,000
Absolutely.

258
00:16:14,000 --> 00:16:29,000
So, if you've got great sysadmin work that you've done, and you produce it, and other people are using it, then that's reward and that's success. And if I can have part of the way of succeeding in a public community is, the work you do is used by thousands or hundreds of thousands of people, I don't think a lot of people are going to go,

259
00:16:29,000 --> 00:16:31,000
Luke's getting rich off the, you know.

260
00:16:31,000 --> 00:16:32,000
Right, right, right.

261
00:16:32,000 --> 00:16:33,000
You know.
