We might as well be living in #PeakCloud - in the last two weeks, Amazon, Google, and Microsoft - all become trillion dollar juggernauts on the back of their earnings releases, and what's most interesting is that Cloud was called out a major theme for each of them. Google broke out Google Cloud Revenues for the first time, while Amazon and Microsoft both highlighted their growth in Cloud. This post is for my own learning and understanding of what is being called out, and what are the similarities between the three big clouds.
Cloud Growth Highlighted by all Three Tech Giants
Google Cloud is a $10 Billion run-rate business now after gaining a lot of sales and customer focus under Thomas Kurian with >$50M deals having doubled. While Sundar Pichai took pains to mention that the Cloud Platform is growing faster than G-Suite, exact growth rates are not known. It's important to note that Google Cloud is growing faster than AWS but slower than Azure.
Azure, on the other hand, reported that its Commercial Cloud crossed $50B in run-rate, but this includes Office 365, Dynamics 365 and several others. The actual Azure revenues were not broken out, but Azure growth rate was pegged at 64% and growing faster than AWS. Azure definitely has a lot of tailwind coming off of the big $1Bn JEDI contract win.
AWS - the biggest of the three - did $10Bn in the quarter alone with a 34% growth rate, even though it lost the JEDI contract (and sued the Dept of Defense!). While AWS continues to generate the cash for bankrolling Amazon's push into 1-day delivery, assuming a 10X valuation of the Cloud business, its probably almost 40% of Amazon's total market cap. It's fascinating and baffling at the same time - if AWS is leading to all the market cap gain, why don't they invest this excess cash flow back into AWS itself?
The interesting thing is - I don’t think this growth is going to slow. Larger enterprises are now adopting the public cloud for their core infrastructure and the migration has only just started. However, as their menu cards get more and more complex, I think most people would end up having to choose “best of breed” services across cloud providers - multi-cloud is likely here to stay - and that may put downward pressure on operating margins.
What is the menu card of services?
It's hard to keep up since the list is so exhaustive (e.g., Azure, AWS, Google Cloud) and they keep making announcements all the time! Here's my feeble attempt (by no means exhaustive!) of categorizing the services available in an easy to understand manner:
The Basics: This encompasses virtualized compute, block and object storage including archival storage, networking and everything required to run your applications on the cloud - typically categorized as IaaS (Infrastructure as a Service). I would also include managed versions of popular data storage and queue management applications (like mysql, postgres, redis, rabbitmq, etc.), CDNs and more recently managed Kubernetes infrastructure. Pretty much each of them would also include big-data tools like managed map-reduce. The important bit here is that the services under this category have equivalent options across all the cloud providers (as well as recreate in private on-prem infrastructure) and making the switch is not very hard.
Control Pane: I would put things like Access Control, Security, Deployment tools, etc. in this category. The reason I broke this out into a separate category is that this is part of the "control pane" that creates lock-in within the Cloud provider's infrastructure. This could also include things like API integration and "AWS Management Console" since this creates lock-in as well. This is where Kubernetes creates the greatest disruption - providing a vocabulary, management interface which abstracts the cloud provider's underlying infrastructure management tools.
Proprietary Essentials: Each cloud has its own set of unique tools but you can find comparable solutions across cloud vendors or open-source solutions in some cases. However, the artifacts, processes, and protocols are different - as well as each of them has their own strengths and weaknesses - so replacing one with the other is not as easy - most would fall under Platform as a Service or PaaS and some elements of Software as a Service or SaaS. One set is managed databases like Aurora DB, Dynamo DB, SNS, Azure SQL, Cloud Spanner, etc which while similar are going to have their own idiosyncrasies. On the other end, there are data warehouse tools like Redshift, Big Query and Azure Analysis which probably have more differences and core IP, or speech synthesis or understanding tools like Lex and Polly. Machine Learning toolkits for each of the cloud providers also have more differences between the cloud providers.
So, What Differentiates The Cloud Giants?
Unfortunately, this depends on who you ask. It's very hard to figure out - and each of the clouds is getting fairly mature, so most of the things anybody is likely to use is something you'll find similar tools for across all the clouds. As a result, while they catch up on the essentials (IaaS), each of them is spending a lot on building out the differentiators (PaaS and SaaS) better. A great way to compare the services is the product marketing material each cloud provides, e.g., Google Cloud for AWS professionals and Azure professionals.
Differentiators: Each of the cloud vendors has their spin - usually for historical reasons.
AWS has arguably the largest menu card and the most number of services including Sagemaker and a robust set of tools for data scientists, serverless infrastructure and the most comprehensive Gov Cloud (the JEDI contract notwithstanding). In terms of other strengths, they also have the most number of regions and availability zones. Interestingly enough, you can sometimes find multiple ways of doing the same thing (ECS vs Fargate vs EKS) - which gets mind-bogglingly complicated but is also one of their biggest differentiators. Whatever you're looking for - AWS probably has it, and likely two or three versions of it - this probably is both a strength and a weakness. Per Gartner, their biggest Achilles heel is cost management since costs can spiral out of control really fast.
Google’s strengths in understanding developers and their needs closely reflect upon their Cloud - their core technologies also really shine. It has Firebase, a great set of starter tools for apps, Apigee for API management (both came via acquisitions), ML capabilities, arguably its Kubernetes capabilities (GKE/Anthos) are the best, and they have a fairly robust Cloud Run (based on knative) service that a lot of people are fans of. Google started with a highly opinionated view of the cloud (we how to build web apps and web-scale services better than anybody else - let me teach you!) which is great when starting out but sometimes doesn't work that well in the real world, especially in large enterprises who are worried about vendor lock-in. They are only now adding all the bells and whistles as well as the sales force that helps them compete across all workloads.
Azure probably has the strongest integrations with Windows (at least in perception, if not in reality?) and large enterprise apps like SAP and all the Visual Studio goodness (I used to love HockeyApp!). Microsoft I'm sure also uses its strength in the enterprise to provide the most "flexible" pricing options for large contracts.
Hybrid Cloud: I wanted to touch upon this separately since this is something everybody made a lot of noise around. Interestingly, AWS never acknowledged other players for the longest time — for them, the "public cloud" was just AWS, but have only now acknowledged that this is going to matter with AWS Outposts. Azure is probably far ahead on this - with Azure Arc and the various flavors of Azure Stack. Google also announced Anthos more specific to Kubernetes workloads with a packaging that spans k8s, knative and istio.
Worth Watching: Alibaba Cloud
Even though Cloud seems like a three-horse race, there may be a dark horse: Alibaba Cloud. According to some, they may actually be bigger than Google while they are behind according to others! For sure, their market leadership in China is probably something that will make them even more important and we are likely going to see more partnerships for the lucrative Asian market.
The Others
Interestingly enough, a lot of the other cloud vendors have gotten left behind. Honorable mentions are probably Heroku (which is the easiest user experience - what k8s should be - for web apps), OpenShift (again based on k8s - Red Hat’s and now IBM’s entry in the cloud wars). It’s also interesting to watch VMWare’s Cloud Strategy - since they are the likely vehicle for a lot of “lift and shift” migration - which is more focused on partnerships vs an independent platform. With the advent of Kubernetes, a lot of the folks like Docker, OpenStack, CloudFoundry, etc. got left behind. Suffice to say, it’s unlikely anybody can match the spending power of the big three incumbents.
Nicely summarised KK! Few thoughts:
1) The IAAS game has become table stakes. It's no more the differentiator. AWS leads here given the headstart they had in the cloud game. Their VM's are stabler with more variety than GCP and Azure. The latter two are also improving q-o-q (have had first-hand experience with both AWS and Azure, anecdotal evidence for GCP).
2) In the managed services market, all three have their areas of expertise: 1) GCP for ML/AI/Data Processing and the control planes (GKE et al). They also lead in running workloads requiring large amounts of cross-region data sync due to the petabit network lines they own (I believe Facebook is the only other company that owns a dedicated line, AWS is planning to build one). 2) Azure in the data analytics space given the flagship products like SQLServer, PowerBI. Retailers just love these products :) 3) AWS has the edge in newer paradigms like serverless (AWS Lambda, Step Functions). GCP and Azure are catching up.
3) Sales - Azure is by far the leader here, given Microsoft's good handle on enterprise sales. It's evident from the large deals they have been able to close in the last few quarters. AWS is catching up here. GCP is still clueless. This stems largely from the fact that Google has been for a long time an engineering-driven org rather than business-led. They have always been thinking "on behalf" of the customer instead of "for" the customer. It's a big mindset change for them.
4) Customer Support - Amazon leads here by far. Bezos' customer-obsession runs deep in their veins. Azure is catching up quick though. They still run in the mode of making the customer believe that they are working to resolve the problems rather than providing actual solutions. But I think this will be sorted soon. GCP is yet to figure this out.
Regardless, the next decade is going to be really exciting in this space, given AWS has started to lose the first-mover advantage they had until a few years ago. With the massive war-chests Google and Microsoft have deployed, it will be critical for AWS to innovate faster than before.
Nice read ! Matches quite a bit with my thoughts. Another advancement to watch out for is the whole edge cloud. Mobile edge computing (Partnership between cloud providers and telcos, AWS Wavelength) will take off with the adoption of 5G. https://www.sdxcentral.com/articles/news/south-korean-operators-tout-skyrocketing-5g-subscriptions/2020/02/. At present, it is gearing towards low latency deployments with cloud computing at the telco premises. My personal view is that, in future, this will extend towards private edge computing in the context of enterprises. If that happens, the hybrid cloud, as we know today, might get changed significantly before it matures. Application architectures, even enterprise on prem ones, will have to evolve.