Hacker News new | ask | show | jobs
by potency 1974 days ago
Are there any good alternatives to the big three? I'm looking to build out a platform with as little dependence on Google/MSFT/Amazon as possible.
14 comments

Not really. The issue is that these cloud platforms aren't just "give me virtual machines" anymore. If you're just looking for VMs, there are loads of alternatives. The problem is that people are looking for so many value add services, not just VMs.

At some point, you might say, "I'd really like to put things into some sort of queue-like system." With AWS, you have SQS, you have hosted Kafka. With GCP you have their pub-sub. I'm sure Azure has something similar. With all three of them, you can get Confluent to run Kafka for you.

At some point, you might say, "we need an analytical system to run reports off." With AWS you might be able to use Athena or their hosted Spark stuff. With Google Cloud, there's BigQuery. Azure has data warehousing stuff. Third parties will often have their systems available on those platforms.

At some point, maybe you want some computer vision, or ML on text, or Redis/Memcached cluster for caching, or Functions as a Service, or global load balancing, or container system, etc.

What Amazon realized is that they could provide more than just machines and something different from "you pay us to manage the boxes, but they're still your boxes" that places like Rackspace might do. They realized that they could create an ecosystem of value-add services that would become self-reinforcing. S3 wasn't about Amazon installing and managing MogileFS on a few boxes for you; it was about making it so that you didn't need to care about the boxes at all. Athena isn't about getting them to install Presto on some boxes for you; it's about not having to care about the boxes.

And it becomes self-reinforcing. As people use AWS for these value-add services, third parties want to build on AWS to get access to you. Which means that you want to build on AWS to get access to those third parties. Likewise, the more you use AWS's value-add services, the more you become dependent on them.

Many providers offer an S3 competitor. Few go much beyond that and S3 is less interesting if it's only about storing and serving files. S3 becomes so interesting on AWS because it can feed so many things. It can become a target for Kinesis or a source for Athena or a storage engine for Aurora.

Digital Ocean wants to go in this direction, but it isn't easy and their prices are rising to be similar. For example, DO offers managed databases. However, their pricing pretty much mirrors Google's. 8GB RAM high-availability is $200 on DO and $197.25 on Google. DO offers "4 vCPU" while Google only includes 2 vCPU, but GCP's vCPUs are dedicated while DO's are shared so it's probably a valid comparison. Even DO's compute VMs are similarly priced to Google's sustained-use pricing ($49.34 for Google's 2 vCPU 8GB N2D vs $60 for DO's 2 vCPU 8GB General Purpose Droplet). Now, DO's come with 4TB of transfer - which is an important distinction. However, when we look at their new App Platform, they've stopped including a lot of transfer for free and they're charging $0.10/GB for outbound transfer after the limit.

Oracle is looking to become a cloud competitor, but they're behind. They include 10TB of outbound transfer for free (which is nice) and they only charge $0.85/GB after that. However, I think there's a decent amount of distrust around Oracle in general and their offerings are a lot more limited than AWS/GCP/Azure.

The problem is that it takes years and a lot of engineers and capital to build up the breadth of services that people have come to use. If you're a startup, do you want to be managing your database, backup plan, scaling plan, etc.? You'd likely rather pay AWS/GCP/Azure more money and concentrate on your product. Do you want to install and manage Kafka and its dependencies like Zookeeper? Do you want to run your own load balancers? Your own caching cluster? Your own ML system? Your own video encoding system?

So, it really depends on what you're looking for. The sales pitch for AWS/GCP/Azure is that you won't be blocked from "anything" that might be useful for your startup. If you go with DO and realize that you need a high-throughput queue system, do you start evaluating RabbitMQ and Kafka, figure out which your engineers feel comfortable maintaining, figure out how you'll back it up, maintain uptime, etc.? Or would you just rather Confluent give you a managed system? Or use AWS's SQS or GCP's PubSub?

If you're just looking for VMs, a lot of places are offering that. However, often times they look cheaper until you start looking for dedicated CPUs. If you're getting 8 vCPU, but they're hugely overselling the boxes, you aren't really getting 8 vCPUs.

Transfer is the one area where the big three cloud providers seem to really overcharge.

The problem is that once Amazon saw the margins they were getting from AWS, they poured money into it to keep adding value that others (without as much capital) wouldn't be able to keep up with. Microsoft and Google have the kind of capital to pour in to compete in the area, but a place like Hetzner, OVH, DigitalOcean, Rackspace, etc. generally don't have the kind of capital to hire the engineers to create and manage the myriad of services that Amazon started churning out. When AWS was just EC2 and S3, there were loads of options that were roughly equivalent. Once Amazon started pouring money into AWS, it just became really hard for competitors without Amazon's huge scale to keep up. Google and Microsoft could buy their way in and I'm guessing Oracle will keep investing in their platform. However, it's hard for a new company to get involved. DigitalOcean has raised almost half a billion and I think they're a great company, but their offering is very limited by comparison.

