When it comes to serverless computing there isn’t one giant cloud provider in the market, there are three: Amazon, Microsoft, and Google. Between them the triplet of US west-coast behemoths control more than half of the serverless computing market, with smaller players like IBM and Alibaba capturing the largest slices of what is left over.
While serverless computing and Infrastructure As A Service (IaaS) technologies are sometimes assumed to be almost commoditized these days with differences coming down to little more than price. The reality, though, is that there are, indeed, some important points of difference between the Amazon, Microsoft, and Google offers, and depending on your project and the use case you are addressing, there may well be a best option for you.
In this article I’ll look at the three serverless giants in, fittingly, three parts.
First, I’ll outline the three serverless offers in the words of the vendors themselves. Sure, there’s always a little bit of marketing fluff in such self-promotion by large tech companies, but it also offers a chance to assess where the companies see the strongest part of their serverless offer.
Second, I’ll present the industry comparison of the three. Drawn from expert analysts at Gartner, I’ll explain who is ranked where, and the motivations for placing them in that position on the ladder, so to speak.
Third and finally, I’ll offer my own commentary. While at Witekio we are proudly technology and vendor agnostic – we always recommend the best technology, architecture, operating system, and serverless environment for your project, not the one for which we might have a personal preference – there are some clear reasons, in my eyes, to favor one Cloud provider over the other, at least for certain projects.
Three Cloud Providers, Three Offers
Here’s how Amazon presents their serverless offer, Amazon Web Services (AWS):
AWS provides a set of fully managed services that you can use to build and run serverless applications. Serverless applications don’t require provisioning, maintaining, and administering servers for backend components such as compute, databases, storage, stream processing, message queueing, and more. You also no longer need to worry about ensuring application fault tolerance and availability. Instead, AWS handles all of these capabilities for you. This allows you to focus on product innovation while enjoying faster time-to-market.
The AWS Cloud provider pitch in a nutshell?
“We’ll handle the infrastructure and free you up to focus on shipping code faster.”
When it comes to Microsoft, their serverless offer Azure is described like this:
Deliver more value to the core of your business by minimizing the time and resources you spend on infrastructure-related requirements… Reduce the time spent on tasks that are non-core to the business by freeing developers from infrastructure provisioning and management… Improve team agility and performance by using a fully managed platform to build, deploy, and operate applications… Accelerate time to market with Azure serverless solutions that help your organization clear the path to innovation and new revenue opportunities.
Microsoft is…making a very similar pitch to Amazon:
“Infrastructure is our business, you can focus on optimizing your time, your agile development processes, and shipping fast.”
And then there’s Google, with their Google Cloud Platform (GCP) offer described like this:
Google Cloud’s serverless platform lets you write code your way without worrying about the underlying infrastructure. Deploy functions or apps as source code or as containers. Build full stack serverless applications with Google Cloud’s storage, databases, machine learning, and more. Easily extend applications with event-driven computing from Google or third-party service integrations. You can even choose to move your serverless workloads to on-premises environments or to the cloud.
It’s a slightly different pitch for the GCP platform, but not significantly:
“There are lots of things you can do on a serverless platform and we can provide infrastructure for all of them.”
On the surface – or at least according to the Cloud providers themselves – the offers seem comparable, even commodified. But is it really just a question of seeking out the lowest price? Are the offers really as similar as the players themselves suggest?
According to industry analysts and experts in serverless infrastructure, the answer is ‘no’.
The Industry View on Cloud Providers
When it comes to assessing the big three players, there are some pretty clear preferences on the part of industry analysts.
Leading research and advisory firm Gartner, for one, puts Amazon out ahead of Microsoft and Google. Their annual Magic Quadrant for Cloud Infrastructure as a Service clearly recognizes that AWS, Azure, and GCP are leaders, but it also clearly establishes the superior offer that AWS delivers.
Here’s how Raj Bala, Bob Gill, Dennis Smith, and David Wright justified this choice.
AWS as Cloud provider
As Gartner explains, Amazon has the most mature serverless offer and serves the greatest diversity of customers.
“AWS is the most mature, enterprise-ready provider, with the strongest track record of customer success and the most useful partner ecosystem,” Gartner states. “Thus, it is the provider chosen by not only customers that value innovation and that are implementing digital business projects, but also preferred by customers that are migrating traditional data centers to cloud IaaS.”
Though there are a few words of caution about AWS with regards to pricing, focus, and the other activities of parent company Amazon impacting whether or not a client would want to deploy on their serverless infrastructure (Amazon.com competitor WalMart, for example) the industry view on AWS is overwhelmingly positive.
Microsoft Azure
Microsoft finds itself well behind AWS, according to Gartner, but it is still well ahead of Google and the other niche actors (Alibaba, Oracle, and IBM). Significantly, for Gartner one of the core strengths of the Azure offer is their capacity to serve the IoT market.
“Azure provides a well-integrated approach to edge computing and Internet of Things (IoT), with offerings that reach from its hyperscale data center out through edge solutions such as Azure Stack and Data Box Edge,” Gartner explains, adding that “Microsoft Azure’s capabilities have become increasingly innovative and open, where 50% of the workloads are Linux-based along with numerous open-source application stacks.”
All of this means that, for smart, connected, and networked IoT devices, Azure as a Cloud provider could be a good choice, and perhaps even a superior one to the AWS offer.
However, there are two caveats: first, as Azure is still growing there are occasionally stability and downtime issues that AWS does not seem to suffer, and second, the level of technical support for development teams is not always the best.
Google Cloud Platform (GCP)
As the third member of the industry’s big three serverless offers, Google Cloud Platform is a leader thanks to its scale, but no thanks to its performance. Gartner explains that the company has “an immaturity of process and procedures” and is “difficult to transact with at times”. What’s more, they note that the limited number and expertise of partners doesn’t inspire a lot of confidence among some enterprise customers, though they also note that GCP is often a preferred choice for startups and scaleups.
On the bright side, Google seems to have containers right: “Google has leveraged its internal innovative technology capabilities (e.g., automation, containers, networking) by providing a scalable IaaS offering with PaaS capabilities, centered on open-source ecosystems,” Gartner writes. They note that Google has “differentiated technologies on the forward edge of IT, specifically in analytics and machine learning” and that this has encouraged machine learning and AI-focused firms to shift to Google in some cases.
…and so?
For Gartner and, to be sure, for most in industry, the leadership of AWS as Cloud provider is undisputed. The market backs this up, too, because despite the rise of Azure and the advances made by Google, Amazon remains in front – and by a long way.
It’s investment in serverless technology and, indeed, its entire cloud platform has paid huge dividends for Amazon, and the market has rewarded that. A wide partnership network, developers and engineers that have got used to deploying on AWS serverless infrastructure as standard operating procedure, and an infrastructure that is reliable and robust have helped establish and maintain Amazon’s lead.
But as the Gartner analysts note, there are some areas where Microsoft and Google are making inroads. Azure’s appeal for IoT networks is clear and its edge computing offering is attracting eyeballs and dollars. Google’s experience in processing their own big data has helped them establish some leadership for anything related to Big Query, even if their enterprise offer remains weaker than its rivals.
For industry analysts, it’s 1-2-3, Amazon, Microsoft, Google market – but I’m a little less bullish on AWS.
Let me explain why.
How Do I Compare Cloud Providers?
It’s fair to say that the clients I work with have some preferences in terms of Cloud providers.
Start with the global market leader, Amazon’s AWS.
Amazon has been a serverless candidate in several projects I’ve worked on. However, due to some legal or security concerns, it has been rejected.
For some customers, the specter of a case like Capital One mean red flags for AWS, and it’s an automatic no-go.
If there’s a reason that I don’t see a lot of IoT networks I work with choosing AWS s cloud provider for their production systems, it’s this. I think this goes to show how important building a strong reputation for security, a fair and legal contract, and data integrity is and why maintaining that reputation should be at the forefront of a cloud player’s mind.
Then there’s Azure.
Here in France, Microsoft has established a strong market share in several industries, and especially so with regards to their information systems. As a result, when it comes to deploying IoT solutions, a lot of our French clients choose Azure as their preferred solution – indeed, most of Witekio’s French projects are run on it and, to serve these clients, Witekio has adopted both the Azure App Service and Azure Function.
The Azure App Service provides a rich set of features that are quite well integrated into other architectures. One drawback, though, has been stability and I’ve encountered issues with stability during application deployment, which can be a risk for the CD pipeline.
Azure Function, on the other hand, is a service that has evolved significantly in recent months. It provides an interesting approach where most of the inputs, dependencies and outputs are managed by its own framework. This allows developers to remain focused on the core logic, and this means the code becomes not only clear but short. This significantly reduces the need for complex configuration (linking with other services, authentication, and more).
When looking at serverless, it is important to look Cloud providers also for complementary services like event streaming and support tools. Personally, I think that Azure’s Event Hub demands a little more intentionality in order to set things up (for example, the partition count), but it does work well. Azure’s support tools, like App Insight, are very powerful for debugging code, and there’s also an impressive integration of C# with Visual Studio that includes premium support, too.
The downside? I personally use Python and JS a lot more than I use C#.
And finally, there’s Google and GCP.
For me, there is a superior abstraction of the virtualization layer on GCP when comparing with Azure. For most of the services on GCP, it is almost ‘click and play’ and this makes it easy to work with. Scaling, too, is simple and instant, and there is no notion of service plans to deal with or choose between like there is when dealing with Microsoft. GCP’s roots as a startup-focused and SaaS-friendly cloud help to differentiate it here from Microsoft’s enterprise-focused-from-the-start approach.
GCP has stable and efficient Cloud Functions and is improving where it had previously been behind (stronger protections for HTTP callbacks, for example, have been recently added). Google Run makes it easy to use containers, PubSub makes communication between services easy to set up and is a key product for GCP and integrating cloud functions in larger systems with Firebase is a breeze. Personally, I find GCP’s Cloud IAM easier to use than the competition, too.
There are some downsides, though.
AppEngine does the job it’s designed for but the limit to only five services is frustrating. Google’s support tool, Stackdriver, is a smooth multipurpose (monitoring, debugging, alerts) tool but the need to manage it as an extra tool is problematic when implementing best practice security standards.
So, now that we’ve compared Cloud providers, what’s the best offer for your serverless approach? The industry view seems to be that Amazon is out in front, Microsoft is catching up, and Google ranks third. Personally, I’ve come to find that the clients I work with prefer Azure, are happy for me to work with GCP. AWS comes third.
Is there a best Cloud provider? Perhaps that’s impossible to say for sure, but there is certainly competition, three very strong offers, and confirmation from the market that a big part of the future of cloud and distributed computing is going to be serverless.
The Future Of Serverless Computing: 5 Trends