The Changelog: Software Development, Open Source - Maintaining the massive success of Envoy (Interview)

Episode Date: October 30, 2020

Today we welcome Matt Klein into our Maintainer Spotlight. Matt is the creator of Envoy, born inside of Lyft. It's an edge and service proxy designed for cloud-native applications. Envoy was unexpecte...dly popular, and completely changed the way Lyft considers what and how to open source. While Matt has had several opportunities to turn Envoy into a commercial open source company, he didn't. In today's conversation with Matt we learn why he choose a completely different path for the project.

Transcript
Discussion (0)
Starting point is 00:00:00 And because the lines of investment can be blurred sometimes with open source, can you define what you mean by investment? You mentioned a lot of input, but also investment. Can you clarify that investment statement? Investment comes in many forms. It comes from obviously code. You want people to write code and write features, and that's the most obvious investment that people think of. But the reality is that, and this is the thing that I tell people from an open sourcing perspective, is that starting a successful open source company is no different from starting an actual company. It requires all things. It requires engineering, it requires PR, it requires marketing. I mean, it requires what I call hiring in terms of finding maintainers, finding contributors. So investment is all things, right? It's not just code.
Starting point is 00:00:50 It's people writing blog posts. It's other people going and talking at conferences and talking at meetups. And so I think what we saw initially from the Istio perspective, and that was a Google project that came on fairly early, is that was a huge bump to the project, right? Because it was not just code. They had a lot of people going out and talking to conferences and building hype. And so I think that those are the types of things that I'm talking about, is that it's documentation, it's blog posts, it's build tooling.
Starting point is 00:01:22 It's like all of the things that make something successful. That's not, not just writing features. Bandwidth for changelog is provided by Fastly. Learn more at fastly.com. We move fast and fix things here at changelog because of rollbar. Check them out at rollbar.com and we're hosted on Linode cloud servers at the linode.com slash changelog. What's up? Welcome back everyone. This is the changelog podcast featuring the hackers, the leaders, and the innovators in the world of software. I'm Adam Stachowiak, editor-in-chief here at changelog. Today we welcome Matt Klein to our maintainer spotlight. This is a special flavor of the ChangeLog.
Starting point is 00:02:07 We focus on the maintainers and their journey. Matt is the creator of Envoy. It was born inside of Lyft. It's an edge and service proxy designed for cloud-native applications. Envoy was unexpectedly popular and completely changed the way Lyft considers what and how to open source. And while Matt has had several opportunities to turn Envoy into a commercial open source company, he didn't. And in today's conversation with Matt,
Starting point is 00:02:29 we learned why he chose a completely different path for the project. By the way, huge thanks to our friends at Tidelift for making this series possible. Maintaining a spotlight is so much fun and we appreciate their support. Check them out at Tidelift.com. All right.
Starting point is 00:02:55 We're here with Matt Klein, creator and maintainer of Envoy and then software engineer at Lyft. Matt, thanks for joining us on Maintainer Spotlight. Thanks so much for having me. We are very happy to have you. Envoy is quite a big deal and it's been going on for a while now. So the start of this show is when you announced your four years with Envoy. In fact, we've had a few people over the years, Dan Cohn being one of them, tell us you got to have Matt Klein on the changelog. And we had you on our short list of people. And when I saw that tweet, I was like, oh, good timing. He's excited. I'm excited. Let's get him on the show. So here we are.
Starting point is 00:03:22 Super. Thanks. So Envoy, a very cool project. CNCF graduated, started out of Lyft and then handed off to the CNCF. Tell us the story, what Envoy is, and then kind of the genesis of the project inside of Lyft. And then we'll fast forward to the present. Sure. Of course. Yeah. So Envoy is a software proxy. So it would be most similar to projects that folks have probably heard of, things like Nginx and HAProxy. I started Envoy within Lyft at this point, amazingly, five and a half years ago. It's been quite some time. It's been quite the journey. Envoy was originally started to help Lyft through its microservice journey. Like many companies like Lyft, Lyft started with a
Starting point is 00:04:06 monolithic architecture. And prior to my joining Lyft, they had probably something like 15 or 20 different microservices. And the microservice rollout was not going super well. So they were facing a lot of the common problems that folks face when they roll out microservices, whether that be primarily networking or observability or just general system stability. So I was hired at Lyft, and at the time, there's only 80 software engineers, so it was quite a different company than it is today. And I was tasked with helping them to figure out how to actually do this migration.
Starting point is 00:04:41 And based on previous experience over at Twitter, prior to Twitter, I was at AWS. So, you know, I've been working on distributed system networking for quite some time. I had some understanding of how, you know, people did microservice edge networking, how people did microservice service-to-service networking. And when I came to Lyft and saw all of these common problems, I thought, you know, there's a better way that we can potentially do this. So in hindsight, again, to be totally honest with you, for such a small company, I was, as the phrase goes, given a lot of rope to hang myself with. They allowed me to start this project as opposed to using something like NGINX or HAProxy. And I was very clear about what the goals were. and I thought
Starting point is 00:05:25 that we could do better than what the status quo was so far. And the very brief story of Envoy is we actually started as an edge proxy. So now it gets a lot of talk from a, quote, service mesh or a service-to-service perspective, but Envoy is also widely used in the industry as an API gateway, and that's actually where it started at Lyft. So we replaced our load balancers with Envoy is also widely used in the industry as an API gateway. And that's actually where it started at Lyft. So we replaced our load balancers with Envoy, and we did that so that we could get better observability, better load balancing, better access logs. And that allowed us to start understanding how the traffic was flowing within the microservice architecture. And then from there, we used to run HAProxy on our monolith, and we used that to do various things around MongoDB. And we ran into various problems with HAProxy,
Starting point is 00:06:15 and we implemented some MongoDB protocol parsing and some rate limiting and various things. And that was really the beginning of the service mesh at Lyft because we ran Envoy at the edge and we ran Envoy on our monolith. And, you know, the rest is incremental history. It was a very pragmatic, incremental project. We went from empty files to first deployment in probably three or four months. And then from there, you know, we went from the edge to an entire service mesh.
Starting point is 00:06:48 We added lots of features. And then by the beginning of 2016, Envoy was fully deployed at Lyft. So all services were routed through Envoy. It was all client-side load balancing. We were fully deployed at the edge. And then obviously we open sourced towards the end of 2016. So happy to go into more detail there, but that's the very brief origin story. If you were to give everybody an idea of like foundationally, fundamentally,
Starting point is 00:07:17 what makes Envoy different than an Nginx used as a proxy or as a proxy, what is that? Yeah, I think the biggest technical difference is that, and there's lots of non-technical differences that are very interesting to talk about, but I think the biggest technical difference is that Envoy was created to deal with modern elastic, people call it cloud-native architectures, right? So things are auto-scaling, you have container runt times, things are coming and going, things are always failing. So Envoy was built to have an eventually consistent configuration system.
Starting point is 00:07:53 And now we have a suite of APIs, which we call XDS. And those are a set of APIs that allows Envoy to dynamically fetch things like route configuration or listener configuration or cluster configuration. So in a simple config, Envoy can be statically configured, just like HAProxy and Nginx. But really from the beginning, Envoy was built to be able to change all of its config on the fly without having to reload.
Starting point is 00:08:22 And that's a really big difference from the way that historically, you know, HAProxy and Nginx have typically done their own config. Now, since Envoy has come out, both Nginx and HAProxy have had to evolve in this area also to work with these more modern architectures.
Starting point is 00:08:39 But I think that's the biggest technical difference. The other difference is that Envoy was really built from the ground up to be extensible. And we've seen that from a technical perspective is that now we have filters that do all types of different things. We have different metrics plugins and stats plugins and tracing plugins. So I think those are probably the two main technical differences. Thank you. That's very helpful.
Starting point is 00:09:03 So you mentioned maybe five and a half years since you started coding. Four years was the milestone of the open source. Was open source in the to-do list from the start or was that a conversation inside of Lyft? Yeah, this is a very, very interesting topic. I don't think it was in the plan from the start. I think that, you know, Envoy is an iteration of technical work that I had done previously. So I think that a group of us came over to Lyft, you know, from back at Twitter. And I think that based on some of the proprietary technology that we had developed at Twitter, you know, we were going to develop some of it again, hopefully better the second time.
Starting point is 00:09:41 And I think a bunch of us had some thinking that, you know, why not put this out there, right? I mean, why not open source it? It's like, it's not in Lyft's primary business interest. It makes sense to put it out there to be a good open source steward. Now, I think a lot of people ask me, did you plan on open sourcing it from the very first line of code? And I think I had that in the back of my mind, but to be perfectly honest, my goal for the first year was to satisfy Lyft's requirements. And I think slightly sidestepping, I think one of the reasons that Envoy became so popular so quickly is that it was not a vendor project. It was a project created by an end user
Starting point is 00:10:25 for an explicit business use case. And by the time that we open sourced Envoy, when I started at Lyft, it was probably 80 or so developers. By the time that we open sourced, it was at least several hundred. Now it's over a thousand. But we have battle tested this code,
Starting point is 00:10:41 not only from a stability perspective, but every feature that was added was added to satisfy some particular business case. So I think having that captive customer, really building the software so that it was easy to operate, that it was reliable because we were on call for it, I think it really shows. So our focus for the first six to nine months, or at least my primary focus was I really didn't think about open sourcing at all. It was all about satisfying Lyft. And I think when we got to spring or summer of 2016, and we had a little bit of breathing room,
Starting point is 00:11:19 then we started to think about, well, you know, we've put in a massive amount of engineering effort here. This has been a great success for Lyft. Looking around at our peer companies, they're obviously all solving very similar problems. It would stand to reason that these other organizations, you know, would probably benefit. So it was really in the summer of 2016, you know, that I think we started to have serious conversations about open sourcing. And I think what is so interesting about those conversations, and again, I'm just being really, really honest here, is that how, in hindsight, how naive those conversations were. Because my personal history is, you know, I historically mostly a proprietary developer. I've done some open source contributions. I think I have one commit in the Linux kernel.
Starting point is 00:12:09 And I've obviously used open source. But prior to Envoy, I had very little to no active experience doing maintenance of open source. I didn't really understand what it took to have a successful project. And I don't think Lyft management really understood that either. So we had our ideas of what open sourcing would look like. And I think based on that, we made some relatively naive decisions around, we've done this, let's go and throw it out there and let's figure out what to do and how to do it. But to be honest, I learned on the fly and it was a difficult time because of this naive approach to open source and not really understanding all the time commitment and what would go into making a successful project.
Starting point is 00:12:58 I think that we didn't plan very well for what it would mean if the project really became successful and what the time commitment would be to actually making it successful. So the end of 2016 and the beginning of 2017 were some of the most difficult times in my professional career. I came very close to complete and total burnout, trying to work two jobs. I was effectively leading our networking team at Lyft, still satisfying feature requirements, leading our team, and then the increasing demands of open source. So I think a lot of people think that a lot more rigorous thinking went into the open source process. And the funny thing is that I think some people have asked, well, you know, with the success of Envoy, has Lyft, you know, done more open source?
Starting point is 00:13:48 And if anything, I think it's the inverse. Because of the success of Envoy, I think we have a better understanding now of what it takes and how much that time commitment is. And I'm a big believer that with open source, I actually think that most open source projects are a net negative. And I mean that in the sense where if you open source something and you throw it out there and you don't maintain it, right, and you get some interactions online, I think from a corporate perspective, you're probably going to put out more effort than you're going to get back. Very few projects become successful enough where you get enough outside development that justifies the open sourcing effort.
Starting point is 00:14:32 And I think that the experience of Envoy at Lyft, and we can obviously talk more about this, is just that it is a lot of work to have a successful open source project. And so I think that experience, that initial striking gold, if you will, has led us to a much better understanding of what are good opportunities do we think that we can actually succeed? And if we can succeed, then let's obviously go for it. But if we don't think that we're going to get a net positive out of it, you know, I think that's something that we would have to think a lot more carefully about. What is it you think you were actually trying to do then when you first open sourced it? Give us an idea of what the naivete was. What were you, not so much the details of that, but like when you thought about open sourcing Envoy,
Starting point is 00:15:18 what were you hoping would happen, I suppose? Yeah, that's a fantastic question. It's actually funny in hindsight because in the summer of 2016, when we were prepping for open source, I think my personal dream, or even Lyft's dream, was that, you know, let's get one of our peer companies, one of our unicorn peer companies, whether that be a Slack or a Stripe or a Square or something along those lines. Let's get one of these internet companies. Let's get them excited about Envoy. And let's get them using Envoy. And let's validate that this makes sense. And I think when I open sourced Envoy, or when we did that, I think that was our goal. I mean, I was really hopeful that maybe we could get one company using it. And that would be an amazing success. And I would feel really fantastic about that. And really quickly, you know, that became
Starting point is 00:16:07 unrealistic because what happened prior to open sourcing, again, this is going back to summer of 2016, as we went and had some conversations with these companies, we talked to Airbnb, we talked to Slack, we talked to Stripe. And everyone we talked to, and we showed them the code, we showed them the documentation, they were all excited about it. They all had, they all had similar problems, but, but in hindsight, it's very obvious, right? Because if you go to a company that has a, you know, highly dynamic internet architecture and they have three people running their networking or their services team, they're not going to swap out what they have with Envoy. That's just crazy. I mean, like, they're just not going to do it. So it became a little, I don't want to say sad, but disappointing because it became clear that prior to open source, it was a bit of a leap of faith because we weren't going to get another company to be an early adopter.
Starting point is 00:17:00 And what happened right after open sourcing, I mean, this is literally within a week or two of open sourcing, Google shows up, Apple shows up, Microsoft shows up. And that is what was shocking to me, is that I think that these companies who have been dealing with larger problems at scale and might have had some frustrations with existing solutions, they saw what we were doing with Envoy. They saw the feature set. They saw the non-vendor commitment to open source. They saw a bunch of these things. So what ended up happening is that we got these big companies first, right? And that was super, super surprising to me. And what happened over the course of 2017 is we got all these big companies, which really supercharged the overall project. We got lots of developers, lots of investment. And then, you know, by the end of 2017, we started to see mass adoption from these slacks and the stripes and those types of
Starting point is 00:17:59 places. And I think that was not what we ended up expecting, but that's just how these things evolve. From a success perspective, if you were to ask me, again, what was my goal and has that goal actually been satisfied? I mean, never in my wildest dreams would I have imagined that we would have the project that we have today. I mean, it's just such an incredible success. It's a once in a lifetime thing. And because the lines of investment can be blurred sometimes with open source, can you define what you mean by investment? You mentioned a lot of input, but also investment. Can you clarify that investment statement? Investment comes in many forms. It comes from, you know, it comes from obviously code, like you want people to write code and write features. And that's the most obvious investment that people think of.
Starting point is 00:18:47 But the reality is that – and this is the thing that I tell people from an open sourcing perspective – is that starting a successful open source company is no different from starting an actual company. It requires all things. It requires engineering. It requires PR. It requires marketing. I mean it requires what I call hiring in terms of finding maintainers, finding contributors. So investment is all things, right? It's not just code. It's people writing blog posts. It's other people going and talking at conferences and talking at meetups. And so I think what we saw initially from the Istio perspective, and that was a Google project that came on fairly early, is that was a huge bump to the project, right?
Starting point is 00:19:32 Because it was not just code. They had a lot of people going out and talking conferences and building hype. And so I think that those are the types of things that I'm talking about, is that it's documentation, it's blog posts, it's build tooling. It's like all of the things that make something successful that's not just writing features. Pretty wild, though, how this has been bigger than your wildest dreams. So that's big. I don't want to not acknowledge that, but I did have that question about investments. That is super huge.
Starting point is 00:20:02 Yeah. Look, I don't want to say that this is the most important thing that I will do in my career, but it's going to be hard to top this. I mean, that's just the reality. Like this has been a monumental success and it's a combination of things. I mean, it's not that I didn't work hard to the point of, as I said before, almost complete burnout. But there's a lot of luck here. I mean, it's being in the right place at the right time. It's finding the right partners. I mean, it's just having the right opportunities. So I think like all massive successes, it's going to be a combination of luck and execution. And this is just one of those
Starting point is 00:20:43 things that just came together really well. Yeah. So what you know, this is just, this is just one of those things that just came together really well. Yeah. So what happens with big successes is they often generate more success. And so one thing that happened to you early on, especially when your end users of a project are the likes of Apple and Google and the like, is that more opportunities come. And something that seemed to happen to you early on was like a lot of investment opportunities. You seem like there's a lot of money making opportunity right here at the front door, right? Sure. Because you could start a company around this thing and many have and some of them succeeded, some have failed. But it's commonplace now, especially in the cloud native space where there's lots of problems to solve and lots of money to spend is to start a platform
Starting point is 00:21:21 company. And you came out against that in 2017. a very interesting post. I'm sure you put a lot of thought into that and we're a few years away from it. So I thought it'd be a good time to reflect why you're not going to do that. You're not going to start a platform company. What's your thoughts on that? It's actually funny that you bring that up because I reread that blog post recently for the first time in a while. And there's a few things that actually struck me. One of them is there's a quote in there, you know, where this is in the early 2017 timeframe. And I think a lot of the venture capitalists who are pushing me to start a company, many of them said to me, you know, the Envoy will never be a successful open source project unless I start a company. And I had written in that blog post that
Starting point is 00:22:05 I thought that that was not true. And reading back through that blog post makes me so happy to know how right I was and how wrong all of those VCs were about that particular statement. And I think at least for the first several years of the project, having it be not vendor-driven, having it be community-first, having it be community first, technology first, we're going to make technology first decisions. I think that's one of the things that made the project so absolutely successful is that people never had to worry about the fact that, you know, we're going to deny features because we're going to have some paid premium project or something like that. And the other part of it
Starting point is 00:22:45 that I thought was interesting is that I had stipulated or I had theorized in that blog post that the way potentially to make money on something like Envoy is not necessarily going to be in the Service Mesh domain. And I think that has also proven to be true in the sense that if you look at some of the companies who are within this ecosystem, I think that these companies are actually going through and I think they're building some interesting services and support businesses. But I think that the pain of what I had written about in that blog post of it being a very difficult problem to take something like Envoy, which is a data plane that you have to actually sit there and you have to deploy it, whether it be with console or Kubernetes or virtual machines.
Starting point is 00:23:30 It's a very painful DevOps experience. I think that holds true. And the other thing that I said in that blog post is that I do think that there's a lot of interesting things that can be done in the API gateway space. And I think we are seeing that happen as well. So if you look at what we're doing with Envoy Mobile of running Envoy on the iOS and Android devices, I think there's a lot of interesting things happening in the edge computing space, lots of interesting things happening in the security space. But at the end of the day, I do not regret my decision at all, just because I think that my involvement in the
Starting point is 00:24:07 project, just being where I am and not working for a vendor has led to an overall nurturing, right? And I think that if I were working for a vendor, it's probably less important now because the project is so established. But in the beginning, being able to be neutral and actually nurture that project without people having to worry about what my motivations were, I think is fairly important. And look again, I mean, and this is me speaking from, you know, talking about the luck and being in the right place and all of these things. I'm not poor. Like I've been a very, very privileged person to work at a bunch of pre-IPO companies. And, you know, it's not like I'm not poor. I've been a very privileged person to work at a bunch of pre-IPO companies, and it's not like I'm hurting for money. So for me, I think having the privilege to not have to worry about those things to a certain extent and to focus on the technology, again, has been one of the things that has allowed the project to grow a lot. One thing you said in that post, which echoes a lot of the segments you're saying here, and is another angle to that, is at the end of the day, when you looked at the different
Starting point is 00:25:13 types of businesses that would most likely be successful around Envoy, you said, none of these businesses are technologically or personally interesting to me. Now, of course, you are in the position where you can say, yeah, I'll pass on that. Not all of us are in that position. Like you acknowledge there. But I think that takes a certain amount of maturity and reflection to stop yourself there when like the huge opportunity and the money's there
Starting point is 00:25:38 and like all this people, you know, VCs metaphorically throwing money at you to say, that's not really the life that I want, though. Like, that's not where I'm interested. I want to stay just writing, not just, but, you know, running the software, writing the software. That's what interests me. That takes some maturity. I think that when I talk to people about their careers, I think one of the things that I typically say to people is that, you know, we individually choose our path. And that path is going to be based on
Starting point is 00:26:05 lots of different things. It can be based on what technology we're working on, how much money we make, where we're working, who we work with, all of these things, right? I mean, there's like 10 or 15 different things or more that people are going to care about. And each individual chooses their own path, right? It's not black and white, it's shades of gray. And everyone, you know, figures out what the right balance is of all of these factors. And for me, I'm not going to say that I've never been motivated by money or I've never been motivated by title or all of these things because that would be lying. But as we choose our path through our careers, I think at the time that Envoy happened, you know, I just tend to bias for
Starting point is 00:26:47 impact. I tend to bias for solving big problems and having the large impact that I can have. And that's what personally drives me. So from an open source perspective, the thing that I have found, you know, honestly most gratifying is the impact. It's the ability to see the software be so widely deployed and have it now. I mean, now it's just, I mean, it literally blows my mind to see all of the cases and all of the companies and all of the organizations that are using this thing that it just continues to drive me because I think that it's just really fantastic. What up, friends? I want to share with you a few details about the title of subscription. It is a managed open source subscription backed by Project Maintainers.
Starting point is 00:27:45 And as you may know, this series, Maintainer Spotlight, is produced in partnership with Tidelift because we love what they're doing and we believe in them. So if you're building applications with open source, Tidelift helps you to ensure that you have components that just work, including comprehensive security updates, active maintenance, and accurate licensing, which is so helpful. Tidelift helps you to speed up application development, save money, and reduce risk when building apps using open source. And best of all, with the Tidelift subscription, you help open source maintainers that we feature on this show to get paid for their work. Learn more and get a demo at Tidelift.com. Again, Tidelift.com. Again, Tidelift.com.
Starting point is 00:28:48 So you mentioned how you were a bit naive when you open sourced this. You didn't expect maybe the success. You didn't know what all goes into running a successful open source project, building a community. One thing I am impressed by is Envoy's community. It seems very robust. The fact that I had just found out about your Envoy con, and I was like, cool, they're having a con. They must have arrived. And then I went to the webpage and it's like, this is the third one.
Starting point is 00:29:09 And I was like, oh boy, where have I been? So very successful in that regard. What have been some of the struggles along the way? Because you mentioned the burnout phase. You're still here, so you must not have burned out, but you must have learned a few things. Maybe you can share some insights and some struggles for other people who have open source projects or trying to maintain them or trying to maybe even build the kind of hype that you got for Envoy.
Starting point is 00:29:31 Yeah, I think when we go back to 2016 and early 2017, I think the biggest initial learning was needing to have really open and honest conversations with my actual employer, right? Because as I said before, we open source from a fairly naive perspective of what the time commitment would be, what the requirements would be in terms of actually, you know, making it successful. And from an open source perspective, like I was saying, in a perfect world, the few successful projects are where you end up getting more back than you actually put in. That's what I mean by net negative or net positive. And Envoy, by any definition, in the last four years has been extremely net positive. I mean, we have probably 30 or plus people that work on Envoy full-time now around the industry. You know, there's probably
Starting point is 00:30:30 one or one and a half at Lyft. So it's just an incredible success in terms of, you know, getting those amount of resources. But in the beginning, those resources didn't exist. I mean, we had to seed that. And a lot of that was done by me, you know, going out and speaking at conferences and working on documentation and doing a bunch of things external to the company that if we were successful would reap benefits, but those are delayed benefits, right? So for the first six or nine months, I just didn't know enough to know how to talk to management at Lyft about what would be reasonable in terms of time commitment. Like how much time should I be spending
Starting point is 00:31:10 doing this versus working internally? And from talking to other people, particularly people that make projects and open source them and go through the same type of transition, I think this is very common. And this is the thing that I really counsel people on is that you really have to have these open dialogues because in 2017, I went through some pretty, pretty difficult times. It wasn't just about burnout. It was about honestly differing expectations. I'm a senior engineer at Lyft, you know, from a senior engineer at a company like Lyft, I'm obviously have a bunch of different things that I'm supposed to be doing, from mentoring junior engineers to helping fix issues to design reviews to all of these things. And there's only so many hours in the day.
Starting point is 00:31:55 So I think particularly during that 2017 timeframe, I went through some difficult times where I don't know that I was doing my Lyft work to the extent that Lyft maybe expected me to do it. And that led to some difficult times. And I was making tradeoffs between spending time on open source work versus internal work. And I made tradeoffs in favor of the open source work. And I don't regret those decisions, but I think if we had had some more open conversations, some more reasonable expectations about time, I think that's probably the first major issue. So, you know, I think that as we went through this process, trying to bridge that gap for, say, let's call the first year the investment, right, before we started really reaping those
Starting point is 00:32:46 dividends. I think that, you know, that was a very difficult year of trying to figure out how much work was okay to be doing outside of the work that directly impacted Lyft before we started seeing those returns. So for anybody else, I mean, I guess you have to be in that position where you are building a project that either is going to be open source or is open source inside of an organization like Lyft, where you really want to have those conversations right up front. And this is exactly why I said that I think this is counterintuitive to most people, that because of the success of Envoy, I think we are more rigorous around open sourcing now. We are much less naive about it. And I force people to go through this thought exercise of, are we in it to win it? Again, it's no different than starting a company. Why are we doing this? What are the goals? How are we going to get this to be net positive? And if we're in it to win it, you know, these are the things that we need to do. And then I think we can have a more honest business conversation about, is this worthwhile? I think many people don't go through this thought exercise probably because they are naive like me and they just don't know any better. But it's really important to think
Starting point is 00:34:03 through very carefully what is going to be required and this is often not technical it's not writing code you know and for me i think it was clear to me from the beginning that you know you you talked about this is our third on by con and it is we have two tracks this year and it's virtual it's just like it's like amazing that we can get this type of interest but building that community was so critical. And I spent a tremendous amount of effort early on making sure that the communication style of the project was super welcoming. And it's funny. I think a lot of people talk to me and they think that probably the thing that I am most proud of is the massive deployment of Envoy.
Starting point is 00:34:47 And look, I mean, I am super, super proud of it. But if you were to actually ask me if I were to pick one thing that I am most proud of, it is actually about community. And I have been told by a non-trivial number of people that they had sworn off open source, particularly infrastructure open source, particularly infrastructure open source, because, you know, the communities were toxic and people were mean and blah, blah, blah, blah, blah. And that they love contributing to Envoy, you know, because of the welcoming community and the communication style and all of these things. And some of these people that have
Starting point is 00:35:22 told me this, they are epic contributors. And thinking about the fact that they had thought the open source was garbage or that everyone was mean and that they weren't contributing, it makes me sad. So if you were to ask me again, what excites me the most is the fact that we've been able to build this community across competing companies. And I think that's, it's just really fantastic. And it makes me, it makes me feel great. Like it makes me feel like we are, you know, we're doing good work across the board, meaning we're, we're building great technology. We're building it with a group of people who are both satisfying their corporate concerns, but also getting enjoyment out of contributing to open source. And that just really excites me. This open dialogue you mentioned you had with your employer, Lyft in this example, did it involve things like IP or control or ownership?
Starting point is 00:36:16 I know it's open source, of course, there's a license involved, but intellectual property, things like that. Are these other things you sort of guard against or consult against, as you mentioned? These are things that people certainly have to think about. In the case of Envoy, it was a little less complicated, just in the sense that, A, it would be difficult to file patents on Envoy specifically, just because Envoy is, from a technology perspective, there's not a lot novel in Envoy. There's no one component of Envoy that is super novel. The composition is actually quite novel. But from a patent portfolio perspective,
Starting point is 00:36:57 not being less primary business, I don't think the IP concern was a large concern, as opposed to if we had open source mapping software or something like that. I think where it gets more interesting, and then obviously we had open source using the Apache license, and that's a very permissive license. What gets more interesting, and this is something that I think we've had more conversations on since we opened source Envoy, is that when projects move into foundations,
Starting point is 00:37:25 what a lot of people don't understand, and it certainly depends on the foundation, but most software that moves into a foundation, the license had already been super permissive. So it's like Lyft, Envoy was already Apache 2 license. Anyone can take the code. They can use it for basically any purpose. What actually moved into the CNCF was the Envoy trademark. So Lyft lost the rights, you know, to use the name Envoy in a theoretical future project. And I think this is really misunderstood around the industry is that I think a lot of people think about foundations as like
Starting point is 00:38:03 this donation concept or something along those lines. And it's not really a donation. It's more of a transfer. And it's not even a transfer of IP. It's typically a transfer of trademarks. So it gets tricky there if you're a company. And we see this more on the vendor side. Frankly, if you're a vendor, particularly if you are a VC-backed vendor, you're typically using open source in order to gain traction, right? It's like you're going to be trying to figure out some type of business model, whether it be open core or some type of SaaS service or something along those lines. And you're open sourcing not for the greater good of
Starting point is 00:38:40 humanity, you're open sourcing because it's a good thing for your business. And where it gets tricky for those companies is that their company and the open source are typically intertwined from a trademark perspective. And trying to figure out how to disentangle the company from the trademark and potentially move the trademark over to the foundation, that can get quite tricky. From a Lyft perspective, because Envoy is not really our business and because we didn't really have any plans to do anything with that mark, that was not something that we thought about a ton. What about operationally from an – let's just operationally think about that process in terms of what if you tomorrow get an offer from Google that you can't refuse and you decide, I'm going to go work for Google. What changes in Envoy's life?
Starting point is 00:39:32 What changes in Lyft's life? We know it changes in your life, right? You switch jobs. Yeah. Anything? Is it completely separate? Does Lyft have a – does that suck for them or does it not matter? Besides losing a great employee, of course. Sure. I think that if we're speaking honestly about it, I think it would have mattered more
Starting point is 00:39:50 a few years ago, right? When the project was a lot more mature. Meaning if I had went and worked at Google three years ago, I mean, Google already, I mean, they are incredible portion of the project. I mean, they're amazing engineers. They do amazing work, right? And I think if I had moved to Google three years ago, it would have been very clear that the project at that point was effectively owned by Google. And I actually believe, and again, I can't actually prove this, and I'm not saying anything bad about Google. Again, I want to be clear.
Starting point is 00:40:22 They have been absolutely fantastic partners and done an incredible amount of work for Envoy. But I think if I had moved to Google three years ago, the weight of the project early on would have been Google, right? And I think that if you look at some of the other people that are making bets on Envoy, some of the major cloud providers, whether that be Microsoft or Amazon or VMware, I think it might have made them a bit less likely. I'm not saying that it wouldn't have happened. It might have still happened, but I think it would have made it less likely. And similarly to Lyft, as I mentioned to you three years ago, I was a lot more involved in Lyft at that time, like running the networking team and
Starting point is 00:41:01 like being a bit more on the ground than I frankly am today. Fast forward three years from now, you know, my time at Lyft is probably split about 50-50. I spend about 50% of my time doing infrastructure leadership, but it's a bit more high level. And then I spend about 50-60% of my time doing open source leadership. But the project is so much more mature that if I were to go, you know, work at one of the cloud vendors, so much adoption has already happened that I don't know that it would change the trajectory, right? It's not like companies are going to abandon their use of Envoy if I went and worked at one of them. Now, it's a separate question as to whether I would actually do that. But I think that, and this actually comes back to what you're asking before
Starting point is 00:41:52 about not actually starting a company. It's actually the same answer. If I were to go and start a company today, I don't know that it would substantially change the project, right? Meaning the project is so established at this point that if I were to go and start a company, sure, people might be a bit more weary in terms of actually telling me things, you know, because like, you know, I might be a competitor, but I don't think it would change the project
Starting point is 00:42:17 because the adoption has been so huge and people aren't going to abandon it because I decide to go to work for one of the cloud vendors or I decide to go start a company. So if we could loop back around to the community discussion, the thing that you're most proud of is the community. If you could give us and the listeners tips, like how you did it, if you could say like this one thing or these five things were like the most impactful to building that community, what would they be? So first I will plug an OSCon talk that I did. I would encourage people to go look it up, where I gave an entire talk on this topic, just because it's a topic that is so important to me.
Starting point is 00:42:53 But I think the first thing that I did, which I already alluded to, is, and this sounds so obvious. When I say this, it sounds so obvious, but I think a lot of people don't do it. It's just critical to be welcoming and to be nice to people, particularly early on in a project lifecycle. And I've really come to the realization through this process, and you can look at other open source communities and see how they evolve, but humans have a herd mentality. And by herd mentality, I mean that when a precedent is set, human behavior typically follows that precedent. So the seeds of how people treat each other, the seeds of the process, they are really set by the people that form the core. And again, it's no similar. There's open source, there's corporate cultures.
Starting point is 00:43:46 I mean, you see this all throughout human evolution or human history is that, you know, how these communities get started, it is easier to follow the herd. It's much harder to be an outlier. So if you start a project and you're a mean apple to everyone and people are going to join the project
Starting point is 00:44:03 and they're all going to be mean apples because that is the way that it's done and we you know without naming names we have seen that in some very notable open source projects and i i think i knew that i did not want to do that and i knew how important it was to set that example from the get-go you know and that and that and that ranges from taking meetings with people, like trying to help them with their early deployments to just like being nice to people on GitHub and like, you know, appreciating them for their work and all of the stuff that, again, it sounds obvious, but people don't do it. And I think that early on setting those examples, the people that became
Starting point is 00:44:43 maintainers, they followed that example, and then we have succeeded in building a set of maintainers and contributors that all act in this way. And I really do think that in a short period of time, I mean, I looked the other day, and at least on GitHub, just from a co-contribution perspective,
Starting point is 00:45:00 we're almost at 600 contributors, which for a fairly low-level, you know, C++, it's not Go, like it's a pretty low level project. I mean, that is freaking incredible. You know, it just blows my mind. And then you look at all of the vertical products and all these other reasons that people have done it. But I think that a big part of it is that we actually went through and we built the seed from the beginning of welcoming contributions and making the community very important and being nice to each other. And then I think those seeds spread like well beyond anything else. I always tell people that just being nice and welcoming and seeding that community and having a basic human decency is by far the most important thing. Beyond being nice, I think there's some other aspects
Starting point is 00:45:53 which comes back to some of the things that I was saying around a lot of non-technical reasons that Envoy succeeded. I invested a lot early on in documentation. I'm a pretty decent writer. So it's like making sure that the documentation makes sense and having some blog posts and going and talking in conferences. And then again, having people value quality documentation is something that I think is really important. And basic things like when we launched, we had a nice website with a logo and it looked professionally done. And I think a lot of, not a lot, but I think some people scoff at this idea, you know, that you can fake your way through open source, right? Or you can
Starting point is 00:46:32 fake your way around, you know, you can have a very poor technical product, but you can have a great website and great documentation, all these things, then you'll become a successful project. I take a more pragmatic view, which is that, as I said before, it's like starting a company. There's eight different things that range from technical to documentation, to PR, to marketing, to HR, and you have to win at all of them. So to me, it's not an and or, it's a both, right? And I think that's what became really clear to me very early on is that we need to invest in all of these things. And if you were just to sum up, I think some people ask me, you know, like, what have you learned in the last four plus years of open source? And if I have to be honest with you, I have learned little to nothing technically. It's just, you know, it's like I've worked on these proxy systems for a long time.
Starting point is 00:47:32 And sure, I've learned a few things here and there, but I don't even do that much coding anymore. I have learned so much about community building, open source leadership, and leading in a sense where, you know, open source is fascinating because it's basically anarchy, right? I mean, it's like none of these people work for me. So it's about building coalitions, negotiating, making sure that people are happy. And there's been so many learnings here that have been really incredible. It's a shame that the bar is that low though, just to nice you know get you success i mean like you said it seems logical but to just be nice or to be kind or to be welcoming i mean it's like necessary but
Starting point is 00:48:12 not sufficient kind of thing yeah i mean i just it's kind of crazy that it's like that that that's your profound aha moment or aha thing from this conversation on your journey that that's the thing just be nice and welcoming and inclusive. Yeah, I think when you say it like that, it does sound pretty bad. But I think you just have to look around the industry and look at other examples of open source to realize that it's clearly not that obvious because it's not done in so many different cases.
Starting point is 00:48:43 Totally. You have to value it, for one, and then you have to be good at it too, right? You have to value communication and good communication, human behavior and being kind. You have to value that, but then you have to be good at executing on it, which is, I suppose, being talented or having some sort of desire to skill build on the human front, like taking care of people, treating people well. It's not easy. And the time as well. You talked about how much time you put in early. A lot of that is, it requires the time. Being nice sometimes takes longer than being not nice,
Starting point is 00:49:16 right? That's true. And look, I mean, I've been in this industry for over 20 years and I have quite honestly made my fair share of mistakes around not being nice or failing for non-technical reasons. In fact, my career is littered with non-technical failures. I don't think I've actually ever had a technical failure. I mean, the technical stuff has never been super, super difficult for me. It's always been the non-technical side of things. So my career has been a long, you know, list of failures in those areas and learning from those failures. So some of, I think what I brought to, brought to Envoy is an understanding of how important these things are. And like I was saying before is even within that confines, it was not without making mistakes. There were some difficult
Starting point is 00:50:07 interactions at Lyft, partly because I was stressed or I didn't have enough time to devote to what I was supposed to be doing there. And, you know, given what has happened with Envoy, life is full of trade-offs. And I don't know that I would make different decisions today. Knowing what I know now, I probably handle it better. But that's life. I mean, we learn these things as we go along. So I think that's just the nature of things. So you've got your third EnvoyCon upcoming. Surely the community will gather. There will be things old and new shared there. What is the present and the future for Envoy and for the community and for Matt look like? Sure. I'm very often asked, you didn't ask this, but I'm very often asked
Starting point is 00:50:51 this question about like, what is Envoy's roadmap, right? Because I think people these days have an expectation, partly through vendor-driven open source, that there's a roadmap, there's a product manager. And as a community-driven, technology-first project, we don't have a roadmap. I mean, I vaguely know what people are working on, but things happen incrementally. People add features as they need them in their deployments or their products. So when it comes to EnvoyCon, I think we're just, it's not like we're announcing a version for this conference, you know, or we're announcing some big bang feature. I think we're just seeing the iteration year over year of the project becoming more mature. And at this conference, we have, you know, great talks that range from large-scale control plane deployments to large-scale
Starting point is 00:51:41 API gateway edge deployments. Web assembly is, I think, going to be huge. That is the biggest thing that I think that's happening in Envoy right now. And for those that don't know, this is basically embedding a web assembly runtime within Envoy and being able to run extensions there. So historically, the way that people have extended Envoy from a code perspective has been to write Lua in a very limited set of cases and mostly C++. And apart from C++ being difficult for most developers, the main issue beyond the C++ is that just because of the way these extensions are linked into Envoy, they have to be compiled together. It's a very painful thing. So WebAssembly is really an amazing ability for us to have a stable API, a stable ABI,
Starting point is 00:52:28 allow people to write extensions in Rust or C++ or Go or TypeScript or whatever they want, and have that be separate from Envoy. So I think WebAssembly is going to be huge for Envoy, both from an edge computing standpoint, security standpoint, observability standpoint. I think it's just, we have so many extensions today, but it's just going to supercharge the ability for people to write further extensions for Envoy. So we have a bunch of talks about WebAssembly. The security investment in Envoy has been huge, mostly from Google. They've done a fantastic job. And that's not just on fixing bugs or filing CVEs. For example, there's people at Google now that are working on software supply chain.
Starting point is 00:53:11 And again, for those that don't know what software supply chain is, it's this idea that we have Envoy, and Envoy has hundreds of thousands of lines of code. But Envoy depends on millions of lines of libraries, right? And if you don't understand where those libraries come from and what their CVE process is and what their maintenance process is, you can wind up in a lot of trouble. And this is not a problem just for Envoy.
Starting point is 00:53:35 I mean, this is a huge problem across the industry that people don't have a great understanding of software provenance and what all of the dependency chain is. So we have some people that are working on some really interesting stuff around better tooling, of making sure that we track our dependencies, you know, various other security concepts, you know, various other dev-focused talks. So I am obviously, I'm actually not a huge conference fan, but when it comes to EnvoyCon,
Starting point is 00:54:02 for obvious reasons, I absolutely love it. So in this year that we're in, I am sad that we are not going to meet in person. It really does make me sad because for the last couple of years, I have loved seeing people in person. So I am bummed that we are doing this virtually, but I'm still excited for the talk lineup. We'll be sad with you then because we missed several conferences this year that we totally love that are staples for us. OSCON being one of them, for example, and not being able to go there and high five and hug the people we see each year is a real bummer. And just kind of back to the human connection thing, there's nothing that replaces a good face-to-face with somebody. Being separated is so difficult, especially when community is such a crucial aspect to the enjoyment, not just the success but the enjoyment. Well, and from the open source side of things even more where these are people that I talk to, I mean, on a daily basis. Like we interact so much and I've become relatively close to
Starting point is 00:55:06 them, at least from a, from a work perspective. And I only get to see them typically once a year. Right. So it's like, just, just from that perspective, I think I do, I do miss actually seeing people a lot. Matt, any closing thoughts to share? You're a, you're a maintainer of an awesome project. Obviously you've shared plenty, but is there anything left that we haven't asked you that
Starting point is 00:55:23 you're like, man, I got to share this? I think the only thing that I would share is, I think, as an industry, this is a topic that we need to talk about more, just because I think my experience of trying to balance my corporate work with the open source work and just the, the general topic of open source is not what it was 30 years ago. It's mostly not a bunch of hobbyists, meaning the major projects that we use today, they're developed by professionally paid programmers that have lots of job opportunities. And trying to figure out how do we compensate these people? How do we make it so they don't burn out? What are the right structures? It's something that we do not understand from an industry perspective. And I think that we
Starting point is 00:56:09 see a lot of burnout among maintainers. We don't have a good idea of how to pay for this work. And I don't have any solutions. I mean, if I had solutions, I would have already implemented them. And I think this is a really thorny problem. So I think the only thing that I can say is that I think we have to have more conversations like this where we actually talk about these issues. We talk about funding and burnout and toil and just how much work is involved so that people better understand how the software is actually made.
Starting point is 00:56:39 And I come back to the conference talk that I was talking about before, the one that I gave at OSCon, and I always chuckle because, you know, I don't give as many conference talks as I used to, but I used to go to a conference and I would give a talk on Envoy, like a technical talk. And I would get several hundred people in the audience, right? Like everyone wants to come and learn about the technology. And I went to OSCon and I gave a talk about, you know, the, the open source sausage making and like 20 people showed up, right?
Starting point is 00:57:06 And it's just – it's very indicative to me that people still – rightly so. They care about the technology. They want software that they can use. But they're not really investing in understanding how the software is made. And for such critical infrastructure, I think it's in our interest to better understand how it's actually made. Well, you're here with Kindred Spirits because we care. And that's why we have this show, this flavor of the change called Maintainer Spotlight. We love digging in to kind of peel back the layers of a developer's, a maintainer's lifestyle, the choices they make, why they make them, why they didn't or did build a company from their open source project,
Starting point is 00:57:46 whether it's even okay to make money from open source. There's many different subject matter we cover. We'll link them up in the show notes. Check out the topic, maintain your spotlight on our website. But Matt, thank you so much for sharing our desire for sharing this topic and talking through it with us because we think it's very important. Thank you for having me.
Starting point is 00:58:02 This was fantastic. Thanks, Matt. Fantastic work hanging in for the whole show. That means you are a super fan. That means you're a prime candidate for being a ChangeLog++ member. And if you haven't heard about this yet, this is the membership we launched so that our awesome audience can directly support us, get closer to the metal, and make the assets appear on our podcasts. Check it out at changelog.com slash plus plus. Once again, huge thanks to Tidely for being an awesome partner in this podcast series.
Starting point is 00:58:34 Also, huge thanks to Fastly, Linode, and Rollbar for having our back. And of course, Breakmaster Cylinder too for making all those awesome beats for us. That's it for this week. We'll see you next week. Thank you. Bye.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.