So, there aren't really competitors featuring the kind of breadth of services. Oracle is probably the closest and DigitalOcean has some nice offerings, but it takes a lot of time and money to really become a competitor - and an amount of money that is hard to raise given that you have three incredibly well-funded and incredibly competent companies looking to make sure you don't enter the market.

I've been asking this question for a long time, and I can't arrive at a solution in the middle that makes sense anymore.

If we pull the ripcord on AWS, we are going 100% on-prem with our own servers. Bare metal is just watered down EC2 as far as we are concerned. You still get left holding the bag on a plethora of management duties, so you might as well just take ownership of the whole stack at that point. There are actual benefits to keeping your own hardware in a datacenter that you can physically access. There are also a shitload of downsides that need to be reviewed. Once you accept and adjust to this fate, things can move a lot more smoothly than the cloud salespeople would like to admit.

Ultimately, you are probably stuck in the cloud until you can hit that point of being able to dedicate 2+ full-time engineers to the task of managing your infrastructure. Multiple hats for developers works for cloud, but not so much for on-prem. Having to drive to the datacenter should be something that only a few people in your organization need to worry about. You could consider outsourcing this specific aspect for a "pseudo-cloud" experience, but that is more complicated and starts to defeat the original purpose.

> Ultimately, you are probably stuck in the cloud until you can hit that point of being able to dedicate 2+ full-time engineers to the task of managing your infrastructure

This is the exact reason people stay on AWS. You need to be big and decently profitable to afford 2+ full time people managing the server hardware purchases, maintenance, updates - same with network.

These people need to be 24/7 on-call unless you can somehow make your system so fault-tolerant, that it can handle up to 16 hours of downtime without intervention (breaks the second the engineer clocks out, needs to hold its own until they clock back in).

Even the two people are a stretch when you need to be 24/7, that's at least 3 shifts and even then you're one flu away from being short-staffed again.

So now we're at a point where you need to make enough profit to pay 4 competent server engineer's salaries just to get out of AWS. Add to that the one-time costs of buying your own servers, setting them up and colocation costs.

That's a lot.

> Ultimately, you are probably stuck in the cloud until you can hit that point of being able to dedicate 2+ full-time engineers to the task of managing your infrastructure.

Um, exactly?

People think about cloud as outsourcing the hardware when you are actually outsourcing the system administration.

So, when you have generated those system administrators in house (you can't hire them anymore because system administration as a career path is dead due to the cloud vendors) because they are troubleshooting the "cloud" so much, it's time to pull some things back to on-prem.

The other time is when you have one particular characteristic (network, storage, etc.) that the cloud providers are killing you on and you will save a whopping amount of money by changing. However, by that time, you presumably are successful enough that you have generated those system administrators anyway.

If you just need Linux VM and a couple of other basic capabilities, DigitalOcean.
Any recommendations for a DO-likd experience that supports windows? As much as I'd like to use DO, it's a show stopper for people who want the simplicity of DO but have a requirement on windows (hello, MSVC)
Install Wine. ;-)
Do they or linode have a managed database product?
Yes, why not look on their website? They also have S3-compatible storage and a managed Kubernetes product. https://www.digitalocean.com/products/managed-databases/
Because there’s a lot of experienced folks in here that can give better info than a marketing website. Does it work well enough in comparison is another angle.
Oracle Cloud if you want to relive the nineties.
Oracle Cloud has live migration (still not available on EC2, afaik) and had cloud console before AWS.
DigitalOcean, but they don't offer anywhere near as many services as the big 3.
Depends on what you need. They offer a giant bag of services and abilities, so it really comes down to which subset of that you are looking for.
The most important thing is to avoid proprietary services and uses OpenSource alternatives instead. Like, avoid AWS Aurora and use PostgreSQL instead.

That will make it almost trivial to move from one provider to another.

I work for a large bank and they basically built they own private cloud
We use to call that a data center.
Data centers didn't used to have API-controlled provisioning of virtualized everything right down to the network level.

Of course that's changing, but pretending cloud is just "someone else's data center" or whatever is a very off-base take.

If you need a lot of features, essentially: no.
Scaleway maybe ? They have the basic building blocks (compute, storage, networking, db, Kubernetes master).
Vultr.

They even offer bare metal, dedicated servers without any virtualization.

Digital Ocean is great, but my needs are fairly limited.
Ovh is the only one I can think of
IBM, if you're feeling lucky