geerlingguy / drupal-vm

A VM for Drupal development
https://www.drupalvm.com/
MIT License
1.37k stars 645 forks source link

Default to Debian 8 instead of Ubuntu 16.04? #1177

Closed geerlingguy closed 7 years ago

geerlingguy commented 7 years ago

This is just to kick off a bit of a discussion—I've finally got around to publishing my own Debian 8 Vagrant box (for VMware and VirtualBox): https://atlas.hashicorp.com/geerlingguy/boxes/debian8

I've never particularly liked Ubuntu, and I don't often use Debian either (I'm more of a Red Hat/CentOS guy), but I like Debian more than I like Ubuntu for server use (on the desktop, Fedora's my distro of choice).

Therefore, I want to discuss the idea of switching the default for Drupal VM from Ubuntu 16.04 to Debian 8—noting that all (if not almost all) of the roles I maintain are currently tested and working on CentOS 7 (and usually 6), Debian 8, Ubuntu 16, 14, and sometimes 12.04 LTS.

Pros

Cons

geerlingguy commented 7 years ago

There's an awful lot of personal opinion in the above, but I'd like to hear more from other users—would switching to Debian cause any pain? Be better for you? Worse? Not make any difference at all?

The only real-world implication so far (and this can be combatted by simply switching in your config.yml back to geerlingguy/ubuntu1604, 1404, or 1204...) is that the default wouldn't match the same OS family as certain large Drupal infrastructure providers (ahem—Acquia).

heddn commented 7 years ago

I think I prefer sticking with ubuntu, but that's just me. Most of my reasons are personal as well.

thom8 commented 7 years ago

If there's one thing I've learnt using OSS over the years, it's that the easiest route is often the one most travelled and it seems ubuntu has found its place as the de facto default for many.

Are there any good resources for OS usage statistics? even better if they were LAMP/Drupal specific.

easiest != best ;)

thom8 commented 7 years ago

Vagrant box downloads - https://atlas.hashicorp.com/boxes/search

8 out of top 10 are or based on ubuntu.

geerlingguy commented 7 years ago

@thom8 - Realizing, of course, that the first one is the default in all Vagrant documentation and examples everywhere... and Homestead and puPHPet are both using it more for legacy reasons.

The main downside is, of course, popularity/rankings. But I've even considered switching to centos7 instead, since that would be just as easy on my end (and even better, since more than half my infra is on it :P). But it seems far fewer individual devs/small shops are familiar with anything outside of Ubuntu, maybe Debian, and maybe Arch.

thom8 commented 7 years ago

Absolutely, the power of the default also makes it the lowest risk option as an upstream issue with vagrant + vbox + ubuntu would affect the majority of users + it's far easier to find external support.

Good or bad this trend also doesn't seem isolated to Vagrant, it's similar on Docker Hub, community AWS AMI's etc.

Maybe they just have the best/well funded marketing team ;)

geerlingguy commented 7 years ago

Absolutely, the power of the default also makes it the lowest risk option as an upstream issue with vagrant + vbox + ubuntu would affect the majority of users + it's far easier to find external support.

One example to the contrary, though—for some inexplicable reason, my Ubuntu 16.04 box was the first one to actually support NFS... about 3 months after the LTS release. To my knowledge, the official 'Ubuntu' version is still not working correctly in some basic networking situations (e.g. with private IP and NFS on CentOS, and some other conditions).

And I had to spend about 8 hours making it so. Granted, I'd be solving the same problem with a Debian box... but Debian and Ubuntu are usually close enough that it's not a huge issue.

thom8 commented 7 years ago

TBH Debian is so similar to Ubuntu I don't think it will make much of a difference, I guess Ubuntu just claim to be more user friendly (hence the extra weight).

Also have you looked into hosting the base boxes on Atlas?

geerlingguy commented 7 years ago

@thom8 - Yes, I have... unfortunately the few times I've taken the time to try, I kept running into weird environment things that caused builds on Atlas to fail. You can't have the boxes hosted on Atlas, apparently, unless you also build everything on Atlas.

geerlingguy commented 7 years ago

At least that's how it was back the last time I tried to get things set up solely in Atlas. So I still have the boxes on files.midwesternmac.com, and the metadata on Atlas.

thom8 commented 7 years ago

@geerlingguy I think it's been solved but manual :(

image

However, there's probably a way it can be automated via the API.

Also the packer builder on Atlas has become much more stable and since the 0.10.0 release I haven't encountered those weird environment things.

geerlingguy commented 7 years ago

Interesting... I'll have to try.

oxyc commented 7 years ago

Not make any difference at all

For me personally. It would simply mean all the random instances I spin up take less space, while all the work related instances remain locked to the OS production is running.

Maybe add a paypal link, or flattr, or something similar to let users contribute to the bandwidth cost?

geerlingguy commented 7 years ago

I've considered a patreon, but it always feels weird to ask for money for OSS, since I'm not the only contributor. We need a way to funnel some money to you to get a new lens for your awesome pictures or something :D

geerlingguy commented 7 years ago

As long as we have automated tests running on all the main supported OSes, then it seems like we should be safe to switch the default to the one that's most efficient (IMO).

