Dustin Górski Profile picture
Feb 9, 2021 22 tweets 5 min read Read on X
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.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Dustin Górski

Dustin Górski Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @dustinmoris

Feb 10, 2021
Because several people have asked me now, here is a list of the things which annoy me about #Azure.

No trolling, simple but honest feedback:
I'll start with Azure Functions. In Azure I cannot just deploy code as a function like I can in AWS or GCP. I have to create an entire application. It's even called Azure Function App. The Function App then can have one or many functions.
This is very obvious because I have to create an actual project in code and I cannot configure things like environment variables per function but only for an entire function app. Even worse, the app mode heavily leaks into my code.
Read 28 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(