Moving servers soon
I've had a bit of a dustup with our hosting support, so we'll be having downtime in a month or two to move between providers (in addition to the blinks we had Sunday evening). I'll provide further update as we get close to that.
My opinion was that if I'm paying $180/mo for a $80/mo-grade hardware setup, the support team had better be on-point and engage their brains when I file support tickets re: upgrading the platform once every two years since that's 100% of the extra value to me: not spending my weekends technically managing our server.
Their position was... not that.
So I'll be dusting off my Linux skills and setting aside 2-3 weekends to move to a cheaper self-service option since that's what I'm basically doing anyway, and I'd rather get angry at a terminal window than a level-1 tech taking the piss for the hundredth time.
Who you moving it to?
Front runner is Digital Ocean. I feel like I’m giving up on managed hosting, and DO is the consensus for self-managed value.
Why not AWS?
Porque no los dos?
My second-hand understanding is that it's a higher learning curve and best suited to narrower applications.
If you want to have a sit down and have a look some time, let me know. I've been digging into it a lot on my own, lately.
We've got quite a few AWS servers and they don't strike me as any more difficult than a "normal" server.
I use digital ocean. It's pretty nice and easy. Don't have much experience with AWS
heroku plug fwiw. good luck with the search.
I'm going to tentatively agree with DO over AWS. You aren't going to be using the tooling/scaling of AWS, so the math rarely works out in favor of it. Plenty of Linux friends around for help though heroku may also work out decently, depends on traffic and performance characteristics.
What do you mean? If there is an issue with Heroku, I need to know about it.
Oh I'm just referring to cost, same as AWS. I'm not aware of any issue with Heroku in particular and have generally enjoyed using the platform. It might be a great fit here. They just aren't giving you the platform for free. We should get on a conference call, draft some reports, see how they all synergize.
Let's get a deck up by end of day.
I'm not sure that I'm ready to drink the Kool-aid yet.
Oh hey, I can contribute to this discussion.
Digital Ocean is a clear winner to me. The costs are far clearer (and, for the most part, lower) than AWS, the setup 250 times easier, and the tooling is super simple. I run a few servers through them. First: separate your DB from the the application server. Take your DB private so that only your application server can talk to it. Then set your application up on a droplet. Should be super simple.
Then set both your DB and your app server to backups and take frequent snapshots. If something fails, you can literally just click "create server from backup/snapshot" and you're back online with minimal (if any) data loss.
If you need load balancers, you can setup your app server on the smallest server behind a load balancer (DO has one-click LB setups for $20/mo if you don't want to deal with it), setup rules to scale when needed, and connect your smaller app nodes to the same shared block storage to store any image uploads and things you have.
Honestly, without DO, every shop would need a full devops team to constantly manage this kind of stuff on AWS. AWS is more powerful, but for 99.99% of use cases, you don't need the majority of its features.
BONUS: DO also has a slew of EXCELLENT devops tutorials: https://www.digitalocean.com/community/tutorials -- they apply even if you're not on their platform, FYI.
Feel free to email me if you have Q's or want to check out my setup.
You, sir, are a gentleman and a scholar. Thank you.
One big wrinkle is that we have a file serving system that is a certifiable clusterfuck. Vanilla doesn't proxy files, so uploads need to be in a web-served directory. It has CDN support of course, but we haven't been using it and I'm a bit reticent to do the necessary work to migrate because we've also been using Icrontic as an impromptu SFTP server since the start of time so there are web files scattered all over that aren't part of the forum upload system. And, frankly, I don't have any inclination to change that fact regardless of the benefits of a CDN. At our scale, I just can't bring myself to care.
So, if I did want a "dumb" app server (no data storage / uploads) but also didn't want to use a CDN... what's available to me as a strategy? Assume I'm using the separate DB server model that @MethoD mentioned. Is there a straightforward way to use the DB server for file storage too? Or do I make a third server for that? Or...?
Further on the "which hosting provider" topic: I think the critical component of that discussion is "what's your tech stack look like?" when recommending a provider.
When I ask other PHP/MySQL devs, they always say Digital Ocean with conviction. I've heard Heroku is a no-brainer for Rails stacks, and Python stack & large enterprise devs seem to have an affinity for AWS. I'm sure anyone can use any of them, but you can usually tell what their bread & butter application is pretty quickly from the "feel" of it, and that's gonna be a big deal to me as an amateur server admin who desperately wants to minimize my time commitment. Every bit of friction is going to frustrate the hell out of me.
There's a bit of humor when I have to Google your answer and the first thing that I find is a Digital Ocean tutorial, hehe.
Even better. Taking generic NFS information and translating it to a specific platform is the hard part, and it looks like someone did it for you already
Immediately raises two questions: Is this high enough performance for sharing forum image attachments that get high views, and does this system work well for multiple app servers writing files? Of course there's a limit on everything, but I'd like the system to withstand a traffic drubbin' if need be.
Heroku is tough to justify, expense-wise, unless you're a startup looking to set your Rails app up quickly. IMO, it's far easier and cheaper to manage a PHP DO box than trying to do it on Rails (apps that are constantly-running processes like Ruby/Node apps are, IMO, best fit for Heroku).
As for the FS, I believe you can do what you're describing with DO Spaces or Volumes (I believe these are just NFS mounts). I haven't done that bit, but I'm guessing it's fairly simple like most other DO things. DO tries to make it so your droplet is customizable. I think if you just create a droplet in a datacenter location that allows volumes, you can add space to it as you need:
One thing that can't hurt is to email the DO support with your needs and ask if that's something that can easily be done with DO. They'll be able to let you know.
The biggest thing to consider with NFS is the bandwidth between points. Any modern hardware will be able to handle some pretty heavy traffic over NFS, especially if it's doing just that (like a dedicated dumb file server). Unless you're getting super-crazy and doing massive segmentation over tens or hundreds of exports your only limit is going to be the inter-droplet bandwidth.
I like the look of Spaces, but I'm keen to use the Toronto datacenter which lacks that, so Volumes it is.
I appreciate the customization option since even 100 GB is crazy overkill for us. Our entire server image is under 35 GB.
Dumb question, but is this whole process the reason the SSL cert is AWOL right now?
Seconded re: SSL cert.
And if 100GB is crazy overkill, then you may not even need to bother with a DO volume. You can almost certainly get by with the default droplet sizes: https://blog.digitalocean.com/new-droplet-plans/
Yes. I spite-closed that ticket rather than continue talking to shitlord tech support.