The Changelog: Software Development, Open Source - Vagrant and HashiCorp (Interview)
Episode Date: May 15, 2013Adam Stacoviak and Andrew Thorp talk with Mitchell Hashimoto, the creator of Vagrant and founder of HashiCorp....
Transcript
Discussion (0)
This is The Change Log.
We're a member-supported blog and podcast that covers what's fresh and what's new in open source.
The show is hosted by myself, Adam Stachowiak, and Andrew Thorpe.
You can tune in live every Tuesday at 5 p.m. Central Standard Time right here on 5x5.
And you can check out the past shows at 5x5.tv slash changelog.
This is episode 88, and we're joined by Mitchell Hashimoto,
the creator of Vagrant.
Enjoy the show.
All right, we're back, everybody.
This is The Changelog.
We're live.
It's Tuesday.
It's 5 o'clock here in the big old state of Texas.
And Andrew, you're in Texas too, aren't you?
Yes, sir.
Normally you're not in Texas, though.
Nope. Normally in Nashville.
We do have a shout-out to the Common Desk in Deep Ellum of Dallas.
It's a nice little co-working space down here in Dallas.
It's got a cool vibe, so you should definitely check it out if you're in town.
And as you know, we take this show live every Tuesday at 3 p.m. Pacific, 6 p.m. Eastern.
If you're on the East Coast there, just tune in.
TheChangeLive.com slash live.
And for those of you who are listening live, we appreciate it.
We've got a fun, fun show lined up today. It's actually a throwback to a guest.
Andrew, do you know what what the show was
that uh mitchell was on what the show was i want to say 0.7.5 is that right okay good so we got
mitchell hashimoto on the show he is the creator of vagrant and also the founder of hashi corp so
mitchell it's time to say hello hello glad to be here again it was 0.7.2, by the way. I did a quick Google.
Sorry.
I don't care.
I was just curious for myself.
Get it right.
Yeah, it was actually,
Wynn did the original show with you.
That was November 27th last year, 2012.
We did that show.
Or no, sorry.
I'm totally wrong. That was actually, actually man i got my dates all messed up that's the day you announced hashy corp aha it looks like the
show was february something yeah february that year and it was yeah oops sorry about that
not bad amateur hour over here yeah Yeah. Oh, geez. Geez.
You know, it's just been a crazy day, man.
Crazy day at Pure Charity.
Crazy day getting prepped for the show.
A lot of stuff.
A lot of stuff going on.
So it's just been crazy.
But Mitchell, enough about what I've been doing all day.
We're excited to have you back.
I know, Andrew, you're excited about having him on the show.
We're excited about HashiCorp.
So we'd like to just like, you know, where do you want to dive in, Andrew?
Do you have a particular area you want to just jump into?
Well, I think first of all, Mitchell, if you just give us an update, like what's changed for you since going full-time at HashiCorp? I guess kind of start with the beginning.
The last time we spoke to you was before your 1.0, so how did that go?
So, yeah, you spoke to me about a month before the 1.0.
I think at that point the 1.0 was actually done.
I was working on blockers like design and stuff,
but the release went super well.
So I was kind of surprised how many people wait
until they see a 1.0 version to actually adopt some software.
So after I just kind of upped the version to 1.0 version to actually adopt some software. So after I just kind of upped the version to 1.0
and blessed it as such, the download numbers, like adoption, everything went way up. And
I was unexpected how big of an impact that would make. So that's good.
But it's been going well. It's been super stable. There's been some bug fix releases,
but for the most part, they're pretty minor or really, really specific bugs. So I've been really happy about it.
And maybe before we dive super deep in, we got a lot of new listeners and followers of
the changelog. So for those who didn't catch the original show, give us just a quick breakdown
of what Vagrant is.
Sure. So what Vagrant is, is a command line tool that lets you manage virtual machines pretty much in a dead simple way.
It automatically creates development environments, test environments for you.
So if you're running on Windows, it will automatically create you like a Linux virtual machine that has all the software you need installed in there to work.
And that's pretty much it. For those who listened to the last show with Jeff Atwood,
he mentioned Vagrant, and that's how he does his environment.
So he's on Windows.
He just built Discourse.
Discourse is an open-source project built in Ruby,
new to Jeff, a.k.a. Coding Horror.
I don't know why I said a hoarder.
The TV show Hoarder is on my brain for some reason.
I don't know why.
But that's how he does his virtual machines to run, like, a Linux box, I guess, to develop Ruby.
Sweet.
Pretty neat.
Super neat.
Flattered.
Flattered.
I read his blog when I was, like, in high school, so that's crazy.
Yeah, so that's probably been one of the craziest things for me.
On the last time we had John,
you were talking about some guys that were using your product.
Since then, who else are you aware of that's been using it now
and what's it been like to see some of those big guys using it?
A lot.
I'm actually surprised on a day, because it's open source,
they don't have to register or anything to get it.
So I'm actually not aware always when people start using Vagrant.
I think the biggest surprise to me was I was at a conference in LA, Scale, Linux Expo.
And I met this guy that worked at Disney, and he didn't recognize me.
I'm not that sort of person.
But then he saw the name and kind of put the pieces together and had this face that was like, holy shit, you're the Vagrant guy.
We need to talk.
And I was like, what?
What do you know about Vagrant?
He's like an ops guy at Disney.
And he's like, oh, well, we have like 200 test machines running Vagrant tests, Vagrant machines like all day, 24 hours a day.
And they're kind of
melting. And I, and I, and I was just taken aback because I was like, what? You got up to like 200
machines running vagrant automatically in a CI without ever talking to me. Yeah. Yeah. Yeah.
We definitely need to fix that. So that sort of thing happens all the time. Uh, and it's,
it's always surprising to me. Speaking of that, you need to get yourself a shirt that says i'm the vagrant guy i think i don't know whatever people call me
the vagrant guy i'm never quite sure if it's a compliment or not because it's either like
you made vagrants so that's cool or it's like a subtle like dude you're pretty dirty um kind of
jab and i don't know but you mentioned you mentioned disney but like on your home page for vagrant so
the the home page for vagrant is vagrant up.com and you got trusted by lots of cool brands on
there every everybody from discus to the bbc and the um i guess uh lots of others mozilla big big
influencers and open source as well yeah lots of cool people on there. Unfortunately, that list is super small
compared to how many I would like to put on there.
But it is what it is.
How do you normally hear from these people?
How do you find out that these guys are using BigRoot?
A few ways.
Conferences are a big way.
I talk to a lot of people at conferences,
pretty social there.
And then sometimes I'll just see mailing list posts
or get a direct email from someone where I just notice their email address, you know, it's like at Expedia.com.
And then I'm kind of, you know, piqued my interest. Like, why, who are you? That's pretty much it.
Gotcha. Cool. Yeah. I mean, it's really neat to see Vagrant, you know, growing so much. And it's,
this is kind of the beauty of open source
as you see projects like this that just start to catch on and kind of catch fire and grow in the
right direction so obviously a lot has changed uh for you personally um in the last year yes
what's your life like now what's your your daily life now you're not going to the uh the nine to
five or anymore uh it's it's still pretty nine5, but like seven days a week now and maybe some more hours at night.
I'm probably working more than I did before, but now I'm working completely on vagrant and vagrant-related things, which is nice.
And I like it.
I enjoy it.
So that's pretty much it.
I guess the biggest lifestyle change is, uh, I could,
I mean, I don't need to be at work, so I could be anywhere. And Google now currently thinks that I
work at Disneyland because I go to Disneyland so much. I actually, I actually sometimes will take
my bag and my MiFi and go into Disneyland and just work at a cafe in Disneyland, which I think is pretty cool.
I get some weird looks from families like,
why is this guy on a laptop in Disneyland?
Yeah, I did that with one of my previous employees.
I did a lot of work down at Disney World in Florida.
And I found this one little, it was like on this little pond
and it was this real old-fashioned hotel,
but they had a really awesome outdoor bar area that I would go sit and work at,
and everyone would give me those dirty looks like,
who's this weirdo going to the Disney bar and bringing his laptop and sitting here for six hours?
Yeah, I think it's, I don't know.
I have an annual pass, so I just kind of just float in there when I can.
Nice.
So you mentioned how your life's changed, but how has Vagrant changed since the last time we talked to you?
Vagrant's changed a lot.
Last time you talked to me was before 1.0.
1.0 came out over a year past since then, and I released 1.1 and even 1.2.
Basically, the way Vagrant's changed is it's iterating a lot, a lot faster.
Since I've quit my job and started HashiCorp full-time, there's been something like six or seven vagrant releases, a ton of VMware Fusion provider releases, AWS provider releases, stuff like that.
So it's just like a lot of stuff is getting shipped that would have taken much longer if I couldn't do it full-time.
You know, it's funny because I was saying HashiCorp and literally – and I'm going to out myself because I don't mind.
This is how I am.
I didn't connect the fact that your last name, Hashimoto, and Hashicorp were – I'm just slow, man.
I'm really sorry about that.
That's actually really common.
I don't know.
I mean I don't care, but I was surprised a little bit by how many don't make the connection.
Because I was – my next question was like, why did you name it HashiCorp?
But it's not Hashi, it's Hashi.
It's Hashi, yeah, Hashi.
HashiCorp.
Did you just figure that out, Stack, right there?
I told you.
I'm doing it on air, live.
If you're listening right now, you can laugh.
I'm just a little silly today.
It's been a day.
Shooting at the hit, man.
Man, but I don't mind telling you guys.
I'll admit it.
I did that just now.
So when we last spoke, we need to figure out something else to say rather than when we last spoke because we'll say that all.
Since the last time.
Since the last time.
I remember Wynn would ask you about, like, do you miss the web development side of things?
And with the new HashiCorp, sorry, and with the VagrantUp website and stuff,
have you found yourself doing more of the web development of your company, per se?
Not at all, no.
There's, I mean, I built, no, not really.
I made a web application to fill together the VMware purchase flow,
but for the most part I was stitching together a bunch of services,
so I didn't really code anything.
No, and the website itself is static, and it's, no, I'm not really doing any web dev.
Gotcha.
So you've been obviously doing mostly DevOps still, then.
Mostly tool.
I've just been mostly working on vagrant now so i mean i don't really have any big ops uh um responsibilities
anymore or anything so it's just building the tool yeah i guess that's true you're not really
doing ops work technically you're just supporting ops work now at this point yeah and it's good and
bad like it it was nice to work at keep before,
because as a full-time ops person, it kind of gave me a sandbox to try some of my crazy ideas,
um, and know, you know, how things are done and not done and stuff like that. And now I'm kind
of like blind to what's going on in that world in a way. I mean, I, I talk to people all the
time about what's going on, but it's, it's different not, you know, executing on it firsthand. Yeah. How do you find, I mean,
how do you find yourself now? Like solving the problems of the, you know, that you were solving
in the ops world? Like, uh, if vagrant has issues and you don't have any real circumstances to deal
with it, how do you get around that? Uh, it's hard. It's's well so if there's issues then i could easily recreate
that environment usually to test the issue that the hard part is there's a lot of things in vagrant
that as i was working i would just find you know like usability things like it would be cool if
vagrant did this new thing and i would see a lot of value in that because i knew exactly the problem
that it was solving and i don't see that. So if someone gives me a feature request, that's like, it'd be cool if Vagrant did this. I might agree,
like, that's cool, but I don't know how important that is. And it's hard to know how important that
is now because I can't, you know, compare it to what I do on a day-to-day basis. And I think so
far that's been okay because it's not been that long. It's been still only like six months since
I quit my job. So I'm still like, you know you know pretty relevant but i think i could easily see how like if i keep
doing this you know five years or something that i could definitely get out of touch and i don't
want that to happen yeah originally well at least like you said andrew the last time we had you on
this show you'd actually said that people were suggesting to pay you for a
feature and it's just kind of funny how that's like how that's worked out so we haven't we've
mentioned hashi corp but we kind of haven't really mentioned how it got started i think it's kind of
funny to look in retrospect that's why i was saying before the call that like on that previous show
it's kind of foreshadowing you know somebody's somebody saying, hey, I'll pay you for a feature is like, ah, makes sense.
HashiCorp.
You know?
Yeah, it was.
Yeah.
I mean, when we last talked, I didn't know I was going to quit my job and start this
thing.
It was not known yet.
So it's kind of neat how it worked out.
One of the things that we've kind of talked about a lot since we relaunched the changelog has been open source sustainability and preventing – stay excited about it.
So with you, now that you've gone corporate, you've sold out.
I sold out.
And now that you've gone corporate, you've kind of got to handle the day-to-day – not the day-to-day, but just the business side of things.
So how are you preventing burnout now with a product and running a business and doing all that stuff?
Burnout, how am I preventing burnout?
I don't know.
I think it's, you know, it's always been something I love to do.
I haven't burnt out.
Even when I had a full-time job, I'd work on Vagrant almost every night for like six hours.
So I think burnout is not a concern at the moment.
I take a lot of – I mean I go to Disneyland a lot.
So that's a good part.
That's a good medicine for that.
But I'm not too concerned about that.
But then the business side of things is harder. So, I mean, it's, it became very clear to me when I quit my
job that I could support myself through, you know, consulting or building features or stuff like
that. Like I could be very comfortable doing something like that, but at the same time,
I'm not, I don't, I'm not a big services person. So the goal of HashiCorp is actually to build it
into like a product, uh, company. It's at Hopefully this year. You'll see something this year.
And that's what I'm working towards.
So you can't really see what the business of HashiCorp is going to be,
and I'm not sure.
I can't say if it's going to be successful or not because I don't know yet.
But I'm avoiding services if I can.
Well, now you kind of teased it, but you can't leave us like that.
So are you saying that there will be other products that HashiCorp will...
Yes.
So I released Vagrant 1.2.2 or something,
and ever since that release,
I've pretty much been focusing completely on a new project
that should be out in the next couple of months
that I think will solve another problem.
And what I'm trying to do with HashiCorp is basically build the best DevOps tools I can
and solve problems I can. And I see a bunch of problems still from when I worked in it full time
that I want to make better. And I think I can make it better by building
multiple tools that work really well together. So that's what I'm trying to do.
Gotcha. So you can't tease us on the name
or the idea at all? The name of the new thing is Packer, but you could try to figure out what that
does on its own. I don't know. Thanks. No, that's cool, man. It's really cool to see a product
evolve. So a simple product that was built to solve a need, evolve into essentially a corporation.
It's cool to kind of watch this thing unfold before our eyes.
Speaking of that, I just like where your roots start from, Mitchell.
At least on your about page, you said,
I started building Vagrant in my college dorm room in 2010 as an attempt to solve a specific problem I had.
I was kind of curious what that specific problem was, but just leaning on what you just said, Andrew,
to see where you're at now,
consider where you came from,
and that journey in between is pretty neat.
Yeah, yeah.
I mean, the specific problem was just I worked for a consultancy,
so I was like one developer of many,
and I was seeing a lot of new clients every six weeks or so,
and it was just a huge pain in the butt after
working there for three years to keep setting up my laptop with new stuff every, every six weeks.
So I got, I reached a tipping point where I was so frustrated that I needed to find a solution
to this because I couldn't handle it anymore. And I didn't know if the vagrant idea would work.
It definitely wasn't called vagrant then, but it was just like this virtualization idea i had and i tried it and it seemed to work okay uh and i'm glad over the long
term it's shown to be very effective where'd you go with the name at uh you said v so you didn't
you know you didn't know it was gonna be called vagrant but yeah it's virtualization of some sort
right so it's is that like a i have to have no no it's really not actually i didn't come up with the name uh john bender who made 0.1 with me uh he came up with the name he was
i was actually notoriously bad like in 2010 with coming up with names somehow so every name i every
name i come up with he was like that's really bad like he was just very honest with me and
now when i look back i you can't say that without sharing some with us which what are some of the bad names okay uh let's see one of the first
names i had was box cutter that wasn't good yeah uh no it's not good um hobo it's close to boxing
though i mean yeah you were so close box cutter sounds like it came from maybe like gem cutter
kind of an idea yeah and then i had a hobo for a while
that's pretty politically not correct so there's that um oh man every we have so every week we have
some we have another politically incorrect topic on this show it seems like yeah this week's his
hobo yeah so that's it and then john bender came up with Vagrant, and that stuck. It's a very good name.
That is a good name.
Good name, John.
Good job, John.
Thank you.
So one of the things that seems like it's changed, obviously,
is originally you only had support for Oracle's VirtualBox,
and it seems like that may have changed.
Yep.
So what else are you supporting, and what has that done for you?
Yeah, so officially I support VMware as well, So what else are you supporting, and what has that done for you?
Yeah, so officially I support VMware as well,
and I have a personal open source project to support AWS,
but the VMware one has official email support and stuff.
But as you said, Vagrant now works with anything, not just VirtualBox,
and it's a complete plug-in interface,
so it could actually work with anything out there.
And it's changed things because there's a lot of use cases that people had for Vagrant that they couldn't actually do
because VirtualBox wasn't the correct answer for it.
So for example, people wanted to use Vagrant
to test their ops stuff in a CI.
They push, for example, Chef cookbooks,
and they wanted to run Vagrant up and make sure that it ran properly.
And you need a new machine to kind of try new Chef stuff.
So they wanted to do that.
But VirtualBox has really bad parallelism.
So if you run more than one VirtualBox machine at a time, it gets unhappy.
And yeah, so now with the provider stuff, they could use
whatever's best for them. So if they're an AWS, maybe they'll use an AWS provider that spins up
new EC2 instances. If they're in dedicated hardware, maybe they'll use the VMware one,
which has much better parallelization. You know, they could choose what's best for them. And that's
really neat. And it's still so new that new use cases are coming out
all the time. So I'm not quite sure where this is going to go. But it was very clear to me that it
was the right move to make. Gotcha. So your project is the Vagrant AWS is the open source one that you
have for? Yeah. Yeah, I started Vagrant AWS and the Rackspace one too. And I kind of did that as
to have an open source one that people could see how to build one of these things
because the VMware one's closed source.
So I didn't want to just come out with the VMware one
and say, well, if you want to build your own,
you got to figure it out.
I came to the AWS one,
so then I could point people at various points like,
oh, here's how you do this and you say do this.
Gotcha.
So have you seen any other, I don't know,
plugins that have come out that have been popular that other people have developed?
Provider-wise, there's some cool ones.
So there's an LXC one that's very good, bigger than LXC.
But, I mean, there's like a new provider every week, and it's been awesome to watch that happen.
So there's like joint ones.
What else is there?
KVM. like joint ones uh what else is there uh kvm uh i'm blanking but there's a lot yeah there's a lot more than i'm saying it's not just the product itself that's growing it's this whole ecosystem
around it that's growing it must be fun to kind of watch that happen around you yeah it's super
good it makes me feel good because that's that's what makes it hum pretty much.
So when you were building the plug-in system in Vagrant,
were you – kind of in what order did you go?
Like did you build out the idea and then build Vagrant AWS
or I guess you said VMware was the first one?
So kind of how would that look like?
Well, so between 1.0 and 1.1, the plug-in –
1.0 had plug-ins, but there was no real plugin system.
It was just like, run your own Ruby code inside Vagrant.
And it was kind of messy.
But Vagrant 1.1 had a whole new plugin system.
And I knew one of the things I wanted to support was providers. So I wrote the VMware provider alongside the plugin system because I believe that the best way to test an API
is to dogfood it and use it yourself.
And so I built it while I was building the plugin system,
and that's kind of what guided how it works today.
I dogfood it.
That's nice.
Dogfood it.
And actually, this is really cool.
A lot of people don't know this unless you look at the Vagrant source,
but Vagrant is actually built on its own plugin.
So when you run vagrant up, the up command is actually a plugin that is running.
So everything is a plugin in Vagrant pretty much today.
Cool.
So on the last episode, we talked about VWi.
Yes.
It looks like VWi is still in active development.
Yes.
What's kind of changed there?
Have they kept up with you in a lot of ways?
Vue has changed a little bit, not for bad or not in a negative way,
but it's changed in a way that it was originally Patrick's idea to build Vue as a way to build Vagrant boxes,
and that's what it launched with. And it is awesome.
And since then, people wanted to build other kind of machine images.
So now it supports KVM and Fusion and all sorts of things.
And it kind of lost its tie to Vagrant.
And so it's kind of gone off on its own.
So it doesn't work anymore, I don't think, as a Vagrant plugin by design.
It stands as its own product now.
And yeah, they're doing their own thing over there and keeping it going.
Gotcha.
Gotcha.
So we're just kind of like lightning round through some of these questions.
I know.
Cool.
I got a question.
Yes.
Go ahead, Colin.
I'm a first-time caller, long-time listener here.
I'm just kind of curious
so for for i mean it's kind of easy to step into this conversation but for some who may be like
kind of brand new to this idea of vagrant and what it offers and all that they hear things like
puppet chef and then they also hear vagrant they hear yeah now they hear docker as well you know
how does one choose you know i guess now that you have HashiCorp
and you're building commercial add-ons and supporting it, there's, there's lots of stuff
you're doing there, but how does one choose between these different options that they have
to virtualize or to automate and stuff like that? It's tough. It's really tough out there because
it's, it's, to me, it seems like, yeah, like you said, there's just a lot of names that don't
really mean anything. Like you don't tell anyone Vag, and they don't know off the bat what that means.
It doesn't mean anything.
So it's hard to know what tool to use and what it's even going to do
and if it's a problem you have until you have it, stuff like that.
If you're just getting into ops today, I think the best way is still to...
I think Vagrant is one of the best ways to get into it because it allows you to basically have a free disposable server on your own machine.
And then you could really just screw that up as much as you can.
Nice.
And so I usually recommend that people-
Learn by doing, right?
Yeah. So whenever people come to it, I usually recommend, you know, they get Vagrant, they
just manually do things for a long time. And then a long time being set up a project manually.
And then when they're comfortable with vagrant
so that they're not trying to learn multiple things at one time,
then they pick up Chef or Puppet or choose whatever they want.
I always say Chef or Puppet, it doesn't matter.
Just choose which one you connect more with.
Yeah, so with Chef and Puppet, I think on the last episode you were saying
that you didn't really have a preference between the two. Has that changed? um yes so kind of with that with chef and puppet i think on the last episode you were saying that
you didn't really have a preference between the two has that has that changed do you recommend
one of the over the other anymore no i know i spoke at chef conf like last week and i'm going
to be probably speaking at puppet conf this year so i'm still switzerland on that front gotcha
it's cool so you're now your project is sponsored. I see a few of
your sponsors are type kit and fastly. Um, what does that look like for you? Like on the, on the
business side, you don't got to get too much into any of the details, but, um, are these mostly
financial contributors or guys that actually jump in and help you with the code? What,
what is the relationship like between you and them? Yeah, so I'm actually really happy you asked that
because it's really not clear on that thing,
and I should make it clear.
But those sponsors are only people who help the org side of things,
which is like the open source side of things.
From a business perspective, I don't take anything from them.
So Fastly, for example, provides the CDN service for vagrantup.com, the docs, stuff like that.
Typekit, I mean, all the fonts on the website are rendered from Typekit web fonts.
Softlayer gives me some free servers for public testing.
Like, I can't use them privately.
And Keep is my last employer, and they host all the S3 costs for the public boxes, which are a lot of money.
So it all helps, but it's all, you know, the public stuff. And I want to make it clear that
that's what it is. I didn't, I specifically didn't want any sponsorships for business stuff. Cause
that, I think that's a little questionable. Yeah. Gotcha. Absolutely. So has, so when you'd left
keep, uh, to, to do this full time, did they kind of not see it coming, but did they kind of know that that was on the horizon?
Yeah, when I sat down with my boss in the room and told him, he kind of asked me why I didn't do it sooner.
He thought I was going to leave like in March of last year, and I left in November, so way later.
And he was all for it.
He's very supportive, and I'm actually recording this from the Keep offices.
They still let me come in here whenever I want.
Very friendly.
So Keep is in Disneyland.
That's awesome.
Yeah, yeah, Keep in Disneyland.
Cool.
Yeah.
So in the last show, you mentioned being a fan of RIOC. And since we're talking a little tiny bit about HashiCorp, did you happen to get inspired?
Because I'm really curious about this open source turned profitability turned into corporation and long-term business plan product company.
I'm kind of curious about this shift.
But in the last show, you mentioned being a fan of RIOC.
And for those who are tuning in uh reoc reoc is
essentially a database uh you get it to this no sql no uh no mysql stuff that's basically reoc but
they're a paid version i guess they do it's open source but they also have a paid component to it
so you mentioned being inspired or being a fan of them were you inspired by them when thinking of hashicorp and and vagrant
and the direction you were going to take um no no i i like the way they're doing things uh but
it's just one option and and i'm not sure if i'm going to follow that option so uh i'm good friends
with them but i wouldn't say they're inspiring certain decisions I'm making.
I'm definitely trying to learn as much as I can from companies like Basho, who makes React.
But I'm not trying to follow in the footsteps currently of any specifically.
I'm just trying to understand what the options are out there to make this into a business.
And I think I have a good grasp now.
Yeah, so do you plan on, like, will Vagrant always be how Vagrant is now, like a free product that you can use
and then other products will be where you would sell
and do things like that?
Yeah, so my, I mean, I'm happy to talk about that.
What I want to do is basically build a set of open source tools
that stand on their own, are totally free, liberally licensed, awesome tools,
and then build a layer on top to integrate them and present it maybe in a more user-friendly way,
like less command-lining, more UI-focused, stuff like that,
and charge for that layer rather than the tools themselves.
So I know that Vagrant is, Vagrant,
I'm charging for the VMware stuff. And honestly, long-term, I want to make the VMware stuff free
and open source too, because that's not my business plan. I only charged for it because
I think it's fair because VMware costs money to begin with and it supports me. And that was pretty
much it. It gave me the runway to work on my own without
pressure. So with that in mind, I'm basically building out these other open source tools,
going to release them, going to love them, going to liberally license them, and then build in this
proprietary layer on top of it. But the nice thing is, since it'll be built on top of open source
tools, if you get tired or you don't like what i'm doing there you could always like leave it and and work with the tools yourself i'm not sure if we lost andrew
maybe he's gone we do have a i think we did yeah i think we might have he'll come back in a second
so i'll pick up i was i wasn't going to stomp on his toes if he had some good questions to ask
there but uh it seems like you might know a guest in our irc chat room
so for those listening on the podcast feed you can't listen to the show live we do broadcast
every tuesday and right now i'm saying this live to some people that are listening but we also run
an irc chat room so when we have people like mitchell on the show you can hop in and ask
questions and in regards to that we have K776 underscore,
which is an awesome, awesome username.
He says, is Packer being designed as a self-contained app,
solves a different problem in parentheses,
or a complement of Vagrant used for better experience?
Good question.
So everything I'm working on are self-contained.
Each thing I'm working on should stand on its own as a very useful thing.
They're solving very specific problems,
but at the same time,
they're going to integrate super well with each other,
being that they're made by the same mind on top of it.
So Packer will be on its own,
and I think a lot of people will use it without Vagrant.
I spent a long time at ChefConf last week
talking to people, seeing if
the problem Packer solves is a problem people have, and 100% of people want it. So once it's
out, I think they'll adopt it. And whether they're using Vagrant or not doesn't matter,
but it'll compliment Vagrant as well. So do you have a release? Welcome back. Yeah, I'm back.
I was trying to sneak in there all uh you know yeah you can't
sneak past me i know sorry uh so do you have a release date in mind for packer you may have
already said it but uh it's it's not release date but let's say release my personal goal
my personal goal is june um it's it's hard now it's harder for me now in a way because there's
a lot more personal pressure i put on myself because I think that, you know, when I released Vagrant, I think if I released Vagrant now, it wouldn't have succeeded as well because people kind of expect a higher level of quality out of what I push out.
And so I'm I'm working. I think three or four years ago,
I probably would already release Packer.
Like it's in a working state.
But I'm spending a lot more time polishing it,
getting air handling down, stuff like that.
And I think the result will be much stabler,
but it sucks because people have to wait longer.
Gotcha.
I think we're actually being visited by John Bender
in the IRC chat room right now.
Yeah, yeah, yeah.
Speaking of John.
John Bender.
John Bender.
Mr. Vagrant neighbor himself.
He's soon going to be.
So Kyran asked another question, which is what John's doing.
But John is soon to be Dr. Bender.
Not soon.
He has a few years or some years down the road, but he's starting a PhD program
and doing crazy programming maths.
Isn't Dr. Bender the guy on Futurama?
Or no, Bender's the robot.
Bender's the robot, yeah.
Yeah, my bad.
Sorry, rookie mistake.
But yeah, so John actually left,
not left, he's always used Vagrant
and been a huge fan of Vagrant,
but he, I'm laughing at what he's saying, but he left the project kind of, I don't know,
two years ago or a year and a half ago sometime, and he was a full-time, is a full-time committer
on jQuery Mobile.
So he went the front-end route, whereas I went the ops route.
But we've
always talked like every day and, and he, he's a big, he gives a lot of feedback to the project
and, uh, like I said, a big evangelist. Uh, and yeah. Gotcha. So John was kind of the driving
force behind the windows side of things, right? Yeah. Yeah. What's that like now is, uh, what's
windows support looking like and is John still active in that area?
So John was the one who made me, he made the original Windows support and pushed me towards supporting Windows.
I didn't think he was that important, but he was pretty serious about it.
So he made the first support, and since then, the latest release supports Windows really, really well.
It works in basically any shell environment that exists on Windows because there's many different ones.
And it just works super well.
And John had incredible foresight there because now if you look at the download numbers, they aren't public.
But if you look at the download numbers, the total number of users are actually two-to-one Windows to Mac.
And then there's Linux.
So a lot of people on Vagrant and Windows.
That probably has to do with Disney.
I don't know.
I think, yeah, I don't know.
It's kind of interesting because I've met a lot of people who are really smart, and they like Windows, but they prefer a Linux dev environment.
But they prefer a Windows desktop environment.
And now you can have both.
That's pretty cool.
It looks like 1.1 was the VMware Fusion release.
And what was 1.2?
What are your major releases?
So the way the versioning works with Vagrant,
I get kind of flack at open source conferences
because I don't really follow semantic versioning.
But the idea is that the first number is stable.
So 1.0 is stable, but then 1.1, 1.2 are experimental
up towards a stable 2.0.
So I'm going to make that clear on the downloads page in the future by highlighting that if you still want a stable release, you should go with 2.0. So I'm going to make that clear on the downloads page in the future
by highlighting that if you still want a stable release,
you should go with 1.0.
But also the Vagrant project, I think, since the beginning,
has been known for pushing very, very stable experimental builds.
Like I say experimental kind of as a disclaimer to myself,
but there's usually very few major issues,
or if there are, I push out new releases
very quickly. So the 1.xs that are coming out are just kind of experiments working towards what
my vision is for 2.0. Marker.
Did you say marker? Yeah, I got disconnected.
Nice. Hey, Mitchell, I'm just really curious about this.
I was just kind of reflecting on this while you guys were chatting there.
But in your Twitter bio, you mentioned being automation or sorry, automation obsessed.
What does that look like to be automation obsessed?
It's a disease, man. It's it's basically whenever I do anything, I can't if I have to do it even like twice.
I get really frustrated if I can't, if I have to do it even like twice, I get really frustrated if I can't automate
it away. I don't know why, but I've always just had this, this interest in just making computers
do things for me. That's how I got into programming actually, which is kind of a cool story.
I just wanted, I was playing video games and I wanted to, there's like, I was playing a web
video game and I was doing the same stuff every day to get this virtual currency and I was playing a web video game, and I was doing the same stuff every day to get this virtual currency, and I was getting pissed off that I was doing it.
So I learned how to program in Visual Basic to do it for me.
Nice.
Yeah.
That kind of reminds me of – I'm not sure if you're – if Kenneth, if you're listening to this even on the podcast, I'm sure you're going to put your hands up in the air when I say this, but super huge fan of Castlevania, Symphony of the Night.
And that game required you to – if you didn't have an automation controller, you would never really finish the game to the degree you really want to do.
Yeah, I think one of the coolest things I made that no one ever saw, no one ever will see because it's legally questionable.
So I may or may not have made this.
I'm not admitting to anything.
But I made – well, so I did make it.
Whatever.
He made it.
He made it.
Fine.
Whistle him.
That was the worst disclaimer ever.
I don't know how to disclaim this.
I'm just going to admit to it.
But I made a World of Warcraft bot for Mac in like 2007. And I never got caught because I realized that since Mac is a Unix
process model, that if I ran, and it ran as a user level process, that if I just ran
a root level bot, that it could never detect that it's actually running unless I make a mistake,
you know, make it obvious by what modifications I'm making. So I think, I want to say I made the
first one that did that, but I never released it publicly. So I think, I want to say I made the first one that did that,
but I never released it publicly, so I can't prove that.
But it worked. It was fun.
We'll take your word for it.
The only types of bots that I ever programmed for games like that
were, like, holding my finger on the space bomb.
That's next to it.
Those have their place.
Oh, man. So I got a question on Twitter. Let's an intuit. Those have their place. Oh, man.
So I got a question on Twitter, and I don't really have any knowledge of this.
So Byron Miller, it's at Byron underscore Miller, said to ask you if there is any movement on Hyper-V support.
There's not any movement, but there's a lot of requests for it.
Um, so I am looking into it.
The main issue is that I don't have a Windows machine strong, powerful enough to run Hyper-V,
which is kind of a silly excuse, but that's kind of what it is.
So I'm working on fixing that problem and then I'm going to look into it, but no promises.
So for the hecklers who might be listening to the show now thinking,
where's the Hyper-V support?
What exactly is it?
Oh, Hyper-V is Windows virtualization technology.
It could run Linux, but it's their hypervisor to run virtual machines.
And the cool thing about Hyper-V is it ships with Windows 8 standard, I think.
So it's free.
If you buy Windows 8 standard, which is the majority
of people, then you already have the virtualization thing. So one problem with Windows that sucks on
Windows is there's VirtualBox on the very low end, which is free. And then the next step up
is VMware Workstation, which is $250. So there's like a huge gap there in virtualization pricing.
And Hyper-V would make a really nice middle ground because
of it shipping with windows standard cool super cool you talked a little bit about i think you
had just recently made a switch from emacs to vim have you gone back or have you stayed in that realm
um i'm in i'm in vim full-time and that started as a joke. Oh my
gosh. I worked at Keep and everyone here uses Vim and I was the only Emacs holdout and I would get
so much crap every day for using Emacs. So finally one day I was like, all right, I'm going to use
Vim. I promise I'm going to go all the way and use Vim for a month. And then after I use month,
I might go back to Emacs or I might not. But if I go back to Emacs, you guys can't say anything anymore.
So I did that, and I stuck with it.
So last on me, I guess.
I have no more questions, Andrew.
Yeah.
In our back channel, Andrew is asking if I have questions.
I kind of do have a couple questions, but I don't want to interject because it kind of goes back in time a little bit.
No, go for it. I mean we i'm through all those questions
mitchell you answer questions faster than anyone we know i know i had like a i could talk more
you could just ask more details about what you want to hear about i could i could do it
well can we let's dive into this part because i'm you know one one thing i'm going to be an
advocate for on this show is people who don't know everything because I'm that person.
I don't think anybody knows everything, but I've never really had a chance to hack on this.
By this, I mean Vagrant.
But I'm kind of curious to like the getting started, the installation process.
You have a page getting started on Vagrant Up and the docs and whatnot uh how to get started and how you install it and
apparently it's pretty easy to install so what was when you just design like how to start working
with this i guess the easiest way to say it is like working with vagrant or working with a software
like this how do you go about designing that initial user experience you mentioned uh you know
if you get into devops too deeply you'll kind of forget what the front end is of the web.
And how do you design the UX of getting involved in using Vagrant?
I mean, the design of that experience just comes from making it as easy as possible.
I think a lot of tools just assume that the people who are going
to use it are not, not that they're dumb, but that they're, you know, that they're, or not that
they're smart, but that they're capable of just figuring or patient enough to figure things out
on their own. And I mean, even I don't have that sort of patience. I kind of, unless I'm like,
really know something's going to solve a problem, I'm not going to spend very much time trying to get something working.
So the whole goal when making the vagrant getting started process going was how can we make this the minimum number of commands necessary, the minimum number of steps, the most guaranteed way to work properly, stuff like that.
So out of that whole thing came, you know, various commands like before vagrant 0.1, for example, there was no Vagrant in it.
So you would have to create your own Vagrant file and configure it before you could run a Vagrant up.
And that's a lot of domain knowledge to even get to that point.
So to get to the initial gratification of seeing the tool work was a lot of steps.
So we introduced Vagrant in it.
And then that brought it down to two steps, which is awesome.
And then with two steps, it's pretty much like where I'm comfortable there.
And then we took a look at the installer situation.
So it used to be RubyGems-based, and I made a fatal assumption when I started using – not fatal because I'm still around, but it could have been fatal – assumption when I released Vagrant, which is that people would like that.
And Ruby people love it. But the problem is
that most people who use Vagrant aren't Ruby people and they hate it. So.
AKA coding whore.
Yeah. I mean, oh yeah. Try to set up Ruby gems on Windows. That's fun. That's a fun experiment. So
basically after that, I realized that I need to separate the installation process from the
language that Vagrant's written in,
meaning I can't use RubyGems even though Vagrant's written in Ruby.
So I switched to installers.
Now people just grab the installer that's built for their platform and use their really standard process.
On Windows, you just double-click the installer, next, next, reboot at the end, really normal.
Yeah, it's running.
So that's pretty much it.
And so then from then on, it's pretty much the same command line from then on?
So the CLI is the same, Vagrant init and Vagrant up and Vagrant destroy
and all these different commands you have available?
Exactly, yeah.
And that's the cool part about Vagrant is that the workflow is the same on any platform.
So you mentioned the first
version didn't ship like that what was it uh was it github issues was it emails was it just like
long nights of trying to figure this out that made you turn the boat and say okay i should actually
ship an installer versus you know sticking to my guns of being the ruby way uh i think it's being
like you know it's it's being aware of every sort of feedback you could get
and kind of weighing what's coming in more often than others.
So I get feedback from GitHub issues,
people find my personal email address pretty easily,
conferences, Twitter, hacker news comments,
blogs that are coming around,
stack overflow questions, all sorts of things.
I get all this feedback, and it's kind of just taking everything you see
and then trying to figure out what's important.
And one of the things that I kept seeing over and over was, for example,
bugs having to do with the way people set up Ruby
because people don't know how to set up Ruby.
Uh-oh.
Yeah, so it sucked for me when people were hating on Vagrant
because they couldn't install Ruby.
And I'm not blaming them.
I mean, I would too.
I mean, if I had to set up all this environment stuff just to get some software running, I'd be pretty pissed.
But that's the sort of thing that kind of pushed me to making the installers.
And that's one example of things.
But on a smaller scale, on every individual issue, that's kind of how I figure it out, is looking at everything available to me.
Since we talked a little bit about the history and I guess where you came from in the last show,
Wynn asked you a pretty pointed question, which was how influential has GitHub been?
And this is a while ago, right?
So how influential has GitHub been in the development of Vagrant?
And I'm kind of curious how you'd answer that question now.
I honestly think that it needed to exist.
I think, yeah, I just can't imagine Vagrant without GitHub.
I can explain it further, but basically I can't imagine that level of involvement in a software project on any other platform other than GitHub, even today.
I have some projects on Bitbucket and some other stuff, and I see a lot of projects in Google Code, and none of them have the same social power that GitHub has.
And that's what I think made vagrant very very successful initially
i guess you probably i mean especially when we talk about the
you know the iterations i mean you mentioned earlier in the show that vagrant is really
iterative um that you're kind of like in this experimental stage until you get to 2.0
i could imagine that you know like that GitHub issues, those are probably,
is that like your campground?
Do you hang out there most of the day?
I try not to because it's depressing.
Too many requests or just too much broken?
It's not a lot broken,
but just a lot of things that,
they're half bug issues,
but half feature requests. It's hard to feature better with my time at the moment.
And so I try to
all my ideas, and I don't
like publishing my ideas
half-baked, so I don't use GitHub
issues as a roadmap or anything.
And I don't publish a vacant roadmap,
and some people don't like that, but
I do like to develop it in private
and see if it even makes sense.
Because definitely in the 13 months that existed between 1.0 and 1.1, I threw away a lot of code that features, like a lot of features I built that just at the end were not up to the standards that I want for something.
I'm not sure if Andrew's here or not not are you here i'm here okay because we keep we keep losing andrew and i keep bringing him back and sorry about that mitchell and sorry to the
listeners who are listening sometimes skype messes up and right now andrew's doing a little bit of
traveling he's like you said earlier in dallas so he's probably on some skittish co-working wi-fi
or something like that so yeah then i wanted to say too so now you guys may have obviously
already said this i can't hear half the stink half the stinking things going on but um so so now you
have i mean the project on github you have 750 forks 3500 stars yet, but you have 55 open pull requests and 195 open issues. So
that's obviously much greater than before. And do you find that you're,
are you unable to keep up with the amount with the growth in popularity or is that just kind of the
one? Um, so it's tricky. So like when I talked to a win a year ago, uh, there was like 20 issues and
that was because I was winding down issues in order to release 1.0 and everything was stable.
Like things weren't changing that much. And then now things are very, not, not unstable in the
crashing sense, but unstable in the, how is this feature going to look in the future kind of sense.
And so there's a lot of issues that are suggestions for how to change things.
There's a lot of issues that are bugs.
There's a lot of feature requests, stuff like that.
And so that's obviously ballooned up.
It'll go back down for sure.
And then the other thing is also, like I said, since Vigor 1.2.2,
I've been focusing on this other software project. So as part of that, I find it very distractive if I'm bouncing back and forth
between projects, like context switching. So unless there's a huge crashing bug that I need
to address, I kind of just skim over the issues and recognize that, oh, that'd probably be easy
to fix, but I'm just going to go ahead and fix that some other day. And so one of the days coming
up, probably this week, actually, one of the days I'll sit down and just go ahead and fix that some other day. And so one of the days coming up, probably this week actually,
one of the days I'll sit down and just triage and fix vagrant issues
for probably eight hours and get a release out.
But for the most part, I kind of let them grow,
and then I just attack them one day.
Gotcha. So how many contributors do you have on the project now?
Contributors, like core contributors,
I'm still the only person with the commit access.
Actually, John has commit access too, but he doesn't use it right now but in terms of contributors there's
each release has dozens i would say of code contributors but they're mostly one-off things
but like very very helpful most of the code contributions coming in are for platform specific
things where they're like oh if i'm running a solaris virtual machine then it's not changing my host name properly. And those are sort of
things that are really hard for me to know how to do, especially because I'm not a Solaris
person. So when that sort of stuff's contributed, it's really helpful. And that's where a majority
of the contributions come in. But at the same time, I have been reaching out to a few other
people to bring in more core contributors. I think what's neat is since the release of providers,
providers have given people a stage to make a big difference to Vagrant
that they wanted to contribute a lot before,
but they couldn't because they were afraid of what to do.
And now people are being very passionate about their Vagrant plugins,
and I'm looking to take some of those third party providers and offer them
commit access to make vagrant better, but also to more officially work on their provider work.
I guess you can almost look at the people developing those providers as
core contributors on those wings of the project, you know?
Yeah, yeah, definitely.
It seems like when with the new products that you're working on, that there's going to come
a point where you're going to have to allow commit access to someone or something to help you kind of keep up with this stuff.
I mean it seems like you're going to hit a point of critical mass where you're going to have a ton.
So what are you looking – I'm not trying to apply or anything.
But do you want somebody from the – would you want somebody more from the ops world
or more from your past contributors?
What kind of would you look for
for somebody to kind of come on the team
as a core contributor?
It doesn't matter to me.
It's more about whether they understand
the goals of the project
and whether their vision's kind of in line
with what Vagrant's vision is.
And that's pretty much what matters.
As long as they're not a hobo.
No, yeah.
I mean, they can be if their code's good.
Their personal life choices aren't my issue.
That's funny.
Cool.
Yeah, I don't think there's any more questions in IRC, though.
No, it seemed that you were answering everybody's questions.
You're like a rock star.
Trying to jump in where I can.
Cool.
So we kind of hit on this before, but what's next steps for you?
Where are you going from today on in the immediate future?
The immediate future.
There's a lot coming.
So more vagrant releases, of course.
I'm going to keep pushing forward towards 2.0.
Working on this new software project, Packer.
Hopefully you guys will see that soon.
I'm excited about it.
From a business standpoint, I'm doing a lot there.
I don't really want to talk about any of that right now,
but you should see news that's pretty exciting in the next couple months.
And that's pretty much it.
It's mostly just iterating forward
and one new project, which is cool.
But other than that, just iterating and pushing forward.
And if they're following you,
what's the best way to catch up with this newsletter you mentioned?
Is it a newsletter or is it following you on Twitter?
What's the best channel to follow?
The best place to follow is my Twitter, probably,
which is at Mitchell H.
Pretty easy to find.
Yeah.
Yeah.
And I announce some things on the Vagrant mailing list, too.
Like, releases and stuff are there.
But for the most part, personal, like, I try to push all my announcements more quickly on Twitter, like incremental announcements, if you care about the details.
That's a good question, actually,
that Fins has there.
What's the question?
So Fins just asked me... Let's see.
Fins just asked me...
The inmates are running the insane asylum.
Yeah.
Fins just asked me what about the medium-term future.
So is HashiCorp going to grow? What sort of company is HashiCorp going to be? HashiCorp is going to grow. I mean, most people know I haven't taken any like venture capital, so I'm not able to hire like suddenly and I have someone in mind. I'm not ready to talk about who, but they're so far on board,
and hopefully you'll hear about that in the future.
And then I think in the next, like, FinZ, sorry,
and then the next year or so, hopefully grow even more than that.
I think the company HashiCorp's going to be,
I want it to just be a big DevOps.
I want it to be associated with DevOps very strongly.
So I want people to, the way that when you make open source code,
you kind of associate GitHub with it.
When you work on the ops or the DevOps side of a website,
I want the HashiCorp tools to be the obvious answer to things.
Gotcha.
So give us a call to arms.
What is something that the community, you would love to see the community do for you in us a call to arms. What was the, what is something that the, uh, community,
you would love to see the community do for you in the future? Uh, call arms. I would love just to,
just for people to keep building awesome 1.X plugins and keep pushing that forward because
that's, I mean, every new provider that comes out, it's a whole new community of people that
could use Vagrant and that helps a lot. And, you know, blog posts of your experiences, complaints are really helpful if they're said
nicely. Uh, yeah, all that stuff. And on the last show, you mentioned your programming heroes were,
uh, unnamed. I think you said Tim, your coworker, and then you said, you know, the,
the Yehuda cats and all those guys of the world In the last year, has that changed at all for you?
Got any new heroes?
That's hard.
I'm not sure of specific people,
but I would say I have a newfound respect for people
that try to commercialize open source because it is hard.
Yeah, it seems like this is the year of commercializing open source.
A lot of these projects are kind of going commercial, which is kind of neat to see it happen.
It's scary and neat because you could go the scary route, which is like MySQL. They did it
wrong. But you could also go the friendly route too. So it's scary. Yeah. All right. Well, it was
a pleasure having you on here, man. Even though my internet kept on kicking me out, I feel like
we had a lot of cool questions and answers.
I really enjoyed having you on, Mitchell.
Yeah, thank you.
It was fun to be on again.
I love the show.
And I think you already said it,
but his Twitter is at Mitchell H,
so give him a follow.
Ask him some questions.
Just be nice about it.
Just be nice.
Just be nice, people.