Split from a thread about Serverless architectures.
Serverless/cloud from Wikipedia:
Serverless computing is a cloud computing execution model in which the cloud provider runs the server, and dynamically manages the allocation of machine resources. Pricing is based on the actual amount of resources consumed by an application, rather than on pre-purchased units of capacity.
Personally my experience with hosting in general is this:
- Standard hosting - where you pay someone to host your domain on their server (usually hosting companies that use software like cPanel to split up a server for their customers). These do not come with root access and generally you FTP files to the server. Downsides: you are sharing a server so if there’s a problem with someone else’s site, or they are using a lot of resources it will impact your site/app too.
- Virtual servers - where hosting companies essentially give you a shared part of a server, you get root access, but share similar problems to shared hosting although it is a little bit better.
- Dedicated servers - more expensive than the above but a million times better, since you control everything; you can host many different apps using different languages/databases/tech and across numerous domains etc.
I personally feel that when you start spending $100 or more on hosting you should seriously consider dedicated servers as they’ll give you way more bang and flexibility for your buck (before cloud hosting became a thing they were the most expensive option, now they offer you the most value beyond a certain point). The downside is that you will need to learn how to administer a server but there are lots of guides around that can help with this, and some companies even offer managed servers where they do most of the management for you. If you get a dedicated server, get one with at last two mirrored drives in a Raid set up and with some sort of off-server backup and automate your backups (as again these are something you are responsible for yourself).
What is beyond dedicated servers?
Co-location, and after that, your own datacenter.
Co-location is where you purchase your own server and rent rack-space from a datacenter, or a datacenter provider (who buys space in wholesale and sells you a part of it). Plus side is you own the equipment, but downsides are if any of your equipment fails you have to replace the parts yourself and if you’re not local to the datacenter, you have to pay their staff to replace them for you.
I’d like to have my own datacenter one day!!
Renting a dedicated server is a great option imo - you can easily decommission a server and move to a newer better spec’d one at around the same price every few years and it’s far less hassle than buying your own equipment. Buying your own and co-locating is good when you have lots of servers and it makes more financial sense to buy rather than rent, however, some may prefer to go serverless at this scale.