The more I work with @GCPcloud and @Azure at the same time - doing pretty much the same stuff across both clouds for different projects/work - the more I'm astonished by how much better GCP is than Azure. It's on so many levels better, that it's even hard to explain.
First of all, GCP costs A LOT LESS. The pricing calculator doesn't reflect that, but the same traffic and outcome requires less resources on GCP than on Azure. Additionally many things which one wouldn't even think about to calculate cost nothing on GCP but get billed on Azure.
Secondly things are incredibly well integrated on GCP. Stackdriver logs & traces on GCP vs. Application Insights on Azure is like heaven and hell. In GCP things work as expected. I can follow traces and logs in a single project level dashboard and run queries for what I need.
In Azure, for some god forsaken reason, everything requires to create (or use an existing) Application Insights project. I need to create a project to inspect logs? By default Azure creates a new AI project for each service. Getting to the AI Dashboard requires to navigate...
... through dozens of convoluted screens and closing some popups before I land at a dashboard where writing queries is also very obscure. Searching for cross-service logs and traces requires a lot of upfront planning due to the nasty architecture in Azure.
If you haven't planned every piece down to the detail before creating it then chances are that the default Azure behaviour will lead to creating incompatible infrastructure pieces or in places (resource groups) where distributed systems will have a hard time to and share data.
For example, quickly creating an Azure function will 100% lead to not writing logs to the same Application Insight project from where one could easily query a trace which spans across several services.
It's just frustrating how often things have to get re-created and re-deployed in Azure until things actually glue together.

Next are SDKs. Client libraries for GCP are top notch and "just work" unlike those for Azure. Also speed! OH MY GOD why is everything so damn fast on GCP?
Logs in Google Cloud Logging appear IMMEDIATELY. In Application Insights there is at least a 5 minute delay - I kid you not, even the Application Insights dashboard basically shows a banner to lower my expectations. They know it's freaking slow.
Cloud Functions in GCP are one million times faster in getting triggered, executed and completed in GCP than Azure Functions in Azure. When my code writes to an Azure Storage Queue I can literally watch in the portal with F5 refreshes until the functions gets triggered and run.
In GCP the same code writing to a GCP PubSub topic (=queue) and getting picked up by a Cloud function is so damn fast that I sometimes have to double check to believe it's true.
The GCP portal is so damn nice and clear. Things are named after what they do. Cloud logging is called Cloud logging, not "Application Insights". CDNs are called CDN, Load balancers are called load balancers, VMs are called VMs and so on...
In Azure everything is layered in 20 different "slates", scrolling left and right with 100 menu items and hidden behind obscure names. Recently I had to create a "Data Factory" project and then navigate to a "Toolbox" in order to copy data from one CosmosDb to another.
Another huge difference is how little friction and maintenance the same projects require in GCP than they do in Azure. The Cloud Function code which has been written two years ago still runs the same in GCP. The Azure Functions code needs constant updating to keep it working.
The managed Kubernetes service (GKE) in GCP is by million years ahead of what Azure has with AKS. I can pick from three different release channels (stable, regular, fast) to let GCP automatically update the cluster to the latest K8s version, with zero downtime.
In GKE I can create an Ingress using a GCP L7 load balancer as the Ingress Controller and do all my amazing stuff with it. An L7 load balancer in GCP is dirt cheap, it's barely a blip on the bill. In Azure those things are not possible (e.g. auto upgrades) and the only..
way to get an Ingress hooked up with Azure infrastructure is using an "Azure Application Gateway" load balancer which costs a freaking fortune. It's so bloody expensive that in Azure I have to run nginx-ingress as a self hosted Ingress Controller.
This puts Azure in a massive disadvantage. In GCP I can configure the L7 loadbalancer to use Cloud CDN for automatic content caching at the edge of all my Kubernetes services. Because I have to use nginx-ingress in AKS doing the same in Azure requires A LOT of extra work.
I could continue this list for ever, honestly there are so many little things which make GCP the absolute superior cloud in comparison to Azure. But.. the biggest benefit is that stuff just works, always and as expected.
Mind that the first cloud I have ever used was Azure when it was brand new a long time ago. I have seen many iterations of Azure and worked with it for a very long time. I know Azure better than my right hand pocket. In contrast I've only used AWS and GCP for a few years now.
People think I'm trolling Azure for no reason all the time, but honestly, given how much grief Azure gives me as a developer and the development teams which I have seen using Azure I have to say that I'm actually a very polite user. In fact, I think Azure is trolling us.
Continuation of some examples: https://twitter.com/dustinmoris/status/1359311718191681538?s=20
You can follow @dustinmoris.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.