GCE does have a huge benefit in having been built several years after AWS organically grew into a set of services that now in retrospect seem to have obvious defaults. From my very limited experience with GCE, it seems to have its own oddities that make managing it from an organizational level weirdly difficult, but I can't argue about the details in a well-informed manner. I will say that while the lack of dead-stupid cross-region VPC peering is annoying in AWS, having talked to some of their engineers about the issue, it seems that their reluctance to make global features dead-simple stems from hard experience of their own in the risks of global interdependencies and the failure conditions that can result.
But to your specific details, I'm curious about the "private traffic stays private" and "no NATs required". So does GCE provide implicit NAT, or does it just work how AWS public subnets work (ie, give it an IP and it's on the Internet, don't give it one and it isn't)?
>>> having talked to some of their engineers about the issue, it seems that their reluctance to make global features dead-simple stems from hard experience of their own in the risks of global interdependencies and the failure conditions that can result.
Poor excuses. "It's too hard".
It is very hard to make global services. Google was the first to beat the technology long before every one else. Most of their cloud services are worldwide. They proved that it's possible.
Having spent much time in AWS. It seems the technology that runs it is exclusively mono region. All regions are segregated and independent, like a full AWS clone. There are no service that span regions.
AWS is simply not global. IMO it hints that AWS does not have the technology.
1) Mono-region is a feature not a bug. Regulatory requirements, citizenship requirements, the ability to not have a single global point of failure, etc. are all huge benefits to the regional breakdown as it stands today. Nothing prevents you from deploying multi-region.
2) IAM is effectively global. Route53 is effectively global. AWS 'has the technology', they've just chosen a different engineering stance than Google, and are very up front about that.
1) Locality requirements should be fulfilled by attaching or limiting workloads to regions. Not by having the entire infrastructure and everything only ever exist in a single place (which breaks numerous legal requirements by the way).
2) ELB/ALB are not. S3 is not. AMI only exist in a single region. EBS cannot be moved, ever. Billing is not really.
AWS is heavily region centric. For instance, it is impossible to list all instances attached to your account.
In command line tools and the web UI, it asks you a region at startup, and you will only see instances in that region.
The real question is: is there enough market demand for global services? I know on paper, yeah, there is, but how many can pay for it?
And even if they're big enough to pay for it, how many are willing to put their core services (if you're offering global services, they're most likely your core services) in the same basket... controlled by a huge company who might be one of your competitors? I guess many of the companies building a service on the global scale would want to have that expertise in-house.
>>> The real question is: is there enough market demand for global services? I know on paper, yeah, there is, but how many can pay for it?
Yes. The world is full of international companies and services that span across the globe. They have money to pay whatever they want.
The issue, so far, has only been the tech.
Let's say one makes a random app coupled with a database, say mysql and php => mysql doesn't work across datacenters, It's not going worldwide. End of story.
There are very few systems than can span across datacenters.
Unless a project was explicitly architectured for it, it probably can't because of it's technical choices.
Google is the evolution. All the tech is worldwide. You develop as usual and it comes out of the box.
Ok... but what about lock-in? I use Google's magical pixie dust, great. Then at some point I want to get out. With MySQL I can do that. I can run it on 1 machine, I can cluster it to a reasonably large scale.
Can I run Google's magic machine on my own server(s)?
It's not a "lock in", not more than deciding to use MySQL or any other product. Please call that a design choice or a partnership.
You want to get out, you download your database data and move back to AWS pixie dust or self-hosted pixie dust.
Most services are pretty standard, it's not magic. There are comparable equivalents. The most advanced capabilities will only come with commercial products that are a million dollars (EMC, VmWare, F5, Akamai).
P.S. MySQL got took over by Oracle. Nothing is forever ;)
But to your specific details, I'm curious about the "private traffic stays private" and "no NATs required". So does GCE provide implicit NAT, or does it just work how AWS public subnets work (ie, give it an IP and it's on the Internet, don't give it one and it isn't)?