You also need to take into account the cost of changing and tuning your code to run on a TPU.
Oh and amazingly enough, I took the exact same Python file that I built on GPU on my workstation, ran it in Google Collab with a TPU connected, and I really only had to change the configuration to make it work. There was no need to change or tune anything. I was pleasantly surprised by how well that worked.
And let me rant a bit longer, when we started this project I actually first tried to use AWS because our company already had billing set up with them. But AWS was using CUDA 10.0 for SageMaker, which has a known crash- and nan-inducing bug for 2D convolution. AWS support being non-existent as always, we couldn't make things work on AWS and then went bare metal for our GPU training with hetzner.com - which simultaneously also shaved like $30,000 monthly off our bill. AWS's EC2 GPU instances are really expensive when compared to a dedicated root server.
MS recognized moving enterprises with boring workloads to Azure was where the money was along with hybrid computing. That’s how it was able to succeed so quickly.
Besides,Microsoft has always been focused on the dark matter developers doing boring stuff. Their tooling is far better than Google’s and their IDEs that developers are already using integrate with their cloud offerings.
Also, if the only advantage that GCP has is price, that’s not defensible. It’s not like it takes a great engineering effort to change a price.
The market leader can usually afford to be a “fast follower”. That was MS’s playbook for decades.
I posted a link earlier from a podcast interview of someone who works at GCP. She said that only a few small internal projects at Google run on GCP.
This was critical because by then if you weren’t on AWS, you probably didn’t have the DevOps team to do so - MS was now willing to lend you enough consultants to do it for you.
The number of spend shouldn’t be astronomically high. Most workflows in cloud computing are commoditized low-margin. It also explains why Google wants to do high-margin AI stuff, and why AWS is happy with low-margin areas.
Microsoft would say:
“If you have a workload that still requires Windows 2000 and SQL Server 2003. We will help you migrate it to Azure as is and we will extend your support contract.”
While Google will talk about migrating your entire workload to K8s.
Part of Microsoft's implied message in heavily marketing K8s is that they know GCP is heavily K8s-based, and know GCP is heavily competing with them on price, and they are counting on some of that "dark matter conversion work" wanting to move towards the "more portable solution" in order to "maybe when the moons are right eventually shift over to GCP or something cheaper than Azure". By offering that conversion path at all, and knowing Enterprise's weakness for sunk costs development over from-scratch rewrites, they are playing a very different game than what GCP can offer.
Even if you did everything in a “cloud agnostic” way, once you have even a couple of dozen VMs, your networking infrastructure and security rules, your user permissions, your DNS entries, your site to site VPNs, your client to site VPNs, all your data in databases, security and compliance audits etc. migrating your infrastructure is going to be a months long process, involving project plans, regression tests, and still have little to show for it.
I was involved in a much smaller migration as a dev lead when all we had to do was migrate to WorkDay for HR, payroll, and time tracking. That involved tons of integration work and hiring Workday consultants. Not to mention consolidating all of the other SAAS solutions that we had to integrate when we merged with another company.
It's why Azure's K8s strategy is so fascinating: precisely because the more they make it "cloud agnostic" on paper and are good K8s/Docker citizens the greater power they have for Manager mentality lock-in to the non-cloud agnostic stuff (especially "lift and shift").