I've almost exclusively been working with GCP for years, with very few occasions when I've created some resources in AWS (I'm managing infra using terraform).
When looking a job now, it's very common that I'm rejected before TI because I wasn't working with AWS. Is it really so fundamentally different from GCP or any other cloud provider for that matter? I have a wild feeling that 80-90% of the products all cloud providers offer are same toys but with different names and integrations mechanisms. There are surely some quirks that are exclusive for a specific cloud provider, but is it really that many to stifle your performance?
A recruiter won't know the difference unless they really ask, and I seriously doubt they will.
If an engineer or engineering manager asks, ask them what problem they are trying to solve using AWS and then tell them how to solve it. If your answer is good enough, you won't have any problems.
Some things I noticed as I have done work on AWS, Azure and Google in terms of IAM:
In terms of networking:Dead Comment
Just one note, since there's a design decision Google and AWS made differently that feels nice but makes availability more precarious:
> "Google's VPC (i.e network) is global across all regions which is nice for data locality as you can use the same VPC and put subnets across regions."
It's also not uncommon seeing your entire global footprint go down when there's a network plane issue.
AWS — for the longest time — was fanatical about keeping services uncoupled across regions, leading to far fewer "global" outages.
Sadly, many customers complained, wanting services to be cross region, instead of having to replicate environments across regions. Fifteen years in, AWS is accommodating, allowing you to build services that span a couple regions and go down if either region is down.
If uptime is critical to you, in AWS leverage at least 3 AZs in each of at least 2 regions, and be sure you're using region-only services or a cross-region service that's really single region with a consistency scheme. You'll stay online through most regional issues.
Also note that the three define "region" quite differently. The AWS definition generally includes a variety of availability and resilience constraints, such as at least 2 AZs with enough physical separation to survive local physical outages. Looking closely comparing across them, you'll find AWS's resilience story is more stringent, the other two are somewhat more oriented to putting a pin on the map and call things regions that may be more like single POPs (points of presence).
All that said, it's becoming "less true" in both directions, as large customers complain when any two CSPs don't work similarly. The "voice of the customer" is asking for feature parity rather than exploiting the differentiation.
From our point of view, they're still differentiated enough a firm should consider using each for what it's best at, say AWS for lego blocks, Azure for business integration, and Google for scale-out analytics feeding ML/AI. Again, each is trying to shore up what the others already have in their DNA, but it's harder to copy something when it hasn't been your in-house bread and butter or you didn't invent it.
Deleted Comment
bzt
I hope the DOJ investigates Azure next, because I can't believe such a garbage platform would get to 2nd place without an abuse of Microsoft's monopoly power. Specifically, using their office product monopoly to create a cloud monopoly by signing 365 discounts with customers that require all cloud services used by those customers to be on Azure.
Azure: C#
Google Cloud: TypeScript
---
GCP is by far the easiest to use, IMO. AWS is the most mature and the most "powerful" but also the most complicated. The core pieces are largely similar at a 1000 foot level, but there are a lot of differences when you look closely at the capabilities of the congruent pieces and how they are operated.
One example that really stands out for me is how AWS handles serverless containers (ECS Fargate) versus Google Cloud Run. Both nominally fit the same needs (not really because Fargate doesn't scale to 0), but because of AWS's more "legacy" platform, working with ECS Fargate is slower and more complicated (IMO) than Google Cloud Run which is literally "throw a container here and run it". AWS Copilot CLI is a way to mitigate this, but because it still fundamentally deploys CloudFormation, it always feels clunky compared to GCP.
Another example is how GCP seemingly has HTTP built-in to many of the different services. For example, in AWS, if you want a timer driven job that hits an endpoint, you'll need to send an event to a Lambda to push an HTTP request. In GCP, you'd use Cloud Task Queues, Pub/Sub, or Cloud Scheduler -- all of which support HTTP-based targets without the need to deploy a Function. Simplifies the overall design of the system, IMO.
I almost see it as a kind of second mover advantage where GCP and Azure had an opportunity to learn from AWS and build certain things more ergonomically and with less low-level finagling required to get it to cover the 90% use case.
I wrote a two part series on this specifically focused for startups:
https://itnext.io/aws-vs-azure-vs-google-cloud-for-saas-star...
https://itnext.io/aws-vs-azure-vs-google-cloud-for-saas-star...
Azure is the worst. No one in his sane mind would have a reason to go there. Seriously. Things does not work regularly without a good reason. Randomly. Even their own administration portal randomly crash, randomly fail to apply changes, consume a lot of memory in your browser. Have stupid rough edge everywhere. Like it is cloud but still you can't "migrate" a webapp install to another plan or region. Just impossible. You have to manually copy it. And by manually I mean that it is not even good at exporting a complete config like yaml or json to reload it somewhere else.
Azure as so much business just because they give free credits or pay consulting for customers to switch, and also have managed to have big corporation to sign contracts with them. The one that use office 365.
And when you are a dev or manager in such a big corp, it is easy to request a subscription with the corp account that requesting the company to contract with AWS. So you go with the flow to get the job done.
AWS is the nice in between between the 2. They have services that are rarely upgraded with better features but have a lot of services that just work correctly mostly. And administrating your account through the interface or code logic is basically guaranteed to work.
Each cloud provider has their different features and quirks, but their underlying services are pretty much the same when it comes to managed servers for computing, data storage, caching, queuing, notifications, email, network policy, etc.
Basically what I am saying is that if you have a deep understanding of AWS or GCP, what each service does, and how billing works; then it just comes down to what each provider names their service, such as RDS or S3.
If you are trying to jumpstart your career with AWS and already have a deep understanding of GCP, then watch some quick AWS cloud practitioner guides on YouTube. If you feel comfortable enough with what they are talking about, then you can go take the cloud practitioner certification test in person next week and add that certification on your resume for less than $200.
Deleted Comment
I don't have a real solid reason why, maybe I'm just the lack of comfort/experience but I have no interest working with any Azure environment. Maybe I just don't have / need to learn another since I can always find work using those. You will absolutely find less GCP jobs than Aws or Azure.
SRE w/ about 20 years exp in cloud/distsys/datacenters