If you're anything like me, part of your job as a senior software developer is related to finding servers, setting up applications, doing (other) DevOps work, and more. Having some experience in this area, I decided to outline the best hosting providers and servers I know of. I don't earn any commission or salary for any of these offers, so you should be confident that everything mentioned below is written (simply) in order to be helpful.
Best cloud server
Unless you have very strict requirements for your application, this is the type of server you want to get. The problem is that there are several hosting providers which offer cloud servers, VPS servers, containers and more. Based on my experience, the best hosting provider for cloud servers is Hetzner - i.e. http://hetzner.cloud. You can't go wrong with them, as the servers have very competitive prices, the features they offer are outstanding, and the support is pretty awesome. I mean, at one point I needed to do some crazy change to one of my servers that I wasn't sure I can do with a cloud server, and they managed to respond in minutes. A lot of providers simply don't offer that, even if their prices are higher.
Talking about the offering in more detail, Hetzner's servers have excellent performance (according to my experience, and I do a lot of monitoring work), NVMe SSDs, and they offer additional features such as automated backups, snapshots, floating IP's and more. The only issue that may be of concern is that the servers are located in Germany and Finland - which is great because Europe has strict data and privacy regulations, but might be of concern if most of your visitors are from the USA, for example (read the other offers below in case that is true).
These are the latest offers:
|CX11||1 vCPU||2GB RAM||20GB space||20TB Bandwidth||€2.49/month|
|CX21||2 vCPU||4GB RAM||40GB space||20TB Bandwidth||€4.90/month|
|CX31||2 vCPU||8GB RAM||80GB space||20TB Bandwidth||€8.90/month|
|CX41||4 vCPU||16GB RAM||160GB space||20TB Bandwidth||€15.90/month|
|CX51||8 vCPU||32GB RAM||240GB space||20TB Bandwidth||€29.90/month|
Can you believe these offers and prices? I mean, other servers with NVMe SSDs, support and so much bandwidth (traffic) are much more expensive. Anyway, the official website is http://hetzner.cloud, so you can go there and sign up.
US hosting with storage
The cloud servers mentioned above are great, but what if you need to have a server in the USA? In my opinion, the best option here is to use one of the servers offered by DigitalOcean. As a bonus (or, if that's a requirement), you get some of their other offerings, like their awesome object storage called Spaces ($0.02 per GB). You can get a DigitalOcean server in Toronto, New York, San Francisco, London, Frankfurt, Amsterdam, Singapore and other locations - depending on what works best for you.
DigitalOcean is very reliable, has an excellent API, CLI, firewall, backups and shapshots; but it also has a very nice dashboard with a lot of information - allowing you to monitor how your server performs. Here are a couple of their offers:
|1GB||1 vCPU||1GB RAM||25GB space||1TB Bandwidth||$5/month|
|2GB||1 vCPU||2GB RAM||50GB space||2TB Bandwidth||$10/month|
|4GB||2 vCPU||4GB RAM||80GB space||4TB Bandwidth||$20/month|
|16GB||6 vCPU||16GB RAM||320GB space||6TB Bandwidth||$80/month|
|192GB||32 vCPU||192GB RAM||3840GB space||12TB Bandwidth||$960/month|
The official website is https://www.digitalocean.com.
The servers presented above were cloud (virtual) servers, and the hosting provider runs several of them on one machine. In practice, this means that you are sharing resources with other people. Additionally, it's possible that you need even more RAM or storage space than what is offered by hosting providers of cloud servers. In those cases, a dedicated server is a perfect choice.
Personally, I believe the best offers for dedicated servers come from Hetzner. Their pricing is perfect (a small setup fee + monthly payments) and very affordable. Similarly to the cloud servers offered by Hetzner, you also get an IP, support, a lot of bandwidth, root access to your server, and more.
Hetzner's dedicated servers are grouped in several lines: EX (best price), AX (AMD processors), PX (server hardware with ECC RAM) and SX (storage). In the following table, you can see a couple of servers from their range:
|EX41S-SSD||Intel® Core i7-6700||64 GB DDR4 RAM||2 x 240 GB SSD||30TB Bandwidth||€34/month|
|EX41S||Intel® Core i7-6700||64 GB DDR4 RAM||2 x 2 TB HDD||30TB Bandwidth||€34/month|
|PX61-SSD||Intel® Xeon E3-1275||64 GB DDR4 ECC RAM||2 x 480 GB SSD||30TB Bandwidth||€54/month|
|SX61||Intel® Core i7-3770||32 GB DDR3||4 x 6 TB HDD||30TB Bandwidth||€69/month|
These servers can be ordered from https://www.hetzner.com. There are a lot of other servers available, so make sure you select the one that works best for you.
Amazon Web Services
It would be strange to discuss servers (or any type of hosting) without mentioning Amazon Web Services (AWS). Personally, I'm not a big fan of AWS, because their pricing is a lot higher than the other offers I mentioned above. Similarly, I believe a lot of software development teams just sign up for AWS without understanding it's advantages and disadvantages. If you're building an app that runs on a single server (a large number of projects running today), just go with the servers I mentioned above (honestly, even if you need multiple servers, it's pretty easy to setup most distributed apps or databases these days, by simply following their documentation). Just make sure you install a firewall on your server (software), and use the firewall control panel offered by the hosting provider (for example, Hetzner has one, enabling you to limit what traffic can reach your servers). You can still call other APIs offered by other businesses (for emails, monitoring, machine learning, whatever). There are a lot of advantages to keeping your website simple (say, where the database runs on the same server as your app). One of them, for example, is that the hosting environment will be (similar to) the environment that your developers are using - trust me, this saves a lot of time.
On the other hand, if you're a big team with a (virtually) unlimited budget, and you're working on some project with high uptime or data privacy requirements, then (by all means) go with Amazon Web Services.