The Changelog: Software Development, Open Source - Otto, Vagrant, Automation (Interview)

Episode Date: November 4, 2015

Mitchell Hashimoto joined the show to talk about HashiCorp's new tool - Otto, how it compares to and compliments Vagrant, Automation, and we even talked to Mitchell about his history with software dev...elopment in the beginning of the show.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome back everyone this is the changelog and I'm your host Adams Dukovic this is episode 180 and on today's show Jared and I are joined by Mitchell Hashimoto vagrant fame auto fame HashiCorp fame and it's so great having a guest like Mitchell back on the show this is Mitchell's third time on the show as a matter of fact and what's most interesting about this is that Mitchell has built his company on top of his
Starting point is 00:00:36 open source and it's so nice to have guests like Mitchell back on the show to share all they're doing to share all they're learning and to just keep sharing what they're doing in open source. So it was awesome having him back. We had four awesome sponsors for the show, CodeShip, Braintree, Backblaze, and also Linode.
Starting point is 00:00:56 Our first sponsor is CodeShip, a longtime supporter and huge fan of the changelog. Head to CodeShip.com slash the changelog to check out what they do in continuous delivery, continuous integration. Check out their blog. We feature every single week in changelog weekly. You can easily set up continuous integration
Starting point is 00:01:15 for your application in just a few steps and deploy your code when your test passes in codeship. Get started today with their free plan. When you upgrade to a premium plan, use our special code, TheChangeLawPodcast. That will get you 20% off any plan you choose for three months. Head to CodeShip.com slash TheChangeLaw to get started. And now onto the show. Welcome back, everyone. We're here with Mitchell Hashimoto, founder of HashiCorp.
Starting point is 00:01:49 And Mitchell, you have to forgive me because I know sometimes people say hashi and some people say hashi. So you can probably correct me or us on that. But you're the creator of Auto and Vagrant and Packer and Surf and Console. You're an O'Reilly author and a developer that's obsessed, as you say, with automation. So this is a three-peat for you. Welcome back to the show. Thanks. Thanks again for having me.
Starting point is 00:02:12 And we, of course, got Jared Santo on the line. Jared, say hello. Hey, everybody. Happy to be here. Happy to... This might be our third three-peat guest, which would be the triple three-peat, which is... I think he should win something
Starting point is 00:02:26 don't you think i i wish we had something more than t-shirts to give away i did get a t-shirt from from you at uh gopher con i think so all right cool well we can uh i'll send you three more we'll send you three more so yeah this is this is a three-peat for you mitchell if you didn't know uh third time on the changelog. First one was with Wynn back in episode 72. That was February 9th, 2012. So that was not very long after you founded HashiCorp or HashiCorp. And episode 88 was your second one.
Starting point is 00:02:59 So not far after that. That was May 15th, 2013. That was me and Andrew talking to you then. And like I said, for reference, this show we're doing today that everyone's listening to is episode 180. So big, you know, 72 episodes later. So lots changed since the last time you've been on the show. But I guess for those who may not have gone back and listened to 72 or 88, what's a good way we can intro intro you to the to the audience of the changelog uh i think i think it matter if you're a developer i think that the the most like uh the most well
Starting point is 00:03:33 known thing would be as the creator of vagrant um could be the most interesting and since then i've just been working on a lot more stuff spent a few years basically focusing, moving along from developers more towards operators and security and IT and like that side of things. And I think very relevant to what we'll talk about today. Most recently have been swinging back full force to developers. So, yeah, that's sort of it right now in a very abstract sense. In the intro, I said hashy, hashi hashi which one is it well if you're speaking japanese it's uh hashi but if i mean either way is really fine it's it's phonetically fine to me okay i always wonder if i'm like because i know you would it's it extends from your last name so, you know, it's kind of rooted in your identity, who you are.
Starting point is 00:04:27 So I didn't want to like, you know, say your name correctly or say your name incorrectly, also your company name incorrectly. So if there was a right way, let's, uh, let's establish that so we can not deviate. Um, sure. I mean, it's the correct way. It's HashiCorp. Okay. I think maybe developers were used to, or even influenced to say HashiCorp
Starting point is 00:04:47 because we're used to doing things with hashes. Oh, yeah, that could be it. And I guess if they didn't know you or your last name, they might even think that your name is a play on a hash for some reason. Maybe, yeah. I haven't personally gone back and re-listened to 72 or 88 in prep for this call just because I think me, I was lazy. But I can't imagine we did a great job of sharing some of your history. And just while preparing for this call, I stumbled on this article from Business Insider.
Starting point is 00:05:18 So I thought it would be kind of interesting to start this show with a bit more depth on not so much just what you produce and what you and your team and your company produce, but a bit about who you are first. And I think this is an interesting article because the title of the article is a 25-year-old coding genius was making half a million dollars a year in college and he just raised 10 million for a startup. I mean, that's a bold title for one,
Starting point is 00:05:44 but I read this article and I was just like, wow, man, what a rich history you have getting into computers, right? You've got your parents opposition and just some things that happened when you were young. I mean, the first tech startup you did was when you were 12. So someone can go read that article and get the same thing. But I was just hoping you can share some thoughts and some history of who Mitchell is to the audience. Sure. I want to start by making – if you do go back and read that article, I want to start by making a few corrections. The article portrays my parents sounding a lot meaner or disapproving than they were.
Starting point is 00:06:26 So it's harsher than it should be. Let's just put it that way. But sort of, yeah, I mean, I started, I picked up programming when I was 12. And I don't consider myself a genius by any means. But I've been doing it a long time. So I have sort of that behind me. And one thing I noticed going back in my history
Starting point is 00:06:47 is that I've always been passionate about automating things. I mean, I got into programming because I like to automate things. When I was 12, I was automating video games, so not cheating them in the sense of pretending the human was playing versus circumventing certain things. So I was actually playing the game but using computer code, I guess. And that's how I sort of got into trouble,
Starting point is 00:07:14 as the article, I think, mentions. I was automating games, and some game publishers, game makers, didn't like that. So I got into some trouble there, stopped doing that, but i sort of moved on into uh legal things after that and and created a small business that automated the setup of php forums i created um a small business in college that automated getting you into classes
Starting point is 00:07:41 you want um i for fun created continue to create sort of like game bots, but just for myself, just for fun. And it sort of led to where I am today, where if you look at all the stuff I've built, it's around better automation around developers, operators, data centers, that sort of stuff. And you sort of alluded to it. But yeah, I mean, I sort of wasn't sure if like computer programming was going to be the thing I did professionally. It was really just
Starting point is 00:08:13 something I love to do. I sort of viewed it with concern of whether it was a real career or not compared to like a doctor or a lawyer or the more traditional quote unquote real careers. But I got really lucky my freshman year in college. I got a pretty, for a freshman, I got a really good job as a developer at a consultancy, and I think that really proved not only to people around me, but to myself, that this could be a pretty good career.
Starting point is 00:08:44 As a naive 18-year-old, I had no idea how good of a job being a programmer could be. Was it really a half a million dollars? Oh, so that's a great one. It wasn't half a million dollars a year. It made quite a bit of money, but it wasn't quite that much. I guess I would just say it was low six figures per year and uh i eventually sold that business yeah can we camp out on the game cheats for a second because that that that
Starting point is 00:09:12 has my interest uh yeah so when you said that i usually thought like game genie back in the day i don't know anybody knows that but this was like web games can you explain how how are you cheating the games and how'd you like as a 12 or 13-year-old, how did you figure out you could do this? And how did you get into that? Yeah, so it wasn't cheating like Game Genie, although I certainly had a Game Genie, and that was fun. But that wasn't what I was doing.
Starting point is 00:09:36 I was cheating in the sense of botting. So I wrote programs that would play the game for you as if it were a person. And that fascinated me in a lot of ways. And so the game I was cheating at the time primarily was Neopets. Not because I cared about it in any particular way. I don't even know that game. What is it? It's just like a web game.
Starting point is 00:10:02 It's sort of like you get a pet, you play games, you get virtual currency, you buy things. I don't know. It's, you live like a, it's like a really weak second life. Wasn't there also like a device you can take with you that was part of the Neopet? It's Tamagotchi, right? Not when I played. Maybe they went that direction. I don't know.
Starting point is 00:10:17 But not when I played. But I mean, I wasn't that interested in the game itself, actually. Like I found it because it seemed like an interesting target, so to speak, of botting. So I just wanted to see if using bots, could I make a ton of this virtual currency and win the game, basically. And I had a lot of fun doing that.
Starting point is 00:10:40 Did someone teach you how to bot? Or would you just figure it out? Were you using JavaScript? Or were you coding it? I was coding in Visual Basic and I found it by, so my first Google search ever, I remember Googling for it, was how to, not Google search ever, but Google search related to this ever, was how to make an EXE. I was on Windows at the time. And I just wanted to know, I mean, I had this weird realization when I on windows at the time and i just wanted to know i mean i had this weird realization
Starting point is 00:11:05 when i and i was 12 at the time that you know i was double clicking these exes and using them on my windows computer and i was like wait a minute someone made this and so i suddenly became curious where i was like if someone made this then how did they make it and why can't it be me to make something like this so i started googling uh how to make an exe which i remember also had awful results like didn't really solve anything for me but i just kept poking around at google searches until i started finding a little bit more um it led to visual basic eventually and i used visual basic I'm also kind of curious about the business that you were running or starting in, unless Jared, unless you got more
Starting point is 00:11:52 on the games piece you want to dive into, I don't want to take away from that. No, I got my fill. Thanks. I'm curious, in college I'm reading back in the quotes, it actually says I was pulling in about a half a million a year, he said, so that's you saying that. So that's what you told Business Insider when you were doing this thing. But what was the business?
Starting point is 00:12:13 What was the business you were doing and what kind of eyes and ears and what kind of thoughts did it evoke for you to produce this business and then move on to what you're doing now? What was that business about? Yeah, well, the correction is I told, the quote I gave them was it was making about half a million
Starting point is 00:12:30 over its lifetime, so that helps answer. As a business insider, they're not exactly known for their accuracy. Yeah, it certainly made for a flashy headline, though, so props to that. But yeah, it's not correct. I wish I had multi millions of dollars right now, but I don't. And yeah, so the business I made was basically, and again, I was scratching my own itch, which will be a theme throughout everything. But I was scratching
Starting point is 00:12:58 my own itch to the university I went to had a really terrible registration system. So if a class was full, then there was no wait list. You just couldn't get in. You could try to get in by going to the class once it started, but that was pretty risky. So basically what students would do is refresh the page every day. Like I'll just check every day when I am bored to see if there happens to be an opening, and then I'll pick it up. And I didn't like that. So I wrote a program for myself to do that for me, to refresh the page for me, and then get me into the class. And I was in a dorm at the time.
Starting point is 00:13:37 I was a freshman. And the door on my floor suddenly was gossiping that I had this technology. And so I would get knocks on my door being like, so I hear you have a way to get into full classes. And then I was like, hmm. And so I gave it to everyone on my floor for free that asked. website thing and charged people $5 per class to register a listener basically to notify them when there's an opening. And I did this my freshman, sophomore year. And then sort of the, I guess, the change that happened, which was the pivotal moment from a business perspective is that there was this critical mass when students suddenly
Starting point is 00:14:26 realized that if they didn't pay this website $5, they felt at least, I don't believe this is necessarily true, but they felt that there was a 0% chance that they would get into the class because my thing was checking thousands of times a day. Students only check randomly. Like there's no, there's a very low chance that they could get in versus the robot. So, um, ended up, there was a very huge growth period where suddenly students were just paying me $5 to hedge a bet basically, um, to, to give them a chance. And so that, that's sort of how the business progressed. And then, uh, I ended up selling it, uh, when I started HashiCorp because I wanted to focus
Starting point is 00:15:09 a full time on HashiCorp. I didn't want to be distracted by a side business. So, yep. So when you sold it, were you still in college? Had you graduated? I'd graduated. I'd been out of college for a couple of years. Okay.
Starting point is 00:15:19 So you continue to run it. And I mean, were you, let me ask another question on that part. Were you inspired by that business? Were you like, ah, not really. Like I can see with your output now you've been inspired by HashiCorp, right? Everybody can tell that. But were you inspired by that business? No, it wasn't a very inspiring business.
Starting point is 00:15:40 I think I was very proud of it. And I'm very proud that I was able to like get it to the point it was. And I learned a lot. But I wouldn't say I wouldn't describe it as inspiring. It was it was a nice secondary income. Maybe now's a good time to maybe share a few updates since the last time you've been on the show. Like we said, this is a three-peat for you. Episode 72, episode 88.
Starting point is 00:16:04 And the last time you were on episode 88, like we said this is a three-peat for you episode 72 episode 88 and the last time you're on episode 888 that was may 15 2013 so a lot's changed what's happened since then just a little over oh wow a little over two years uh two and a half years roughly so maybe catch us up with hashi corp with yourself uh maybe some influences to the business what's what's changed in the last couple years for you with HashiCorp? Oh, wow. Yeah, so much, actually. I didn't realize it was that long ago. It's been a bit.
Starting point is 00:16:31 Yeah, wow. So since 2013, I mean, I guess I'm best known for creating Vagrant, but since 2015, we've, as a company, created eight open source projects and one commercial product. And the eight open source projects, which are probably the most interesting for this podcast, are ranging from Vagrant, which is very developer focused, to something like Terraform, which is more operator focused, perhaps, and then to things like Console and Vault, which are things that run in your data center, that run in production. So they're more reliability focused in terms of like a reliability engineer would probably
Starting point is 00:17:08 be looking at those as well. So we sort of built this range of tools that span this whole thing. And since then, sort of the adoption of all of them have been really awesome. So I guess the party trick that I have now is, you know, name five semi-popular, like five websites that are not esoteric. And I could confidently predict that three of them will be using our software, which is a pretty cool place to be. So I'd say that's what's developed over the past couple of years. What about as the company itself, the internals, the people, what's changed since then? Sure. The big thing that's changed is we've started hiring a lot more.
Starting point is 00:17:54 So we just crossed the 30-person mark. But 12, I guess like 18 months ago, there was only three of us. So we went from three to 30 in about 18 months. And we've been hiring from the community primarily. So core committers, people that maybe aren't core committers, but contribute a lot, people that are on the mailing list a lot. We've been hiring out of our community. It gives us a high degree of confidence that we already know how they work and they already like what we do and things like that. So that's what we've been doing. So we have now at least one full-time person per project, but most have a couple that are overlapping
Starting point is 00:18:31 on multiple projects. So full-time person that might be working on Terraform, but also working on Packer or something. That's been the big thing. And then this year, the major focus since the summer, so not too long, a few months, has been really working on the commercialization angle. So we announced our commercial product Atlas, and we more or less completed our initial
Starting point is 00:18:54 open source portfolio with our conference. We had a conference last month. So we have the eight open source projects, and now we're really ramping up on the sales and marketing side and and getting that going i recall seeing word about that conference and i totally had fomo when i saw it i was like man i didn't even know about it so uh next year did you i mean maybe i don't follow you close enough i mean we are the change log around here so we keep our ear pretty close to the ground but how do we miss it i don't know i don't know i would
Starting point is 00:19:25 tweet about it here and there did you hear about it jared i heard about it while it was going on right prior to it to where i could have attended yeah yeah i felt like i was like man i felt kind of slighted because i was like i if i'd have known about it maybe because we've been trying to go to conferences more like you'd mentioned earlier uh mitchell that you got a change all t-shirt from us when we were at gopher gone so we're trying to do a better job of uh of supporting conferences and going to conferences we can't uh you know as jared and i two people we can't go to every single conference but um we might have gone might have gone yeah sorry sorry i don't know i i tweeted about it here and. I definitely didn't like shout it off the rooftops. But yeah, we announced it back, I guess.
Starting point is 00:20:08 I don't know. Maybe early summer, like June, maybe just before June. We started ticket sales around June and we sold out in late July, early August. So yeah. It sounds like it was a success because you're talking about next year. Yeah, I think it went really well. The first conferences are always fun. I've gone to a few first conferences for open source projects,
Starting point is 00:20:30 just a few, just I think three, and they're always really fun because the projects, at least the conference usually isn't mainstream enough that you get like a thousand people there. It's usually pretty small. You just end up meeting people from the community, early users, really passionate users, and it's just pretty small you just end up meeting people from the community early
Starting point is 00:20:45 users really passionate users and it's just really a fun vibe and i think that over time a lot of these conferences uh they gain they remain really really fun and entertaining and and valuable but they lose some of the initial like it's weird to say this when it's like 300 people, but they lose the initial like small family feel of of people that have been through this for a while together. And they're sort of meeting each other for the first time. You sort of lose that more for the the more feeling of mainstream success and things like that. And I think I hope that's where we're heading because because that's where you want to get to. But at the same time, the first conference is always a special one. You kind of resisted a little bit.
Starting point is 00:21:27 So September 28th and 29th, if you missed it, will it be roughly the same month roughly next year? What's the plan there? Do you have any details you can share? Probably, but we really have no formal plan. So maybe just late year, late in the year? Yeah, probably not early year just because we're not planning it and i learned i learned a lot about planning conferences and uh takes takes quite a while well maybe if you don't mind we gotta take a break here in a second but maybe when we come back we can talk a bit about this wasn't on my list the rundown but
Starting point is 00:21:58 uh you'd mentioned commercialization so i'm wondering if i'm sure at some point through our conversation around auto and vagrant, which is pretty much what we're going to camp out on during this show, although we can take lefts and rights as we need to do. I'm wondering if maybe when we come back from this break, if we can talk about commercialization a little bit, what do you think? Is that all right with you? That's good with me. Yeah. Cool. All right. Well, let's take a break real quick. Listen to a word from one of our sponsors for this show. When we come back, we're going to talk a bit about commercialization of open source software and how you are making money there at HashiCorp. And we'll be right back.
Starting point is 00:22:34 Braintree is all about making developer lives simpler with code for easy online payments. If you're searching for a simple payment solution check out braintree for mobile app developers out there the braintree b.0 sdk makes it easy to offer multiple payment types start accepting paypal apple pay bitcoin venmo traditional credit cards and whatever's next all with a single integration enjoy simple secure payments that you can integrate in minutes and developers they've got you don't worry about taking days to integrate your payments all with a single integration. Enjoy simple, secure payments that you can integrate in minutes, and developers, they've got you. Don't worry about taking days to integrate your payments,
Starting point is 00:23:10 but Braintree is done in minutes, and if you don't have time, give them a call and they'll handle the integration for you and walk you through it. Braintree supports Android, iOS, and JavaScript clients. They have SDKs in seven languages,.NET,js java pearl php python and ruby and their documentation is comprehensive and it's easy to follow to learn more and for your first fifty thousand dollars in transactions fee free go to braintreepayments.com change log slash changelog. We're back from the break. And Mitchell, I know when you said before commercialization,
Starting point is 00:23:52 and I read into that and I think sustainability, I think building a company. So obviously that's what you're doing. When we started the show, we talked about the article from Business Insider that said you just raised $10 million for a startup. I imagine that startup was HashiCorp. So you got some money there, but you're also trying to learn how to commercialize software. So what have you learned that you can share with us today?
Starting point is 00:24:18 Well, yeah, this is my first time actually commercializing this kind of software. I mean, like software for engineers. But I guess the thing I've learned since starting HashiCorp is that people want to pay for software. Open source is really, really popular, but that doesn't mean people don't want to pay for things. I think open source is a lot more about, depending who you ask. I mean, this is going to be true or false, depending who you ask, but it's a lot more about legal protection.
Starting point is 00:24:50 It's a lot more about avoiding vendor lock-in. It's the ability to security, like ability to audit things in the open. Obviously, community is a big aspect, being able to ask for help from people other than the vendor itself so i think like that's what it's about it's really very rarely about i just want something free at a certain level like even small companies like even people that have companies that have 10 employees or something they're very very willing to pay for software and i think that good evidence of this is actually like SaaS. Every small company pays for a SaaS somewhere.
Starting point is 00:25:28 They're open to spending money. GitHub, actually, they're definitely paying for GitHub. So that's what I've discovered. And at the bigger enterprise level, they're not only comfortable paying for software, but they're comfortable paying a lot for software that works well and solves their problems because it might seem like a lot to an outsider, but it's very reasonable
Starting point is 00:25:56 in terms of what that software is doing for them. What our senior director of marketing here, like what he likes to say is, is like, we want to be able to go to Tesla, for example. I'm just using them as an example. They're not necessarily a customer. So we want to be able to go to Tesla and be like, just focus on building great cars
Starting point is 00:26:19 and let us handle all the infrastructure and deployment stuff for you. Like, we don't want you to even think about it. We want it to just work for you and let you focus on building cars. Imagine all the engineers you have hired right now to worry about stuff that isn't your core business. What if they were instead building your car software? That's way more valuable.
Starting point is 00:26:42 That's sort of where commercialization comes in. People want to pay for that piece of vine. They want to pay for knowing they do have a phone number if things go wrong. They want to pay for features that they know don't make sense for non-enterprise companies and things like that. And that's where we're focusing our commercialization effort. So you got your roots for your company in open source. It was founded. What was the very first? I think Vagrant was your very first thing, right?
Starting point is 00:27:10 And that was open source. First successful thing. There was a lot of failures. Okay. So maybe let's skip the failures. But what was the first thing you guys commercialized? And what was that process like? And what have you learned from it?
Starting point is 00:27:24 So the first thing we commercialized is we made the Vagrant VMware plugin, which is still available today and it does very well. So the Vagrant VMware plugin pays for a number of salaries and it does well. And the thing I've learned is that there's a difference between doing something that'll make a small business work well. And then there's a difference between doing something that'll make a small business work well. And then there's a difference between doing something that will build you a large business. And it's neither are wrong. It just matters what you want. And so when we did the Vagrant VMware stuff, I was still very much unsure what my ultimate business goals were with HashiCorp. I had a lot of technical goals, but was HashiCorp going to be like the business I had in college where it made a good amount of money, it could pay a few salaries, we could just sort of
Starting point is 00:28:11 do what we want and build it? Or did I want to build a company that could potentially be a multi-multi-million dollar company, maybe even towards the size of something like VMware or something like a very large company. And I think the main motivator for me there was that I had sort of an audacious goal of wanting to build software that would change the way people manage data centers and deploy
Starting point is 00:28:47 software. And, and you can't, that's really like that goal is a big goal. And that goal is, it's not enough to convince, you know, every hobbyist developer to do it differently. I wanted to convince banks, I wanted to convince, you know, Amazon, I wanted to convince Amazon. I wanted to convince these big giants to change the way they're doing some stuff. And it's sort of like a naive view of the world. There's obviously a lot of stuff I didn't know then that I've learned since then. But with that goal, I didn't have a chance of talking to these people or convincing them, or I had a much smaller chance, let's say, than if I go the route of raising money building a larger company i mean even the fact of just having money in the bank will get people to talk
Starting point is 00:29:30 to you i i a very eye-opening moment was before we raised the series a um we were talking to a telco and they were going to deploy i think it was console and they were going to deploy console which came out before we raised our series a and uh we had to fill out this form, and it was the first time I'd ever seen it, a risk assessment form. So we filled it out, and they came back and they were like, console's great. It's fantastic. We really want to use it, but you failed risk assessment. And we were like, how did we fail risk assessment? And they're like, well, we only work with companies that either have this much in revenue or have a bank account with this balance and you have neither. So we just can't work with you as a policy. And like, that was a pretty eye opening moment where I was like, okay, we need to, that wasn't what motivated me to like raise money. But that was another factor where I was like, okay, we're're gonna fail risk assessments for companies because we're so small well it's like you said you're looking for ways to to commercialize right and so these are hurdles you're getting over it totally makes sense on like yeah we couldn't even charge them money yeah they they were they wanted to pay us and they couldn't pay us because
Starting point is 00:30:40 we were so small um so we needed to sort of raise money. That was a factor we needed to raise to prove to them that we had intentions of sticking around and growing. Because it makes sense. You don't want your vendor to be like a four person in a garage. Like when you call the phone, it's going to like their cell phone sort of thing. You want a real dependable, large company sort of to depend on when you you buy software i wouldn't mind talking a bit more about raising money jared i know you got a question on your side and i know you're waiting to ask it on the transitional piece but i i wouldn't mind talking a bit about you learning to raise money did you get some influencers did you have a a mentor like how
Starting point is 00:31:22 who who guides you through what you're doing and how did you learn what you're doing to build this company? Sure. So I lived in San Francisco. I moved to San Francisco after college and worked here for a number of years and a few years. And I used that time in San Francisco to meet a lot of people, network a lot, and inevitably sort of working in the startup world, just learning how these things work and meeting other founders, meeting venture
Starting point is 00:31:53 capitalists, just really being in the thick of it, even as a developer, just being exposed to a lot of it. So I was really lucky when I went to go raise, I just reached out to a bunch of people that had done it before and asked for advice. And a lot of them introduced me to venture capitalists and to other folks that could give me advice to press and things like that. And that's just how I got started. I think past that, it's a lot of stumbling. Like I've just been stumbling my way and hoping, you know,
Starting point is 00:32:27 I make a few mistakes during the process, like inevitably will, but that's, I think the nature of doing something for the first time. So was it before the, I guess, abrasion with the company who you filled the risk assessment with, was that what kind of like motivated you to raise money
Starting point is 00:32:44 or before were you just like we'll organically grow no it was uh no we were we were getting motivated over time so yeah that wasn't the single factor but i think uh i think what actually really motivated us was that uh when we started hashicorp we we did it because we cared a lot about this problem and ops in particular wasn't you know wasn't a i guess attractive industry you know it wasn't it wasn't really this jewel that that vcs wanted to invest in or anything we just did it because we wanted to solve problems there um and then you know thanks to companies like docker and things like that uh suddenly ops became this really fast moving thing.
Starting point is 00:33:26 And we were contributing in a small part to that by coming out with things like console and pushing people faster than they had been before. But it suddenly became very fast moving. And we wanted to raise in order to realize sort of our goals and dreams of the software we wanted to build faster because we suddenly saw the industry speed up and we didn't want other people to come and swoop in
Starting point is 00:33:49 and do something differently than we sort of philosophically believed in and mess up our goals. So one more businessy question before we get to the subject matter, which is Vagrant and Auto. I've been looking at your contributions graph here while you guys have been talking
Starting point is 00:34:04 because you said you went from three to 30 employees at HashiCorp in the last 18 months. So now you're the boss of 29 people, and yet you have 49 commits publicly this week. You've merged six pull requests. You had a streak of 27 straight days contributing to open source this year. How do you be someone's boss and yet still get to code so much? So my particular role in the company is really sort of currently being in charge of all the product stuff. So I don't have 29 people reporting to me, thank goodness. I sort of work with a lot fewer teams that are working on these open source projects
Starting point is 00:34:50 and our commercial product and guide that. But I still love programming. So I just sort of work where I can. And yeah, I think that for me, that's the role that I'm trying to carve out for myself is I still think that there's work that I could do on the programming side. So, you know, the traditional viewpoint of a startup is you have your your sales guy and your technical guy. Does HashiCorp have that style?
Starting point is 00:35:19 And are you the technical side of a team or are you just everybody? No. So, well, with 30 people, you stop being everybody, which is awesome. That's nice, yeah. But, yeah, I definitely was everybody for a long time. But to answer your question, HashiCorp's a unique, not unique company, but I think IT, DevOps, where VMware is like this, we're creating software for other engineers and it's highly technical. So your salespeople really need to have engineering backgrounds as well.
Starting point is 00:35:57 And there's a number of, I mean, I've learned this, I've discovered this, so there's just a number of salespeople, like they've been doing sales for 15 years that have CS degrees and code for on the side, excuse me, code on the side and understand this stuff. And you need to because at least for us, a core part of our culture is trying to be genuine. So trying to go into company and and be honest with them and and some customers have told us this where we've gone in for a meeting and they've uh the sales type meeting and they've asked us like well we sort of want to do this with your product and this and we've just told them like this is not the right product for you this won't do that well um and they were and and some people are taken aback by it because they're like, did you just say no in a way? And that's just kind of what we do because I think our first principles are as engineers.
Starting point is 00:36:53 And as engineers, we believe in the right solution. And so we need salespeople who are engineers that also believe that it's more valuable for a potential customer to like you than it is to close the deal no matter what. Because our viewpoint is if we're talking to them, they'll probably need us. We hope that they'll need us eventually anyway. We have a broad enough set of tools that maybe that solution doesn't solve something for them,
Starting point is 00:37:19 but we're certainly not going to walk out of there without showing them the rest of what we have and trying to find something else that works. So there's still an aspect of trying to get to say out of there without showing them the rest of what we have and trying to find something else that works so there's still an aspect of you know trying to get to say yes in there but there's also um a goal of being honest the worst sale too though is is the sale where you implement the wrong solution you know like you said you have a broad enough product line that you're working towards that eventually uh may or you will have a solution for them really fits and if you lose that trust early then you know regardless of what you produce
Starting point is 00:37:51 in the future they're gonna be like yeah they kind of didn't give us the right advice early on and yeah you know i mean yeah and maybe we're lucky that way given that we have so many different things i mean i imagine it's a lot harder if you're like a database company and the data doesn't really fit your model, but they're sort of unlikely to change their data model. So you might not have a chance to come in again. So you might be more inclined to say yes somehow. Whereas we're a lot less concerned or offended or anything
Starting point is 00:38:22 if it's like, we're more ready to admit like, okay, the console isn't right for you, but maybe vault is. So let's take a look at that and stuff like that. You had mentioned you got many things, but we are only here really to talk about our beloved tool, vagrant,
Starting point is 00:38:38 uh, getting, getting succeeded by auto. And it's, it's an interesting topic. And for the listeners out there, we have a couple of breaks during our show. We're probably gonna have to do a break during the main conversation we try to time it so that we don't have to like put a break in there but we're gonna have to break in
Starting point is 00:38:52 like 11 minutes so uh give us some forgiveness there but Otto is really interesting uh we obviously loved Vagrant when we had you on the show before back in 72, I know Andrew and I went deep on what Vagrant was then. But for the listeners out there that are maybe unfamiliar, let's open this up maybe with what Vagrant is to a degree and what Otto is. I guess that's probably, would you say, Jared, that's the best way to open this conversation up is to sort of describe what Vagrant is? Yeah, I think you can't really understand auto without understanding vagrant as it builds on top of it so let's start there and then he can differentiate auto from there maybe paint some history too of like when it i think during this conversation we pinned it back to the origination of hashicorp but give us some timelines and help us understand what vagrant is before we go into auto uh yeah cool so vagrant is a six-year-old open source project that is in one sort of sentence, one sort of phrase, development made easy.
Starting point is 00:39:50 So the goal of Vagrant is to run one command and get a complete development environment for whatever application you're working on. it was solving was, you know, I was switch, I was a developer at a consultancy, and I was switching between a lot of different customers and different technology stacks, and getting that all to work together nicely on my laptop, which is a very different environment than what they were ending up on, you know, in a server was was a pain to say the least. So vagrant was a solution to that where everything is sandbox and a virtual machine. You runagrant was a solution to that where everything is sandboxed in a virtual machine. You run Vagrant up, every single project you have gets a separate virtual machine. It's completely isolated.
Starting point is 00:40:32 So you could have different versions of web servers and libraries and databases all coinciding, co-mingling, I guess, on your own machine and not causing any conflicts. And when you're done working with that project, you could destroy the environment, and it's a clean slate. You're not left with cruft on your machine. You're not using any more resources actively.
Starting point is 00:40:53 It's just gone completely, but you can make it again very easily. So that was Vagrant. It's been growing sort of over the past six years to effectively be our flagship open- source project at HashiCorp. It gets millions and millions of downloads a month, and it's kind of a monster on its own. And so six years ago, that was created. And I guess what problems were out there that made Otto be a solution to succeed over Vagrant?
Starting point is 00:41:23 Because the blog that was put out a long ago was the successor to vagrant is is auto so this is the successor so vagrant will go away eventually or will sort of i don't know maybe you can help us understand that too yes okay so um yeah so the it's great we did the backstory on hashi corp because that gives a good idea that over the past three years we've been focusing a lot on operations and making deployment easier, managing servers easier. During the same process
Starting point is 00:41:52 we've been consistently releasing new Vagrant versions, adding features, iterating. But we haven't focused on developers in a few years. They haven't been the focus of our company in a few years. And we don't want to feel like they're neglected in one on developers in a few years. They haven't been the focus of our company in a few years.
Starting point is 00:42:09 And we don't want to feel like they're neglected in one, but we also felt that Vagrant was at a really good spot. It was very stable. It worked really well. But after three years, we use Vagrant obviously every day here at HashiCorp. And we were sort of discussing sort of a year ago, I guess, we're like,
Starting point is 00:42:29 so we've done all this work to make all these other people's lives better. We hope. That's our goal. Like, is there any like sort of revolutionary new things we could bring to the development angle? Have we learned something that we could significantly change Vagrant to make it better? And so the conversation started with what would we do if we could start vagrant from scratch like how would things be different today and the three sort of things i picked up on from and this is sort of based on you know working with vagrant for six years and and uh and walking into companies and seeing how they use it and just seeing thousands of users, really.
Starting point is 00:43:06 The three things I picked up on was, one, development environments are really, really similar to each other. I think it was funny because on Hacker News, someone commented that they think this statement's false, but I mean, I really believe it's true. I've seen it in the wild. Like, if you're a Ruby developer and you go to another company in another country and they're a Ruby
Starting point is 00:43:27 developer, your development environments are 90 plus percent similar. You have some version of Ruby. You have Bundler. If it's a web application, you're going to have a database. You're going to have something like Passenger. And they're just really similar. The last 10% is like differing versions or passenger versus unicorn or something like that. And they're really details that don't matter too much
Starting point is 00:43:51 in a development environment. So what, and it's hard to solve this at the Vagrant layer because Vagrant is so low level relative to auto, which we'll get to, but you describe sort of the machine it runs on. You describe what server to install. You describe what database to install. You do this from scratch on your own. So it's hard to get rid of this duplication. So that was sort of the first thing. And then the second thing, and we could cover, you could ask questions about these in a second.
Starting point is 00:44:20 Let me just sort of try to say all three um the second thing was that uh developers wanted to deploy so this is really no surprise to anybody um vagrant had a issue i think for five years well it's probably it's probably been closed for a while but it an issue opened five years ago at least that people wanted to vagrant up to production it vagrant up is a really nice really frictionless way to get a development environment. And they were like, why can't deployment be just as easy as a Vagrant Up? And honestly, we tried for a bunch of years at various different points to fit this into Vagrant. We tried a bunch of different things, and it just never really worked well. And the realization I made was very similar to number one,
Starting point is 00:45:07 which is that the vagrant file itself is just fundamentally not the right approach to describe a deploy. I do think it continues to be a great way to describe a development environment, but it's not a great way to describe a deployment environment because they're so different. You run multiple web servers.
Starting point is 00:45:25 You run a load balancer in production. You have monitoring systems in production. You have different security requirements. Like, it's so different from development that you can't safely map a vagrant file to what goes up in the production. So that just needed to be thought out. And then the third and final thing is that, you know, we live in a world with microservices now. We live in a world with containers. We live in a world with really lightweight applications that are all working together to do one bigger thing. And that's
Starting point is 00:45:54 really different from the world that existed six years ago when I made Vagrant. Six years ago when I made Vagrant, you know, the best practice or the standard practice at least, was to just make a giant monolithic Rails application or PHP application that does everything, that has everything. And over the past six years, that's slowly been changing back to more of a service-oriented model of smaller services that communicate together to mitigate failures. You could use smaller servers. You could develop faster. They have all these
Starting point is 00:46:26 other promises. I'm sure you have or will talk about microservices as its own podcast at some point, but as its own episode at some point. But these are coming. We talked a bit about that with Peter Bragon, microservices. That's a great person
Starting point is 00:46:42 to talk to about that. So, microservices I don't claim, I really don't claim they're mainstream today at all, but I do think it's inevitable that they will become mainstream. So the third thing I really thought of was like, Vagrant is not a good tool for microservices. It's build one VM, describe one directory of application files. It's really hard to describe dependencies and how to install them.
Starting point is 00:47:05 And or it's not hard so much as it's very manual and very tedious. And so again, it was like, how do we fix that? And so those were the three things identified with vagrant that we that we went on to address in auto. Well, I think that's actually a really good setup. Let's take that break. Now hear from one of our sponsors, we get back, we'll find out how Otto solves these three problems and probably more. We'll talk about that on the other side of the break. If you've ever restored data from a hard drive, you know it's complicated, you know it's messy, and it's probably something you never want to do again. And backing up is just so much easier. Backblaze, a new sponsor to the show,
Starting point is 00:47:47 offers online backups for your documents, your music, your photos, even videos, and so much more. Go to backblaze.com slash changelog to start your free two-week trial. You might be using an external USB hard drive, and that's a good start, but it's better to be safe than sort of safe.
Starting point is 00:48:04 Put your mind at ease knowing your data is backed up securely in the cloud. You get online access to your files from anywhere in the world. You have an internet connection. They have Android and iPhone apps for mobile access and Backblaze runs natively on Mac and PC, including your external hard drives. There's no add-ons, there's no gimmicks or additional charges. It's just $5 a month, literally $5 a month per computer for unlimited, unthrottled backup. And Changelog listeners get a free two-week trial by going to backblaze.com slash changelog. All right, we are back speaking with Mitchell Hashimoto about Vagrant and Auto. So before the break, you said Vagrant had three, not necessarily problems, but three things that are different now than when you first started six years ago.
Starting point is 00:48:54 Develop environments are really similar to one another. At least you've noticed that since then. Developers wanted to deploy, to which I say amen. And number three was that we live in a world with containers and microservices, and Vagrant really can't solve these three problems, hence auto. So can you lead us into auto, give us the elevator pitch, and tell us how it succeeds Vagrant? Yes.
Starting point is 00:49:18 So the elevator pitch of auto is that whereas Vagrant is development made easy, auto is development and deployment made easy. And the key difference we made in auto was sort of moving, I would say is in its configuration format actually. So instead of a Vagrant file with Vagrant, you have an app file with auto. And you might be able to tell from the name
Starting point is 00:49:44 how it's it's you might be able to tell from the name how it's different already so the fun exercise i like to do with uh with vagrant users is like what's the first thing you do when you make a vagrant file and and the answer is is choose the box that you're going to use whether it's always the same or not you write down the box that you're going to use and that right there is fundamentally the difference between vagrant and auto with auto the first thing you do with an app file if you even write one and i'll get and Auto. With Auto, the first thing you do with an app file, if you even write one, and I'll get to that in a second, but the first thing you do with an app file is specify what application type it is. It's a Ruby application, it's a Rails application, or it's Node, or it's just a custom other thing. And that sort of gives you a hint of the difference.
Starting point is 00:50:21 Auto cares a lot more about the application and a lot less about the underlying details of that application which i which sort of goes back to the first thing i mentioned with with how i would improve vagrant which is that your development environments are just very similar um it's it's less important for you to tell auto how to install and set up a go environment when they're all similar auto might as well just know on its own how to set it up and that's what we've done so it kind of moves up a level of the abstraction chain up one level yes instead of specifying you know ip addresses and my sql server or whatever you're just like hey i got a ruby on rails app so you're just yes exactly exactly, and so the way, uh, and I mentioned earlier that app files are even, you know, optional, you might not write one. So if you run auto, um, in a directory with a bunch
Starting point is 00:51:14 of Ruby files, it'll actually detect, it'll be like, well, this looks like a Ruby project to me. So I'm just going to assume it's a Ruby project. So one thing that's really cool is, as we've been using Auto more at HashiCorp, is our designer went into one of our Go backend services and ran AutoDev to get a development environment. And he was like, whoa, this just worked. I got a Go development environment. I have no idea how to install Go. I have no idea how to compile things. I have no idea how to compile things.
Starting point is 00:51:45 Auto not only set it up for me with zero configuration, it also told me how to compile the project. And he was like, once he got it running, he was like, I don't know how to run it because I don't know how to run it. But he wanted to see if it worked. And then the flip side, he also had some really old Ruby projects from
Starting point is 00:52:02 years back that he hasn't touched. And he went back into those and was like, what's this going to do if I auto-dev here? So he auto-dev'd, and he was like, yep, set up a development environment, Ruby bundler, auto-bundled my things, set it all up. He was like, it just worked with zero configuration. That's awesome. So that's the direction we're really heading.
Starting point is 00:52:20 The zero configuration thing really isn't a gimmick. It works, and we intend to make it even better going forward. We want you to be able to go into a project with no configuration and not only develop, which I've been talking about, but deploy. So that's the thing. And then the sort of last major difference, obviously, auto could deploy. So we could talk about that in a second.
Starting point is 00:52:40 But the philosophical difference between Vagrant and Auto, because people ask me, I guess, why did you make a completely different project? Why didn't you just make a Vagrant like 2.0 that has a different config format or something? For a lot of reasons, but the major, major reason is that Auto has a really big philosophical difference in Vagrant. So if you take a V vagrant file from five years ago and you run vagrant up today, it'll probably work. We've worked really hard to make sure that that works. But what you get is exactly what you configured five years ago.
Starting point is 00:53:14 You'll get the same version of Apache you configured. You get the same version of the language. You'll get the same operating system version you specified. And what we call this is a fossil. So what vagrant files are are a form of fossilization. So you've fossilized and snapshotted what the state of the world was five years ago, and Vagrant gives you that today. And that's sometimes a good thing.
Starting point is 00:53:37 But the approach we've taken with Auto is instead of codification or codification, depending on how you want to pronounce it, the idea is that the app file itself is just declarative of the type of application you're deploying, but the knowledge of how to create development environment and how to deploy is centralized in auto itself. So not in the vagrant file, but it's in the core of auto itself so that when you run auto deploy today, you're going to get something.
Starting point is 00:54:02 But if you run auto deploy five years from now, it'll probably, it'll hopefully very likely be very different. But the end goal is your application will run, but with best practices from five years from now, not from today. And so the security patches and technology changes and things like that. And the people making this happen as the community. So it's a centralization of knowledge. So we want the person who's a professional Ruby developer
Starting point is 00:54:27 to tell us, to contribute to Auto, and tell us how the best practices of Ruby development are, and we'll encode that into Auto so that you get that. And sort of my favorite example is that the person who set up the AWS integration with Auto used to manage a top 10 by size infrastructure on AWS. And now if you're just a hobbyist that's running auto deploy in AWS,
Starting point is 00:54:52 you're actually getting an infrastructure designed by somebody who is the lead infrastructure person for a top 10 AWS property, but you're getting it for your side project. And we want that to eventually be true for every technology in auto. If this works as advertised, I think I want to kiss you.
Starting point is 00:55:10 This is amazing. When you said that, Mitchell, I was like, I know Jared likes that. Oh, man. I like all of this, Mitchell. This sounds spectacular. So this works right now, like zero config, fire it up.
Starting point is 00:55:25 Yeah. Okay. Yeah, you can go download auto right now. It'll work. So the only part that's like not, it'll work as a demo, but isn't ready for like production is the deploy, the maintenance part of deploying. So we eventually want auto to completely replace how you deploy things.
Starting point is 00:55:41 But for now it'll deploy at once, but it's not good at deploying it multiple times. We purposely are focusing on making Auto a better development experience first. And then we're targeting Auto 0.3 as the major super production-ready deployment stuff. And the main reason for that is just that it's complicated. But we believe from the beginning,
Starting point is 00:56:05 given the fact that Vagrant was never designed from the beginning to deploy, from the beginning, auto is designed to deploy. So we believe we have the fundamentals right and can make this happen in a really nice way. So let's stick with the develop first, because I'm super excited about the deploy stuff. But we need to clarify Vagrant a little bit here,
Starting point is 00:56:23 because it says on your guys' auto getting started that you first you run this auto command auto compile um and it says the first time you run it you may be asked for permission to install vagrant which it uses under the covers in this case it probably also downloads a base image for your environment so it's a successor to vagrant but vagrant's still in the mix. You want to speak to that for us? Yeah, yeah, I'd love to. So there's, so we didn't want to reinvent the wheel. Like Vagrant is, is really mature. The bugs it has generally are very esoteric today. They're usually not very mainstream. And so it works really well. And we didn't want to rebuild all that for auto. So auto actually uses vagrant under the covers for a lot of the final bring something up,
Starting point is 00:57:15 but it does a lot more on top of it to make things nice. So the best example I could give is actually the upcoming version of auto, auto 0.2, where we focused a lot on development experience. So for a Go development environment with auto 0.1 or Vagrant, it's just a Vagrant file, or Vagrant 1.7, it takes about five minutes to get a complete development environment. It's pretty slow and takes some time because it's installing Go, it's installing a bunch of other stuff. So it takes time.
Starting point is 00:57:42 And with Auto 0.2, we're able to make the Go development boot up in 30 seconds. So five minutes to 30 seconds. And the way we were able to do that is we still use Vagrant under the cover for parts, but Auto's starting to offload some of the stuff Vagrant used to do
Starting point is 00:57:59 and do more clever things due to its architecture that would have been difficult to do in pure Vagrant. So this is starting to move more logic away from Vagrant into Auto. And I guess you'll start seeing this over time, is that we could do fancier things in Auto. So another example is people who use Vagrant have complained, and rightly so, that Vagrant SSH is pretty slow. So a lot of this is Ruby, of course, but if you run Vagrant SSH, the time it takes to SSH into the machine is sometimes multiple seconds.
Starting point is 00:58:33 And even with Auto 0.1, if you were to download Auto right now and get a development environment, Auto dev SSH, which is the equivalent to SSH into the development environment, is a couple hundred milliseconds. So we went from a few seconds to a couple hundred milliseconds. And the reason we're able to do that is Auto is the sole controller of that development environment, so it knows that your SSH information isn't changing. So it
Starting point is 00:58:56 caches the SSH information and just executes SSH in process directly. So it's just a lot faster, whereas what Vagrant does is there's a lot of other commands that can affect the SSH information. So what Vagrant does is every time you run Vagrant SSH, actually inspects the virtual machine, inspects various things to try to detect the right IP, detect the right password, detect the right key. And that's all in Ruby. And so that all takes a
Starting point is 00:59:20 bunch of time and then subprocesses into SSH. So we got rid of all that. And now we're just going directly into SSH. And so it's a lot faster. So these improvements will continue over time to make auto just a lot better development experience than Vagrant was. So speak to the virtualization environment that auto uses on your machine same as vagrant or different yep yep same same and that was a lot of the reason why we didn't want to um sort of rewrite those aspects yet at least in auto because uh vagrant has a great community around it with support for virtual box vmware parallels hyper v um you KVM, all these different providers, and you get all that same stuff with Auto. So it's immediately going to work on your system that way.
Starting point is 01:00:10 But what if I don't care? Like, I just want to run Auto compile. So this is the kind of cool part we did with Auto, is that Auto, kind of like you said in the Getting Started Guide, it installs and manages Vagrant for you. So if you don't care then when you run auto it'll just ask for permission because it's going to download like an 80 megabyte thing but it asks for permission and then it just manages it for you so if you're just like sure
Starting point is 01:00:33 just do something like sure then then it'll install and the one improvement we're making is it'll actually the next version will install virtualbox for you if you don't have a hypervisor on your system. So the idea is you only need to install Auto ever, and it'll do the rest for you. How does it play with containers and Docker and whatnot? Well, so the idea behind Auto is that if the best practice is containers, which I would say for a lot of things is right now, then we're going to use containers more on the deployment side and less on the development side. And I'll talk about that in a second. But so yeah, when you auto deploy, it's, it builds a container and actually will use Docker to run a bunch of things, not everything right now, but a bunch of things.
Starting point is 01:01:20 And then on the development side, containers are just, they were just, we worked with a bunch of people who use containers for development. And they're fast, which is the nice part. But you lose the sort of save, reload, you know, review sort of cycle of development. The mutability, like containers on their own are usually a pretty immutable sort of thing. And you can set up shared volumes with containers and things like that. You can work around these things. But with Auto, since we have so much more control over development environment, we could just set that all up for you.
Starting point is 01:01:55 And the containerization part of a container isn't as important. So the development environment currently just isn't in a container because it doesn't give you a lot. And most people are developing on non-Linux systems, so you would need a virtual machine anyway to run the container. So instead of starting the virtual machine, then starting the container, we'll just start the virtual machine and run it there. The main improvement we made over Vagrant for this is that even for projects with a ton of dependencies and other multiple services, we're sort of creeping on the microservice part of Auto right now, but for things with a bunch of services,
Starting point is 01:02:31 Auto basically installs all those for you onto a single virtual machine, whereas with Vagrant, you might have tried to use multiple virtual machines, which would have been much slower. So Auto handles this complexity for you. So each environment is only one virtual you. So you're always each, each environment is only one virtual machine for for everything you're working on. And that brings a lot of the benefits
Starting point is 01:02:51 as well, without having to use containers for development. So what do you say to the people out there right now thinking, I don't want your shiny new auto, I love vagrant, I love vagrant files. I just want to use them. We didn't need a successor to Vagrant. You're the worst. What do you say to them? Who said that? Hypothetically. Yeah, I would be a little bit sad,
Starting point is 01:03:15 but at the same time, Vagrant's not going away. Vagrant 1.8 is coming out next month, and it's going to be a huge, awesome release. We get linked clone support. We get linked clone support, we get snapshotting support, stuff like that. Vagrant is a really mature project. And Auto, there's very few people out there
Starting point is 01:03:34 because I know the download numbers from back then, but there's very few people out there who use Vagrant 0.1. But Vagrant 0.1 was awful and it came a long way since then to be the product it is today. And likewise, I thinkrant 0.1 was awful and it came a long way since then to be the product it is today. And likewise, I think Auto 0.1 is definitely a lot better than Vagrant 0.1 was. But I think we'll look back and say even in a year being like, well, Auto 0.1 was pretty bad compared to where we're going to get to.
Starting point is 01:03:58 And for the people who want something that they know is going to work, that they don't want to be early adopters or risk takers, then they should use Vagrant and we're going to keep, that they don't want to be early adopters or risk takers, then they should use Vagrant. And we're going to keep bug fixing Vagrant, releasing Vagrant, especially because Auto still uses Vagrant. And the long-term plan for Auto is that, yeah, we'll phase... We hope that 90 plus percent of developers using Vagrant
Starting point is 01:04:20 over the next few years will shift to Auto. But there's also use cases for Vagrant that Auto is few years will shift to Auto. But there's also use cases for Vagrant that Auto's never going to attempt to cover. So it also just can't disappear completely. So a good example is for ops people. Ops people use Vagrant for testing Chef and Puppet and things like that. That's really not a goal of Auto currently. It doesn't give you the same control of I want this specific operating system and this specific state to test this stuff. It doesn't give you the same control of I want this specific operating system and this specific state to test this stuff. It's a lot more opinionated about setting things up.
Starting point is 01:04:51 So it's really not going to be great for that. And then the other thing that Vagrant will continue to ranking and very similar is just sort of custom, really custom environments. So maybe you're doing something with a really strange OS or you're doing embedded development or actually I know a company
Starting point is 01:05:12 that does game development in Vagrant. So they spin up Windows machines on really beefy hardware and actually do 3D game development in a Vagrant environment. And that sort of stuff, like auto is not really going to touch. So we're super motivated.
Starting point is 01:05:26 We have people working full-time on Vagrant, and we're going to keep it that way for years. One question I think that you could probably speak to a bit is, you talked about microservices earlier, how they weren't really a part of the world, really, when Vagrant was around, when Vagrant first came out. And Auto is built to do that on its own. It's built for microservices.
Starting point is 01:05:49 Can you speak to the built for microservices part? Yep. Yeah. So in the app file itself, you could specify dependencies of your application. So these dependencies might be things like a database, but they could also be other services. And what you point to in that, to specify the dependency, what you actually do is specify where that dependencies app file is. So you create this chain of dependent app files. And so what you could do for the source practically is give it a GitHub address or give it a HTTP address or even S3 or something. And what auto manages for you is fetching that app file,
Starting point is 01:06:28 compiling that app file, figuring out how to install that thing. And the practical benefit of this is that the app developer only needs to worry about how to install, develop, and run their application. And they just specify what they depend on and auto manages how to get that into the environment. So as an example, if you have a web service, and you depend on a
Starting point is 01:06:52 billing service, then when you run auto dev, you don't specify anything about the billing service, except that you depend on it. And when you run auto dev, when you go in there, we'll have the billing service running for you, we'll have fake data already in it. It's just sort of ready to go. And the onus of how to install that billing service, like how did Otto know how to do that, goes on the billing services app file. So Otto might just know implicitly by being like, it's a Ruby application.
Starting point is 01:07:17 Here's how I'm going to set it up for development. Or you might customize Otto and say, this is exactly how you get your fake data into this thing, and Otto will do it for you. So that's a big difference. I think today, I don't think anyone would say microservice development is easy today. But some of the practices that are emerging today are, for example, using Docker for microservice development. And the main pitfall I found there is that while Docker does have a really nice thing called compose in order to start
Starting point is 01:07:46 a bunch of different containers and link them as needed as a single unit basically in one file, the problem is like as a developer, you still need to know all your dependencies but not only all your dependencies, you also need to know all the dependencies dependencies and you just need to flatten the tree in every file
Starting point is 01:08:04 and so that's really brittle if an upstream just changes what they depend on all the dependencies dependencies, and you just need to flatten the tree in every file. And so that's really brittle. If an upstream just changes what they depend on, then it affects every downstream. The other thing is you not only need to know them, you need to know how to install and configure them. And so it pushes all this effort out to the edge, to the final application.
Starting point is 01:08:23 And the approach auto takes instead is more of a pointer like approach. It's like, I depend on this thing and it'll tell you how to set itself up and it'll tell you what it depends on. And so this is what, this is the complexity that auto now manages for you. This is a probably a good place to break. We've got the,
Starting point is 01:08:37 this is our final break before we clear the show, but we got, Jay, we got a couple more topics for, for Mitchell on auto. So we're're gonna keep going so let's break real quick hear from a sponsor and when we come back we'll go even deeper into auto and then close out with mitchell so we're back we're excited about our new sponsorship with
Starting point is 01:08:56 lenode they're huge fans of the show and are excited to support what we're doing here and they want to invite every single listener of the change law to try out one of the fastest most efficient ssd cloud servers on the market get a linode cloud server up and running in seconds with your choice of linux distro resources and node location they've got eight data centers spread all across the world north america europe and asia pacific plans started just ten dollars a month with hourly billing and a monthly cap on all plans and add-on services like backups node balancers long view and even linode managed and for those who are already familiar with linode they recently switched from zen to kvm and the latest unix benchmark showed a plus 300% performance increase. We'll drop a link in the show notes for those benchmarks for you to check out.
Starting point is 01:09:48 Get full road access for more control, run VMs, run containers, or even a private Git server. Enjoy native SSD cloud storage, a 40 gigabit network, and Intel E5 processors. Use the code changelog10 with unlimited uses. Tell your friends it doesn't expire this year it expires the end of next year so use it as much as you want again that code is changelog10 head to linode.com slash changelog and tell them the changelog sent you all right we're here again with mitchell uh and jared earlier you kind of amened and you laughed and you were excited about.
Starting point is 01:10:27 I giggled maybe. You giggled something. You were excited. You can say it. I giggled. You giggled. You were excited about Mitchell's promise of auto simplifying deployment for developers.
Starting point is 01:10:37 So Mitchell, maybe you can lead us into what auto is doing for deployment. Sure. So if you recall, sort of when I talked about why vagrant wasn't good at deployment it was that you couldn't your your description of a development environment just wasn't a good description of a production environment and the difference that auto makes is that since we've moved up to this application level of abstraction um we could change things
Starting point is 01:11:02 for you in production we could we what the app is, so we could do different things. So as an example, when you deploy a PHP application, sorry, Ruby application, we do support PHP, but I'll use Ruby as an example just because I'm more familiar with it. When you deploy a Ruby application, we set up on Amazon, currently only Amazon. We can support other infrastructures, but later. On Amazon, we'll set up a server, we install Fusion Passenger,
Starting point is 01:11:34 we configure all the permissions, we bundle your application for deployment, we do all this stuff, and then get it up and running. There's also knobs to set up load balancers, deploy multiple server counts, like I want three behind a load balancer. And then with the microservice stuff,
Starting point is 01:11:52 we actually configure automatically for you, we configure our other project console. So consoles are service discovery tool. That's sort of all you need to know. It'll tell you where your services are so you could find them. We automatically install and configure that so that when you deploy your web application the billing you know API for example is always going to be at billing dot service dot console as a DNS like entry and you don't need to
Starting point is 01:12:16 worry about where that is like auto manage that for you but it's always there for you and that's sort of the idea behind deployment currently in its current state, we get a lot fancier in some upcoming versions around auto scaling and, and doing some other things. But for now, the idea is that we will get that application into production, you can go to a URL and see it running. And yeah, that's the idea. That sounds like a good opportunity for community involvement. Are you guys ready for you ready for different infrastructure people to come and get involved? Or is it still too early days for that kind of help?
Starting point is 01:12:51 Yeah, we're super ready. So we're focusing on different the ways, the right way to set up an application when you deploy right now. We're not where we have actually already pull requests for open stack support and something else. And it's just we're not going to merge those yet. We're holding back on those because we want to make one infrastructure really, really good before we move on to others. So the main focus right now is and I'll give you
Starting point is 01:13:16 a real example, the PHP community noticed that we were deploying PHP with Apache and mod PHP. And apparently the best practice today, again, I'm not a PHP developer, so of course I messed this up, but the best practice today is Nginx and a longer living process, not like mod.php. So they made
Starting point is 01:13:38 a pull request, which is to change it to Nginx, and so the next version of Auto will use Nginx for PHP, which is the right way to do it. And sort of like I mentioned before, Auto's deployment stuff isn't ready for maintenance yet. It's not ready for redeploys and stuff like that. But once we get Auto 0.3 out there, the idea is that you will have already deployed your application.
Starting point is 01:13:58 You download the new version of Auto. You recompile your app file. That's the safety mechanism so that every update, like things don't change. But you recompile your app file. That's the safety mechanism so that every update, things don't change. But you recompile your app file, you redeploy, and then auto will, minimal or zero downtime, will spin up new servers with Nginx rather than Apache and slowly spin drain and spin down the other ones for you
Starting point is 01:14:17 so that your infrastructure just became better by upgrading auto, which is the long-term idea. So here's the point where I make you really uncomfortable by asking you to tell me when auto deploy is going to be ready for me to put it into production. Yeah, so I do want to make clear that auto deploy definitely works today. You could download auto right now. You could deploy something. It'll run your application.
Starting point is 01:14:40 You can visit it in a browser. It works. What it isn't good at, just again, just trying to be super clear, I know I've said it, is maintenance. So redeploying an application, changing your infrastructure, how do we do that with minimal downtime, that sort of stuff. And that's the major focus of Auto 0.3. So 0.2 is going to come out next month. And 0.3, I hope I could do before the end of the year. But if not, I would commit to sort of January next year. We're pushing really hard to get it out there because we want this dream to be completely real for people. Some folks adhere to semantic versioning and they want to see a 1.0. Is there
Starting point is 01:15:17 a roadmap to 1.0 or do you consider 0.3 is going to be production ready. What's your thoughts on versioning? Yeah, so at HashiCorp, we don't follow semantic versioning for our end user products. I think we follow semantic versioning for all our libraries. I think it's really important, but sort of for end user stuff, we just maintain backwards compatibility
Starting point is 01:15:39 really heavily. So we probably won't break app file compatibility. And 0.3 is around the point for all our projects where if you're an early adopter, but you want things to work, like that's the release that you should be comfortable with.
Starting point is 01:15:56 And we hopefully will come out with a 1.0 of a lot of our stuff next year, but probably not auto, but a lot of our other stuff. Real quick before we wrap up here, getting started. What do I do? You just go to autoproject.io and go through the getting started guide, which will in simple steps is download auto, find a project you care about, run auto compile auto dev, and
Starting point is 01:16:19 you got a full development environment. Next step, run auto deploy and it'll deploy it for you. That sounds too easy. Is there anything harder we can do? It sounds like 10 minutes too, not even. Yeah, most of your time is just waiting for cloud platforms and things like that. So pretty relaxed process.
Starting point is 01:16:37 Okay, last question before we go to our closing questions is Vagrant, six years old now, is a Ruby project written in Ruby. Auto, the brand new project from you, is written in Go. Your thoughts? So all our projects since Vagrant have been in Go.
Starting point is 01:16:56 And I don't regret at all writing Vagrant in Ruby. It was the right choice at the time. But I do think that if Go had existed in a stable production-ready form like six years ago, then I probably would have used it. Go is just, I really like the language a lot, and I think that Ruby itself is a good language, but for writing end-user applications
Starting point is 01:17:18 that run on multiple platforms that you want to be performance and sort of you want lower level control over things, Go is a much better way to do it. Also, a lot of our projects, not auto as much, it's certainly in there, just not as prominently, but a lot of our projects care a lot about concurrency and parallelism. And Go just makes that, you know, it being natively part of the language makes it quite a bit better. And I don't think anyone in Ruby would argue that point too much.
Starting point is 01:17:49 I guess Jared kind of lied. It's not exactly the last question. Um, and it won't make you feel uncomfortable either. Um, but I was wondering if you can share some stories or just any, any, you can share on who's using auto right now that is noteworthy and any noteworthy ways they're using auto? I would just honestly say that nobody noteworthy is using auto right now. A lot of people are playing with it, and I'm actually glad to say nobody noteworthy is using it right now.
Starting point is 01:18:18 I like early adopters to be more tinkerers and things like that. So from the auto side of things, nobody yet. But I don't consider that a bad thing. Gotcha. But I guess on the flip side, auto, from a vanity metric, auto got almost 3,500 stars. It got 3,000 stars in less than a week of it being released. So there's a ton of people interested in it.
Starting point is 01:18:44 I could see the download numbers and they're doing really well, but I think rightfully so. It's a bunch of experimentation right now and it'll probably be that way until auto 0.3. Just to go back to the semantic versioning, 0.3 is what we think production ready will be? Yeah, yeah.
Starting point is 01:19:01 Well, Mitchell, it's obviously been a ton of fun having you back on the show and we close the show with some interesting questions. Sometimes we ask the hero questions, but since you're a three Pete, we won't ask those questions again. question, which is this question actually has some history with me personally, because I began podcasting probably late 2006, early 2007. And this show, we had this question at the end of the show called the super secret question. And I can't even take onus of it. I didn't begin it, but I liked the question. So I figured it would make sense to ask you this. So what is something super secret that no one knows about that either you, HashiCorp, your team,
Starting point is 01:19:47 something you're building, something that's happening? It can be big, it can be small, but whatever. What's something super secret that no one knows about that you can share with the audience here today? I'll just share something personal that's super secret
Starting point is 01:19:58 that I think will entertain people. It's super secret in the fact that I think just nobody realizes it or I've only ever in my entire time people. It's super secret in the fact that I think just nobody realizes it or I've only ever in my entire time of like visiting community speaking had one person ever figure this out.
Starting point is 01:20:14 But I used to be a core committer and worked for a while for Zend, the PHP company. And I worked on Zend framework, the PHP web framework, like the enterprise PHP PHP company. And I worked on Zend framework, the PHP web framework, like the enterprise PHP web framework. And I did
Starting point is 01:20:30 a lot of blog posts on PHP development. And they got a good amount of traffic. So I guess my super secret is that I came from a pretty heavy PHP background that nobody realizes. That's interesting. That's super secret too you ever go
Starting point is 01:20:46 back and just read your old articles and laugh uh i i went back last year and found my commits and i was curious if that code still existed in the project which it doesn't but uh i did that but yeah only at one conference ever i gave a talk and after the talk someone was like so are you the same Mitchell that did PHP articles? And I was like, what? How did you know? You're the person that read them. And our other favorite question that we like to ask, it's not always the same question, but it seems to be a good question to ask someone like you, which someone that's a thought leader someone's a visionary um we're curious to know what's on your open source radar so it could be
Starting point is 01:21:29 a project it could be a technology it could be just something out that's that's happening in the developer space uh what's on your radar if you had a weekend to hack on something what would it be um i think the thing that is most interesting i don't think i would want to hack on it on a weekend. But what I would want to play with, I guess what I'm most interested in is all the sort of monitoring like startups that are popping up right now are not startups, but like they're usually starts by an open source project. So I'm just super interested in in the mature, like when these projects become mature. So to give a couple examples, like InfluxDB for storing time series data seems really interesting to me. And a much younger project, Sysdig, I think it's S-Y-S-D-I-G. I think that's really cool. I'm just sort of, HashiCorp's not in the metrics or telemetry or time series sort of business, and we don't plan to be anytime soon,
Starting point is 01:22:29 but it's still a really interesting technical problem, and I just like playing with these tools. I still think that finding anomalous data out of time series, like how do we teach computers to just detect for us that our request per second is abnormally low right now like that sort of stuff is really fascinating and i wanted to get somewhere interesting so i gave you a couple projects but uh the whole field is pretty popular right now so i'm just paying attention to that all right just a couple of promotional items that are related. changelog.com slash 168. We had Julius Volson speaking about Prometheus
Starting point is 01:23:09 and service monitoring. We're kind of related to that, Mitchell, as well as 170, which was Ben Johnson talking about BoltDB and InfluxDB. So a couple of episodes if those are things that are also on your radar. Cool. And we use bolt for a lot of stuff at HashiCorp.
Starting point is 01:23:29 So cool project. Nice. Well, Mitchell, as much as it pains me to say, that is pretty much all we wanted to talk to you about. I mean, I'm sure we can keep going on.
Starting point is 01:23:37 I mean, you're, you're a deep fella and it's easy to, to pull things out of you, but it's been a blast having you on. Thank you so much too, for just, uh,
Starting point is 01:23:49 sharing so much that you do share with the community and then coming back on this show three times. I mean, you're always welcome back. So we look forward to more success for you and your team in the future, but thank you so much for all the work you do in open source and all the insights you give and just all the ways that you serve the men and women out there hacking on software. Cool. Thanks for having me. It's fun. It's always fun. I like, you know, your changelog is definitely one of the highest quality sort of thing that does this. So it's always fun to come on here. Awesome, man. Appreciate you saying that too. And to our listeners out there, we have listeners, we have members,
Starting point is 01:24:22 and without you, it would not be possible because who would listen to the show right that that wouldn't happen so thank you for listening and to our sponsors we have sponsors that make the show possible sponsors of this show are code ship brain tree backblaze and linode brain tree backblaze and linode are new sponsors code ship obviously huge fans of the changelog and longtime supporters of the show. But got to say thanks to all those sponsors making this show possible. But Mitchell, it's been awesome having you back on the show.
Starting point is 01:24:53 But for now, fellas, let's say goodbye. Bye. Goodbye. Goodbye. We'll see you next time.

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