To the majority of Drupal VM end users, I don't think it would make much difference day-to-day. Plus, Debian 8 and Ubuntu 16.04 are fairly matched, in terms of most popular packages/filesystem layouts.

protitude commented 7 years ago

Maybe you could provide a torrent for your boxes and ask people to grab their boxes from the torrent. I would happily seed. Just looked and there's no way to download torrents via vagrant, but that would be awesome. Might not be able to get everyone to grab the box that way, but if enough people do, it might bring down your costs. Just a thought 🤔

I'm happy with Debian if everything works the same at the end of the day.

oxyc commented 7 years ago

I've considered a patreon, but it always feels weird to ask for money for OSS, since I'm not the only contributor.

I understand, but I feel hosting/bandwidth costs are different from code contributions though. It's an actual expense.

geerlingguy commented 7 years ago

Well, then, there you go! https://www.patreon.com/geerlingguy

geerlingguy commented 7 years ago

Maybe you could provide a torrent for your boxes.

Sadly, I think this would only help defray < 5% of bandwidth... unlike many larger distro projects and other places where the download would generally be downloaded manually, the ease of use of Vagrant with automatic download on vagrant up means nobody's conditioned to go look for a place to download the box most efficiently.

Now that @oxyc has funded bandwidth for the month, I'm sitting pretty comfortable, ha!

yareckon commented 7 years ago

Dear Jeff, thanks for the all the great tools, just bought your ansible book today!

I for one would be glad if you switched to debian. I'm a bit biased because that's what I run everywhere, but I don't think your users will care too much one way or the other.

The real solution is to kind of let folks bring their own base box... but only have the one supported box that you have the most fun supporting. Maybe a one time effort to document how you build your base boxes?

I think the reason most of the virtual appliances ecosystems are based on Ubuntu is the awareness of the 6 year LTS promise, which singlehandedly gave ubuntu primacy in the server market (I imagine at some large behind the scenes personel costs backporting security fixes). When that came out, Debian had only a 2 year or so promise, and no support for old stable. Debian has recently moved towards supporting one or two old versions as well, which makes this less of an issue.

In terms of speed at getting security updates fixed, I generally see Debian stable getting fixes within a day, Ubuntu LTS within 3 days, and Debian old stable getting them in 2-4 days. Not as big of an issue with a dev box, but I think it shows the respective focus of the projects.

mlncn commented 7 years ago

A vote for Debian by default— for all the reasons you cited, because it's setting new people starting out (everyone who is going to just accept the default as best) on what i think is the better path, and because if people go wild installing stuff on the VM, and then want to switch from Debian to Ubuntu, they'll be more likely to be able to, whereas going in the other direction they'll likely be stuck with PPAs. And of course because we (Agaric) have personally been using Debian VMs for a long time locally and Debian on all our servers.

Of course, once you start seeing me file the weird issues that apparently only happen to me, you'll probably want to make any decisions to keep me from switching to drupal-vm for all our client and Drutopia projects.

geerlingguy commented 7 years ago

I pushed up a PR just to see if the baseline tests will at least work on Debian 8; I know I had tested it a few months back, but there's always the chance of a little configuration drift.

We'd also need to make sure to add/enable dotdeb (I have a role for it) and other things to make sure we get the right versions of everything (like we do for Ubuntu).

If at the end we don't actually set Debian as the default, at least we'll be supporting the three main server OSes I've ever seen in the wild. Plus getting Drupal VM up and running on Raspbian becomes trivially easy too—DrupalVMPie, mmm!

geerlingguy commented 7 years ago

Note to anyone following this issue: things are by and large running fine on Debian. I just need to get a few more roles set up with automated Debian tests before I'd feel confident making the final switch.

Also, I've now uploaded the latest version of each of my base OS boxes to HashiCorp's Vault, so they're paying the bandwidth costs now (instead of me) for the majority of the traffic. I still am delivering about 200-400 GB of data/month (I was up to about 3.5 TB/month for box delivery before offloading new releases!), so I'll keep the Files server up and running for at least the next year or so, to see if traffic dies off eventually.

mlncn commented 7 years ago

Fantastic! We've been trying out the 1177-debian branch— so far so good, since the PHP support!

geerlingguy commented 7 years ago

@mlncn - Note that the 1177-debian branch has been merged to master already—if you use master, just override the vagrant_box and set it to geerlingguy/debian8.

geerlingguy commented 7 years ago

Thinking further on this, I'm slanting towards sticking with Ubuntu as the default for most of the reasons @thom8 brings up (in terms of general popularity). Though by that reasoning I should also be using Wordpress instead of Drupal (zing!)...

I kid, I kid. But basically, now that we have test coverage, I think offering the option of Debian 8 at least is a major improvement (before this issue, a few things broke on Debian 8, but no longer!).

So, closing this as 'won't fix', but 'will encourage the use of Debian 8'.

thom8 commented 7 years ago

Personally, I'd opt for the "leanest" option but when the level of users is variable I'd suggest the one with the most external support.

https://askubuntu.com/ could be another reason Ubuntu has taken off..,