- "Infinitely scalable" services like Bigtable and Cloud Pub/Sub have helped us scale extremely quickly to support large clients.
- The durability of Cloud Pub/Sub was particularly important early on as it served as a fail safe when our consumers would go down
- Aggressive discounts for committed use. For our particular workload we've calculated AWS could be as much as 10% more expensive
- Dashboard developer experience and UX is more approachable than AWS
After trying out AWS and GCP, we settled on GCP for a few reasons in addition to what benthehenten outlined.
- Development experience is great, docs are on point.
- BigQuery is fantastic. It let me seamlessly hand off an interface to a full time employee that had experience with SQL without the overhead of them having to learn a whole lot more.
- Custom VM's provide us with the flexibility to get exactly what we need to run our workloads, no more, no less.
- TPU's though not generally available at the time, were something we knew we'd want to take advantage of in the future. Because we're a TensorFlow shop, it just made sense.
It seems to me that you should start with your requirements, then figure out which provider best meets your needs.
I think the pricing model of gcp makes a lot of sense. I'm also under the impression that gcp has faster networking and storage, but haven't quantified this.
AWS has the most offerings, and it seems like their momentum will be difficult to catch from a development standpoint. Of the big 3, AWS is likely the one with the least internal use, which isn't a bad thing - they build features for costumers more than releasing features they build for themselves.
Azure is in a different market but provides a very good Platform for the Microsoft ecosystem and it's impressively coordinated.
We use all 3, as well as on premise and private cloud. Each is better for different things. Zerotier is your friend for multi-cloud liberty.
Deploying a Python Website to Azure with Docker
http://www.jamessturtevant.com/posts/Deploying-Python-Websit...
"Azure Web Apps for Linux using python"
Hashicorp's terraform is also deserving of some contribution to this space.
Softether is the last necessity in my cloud-agnostic toolkit.
AWS has gotten to the service and infrastructure footprint it has today by death marching mediocre talent to ship untested and brittle things. This is true all the way down into the physical infrastructure, which often breaks and causes regional havoc. Great examples from the last 6 months include the 40 minute outage in US-WEST-2 in September, or the several hour event in US-EAST-1 during the East Coast wind storms. Bubble gum and baling wire.
They're trying to stabilize things, but leadership and sales are often committing to large spend customers and financing new features with technical debt (when current technical debt is not being serviced). Those at the top are not really concerned with running a solid or innovative platform as much as just pure growth and revenue.
Were other non-Amazon companies impacted directly by the storms? I have no idea where Microsoft and Google cloud server farms live, but it's a bit of a stretch to say that a major weather event causing downtime is due to "bubble gum and bailing wire". You could be right - I don't know anything about their setup - but "throwaway985325" isn't exactly a trustworthy source.
I don't know if other cloud providers were impacted, but I'm willing to bet they were not impacted intermittently for 6 hours.
Perhaps your corner of AWS isn't as nice as the one I worked in but to generalize that to AWS management "death marching mediocre talent to ship untested and brittle things" is a very inaccurate assessment of AWS and its customers' perceptions of their products.
Your requirements and architecture are going to guide this decision pretty heavily. Do you run on VM's or use Kubernetes? If you use Kubernetes how well abstracted from the infrastructure cloud are you? Well abstracted... any of them will suffice (AWS doesn't have a hosted Kubernetes option yet though... coming this year supposedly).
I'd look more for non-functional requirements: What do the skills in your team look like, do you have a relationship with one of the cloud providers, can you get the quotas/limits you need in the regions you need, what cost are they, what are other people using in the same field (makes it easier to find help), can you get free credits somewhere, how worried are you about vendor lock-in[1] etc.
None of the big ones will go away anytime soon.
[1] https://www.theverge.com/2018/3/21/17146308/microsoft-wunder...
The other truth is that once you're on a platform, as long as you're pretty happy, you're not really going to switch. It's just not the most important thing for your business usually. GCE sure looks like it has some neat stuff, but I'd have to be crazy to derail the other important tech work we have for an infrastructure change like that.
As an example, the AWS Lambda ecosystem is much more mature than Google Cloud Functions with a wider language support, Lambda on Edge, API Gateway, etc...
With that being said, my go-to cloud is Google. They support all of the "big" features I need and is priced more fairly - especially for growing businesses. What I really like is how their reservation system works, instead of reserving entire instances, you can reserve cores/ram for a period of 1-3 years. Many business workloads its impossible to project compute needs 1-3 years out, with Google you don't have to because you can apply the cores/ram you reserve in any configuration you want (including GKE which is really nice).
It's true that my Google account is a Google Apps (an old free one :D) one, but I never entered a VAT number.
EDIT: seeing neighbour's comment, when I say "years" that's probably 2 years :)
It was cheaper, the VMs performed better, the GUI was better (we heavily used Terraform, but as we just started on GCP, we still used the cloud console quite heavily, to doublecheck, etc)
But! there's surely a bit of bias involved, as we did this as greenfield migration project where we did everything the correct[tm] way with instance groups for scaling etc, whereas the old AWS setup was organically grown. Neither setups had auto-scaling, but on GCP it was really low-friction to scale manually.
[0]: pro: live migrations work / contra: there's NTP clock skew when migrating, this alerted us a few times when we noticed
[1]: terraform and some other tooling didn't yet support 100% of stuff, so we had to file a few bugs/PRs (iirc)
I just registered a wildcard SSL certificate using the DO plugin from LetsEncrypt and it worked like a charm.
If you want predefined images, I've found using Docker Hub to be a better starting point even if you don't use Docker.
Aside from that they're a great host.
In terms of stability AWS is probably the winner. GCE has had a multi-region failure within the last ~2 years, AWS hasn’t seen a multi-region failure in the last decade.
For backups, I use Backblaze B2 and love it too.
To understand, what services got pulled? we have a very long deprecation policy and I can't think of anything that has been removed in the last couple of years.
Just like Facebook? No, slightly worse.
GCP is not an option for me. Please anyone who has used aws elastic beanstalk share your experience.