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.
Today, we’ll take a look at the latest AWS vs Azure vs Google Cloud market share comparison, including the Q4 2020 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 February 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.
First, the big news, of course: Jeff Bezos is trading his CEO role for Executive Chair of the Amazon Board, while current CEO of AWS Andy Jassy will step up to the Amazon CEO role. No AWS CEO has yet been announced, but many bets are on Matt Garman, currently the Vice President of AWS Sales and Marketing, or else Peter DeSantis, AWS’s Vice President of Global Infrastructure.
Next, the bigger news: Amazon revenue.
Amazon reportedAmazon Web Services (AWS) revenue of $12.7 billion for Q4 2020, compared to $9.95 billion for Q4 2019. AWS revenue grew 28% in the quarter.
Amazon as a whole had their first quarter over the $100 billion mark, at $125.56 billion. That’s an increase of 44% year-over-year, and beating predictions of $119.7 billion. Earnings per share were $14.09, compared to a $7.23 forecast.
Amazon as a whole benefitted from an astronomical online holiday shopping season due to COVID-19, and also from Prime Day being held in the fourth quarter. And AWS? It made up 10% of Amazon’s sales for the quarter – and 52% of its operating income.AWS only continues to grow, and bolster the retail giant time after time.
One thing to keep in mind: you’ll see a couple of headlines pointing out that revenue growth is down and/or highlighting the fact that it’s flattening out, quoting that 28% number and comparing it to previous quarters’ growth rates, which peaked at 81% in 2015. However, that metric is of questionable value as AWS continues to increase revenue at this enormous scale (see Geekwire graph), and dominate the market (as we’ll see below). AWS added more revenue quarter-over-quarter and year-over-year than any quarter in its history. Dave Fildes, Director of Investor Relations, mentioned on the call that “If you account for this COVID anomaly this year of [AWS re:Invent] being virtual and free, AWS year-over-year revenue growth, if you look at it, actually accelerated adjusting for that from the third quarter to the fourth quarter,” an interesting tidbit both from the perspective of gaining a glimpse into what re:Invent actually does for the company, and that AWS revenue is accelerating.
While Amazon specifies AWS revenue, Microsoft only reports on Azure’s growth rate. That number is 50% revenue growth over the previous quarter. This time last year, growth was reported at 62%. As mentioned above, comparing growth rates to growth rates is interesting, but not necessarily as useful a metric as actual revenue numbers – which we don’t have for Azure alone.
Here are the revenue numbers Microsoft does report. Azure is under the “Intelligent Cloud” business, which grew 23% to $14.6 billion. The operating group also includes server products and cloud services (26% growth).
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 36% of total consolidated operating income.
In more exciting news for public cloud followers, Alphabet has broken out Google Cloud revenue for the first time. Thus we learned that while Google Cloud revenue has increased over the last three years, so too have their operating losses. CFO Ruth Porat notes that these operating losses “reflect that we have meaningfully built out our organization, ahead of revenue.”
This quarter, Google Cloud reported revenue of $3.83 billion, an increase of 47% year-over-year. Operating losses were $1.24 billion compared to losses of $1.19 billion one year previously. For the full fiscal year 2020, Google Cloud’s revenue was $13 billion, with $5.6 billion operating losses.
Note that the Google Cloud unit includes not only Google Cloud Platform but also Google Workspace (formerly G Suite).
One highlight was that deals over $250 million tripled during 2020, and several billion-dollar deals were closed during the year.
We’ll add Alibaba Cloud to this list for the first time as the cloud computing division is profitable as of this quarter. The cloud computing arm of the Chinese retail giant earned $2.47 billion this quarter, an increase of 50% year-over-year.
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 February 2021, Canalys reports that the worldwide cloud market grew 32% this quarter to $39.9 billion. For the full year of 2020, cloud infrastructure spending grew 33% to $142 billion. AWS has 31% of the market, followed by Azure at 20%, 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.
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.
To understand how Azure SQL pricing works, we’ll first talk about how the Azure SQL service is offered. Expanding from one limited offering to a set of services, Azure SQL is a family of managed products built upon the familiar SQL Server database engine, useful for migrating SQL workloads, modernizing existing applications, and more.
Running Azure SQL database
When Azure SQL Database first launched in 2010, its only offering was a single pricing option. But, now the Azure SQL portfolio has a more complex service model, with many possible combinations of deployment options, including compute models and service tiers. It has grown from “Azure SQL” to a multi-faceted service. It offers three deployment models, two service tiers, and two compute options.
To run Azure SQL databases, you’ll first need to choose your deployment option. This is how you’ll structure the SQL server and its databases. Then, you’ll need to choose your purchase model to pay for your service. Select your service tier for the level of compute power you want. And, your compute tier to be able to either compute 24/7 or on-demand basis.
Azure SQL Deployment Models
Azure SQL deployment options differ primarily in their cost and the amount of control they give you over the underlying platform. Deployment options determine how to structure the “SQL Server” and its databases. The three options available are:
Azure SQL Database is a general-purpose relational database, provided as a managed service.
Azure SQL Managed Instance – this option modernizes existing SQL Server applications at scale with the managed instance as a service.
SQL Server on Azure VMs for lifting-and-shifting the SQL Server workload provides full control over the SQL Server instance
Azure SQL Pricing Models
Depending on the deployment model you’ve chosen for Azure SQL database. There are two purchasing models available:
Here are some examples of how the various pricing options play out:
To better understand the related storage costs and compare different storage options, calculate Azure SQL costs for your specific scenario using Azure’s pricing calculator.
Azure SQL Service Tiers
There are two service tiers used by Azure SQL Database and Azure SQL Managed Instance, each with a different architectural model. These service tiers include:
A General Purpose tier for common workloads
A Business Critical tier for high throughput OLTP applications requiring low latency and high resilience
And, Azure SQL Database offers an additional service tier called:
A Hyperscale tier for very large OLTP systems with faster auto-scaling, backup and restore support.
Azure SQL Compute Tiers
Under the Azure SQL Database deployment option, under the vCore pricing model with General Purpose storage, you’ll find two options for your compute resources, these include:
Provisioned: Azure SQL provides Azure resources that run your database with a fixed amount of compute resources for a fixed hourly price.
Serverless: the database is provisioned as a serverless component with auto-scaling compute and billing for use per second
Optimizing Costs on Azure SQL
The choice to mix and match Azure SQL deployment options depends on your application and migration requirements. If you are still not sure which Azure SQL deployment option is right for your workloads, here are some tips from Microsoft on how to choose.
Now, to monitor and control your storage expenses and optimize usage in your SQL databases, yes, you can useAzure Cost Management. However, even though cloud efficiency is a core tenant of the Microsoft Azure Cost Management tool, optimization is not its strongest suit.
Another way to save money on Azure SQL Database and SQL Managed Instance is by committing to a reservation for compute resources compared to pay-as-you-go prices. With reserved capacity, you make a commitment for SQL Database and/or SQL Managed Instance use for a period of one or three years to get a significant discount on the compute costs. Or, In the provisioned compute tier of the vCore-based purchasing model, you can exchange your existing licenses for discounted rates on Azure SQL Database and Azure SQL Managed Instance by using Azure Hybrid Benefit.
ParkMyCloud continues to add ways to optimize cloud environments no matter what cloud service you use. Azure SQL database types are just the latest cloud resources you can manage in the ParkMyCloud platform. Scheduling and parking recommendations will be available soon on these resources so you can optimize your costs more efficiently and automatically.
If you’re new to ParkMyCloud, you can get started with a free trial.