It’s time for our quarterly AWS vs Azure vs Google Cloud market share comparison, including the latest earnings the ‘big three’ cloud providers have reported. Let’s take a look at all three providers side-by-side to see where they stand.
Note: several previous versions of this article have been published. It has been updated for May 2021.
AWS vs. Azure vs. Google Cloud Earnings
To level-set this comparison, first know that – unsurprisingly – the cloud market as a whole is bigger than ever. Gartner has predicted worldwide public cloud spend to grow 18% in 2021, with 70% of organizations using cloud to increase cloud spending in the wake of COVID-19.
So within that market, let’s take a look at the AWS vs Azure vs Google Cloud market share breakdown and what each cloud provider’s reports shared.
Amazon reported Amazon Web Services (AWS) revenue of $13.5 billion for Q1 2021 – which exceeded analyst predictions of $13.1 billion. This is compared to $10.33 billion for Q1 2020. AWS revenue grew 32% in the quarter, accelerating from 28% growth in the fourth quarter. This quarter, AWS’s revenue accounted for 12% of Amazon’s total revenue – and nearly 47% of Amazon’s overall operating income. AWS continues to bolster the company as a whole with its profitability.
This quarter, AWS announced that former AWS executive and current head of Salesforce Tableau Adam Selipsky will run AWS, replacing Andy Jassy as he moves up to head all of Amazon.
Amazon’s CFO, Brian Olsavsky, said on the earnings call with investors, “During COVID, we’ve seen many enterprises decide that they no longer want to manage their own technology infrastructure,” he said. “They see that partnering with AWS and moving to the cloud gives them better cost, better capability and better speed of innovation. We expect this trend to continue as we move into the post pandemic recovery. There’s significant momentum around the world, including broad and deep engagement across major industries.”
And of course, much of the growth in public cloud comes from net-new workloads, not just those migrated from on-premises infrastructure. We’re curious to see how this trend continues.
While Amazon specifies AWS revenue, Microsoft only reports on Azure’s growth rate. That number is 50% revenue growth over the previous quarter – which is faster than the 46% growth analysts expected. This time last year, growth was reported at 59%. You may see headlines touting that “Azure growth rates are slowing”, comparing those revenue growth percentages. However, the metric is of questionable value as Azure continues to increase revenue at this enormous scale.
Here are the revenue numbers Microsoft does report. Azure is under the “Intelligent Cloud” business, which grew 23% to $15.1 billion. The operating group also includes server products and cloud services (26% growth).
Microsoft sees its cloud growth as fundamental to its success. CEO Satya Nadella said, “Over a year into the pandemic, digital adoption curves aren’t slowing down. They’re accelerating, and it’s just the beginning. We are building the cloud for the next decade, expanding our addressable market and innovating across every layer of the tech stack to help our customers be resilient and transform.”
The lack of specificity around Azure frustrates many pundits as it simply can’t be compared directly to AWS, and inevitably raises eyebrows about how Azure is really doing. Of course, it also assumes that IaaS is the only piece of “cloud” that’s important, but then, that’s how AWS has grown to dominate the market.
Nonetheless, Microsoft’s cloud business is clearly generating success for the company. Intelligent Cloud delivered the highest operating income of all segments this quarter at $6.4 billion, which is 37.7% of total consolidated operating income.
This quarter, Google Cloud reported revenue of $4.047 billion, an increase of 46% year-over-year. Operating losses were $974 million, compared to losses of $1.73 billion one year previously.
Note that the Google Cloud unit includes not only Google Cloud Platform but also Google Workspace (formerly G Suite).
Like the other giants, Alphabet highlighted its cloud growth. Google and Alphabet CFO Ruth Porat said, “We’re very pleased with the ongoing momentum in Google Cloud, with revenues of $4.0 billion in the quarter reflecting strength and opportunity in both GCP and Workspace.”
Porat also said that Google Cloud Platform (GCP)’s revenue growth was once again “meaningfully above cloud overall.”
Alibaba cloud revenue grew 37% year-over-year to $2.6 billion. They mention that “the slower revenue growth during the quarter was primarily due to revenue decline from a top cloud customer in the Internet industry. This customer, which has a sizeable presence outside of China that used our overseas cloud services in the past, has decided to terminate the relationship with respect to their international business due to non-product related requirements.” They believe their remaining cloud customers are sufficiently diversified to prevent such a large impact from a single customer in the future.
Cloud Computing Market Share Breakdown – AWS vs. Azure vs. Google Cloud
When we originally published this blog in 2018, we included a market share breakdown from analyst Canalys, which reported AWS in the lead owning about a third of the market, Microsoft in second with about 15 percent, and Google sitting around 5 percent.
In 2019, they reported an overall growth in the cloud infrastructure market of 42%. By provider, AWS had the biggest sales gain with a $2.3 billion YOY increase, but Canalys reported Azure and Google Cloud with bigger percentage increases.
As of April 2021, Canalys reports that the worldwide cloud market grew 35% this quarter to $41.8 billion. AWS has 32% of the market, followed by Azure at 19%, Google at 7%, Alibaba Cloud close behind.
Bezos has said, “AWS had the unusual advantage of a seven-year head start before facing like-minded competition. As a result, the AWS services are by far the most evolved and most functionality-rich.”
Our anecdotal experience talking to cloud customers often finds that true. It seems clear that in the case of AWS vs Azure vs Google Cloud market share – AWS still has a substantial lead, and their market share remains steady. With that said, all players are pushing growth and innovation and driving public cloud adoption across the board.
The idea that you will reduce costs during an Azure migration is not a given. In fact, when an organization is new to the cloud is when they are prone to missing details or falling in step with habits from their on-prem days. Unfortunately, up to $26.6 billion will be wasted this year due to idle and overprovisioned cloud resources. All of that could be prevented.
When the team at Providence Health took on a migration to Microsoft Azure in early 2020, they planned ahead for these challenges – and built cost optimization into their migration plans, so they could land with an optimized infrastructure and truly take advantage of the elasticity of public cloud.
Here’s how they did it.
First, Overcome the Cultural Challenges of Azure Migration
Migration can be scary for users who have never used the public cloud before. Often, those who are less familiar with public clouds have misconceptions about security, reliability, or cost. When Bryan de Boer joined the Providence Health team as an Executive Director of IT in 2020, their Microsoft Azure migration project was just beginning. Bryan recalled, “The very ideas of cloud elasticity, flexibility, and optimization were completely foreign to this enterprise… Servers were fixed resources that you bought; they were physical resources that just sat there, and it was a one-time upfront purchase. There was a conceptual paradigm shift that needed to occur.”
Luckily, by getting in front of these misconceptions with education, you can address them and get your teams on board and even excited for the move to the public cloud. Bryan told us the process of educating key stakeholders was fun, and this is not to be ignored – by treating your colleagues kindly and with good humor, you can build the rapport and shared-dream teamwork that makes digital transformation possible throughout the organization.
Optimization is not a one-time activity. In fact, we estimate cloud resource drift of about 10-15% month over month, which could mean a complete environment turnover in less than one year. Thus, continuous optimization is key. One straightforward way to bake this optimization into your processes is by setting on/off schedules on non-production resources, such as development, testing, staging, and QA, so that you’re only paying for on-demand resources when you need them. This is also a great way to give some ownership over cloud resources and costs to the end-users within your organization, to make the transition from an overprovisioning-happy on-premises model to the on-demand consumption charging model of the public cloud.
Speed to Vaccination Supported by Cloud Adoption
Once you internalize the concepts of cloud elasticity, you can start to grow and innovate faster than ever before. For the Providence Health team, this took the trailblazing form of building a new COVID-19 vaccination tracking and scheduling application that they were able to launch in a matter of days – a process that would have taken months pre-migration. With this rapid test case, the Admin Tech application team proved that they could solve significant problems in a very short period with the agility of the cloud. This became a key proof point in driving the internal cultural change to show the value of cloud infrastructure.
Join Us Live for More
Want to hear Providence’s story, live? Want to see how they were able to launch that vaccine tracking application so quickly? Join us.
Bryan de Boer will be speaking at our upcoming Apps ON Cloud Summit, happening online May 11th through 13th. Learn from customers like Providence alongside the industry’s best, like Kelsey Hightower and prince of snark Corey Quinn. Plus, we’re doing a giveaway for a two-night getaway to one lucky attendee – details on the registration page. Hope to see you there!
When you create a virtual machine in Microsoft Azure, you are required to assign it to an Azure Resource Group. This grouping structure may seem like just another bit of administrivia, but savvy users will utilize this structure for better governance and cost management for their infrastructure.
What are Azure Resources Groups?
Azure Resources Groups are logical collections of virtual machines, storage accounts, virtual networks, web apps, databases, and/or database servers. Typically, users will group related resources for an application, divided into groups for production and non-production — but you can subdivide further as needed.
Management groups: These groups are containers that help you manage access, policy, and compliance for multiple subscriptions. All subscriptions in a management group automatically inherit the conditions applied to the management group. These are often used for grouping subscriptions by internal department or geographical region.
Subscriptions: A subscription associates user accounts and the resources that were created by those user accounts. Each subscription has limits or quotas on the amount of resources you can create and use. Organizations can use subscriptions to manage costs and the resources that are created by users, teams, or projects. A subscription is essentially a billing unit.
Resource groups: A resource group is a logical container into which Azure resources like web apps, databases, and storage accounts are deployed and managed.
Resources: Resources are instances of services that you create, like virtual machines, storage, or SQL databases.
One important factor to keep in mind when managing these scopes is that there is a difference between azure subscription vs management group. A management group cannot include an Azure Resource. It can only include other management groups or subscriptions. Azure Management Groups provide a level of organization above Azure Subscriptions. Also, there is no structure for a “nested” resource group in Azure – to “nest” groups for permissions, you will need to use a combination of permissions at the different levels listed above.
Be sure also to differentiate the concept of an Azure resource group from an “Azure availability set”. An availability set in Azure is a logical grouping of VMs to inform Azure how your application is built in order to protect the availability of your application.
Group structures like Azure’s exist at the other big public clouds — AWS, for example, offers optional Resource Groups, and Google Cloud “projects” define a level of grouping that falls someplace between Azure subscriptions and Azure Resource Groups.
The Azure Resource Manager
You will manage resource groups through the “Azure Resource Manager”, which is the management layer for your resources. Benefits of the Azure Resource Manager include the ability to manage your infrastructure through declarative templates rather than through scripts; tagging management; deployment templates; dependency mapping; simplified role-based access control; and clarified cost management.
You can organize your resource groups for securing, managing, and tracking the costs related to your workflows.
Ways to Create an Azure Resource Group
There are several ways to create an Azure Resource Group, or in other words, several ways to actually manage using the Azure Resource Manager. They are:
The Azure Portal
Azure PowerShell scripts
The Azure CLI
An ARM template
Azure Resource Group Best Practices
When organizing your resource groups, it is essential to understand that all the resources in a group should have the same life-cycle when including them. For instance, if an application requires different resources that need to be updated together, such as having a SQL database, a web app or a mobile app, then it makes sense to group these resources in the same resource group. However, for dev/test, staging, or production, it is important to use different resource groups as the resources in these groups have different lifecycles.
Other things to consider when building your Azure list of resource groups:
Resources can be added to or deleted from an Azure Resource Group. However, each of your resources should belong to an Azure Resource Group, so if you remove the resources from one Resource Group, you should add it to another one.
Azure resource group regions: the resources you include in a resource group can be located in different Azure regions, and may be in different regions than the group itself. The group needs a location to specify where the metadata will be stored, which is necessary for some compliance policies. (Read more on pricing in different Azure regions.)
Grant access with resource groups: you should use resource groups to control access to your resources – more on this below.
When a resource group is deleted, all resources in the group are deleted
Group limits: you can deploy up to 800 instances of a resource type in each resource group – with some exceptions.
How to Use Azure Resource Groups Effectively for Governance
Azure resource groups are a handy tool for role-based access control (RBAC). Typically, you will want to grant user access at the resource group level – groups make this simpler to manage and provide greater visibility.
Azure resource group permissions help you follow the principle of least privilege. Users, processes, applications, and devices can be provided with the minimum permissions needed at the resource group level, rather than at the management group or subscription levels. For example, a policy relating to encryption key management can be applied at the management group level, while a start/stop scheduling policy might be applied at the resource group level.
Effective use of tagging allows you to identify resources for technical, automation, billing, and security purposes. Tags can extend beyond resource groups, which allows you to use tags to associate groups and resources that belong to the same project, application, or service. Be sure to apply tagging best practices, such as requiring a standard set of tags to be applied before a resource is deployed, to ensure you’re optimizing your resources.
Azure Resources Groups Simplify Cost Management
Azure Resource Groups also provide a ready-made structure for cost allocation — resource groups make it simpler to identify costs at a project level than just relying on Azure subscriptions. You can use cost allocation tags to manage the costs of the resources within the group together. Additionally, you can use groups to manage resource scheduling and, when they’re no longer needed, termination. Make sure you don’t skip that step – keep waste in check.
You can do this manually, or through your cost optimization platform such as ParkMyCloud. Continuous cost control comes from actual action – which is what ParkMyCloud provides you through a simple UI (with full RBAC), smart recommendations with one-click remediation, and an automatic policy engine that can schedule your resources by default based on your tagging or naming conventions. For almost all Azure users, this means automatic assignment to teams, so you can provide governed user access to ParkMyCloud. It also means you can set on/off schedules at the group level, to turn your non-production groups off when they’re not needed to help you reduce cloud waste and maximize the value of your cloud. Start a trial today to see the automation in action.
A version of this article was published in April 2020. It has been updated and expanded for 2021.
Among the many ways to purchase and consume Azure resources are Azure low priority VMs and Spot VMs. These virtual machines are compute instances allocated from spare capacity, offered at a highly discounted rate compared to “on demand” VMs. This means they can be a great option for cost savings – for the right workloads. And we love cost savings! Here’s what you need to know about these purchasing options.
How Interruptible VMs Work
The great part about both of these options is the price. Depending on the options selected, you can get a discount of up to 90% compared to the pay-as-you-go price. However, this is in exchange for the possibility that these VMs will be “evicted” when Azure needs the capacity, which makes them suitable for fault-tolerant applications such as batch processing, rendering, testing, some dev/test workloads, containerized applications, etc.
Azure Low Priority VMs
There are two key things to know about Low Priority VMs. The first is that they are only available through Azure Batch, Azure’s tool for running large-scale parallel and high-performance computing jobs through a pool of compute nodes (VMs). Through Azure Batch, you can run jobs and tasks across compute pools called “batch pools”. Since batch jobs consist of discrete tasks run using multiple VMs, they are a good fit to take advantage of low priority VMs.
Note that prior to February 2020, Low Priority VMs were available in Azure Scale Sets, but that option has been discontinued, with Spot VMs now available in Azure Scale Sets instead.
The second highlight is that Low Priority VM pricing is at a fixed discount of 60-80% compared to pay-as-you-go.
Azure Spot VMs
As of May 2020, Azure offers Spot instances/VMs in addition to Low Priority VMs. Like Low Priority, the Spot option allows you to purchase spare capacity at a deeply discounted price in exchange for the possibility that your VM may be evicted. You can choose whether or not to have a cap on the price you’re willing to pay for Spot VMs. Unlike Low Priority, you can use the Azure Spot option for single VMs and scale sets. VM scale sets scale up to meet demand, and when used with Spot VMs, will only allocate when capacity is available.
Your Spot VMs can be evicted when Azure needs the capacity, or when the price goes above your maximum price. You can choose to get a 30-second eviction notice and attempt to redeploy.
The other key difference is that Azure Spot pricing is variable, and based on the capacity for size or SKU in an Azure region. Prices change slowly to provide stabilization. The price will never go above pay-as-you-go rates.
When it comes to eviction, you have two policy options to choose between:
Stop/Deallocate (default) – when evicted, the VM is deallocated, but you keep (and pay for) underlying disks. This is ideal for cases where the state is stored on disks.
Delete – when evicted, the VM and underlying disks are deleted.
While similar in idea, there are a few key differences between these two purchasing options:
Single VMs, VM scale sets
Variable pricing; ability to set maximum price
Preempted when Azure needs the capacity. Tasks on preempted node VMs are requeued and run again.
Evicted when Azure needs the capacity or if the price exceeds your maximum. If evicted for price and afterward the price goes below your maximum, the VM will not be automatically restarted.
Azure Extra Capacity Options vs. AWS Spot Instances
So are low priority VMs the same as AWS Spot Instances? In some ways, yes: both options allow you to purchase excess capacity at a discounted rate.
However, there are a few key differences between these options:
Fixed vs. variable pricing – AWS spot instances have variable pricing while Azure low priority VMs have a fixed price as listed on the website
Integration & flexibility – AWS’s offering is better integrated into their general environment, while Azure offers limited options for low priority VMs (for example, you can’t launch a single instance) with limited integration to other Azure services.
Visibility – AWS has broad availability of spot instances as well as a Spot Instance Advisor to help users predict availability and interruptibility. On the other hand, Azure has lower visibility into the available capacity, so it’s hard to predict if/when your workloads will run.
Should You Use Azure Low Priority VMs?
If you have fault-tolerant batch processing jobs, then yes, low priority VMs are worth a try to see if they work well for you. If you’ve used these VMs, we’re curious to hear your feedback. Have you had issues with availability? Does the lack of integrations cause any problems for you? Are you happy with the cost savings you’re getting? Let us know in the comments below.
If you’re looking to tune up your Microsoft Azure knowledge, contemplating a cloud computing career, or want to show value to a potential employer, there’s never been a better time than now to seize the opportunity to learn with a few free Azure training resources.
Whether you’re relatively new to Azure or you’re a pro, there’s always more to learn. Microsoft has been releasing more and more free online resources for all learning paths, experience levels, and learning types to help you do just that, and of course there’s a third-party ecosystem built around it as well. That’s why we compiled a list of our favoriteMicrosoft Azure training resources on how to learn Azure for free:
1. Microsoft Azure’s Own Training Resources
The most obvious resource for free Azure training is Microsoft itself. Microsoft does a great job of providing ample free educational material with virtual courses, hands-on training, and documentation for users with a range of experience:
Microsoft Learn Courses provide information on Azure Virtual Machines and virtual networks, PaaS, automation and management, cloud migration, and more.
Get hands-on and learn on the go with an Azure free account. It’s free to sign up and $200 credit is yours to spend in the first 30 days. That’s a month of free exploration to “test and deploy enterprise apps, create custom mobile experiences, and gain insight from your data.” On top of that, you’ll also get 12 months to use some popular services for free.
For those who enjoy some light reading, there’s Microsoft Azure Documentation. Jump in and start learning with quickstarts, samples, and tutorials.
2. Favorite YouTube Channels
If you prefer to actually see steps needed to deploy a particular application or how a new feature works, then videos can make all the difference for visual learners. Some of the most popular channels for Azure free training include:
Microsoft Azure (173K subscribers) offers demos, technical insights, and training videos.
Cloud Ranger Network (24.7K subscribers) accompanies a popular blog on all things Microsoft Azure, making it a great resource for supplemented learning with both video and text.
Azure DevOps (21.8K subscribers) deserves a nod as a great niche channel for developers looking to make use of Azure’s developers services.
If you want to go beyond videos and start digging in, hands-on, check out these great collections on GitHub. To learn Azure, check out both theofficialandunofficialAzure GitHub. It will help you save a lot of time and effort.
Bloggers offer new insights, ideas, and the latest on all things cloud computing – if you know where to look. CloudRanger.net is solely-focused on Microsoft Azure, along with the previously mentioned YouTube channel. Microsoft has its own Azure blog, of course. But for a more well-rounded blog with additional content on AWS and Google Cloud Platform, check out Cloud Academy.
Udemy offers several free Azure-focused courses. These freebies range from beginner-level overviews to service-specific outlines, as well as certification preparation.
Pluralsight is a Microsoft partner that provides an incredible number of Azure courses for free. Pluralsight offers over 200+ courses, 40+ Skill IQs, and 8 Role IQs; aiming to prepare students for specific Azure certification exams.
Founded by Harvard University and MIT, EDx is a massive online course provider. Take advantage of free online university-level courses and be on your way to earning professional certifications. Azure course topics include databases, security, cosmos DB, and more.
While many meetups are being held virtually right now, they are still a great way to get involved in your local community. Typically, tech meetups have talks delivered by group members and other experts, and with small communities, there’s plenty of opportunities to ask questions, request specific topics, and generally have a more personalized experience than mass-produced online content. Search Azure, Cloud, or Microsoft on meetup.com to see what’s available near you (or, since they’re currently virtual, look further afield).
Take Advantage of These Free Azure Training Resources
Cloud-based application development is growing at a rapid pace and having Azure skills and experience can help you achieve many goals – free Azure online training is both abundant and rewarding. We picked our top 9 resources for their reliability, quality, and range of information. Whether you’re new to Azure or consider yourself an expert, these resources will get you on the right foot.
Microsoft Azure recently announced an addition designed to help with Azure chargeback: cost allocation, now in preview in Azure Cost Management + Billing. We’re always glad to see cloud providers making an effort to improve their native cost management capabilities for customers, so here’s a quick look at this update.
Chargeback for Cost Accountability
Cost allocation for cloud services is an ongoing challenge. Depending on organizational structure and decisions about billing and budgets, every organization will handle it a bit differently. In some cases, separating by Azure subscription can make this easier, but in others, your organization may have shared costs such as networking or databases that need to be divided by business unit or customer. However, it is an obstacle that must be addressed in order for organizations to gain visibility, address inefficiencies, and climb up the cloud spend optimization curve to actually take action to reduce and optimize costs.
Many IT organizations address this via an Azure chargeback setup, in which the IT department provisions and delivers services, and each department or group submits internal payment back to IT based on usage. Thus, it becomes an exercise in determining how to tag and define “usage”.
In some cases, showback can be used as an alternative or stepping stone toward chargeback. The content and dollar amounts are the same – but without the accountability driven by chargeback. For this reason, it can be difficult to motivate teams to reduce costs with a showback. We have heard teams using variation on showback – ”shameback”. IT can take the costs they’re showing back and gamify savings, coupled with a public shame/reward mechanism, to drive cost-saving behavior.
What Azure Added with the Preview Cost Allocation Capabilities
The cost allocation capabilities are currently in preview for Enterprise Agreement (EA) and Microsoft Customer Agreement (MCA) accounts. It allows users to identify the costs that need to be split by subscription, resource group, or tag. Then, you can choose to move them, and allocate in any of the following ways: distribute evenly, distribute proportional to total costs, distribute proportional to either network, compute, or storage costs, or choose a custom distribution percentage.
Cost allocation does not affect your Azure invoice, and costs must stay within the original billing account. So, Azure did not actually add chargeback, but they did add visualization and reporting tools to facilitate chargeback processes within your organization, outside of Azure.
Improvements in the Right Direction – or Too Little, Too Late?
Azure and AWS are slowly iterating and improving on their cost visibility, reporting, and management capabilities – but for many customers, it’s too little, too late. The lack of visibility and reporting within the cloud providers’ native offerings is what has led to many of the third-party platforms in the market. We suspect there is still a way to go before customers’ billing and reporting needs are fully met by the CSPs themselves.
And of course, for organizations with a multi-cloud presence, the cloud costs generally need to be managed separately or via a third-party tool. There are some movements within the CSPs to at least acknowledge that their customers are using multiple providers, particularly on the part of Google Cloud. Azure Cost Management has done so in part as well, with the AWS connector addition to the platform, but it’s unclear whether the 1% charge of managed AWS spend is worth the price – especially when you may be able to pay a similar amount for specialized tools that have more features.