Although we’ve covered many topics in this book, we haven’t examined the primary concerns when moving to the cloud: pricing and support.
Pricing doesn’t just involve knowing the price of Azure resources. Companies often want to know how much cloud resources are going to cost before applications are deployed to the cloud, and once the application is deployed, they want to minimize costs as much as possible and have visibility into the costs of Azure resources.
Support is also critical in a cloud environment. As we’ve learned, when you move to the cloud, at least some portion of infrastructure management transitions to the cloud provider. When something goes wrong, it’s critical that you get the support you need to maintain the availability of your applications. It’s also important to understand what level of support is offered for specific services, especially services that might be in preview and not officially released.
In this chapter, we’ll examine all of these aspects related to Azure. We’ll cover your Azure subscription, how to plan and manage costs, the support options available to you, Azure service level agreements, and the release cycle for Azure services.
Skills covered in this chapter:
Understand Azure subscriptions
Understand planning and management of costs
Understand the support options available in Azure
Describe Azure service level agreements
Understand service lifecycle in Azure
You get an Azure subscription automatically when you sign up for Azure and all of the resources you create are created inside that subscription. You can, however, create additional subscriptions that are tied to your Azure account. Additional subscriptions are useful in cases where you want to have some logical groupings for Azure resources, or if you want to be able to report on resources used by specific groups of people.
Like any other Azure resource, you can manage your subscription in the Azure portal. You can view and manage costs, you can give other people access to it using RBAC, you can apply locks to it, and so on.
Each Azure subscription has limits (sometimes called quotas) assigned to it. For example, you can have up to 200 Azure Storage accounts per region in a subscription, up to 25,000 virtual machines per region, and up to 980 resource groups per subscription across all regions.
You can find details on all limits for subscriptions at: https://docs.microsoft.com/azure/azure-subscription-service-limits.
Microsoft support has the ability to increase limits in some scenarios. For example, if you have a good business justification, Microsoft can increase the limit of Storage accounts to 250 per subscription, per region. Some limits, however, cannot be increased.
Figure 4-1 shows an Azure subscription in the Azure portal.
On the Overview blade, you can see a cost breakdown for each of the resources. You can also see the spending rate for the subscription, along with a forecasted cost by the end of the current month. If you click on the Costs By Resource tile, you can see a further breakdown of the Azure expenses, as shown in Figure 4-2. In this view, you see costs by Service Name, Location (Azure region), and Resource Group, along with a graph of the costs for the month.
You can manage your costs in Azure by creating budgets. You’ll learn more about that in the Azure cost management portion of Skill 4.2: “Understand planning and management of costs.”
Azure invoices are also available for the subscription from within the Azure portal. You can see all of the past invoices by clicking on Invoices in the menu for the subscription, as shown in Figure 4-3.
You can create additional Azure subscriptions in your Azure account. This is useful in cases where you want to separate costs or if you are approaching a subscription limit on a resource. To create a new Azure subscription, enter subscription in the search box and click on Subscriptions as shown in Figure 4-4.
To create a new subscription, click on Add in the Subscriptions blade as shown in Figure 4-5.
After you click on Add, you need to choose which type of subscription you want to create. There are several types of Azure subscriptions.
Free Trial Provides free access to Azure resources for a limited time. Only one free trial subscription is available per account, and you cannot create a new free trial if a previous one has expired.
Pay-As-You-Go You pay only for those resources you use in Azure. There’s no up-front cost, and you can cancel the subscription at any time.
Pay-As-You-Go Dev/Test A special subscription for subscribers to Visual Studio that can be used for development and test. This subscription offers discounted rates on VMs, but you cannot use this for production applications.
You may have additional subscription options, depending on the type of Azure account you have.
Each subscription is associated with a unique identifier called a subscription ID. You can give each subscription a descriptive name to help you identify it, but Azure will always use the subscription ID to identify your subscription. When you talk to Microsoft about your Azure account, they’ll also often ask for your subscription ID.
As you begin to contemplate moving to the cloud, the first thing you’ll likely want to do is determine what your costs will be based on your resource needs. Once you’ve begun deploying and using Azure resources, managing your costs becomes important in order to stay within your budgets. Azure has tools that help you with planning and the management of your costs in Azure.
There are a couple of ways to purchase Azure products and services. You can purchase products and services directly from Microsoft, or you can purchase through a Microsoft Cloud Solution Partner (CSP).
When you purchase directly from Microsoft, you decide which Azure services you want to purchase, and you manage all of your deployments and usage of those services. Each month Microsoft will invoice you for your Azure usage, and you’ll have access to those invoices in the Azure portal. If you need support for your Azure resources, you get support directly from Microsoft using one of the available support plans for Azure.
You’ll learn more about support plans in Azure in Skill 4.3: “Understand the support options available in Azure.”
When you purchase from a CSP, you are not purchasing individual Azure resources. Instead, you are purchasing an entire cloud solution developed by the CSP. When you need to deploy your application, you work with the CSP to manage the deployment. The CSP also provides you information on usage costs of your resources, and if you need support, you get that support from the CSP, not from Microsoft.
When you purchase from Microsoft, you have the option to purchase directly from the portal or to have your services added to an existing Enterprise Agreement with Microsoft. Enterprise Agreements are designed for large companies that have a large amount of usage in Azure. When you sign up for an Enterprise Agreement, you work with Microsoft to come up with a yearly financial commitment for Azure usage. You are charged yearly for the committed price, and if you use more than your agreed-upon usage, you are charged for the additional usage at the rate you and Microsoft agree to.
Purchasing directly from Microsoft offers the most flexibility and control because you decide which individual resources you are purchasing. It’s also important to consider that your development team may have experience in developing against specific types of Azure resources, and by controlling the types of resources you use, you can reduce the number of potential problems in your applications.
On the other hand, if you have a need to deploy a complex cloud solution and you don’t have on-premises expertise in some areas, a CSP may be the best option for you. Because the CSP is certified to have expertise in the services they offer, they may be able to provide you with a more efficient solution that can help you reduce costs and support needs.
If you’ve never had an Azure free trial and you’ve never been a paid Azure customer, you are eligible for an Azure free account. A free account gives you 12 months of free access to the most popular Azure services, and many other Azure services offer free usage even after those 12 months have elapsed. You also get a $200 credit that you can use for Azure services for a 30-day period after you sign up for a free account.
The $200 credit cannot be used to pay for Azure Marketplace offerings. Many Azure Marketplace offerings, however, provide their own free trials.
Microsoft places a $200 spending limit on free accounts so that you don’t accidentally go over the $200 free credit. If you hit that spending limit, you will need to upgrade your subscription to a Pay-As-You-Go subscription in order to create additional resources.
At the end of the 30-day period, any resources that are not free for 12 months or more are deleted automatically, so you’ll want to ensure you upgrade your Azure subscription before the 30 days has elapsed if you want to continue using your resources.
Microsoft doesn’t require that resources used with a free account be used for development or testing only. You are free to use these resources for production use.
For a complete list of products included in the free account and how long they are available for free, see: https://azure.microsoft.com/free/free-account-faq.
As you’re planning your Azure deployments, you should keep in mind the factors that can impact your costs. The primary factors that impact costs are the resource type, how you purchase the resource, the Azure regions you’re using, and the billing zone your resources are in.
Azure services are billed according to meters associated with a resource. These meters track how much a specific metric has been used by the resource. For example, there is no charge specifically for an Azure virtual network, and you aren’t charged for any network traffic within a virtual network, but you are charged per gigabyte for traffic into and out of the virtual network from peered virtual networks.
Each Azure service has a pricing page that outlines estimates on pricing for that resource based on typical usage.
As you determine which resources you need to use in your Azure deployment, consider how those resources are going to use the metrics the resources charges for. For example, if you can plan your virtual networks so that you have fewer peered networks, you can save substantially over the long-term.
You may also find that purchasing Azure resources differently may offer cost savings. If you agree to pay in advance using an Enterprise Agreement, Microsoft will offer you a reduced rate. Longer term agreements offer even more price breaks. CSPs may also provide you with complete solutions that are more cost-effective than purchasing all of the resources yourself.
Microsoft’s costs for operating Azure services differs by region, even when those regions are within the same geographic boundary. Therefore, your pricing will differ based upon which Azure region you use. For example, a VM deployed to the Central US region will cost more than the same VM deployed to the East US region. Microsoft doesn’t provide a breakdown on their costs, but you can assume that electricity and other resources needed for an Azure data center are more expensive in the Central US region than they are in the Eastern US region.
Choosing the least expensive region for each of your Azure resources usually isn’t a good way to control costs. You may end up having to pay for network traffic across regions, and that may increase your costs above the amount you’re saving. Many Azure resources do not charge for network traffic within the same region, but they will charge for traffic across regions.
It’s also important to keep in mind that you’re not charged for network traffic into an Azure datacenter, but you are charged for network traffic out of a datacenter. However, your first 5GB of outbound data is free. After that point, you are charged a set amount on a tiered model. The amount you’re charged depends on the billing zone.
For more information on pricing of network bandwidth in Azure, see: https://azure.microsoft.com/pricing/details/bandwidth.
Azure geographies are broken out into four separate groups for billing purposes. These groups are called billing zones, or more commonly, simply zones. Microsoft’s costs for network traffic out of each zone differs, so your costs will differ as well.
Table 4-1 lists the zones in Azure and their corresponding geographies.
United States, Europe, Canada, UK, France
Asia Pacific, Japan, Australia, India, Korea
DE Zone 1
The cheapest outbound networking costs are in Zone 1. DE Zone 1 is the second cheapest, followed by Zone 2 and Zone 3.
As you can see, there are many factors that can impact your costs in Azure, and it can be difficult to estimate costs based on all of these factors. Fortunately, Microsoft offers a pricing calculator that can help you get a handle on estimating your costs as you move to the cloud.
The Azure pricing calculator can help you get an estimate of expenses based on the products you intend on using, as well as where those products will be deployed, and so on. You can access the pricing calculator by browsing to: https://azure.microsoft.com/en-us/pricing/calculator.
The first step in calculating an estimate of your Azure expenses is to select which products you want to use. As shown in Figure 4-6, some of the more common Azure products are displayed by default, and you can add any of those products by clicking on its tile.
If the product you want is not listed, you can either click on a category of products in the list on the left or you can search for your product by entering its name in the search box.
After you add the products you want to use, scroll down to configure the specific details of each service. These details vary based upon how Microsoft charges for the product. Figure 4-7 shows the options for Azure SQL Database.
Clicking on Pricing Details will open the pricing page for the product in a new tab. You can also click on Product Details or Documentation to read more about the service in order to help you make better decisions about the options you select.
Once you’ve configured a product based on your needs, you can click the Clone button to add another instance of that product to your estimate. For example, suppose you need two Azure SQL Databases for your app, and each of them are going to be using the same service tier, instance size, and so on. The easiest way to add these is to add one Azure SQL Database product to your estimate, configure it with the desired pricing options, and then click Clone to add the second instance.
To review your pricing estimate, scroll to the bottom of the page. As shown in Figure 4-8, you can choose a support plan to add to your estimate. If you have an Enterprise Agreement or Microsoft Customer Agreement, you can choose them in order to have that pricing applied to your estimate. You can then click Export to save your estimate as an Excel file, then select Save to save your estimate in the pricing calculator to make changes later on, or select Share to create a sharable link to your estimate so that others can view it.
If you save an estimate in the pricing calculator, you can access it later by clicking the Estimates tab at the top of the page.
We’ll cover the support options in Skill 4.3: “Understand the support options available in Azure”.
The pricing calculator is helpful for estimating your expenses for new applications in Azure, but if you have on-premises applications you want to migrate to Azure and you want an estimate of how much you can save in Azure, the TCO calculator is a better choice. You can access the TCO calculator by browsing to: https://azure.microsoft.com/en-us/pricing/tco/calculator.
The first step when using the TCO calculator is to add details about your on-premises servers, databases, storage, and network usage. In Figure 4-9, an on-premises server has been configured for a Web App. You can configure all of the details about the server, including the OS, whether it’s a VM or a physical server, and more.
Databases and storage systems that are on-premises should also be added, in addition to any network usage for your application. In Figure 4-10, a storage system has been added, and network usage for the app has been specified.
After entering all of your on-premises workloads, you can view the assumptions the TCO calculator uses by clicking Next. The TCO calculator uses a comprehensive list of on-premises expense assumptions that Microsoft has put together based on years of experience, and these assumptions are used to provide you with the best estimate possible of your cost savings. As shown in Figure 4-11, assumptions include items such as whether you’ve purchased a Software Assurance plan for your on-premises servers, details on your current expenses on-premises, your IT labor costs, and much more. For an accurate TCO estimate, it’s best to carefully record your expenses before generating a TCO report.
After you adjust your assumptions, scroll to the bottom of the screen and click Next to view your TCO report. Your TCO report shows you how much you can save over the next 5 years by moving your app to Azure as shown in Figure 4-12.
A TCO report includes detailed charts of expense savings, and at the bottom of the report, you’ll find a breakdown of on-premises costs and Azure costs so you can easily determine where you’ll save money. Just as with the pricing calculator, reports generated by the TCO calculator can be downloaded, saved, and copied by clicking the appropriate button as shown in Figure 4-13.
Minimizing your costs in Azure begins with careful planning before you even create a single Azure resource. Planning needs to involve the key players in your organization such as your finance department, managers who are responsible for budget planning and implementation, and application designers who are in the best position to decide what types of resources are likely needed.
Tools, such as the pricing calculator and TCO calculator, are valuable in planning, but they are only as accurate as the data you feed to them. Make sure that, as you analyze your on-premises workloads, you ensure that all of the resources your app is using are actually required by the app. If you are using a server that is far more powerful than needs dictate, that’s an important point to consider in your planning.
An important part of minimizing costs in Azure is to ensure that you fully use all of your cloud resources. Because most cloud usage is billed on consumption of a resource, not using portions of a resource represents unnecessary expenses. Proper planning can help avoid non-utilized cloud resources.
As you’re analyzing your on-premises usage and planning your move to Azure, you should take the opportunity to organize your resources based on expense accountability. You can then use that organizational structure in Azure to apply tags to resources so that each organization within your company has proper visibility into their expenses. This will help to ensure that if a resource is being under-utilized, the right people will quickly have visibility into that so adjustments can be made.
Once planning is complete, you’ll need to determine which Azure subscription plan is most suitable for your needs. If you’re planning on using Azure to host a long-term production application, you can save money by purchasing an Enterprise Agreement and agreeing to a longer-term commitment. However, if you’re only planning on conducting test for a short period of time, a Free or Pay-As-You-Go subscription is a better choice.
At this stage in your planning, the pricing calculator and TCO calculator can be helpful in estimating your cloud expenses. Using the option to share a copy of your estimates and reports can help ensure that everyone in your organization is on the same page, and can help you adjust your calculations as necessary.
As you’re planning your cloud deployments, make sure to account for the fact that Azure can scale your resources based on application needs. Don’t default to the most powerful servers and other resources you think you will need. Instead, choose product SKUs that meet your minimum needs and configure scaling rules that can accommodate additional resource needs as application usage patterns increase.
Once you’ve deployed resources to Azure, it’s important to monitor resource usage carefully. While you can use tools available in the Azure portal to review usage of individual resources, it’s more effective to gain an overall view of resource usage using tools such as Azure Advisor.
If you need to refresh your memory on using Azure Advisor, see “Azure Advisor” in Skill 2.4: "Understand Azure management tools".
Your Azure invoice will also have details on resource usage, and as long as you organized your resources effectively, and tagged resources based on organizational alignment, you can easily provide different organizations within your company with details on their specific usage.
For more information on Azure Cost Management, see https://docs.microsoft.com/azure/cost-management.
If you have smaller batch jobs that you want to run in Azure, you can save substantially by using VMs that Microsoft has allocated in data centers, but that aren’t being used by customers. This offering is called Azure Batch, and it uses non-utilized VMs to run workloads that aren’t time-sensitive and that don’t need to run for long periods. You can read more about Azure Batch at: https://docs.microsoft.com/en-us/azure/batch/batch-low-pri-vms.
For more information on best practices for minimizing costs, see: https://docs.microsoft.com/azure/cost-management/cost-mgt-best-practices.
Azure Cost Management is a tool in Azure that makes it easy to analyze your costs at a granular level. Cost Management allows you to create a budget for your Azure expenses, set configurable alerts so you’ll know if you are approaching a budgeted limit, and analyze your costs in detail.
To get started with Cost Management, open the Azure portal and search for Cost Management, and click on Cost Management + Billing.
You will also see Cost Management listed under Azure Marketplace. That’s a different offering that is based on Cloudyn, a cloud expense management company that Microsoft purchased.
Once Cost Management + Billing loads in the portal, click on Cost Management as shown in Figure 4-14 to access Cost Management.
To effectively monitor your costs, you should create a budget in Cost Management. Creating a budget isn’t required, but it will allow you to visualize your spending compared to your planned expenses.
Click on Budgets, and then click Add, as shown in Figure 4-15.
Enter a name for your budget.
Enter a spending amount and the period at which your spending resets.
Enter a start date for your budget.
Enter an expiration date.
Configure any alerts for your budget.
Enter email addresses of people who should be sent any triggered alert information.
Click Create to complete your budget.
In Figure 4-16, a $10,000 budget is being created for a fiscal year. An alert is being added when 80% of that budget has been reached, and Azure will send an email to [email protected] if costs have reached $8,000.
After you create a budget, click on Cost Analysis to see how your spending compares to your budget. In Figure 4-17, you can see how we’ve spent a little over the budgeted yearly spending, based on the current month of May. As you can see, we are spending over twice as much as we’ve budgeted.
In Figure 4-17, you can view expenses for an entire year because the budget was created for a fiscal year. Click on Custom View to choose to view only accumulated costs, which would show the same view as Figure 4-17. However, when you do that, you won’t see your budget included in the graph. You can also choose to view daily costs, costs by service, or costs by resource. For each view, you can choose a date range, a granularity (such as daily, monthly, and so forth), and how you want the display to group by expenses (by billing period, resource group name, and so on).
To drill down further into the expenses, you can apply a custom filter by clicking Add Filter. In Figure 4-18, a filter is being added to show only expenses for an application named databricks.
Azure provides many diagnostic tools you can use to troubleshoot your application when things go wrong, but it’s likely you may need assistance from Azure support at some point. Whether you need additional help troubleshooting your application, or you need support for the Azure platform itself, Microsoft offers numerous support options for interacting with their world-class support organization.
Microsoft offers numerous support plans for Azure customers. Before we get into the details of each plan, there are a few terms you should be familiar with related to Azure support.
Business hours Microsoft defines business hours for most countries as weekdays from 9:00 AM to 5:00 PM local time. However, in North America, business hours are weekdays from 6:00 AM to 6:00 PM Pacific time, and in Japan, business hours are weekdays from 9:00 AM to 5:30 PM. In all regions, business hours do not include holidays.
Severity A case Microsoft uses Severity A to refer to a production application that is entirely down, or when a critical component of a production app is unavailable.
Severity B case Microsoft uses Severity B to refer to a production application that is moderately impacted. This severity level is subjective and agreed to by Microsoft support and the customer.
Severity C case Microsoft uses Severity C to refer to a situation that is causing minimal impact. These are cases that refer to problems no longer happening or cases that aren’t impacting a production application.
Microsoft offers the following support plans for Azure.
Basic Limited support that’s free for all Azure subscriptions.
Developer Azure support for free trial and non-production applications.
Standard Azure support for production applications.
Professional Direct Azure support for business-critical applications.
Premier Contracted support for all Microsoft products, including Azure.
All support plans offer 24x7 support for any billing issues or subscription issues, access to Azure Advisor recommendations, the Service Health Dashboard, and the Health API. All paid support plans offer access to Microsoft support engineers.
Microsoft offers numerous support options outside of the support plans outlined here. They will be discussed later in this chapter in the “Available support channels outside of support plans” section.
Table 4-2 outlines the differentiators between paid support plans.
$29 per month
$100 per month
$1,000 per month
Contract price varies
Access to support engineers via email only during business hours.
Access to support engineers 24x7 via email or phone.
Access to support engineers 24x7 via email or phone.
Access to support engineers 24x7 via email or phone.
Severity C only.
All severity levels.
All severity levels.
All severity levels.
Fewer than 8 business hours.
Sev C: Fewer than 8 business hours.
Sev B: Fewer than 4 business hours.
Sev A: Under 1 business hour.
Sev C: Fewer than 4 business hours.
Sev B: Fewer than 2 business hours.
Sev A: Under 1 business hour.
Sev C: Fewer than 4 business hours.
Sev B: Fewer than 2 business hours.
Sev A: Under 1 business hour or under 15 minutes with the purchase of Azure Rapid Response or Azure Event Management.
Guidance based on best practices.
Customized guidance that includes design reviews, performance tuning, configuration assistance, and so on.
Assistance with onboarding, service reviews, and Azure Advisor consultations.
Service reviews and reporting led by a technical account manager (TAM) assigned to your account.
Web seminars conducted by Azure engineering teams.
Web seminars conducted by Azure engineering teams. On-demand training coordinated via TAM.
Provided by delivery manage for Pro Direct.
Provided by TAM.
Available via Azure Event Management for an additional cost.
You can change your support plan or cancel your support plan via the Azure portal. If you cancel a support plan partway through the month, you are not refunded for the prorated amount.
Azure support cases are opened using the Azure portal. Support cases can be created from the portal home page by clicking on Help + Support from the menu on the left side of the page. You can also create a support case from within a particular Azure resource by opening the resource and clicking on New Support Request from the Support + Troubleshooting section of the menu on the left.
When you open a support case from within an Azure resource, the resource type and resource name are automatically populated for you. If you open a support case from the portal home page, you will need to select the resource before you can open a support case.
In this section, we will show the experience of creating a support case from the portal home page.
After clicking on Help + Support in the Azure portal, you’re presented with some options for self-help as shown in Figure 4-19.
The self-help options included here are general in nature and include links to documentation and links to forums where you can ask for help from other Azure users. You can also tweet to @AzureSupport for quick assistance for simple issues.
To create a support case to a Microsoft support engineer, click on New Support Request. Creating a support case is a four-step process, the first of which is to provide basic information as shown in Figure 4-20.
Select Yes to indicate you have an issue related to an Azure subscription. (The No option is for problems related to Azure Active Directory.)
Select the issue type. The issue type can be a billing issue, a subscription issue, a quota issue, or a technical issue. In this example, we’re using the Technical issue type.
Select the Azure service.
Select the resource you need help with. (Your choice will be restricted to the type of Azure service you selected.)
Select your problem type. Problem type options will differ depending on the service type.
Select the problem subtype. Problem subtype options will differ depending on the service type.
Enter a brief subject for your support case.
Click Next: Solutions to process to the next step.
Microsoft constantly analyzes historical customer issues so they can offer you possible solutions based on the information you provide when opening a case. They use the problem type, the problem subtype, and the text you enter in the subject to determine what the problem might be.
In Figure 4-21, you can see that Microsoft is suggesting that the restart might have been due to a user-initiated restart of the VM. If you decide that this didn’t cause the issue, click on Next: Details to move to the next step.
The final step in creating a case is to enter the details for your issue as shown in Figure 4-22. Some of these options will differ depending on the resource type. In this example, options are for an Azure VM.
Enter any errors that you received.
Select the operating system from the dropdown.
Enter a description of your issue.
Enter a date and time for when your issue started. If the issue was a single event, enter the date and time that the issue occurred.
Upload any relevant files such as screenshots or error logs.
If you would like to share diagnostic information with Microsoft, check the Consent checkbox.
Choose your severity level. If you have a Developer support plan, you will only be able to select Severity C.
Choose your contact method. Microsoft will contact you within a time period dictated by your severity level and your support plan.
Choose your support language.
Edit your contact info if necessary.
Click Next: Review + Create to continue. You’ll be shown the information you entered for confirmation and will have a Create button to complete the support case.
If you don’t have an Azure support plan, you can still get help with Azure technical issues from forums or from Twitter, but you won’t have any support SLAs, and you won’t be able to talk directly to a Microsoft support engineer.
There are two forum channels available for Azure issues.
MSDN forums Accessible at: https://aka.ms/MSDNForums. Search for your product to find the relevant forum.
Stack Overflow forums Accessible at: https://stackoverflow.com. Click on Tags and search for your Azure service.
MSDN and Stack Overflow forums are user-to-user forums where Azure customers can help each other. Microsoft also monitors the forums and can provide assistance with simple issues. However, in some cases, they will ask you to open a support case.
You can also tweet to @AzureSupport for assistance with simple issues. This is the official Microsoft Twitter account for helping you find answers to common questions and support for basic issues.
To assist you with finding documentation and blog posts on common issues, Microsoft developed the Knowledge Center. You can access the Knowledge Center by browsing to: https://azure.microsoft.com/en-ca/resources/knowledge-center.
As shown in Figure 4-23, you can filter on the Azure product you’re interested in. Each product has a series of tags that you can use to further filter the links that you see in the Knowledge Center. You can also enter in a search term to find something more specific to your problem.
Many of the services you use today include a service level agreement (SLA) that serves as a contract between you and the service provider for a certain level of service.
SLAs establish specific targets for availability, and they also define what the service provider will do when those targets aren’t met. SLAs are expressed as a percentage and are almost always 99% or higher. The highest level of availability expressed in an SLA is 99.999%, commonly referred to as 5 nines. To provide you with some context as we discuss SLAs, a service with an SLA of 5 nines guarantees that downtime over an entire year will not exceed 5.56 minutes. A more reasonable SLA of 99.9% guarantees that downtime over the period of a month will not exceed 43.2 minutes.
For details on SLA levels and maximum downtime allowed within the SLA, see: https://docs.microsoft.com/azure/architecture/resiliency/#slas.
An important concept in cloud service SLAs is that the cloud provider considers an application to be outside of SLA only when the availability percentage is not met due to an issue that the cloud provider can control. In other words, if you deploy new code to your application, and it causes your application to crash, the cloud provider is not going to consider that a breach of SLA. If you install a component onto your virtual machine and it causes the machine to go down, that’s not within the cloud provider’s control, and isn’t classified as not meeting SLA.
Because SLAs only refer to problems within control of the cloud provider, when an application suffers from lack of availability, it’s important to determine whether the problem is a platform issue or an issue with your code or configuration. Answering that question can be more difficult than you might think.
Azure is a highly complex environment involving a large number of services operating together. For example, Azure App Service (one of Azure’s most popular services) uses Azure cloud services, Azure DNS systems, Azure Storage, Azure SQL Database, and other Azure services under the hood. Performance degradation of any of those services can impact the availability of an application running in App Service. If you report that your App Service application is unavailable, Microsoft needs to determine whether that’s a problem on their end or a problem with your application.
Microsoft maintains an enormous amount of diagnostic data on all Azure operations across all Azure services. When you open a support case with Microsoft to report that your application is unavailable, Microsoft can perform data analytics against this data to determine if there was a problem with the Azure platform itself.
If you believe that your application’s availability has fallen below the SLA, it’s your responsibility to submit a claim to Microsoft. You can do that by opening a support case. If Microsoft determines that the SLA has not been met, you may receive a credit on your Azure invoice. The amount of the credit depends on the duration that SLA was not met and the specific Azure service’s SLA policy.
In order to be eligible for a credit due to a failure to meet SLA, you must submit a claim to Microsoft within two months of the end of the billing cycle during which the downtime occurred.
Most Azure services offer an SLA of at least 99.9%, and higher SLAs can be achieved with additional configuration by the customer. For example, a single VM using Premium storage for all disks has an SLA of 99.9%. If you deploy two or more VMs into the same availability set, that SLA increases to 99.95%. Deploy those two or more instances across two or more availability zones within the same Azure region and the SLA moves to 99.99%.
Microsoft occasionally changes SLAs. If the terms of an SLA change, the new terms will go into effect for you only when you renew your Azure subscription. Until that time, you will fall under the SLA that was in effect when your subscription was last renewed or when you signed up for an Azure subscription.
Because SLA varies between Azure services, and because specific configurations can impact the SLA of a single Azure service, it’s important to be able to determine the specific SLA for the Azure services you are using. Microsoft provides a web page that has details on the SLA for every Azure service. You can find it at: https://azure.microsoft.com/en-us/support/legal/sla.
As shown in Figure 4-24, once on the SLA web page, you can select a category to see all Azure services in that category. You can also enter your service name in the search box to find the SLA for that service. Once you locate the service you’re interested in, click it to read details on the SLA.
When you click on a service, you’ll see details on the SLA provided by that service. Figure 4-25 shows the SLA page for Azure Virtual Machines. The three bullet points at the top of the page outline the SLA for Azure VMs.
The Introduction section describes Azure SLAs in general. The General Terms section describes SLA terms such as Management Portal, Service Level, and Downtime that refer to all Azure services. It also explains how you can make a claim and limitations for Azure SLAs.
The SLA Details section applies to the specific Azure service you’re viewing. For example, this section on the VM SLA page defines VM-specific terms that relate to the SLA for VMs. If you scroll down, you’ll see additional details shown in Figure 4-26, including how to calculate availability and the amount of credit you may receive if an SLA isn’t met.
If your application uses multiple Azure services, multiple SLAs will apply to you. If you experience downtime, you must submit a claim for all Azure services that fell below SLA if you want to be considered for a credit. However, monetary credit isn’t your only concern related to availability of your application. Downtime in your application impacts your business negatively, so you want to always ensure that you have the highest SLA possible, and when you’re dealing with multiple Azure services with different SLAs, it’s important to understand how that impacts your overall SLA.
When calculating the SLA for an application using multiple Azure services, you must calculate a composite SLA based on the services you’re using. For example, if you have an App Service Web App that also uses a single Azure VM using Premium storage, you have to combine the SLA for both services to determine your application’s overall SLA.
It’s important to understand that individual service SLAs still apply to you when you’re using multiple Azure services. However, understanding composite SLAs is important because it allows you to determine when a specific configuration is increasing the likelihood that you will experience downtime.
The SLA for App Service is 99.95%, and the SLA for a single VM running Premium storage is 99.9%. Therefore, your overall SLA for your application is 99.95% x 99.9%, or 99.85%. By deploying two VMs into two availability zones in the same region, you can obtain a 99.99% SLA for your VMs, and that increases your overall SLA to 99.94%.
For more information on computing composite SLAs, see: https://docs.microsoft.com/azure/architecture/resiliency/#composite-slas.
Azure is an always-changing environment, and new services are always being introduced. Existing services also evolve over time and introduce new features. It’s important to understand the service lifecycle in Azure, how you can keep up with changes, and how a service’s lifecycle might impact your support and your SLA.
As Azure product teams develop new services and features, it’s important for them to get feedback from customers using those services and features in a real-world environment. For that reason, Microsoft will often offer new services and features to customers as preview offerings. While the Microsoft official term is preview, you will often see people refer to these services and features as being a beta offering.
Services and features that are in preview do not offer an SLA, and they are not meant to be used in production applications. Preview features are also usually not offered in all Azure regions. Microsoft will provide documentation on which regions are available for a specific preview.
Preview services and features are sometimes first offered as a private preview. In private preview, the service or feature is made available to a small set of customers for testing. Access to a private preview is sometimes by invitation from the engineering team developing the service or feature. In other cases, Microsoft may provide a way for any customer to sign up for access to the private preview. If registration is open to everyone, Microsoft will close registration after a target number of customers have signed up.
Many previews are for features of an existing service. For example, App Service may add a new feature for the existing service, and before that feature is fully released, it will go through some period in the preview phase.
Private preview services and features commonly expose only a subset of the functionality that will eventually make it into the service or feature. Microsoft will often ask customers using a private preview to test specific scenarios and provide feedback. This helps engineering teams to uncover bugs and usability issues in the complex real-world environments that customers are using.
Not all services or features offer a private preview. If private preview isn’t offered, the service or feature is first made available as a public preview. All services and features go through some period of public preview.
Private previews may be offered to customers at no cost, but it’s more common for them to be offered at a substantial discount
Once a service or feature meets a specific bar set by the engineering team, it will transition to public preview. This usually occurs once the service or feature is fully functional or very close to it. However, if there are bugs in a specific part of the functionality that the engineering team feels is critical, they may delay public preview until those bugs are fixed.
Features and services that are in public preview are provided at a discounted rate, but like private preview features and services, they typically don’t offer an SLA and are provided as-is.
Customers participating in a private preview are sometimes given a secret link to the Azure portal that enables the service or feature. When the customer uses that link, Microsoft can use their Azure subscription ID to determine if they have registered and are approved for the private preview. If they aren’t, the feature or service won’t be available, even if they use the secret link.
In other situations, the Azure portal experience hasn’t been developed for a private preview feature or service. In those cases, customers are given command-line instructions for using the service or feature. It’s more common for the portal user interface to be developed during the private preview phase, so early adopters are usually given command-line access only.
Once a service or feature reaches public preview, it is made available to all customers in the regions where it’s available, and no registration is required to use the service or feature. A preview badge will be displayed in the Azure portal so that users will know that the service or feature is a preview offering. Figure 4-27 shows the Docker container features in an App Service Web App running on Windows, and each container setting carries a preview badge.
Services and features that are in public preview are usually supported by Microsoft just as though they were fully released. However, SLAs don’t apply to previews, and there are some situations where a service or feature won’t be supported by Microsoft support engineers while in preview. In those cases, you may be referred to forums for support.
Once a preview service or feature reaches a quality and availability bar suitable to the engineering team, they will declare general availability or GA. At this point, the service or feature is fully supported.
Once a service or feature reaches GA, it falls under the SLA Microsoft provides. If it’s a new service, a new SLA will be published on the SLA web page. For new features of existing services, once GA is reached, the feature will inherit the SLA of the service it’s a feature of.
If you were using a feature or service during public preview, you will usually not have to do anything to be officially supported under GA. However, in some situations, Microsoft will ask that you delete any resources created during preview and recreate them. This usually happens when remnants left over from preview code might cause a problem with a service or feature running in GA.
When a service or features reaches GA, it may not GA in all Azure geographies. In those cases, other geographies will usually GA later in the lifecycle of the service or feature. Preview pricing may also remain in effect for some period of time after GA. Details such as this are published on the official GA announcement on the Azure website.
Microsoft will usually post announcements of new features and services on the Azure blog at: https://azure.microsoft.com/en-us/blog/topics/announcements. However, a more reliable source of information on feature and service updates is the Azure Updates web page available at: https://azure.microsoft.com/en-us/updates.
Figure 4-28 shows the Azure Updates web page. By default, all updates are displayed, but you can filter on specific types of update using the Update Type dropdown.
To show only updates on a particular stage of product lifecycle, use the tabs at the top of the list. The Now Available tab shows all updates about GA services and features. The In Preview tab will show all services and features in public or private preview. The In Development tab will show information related to features or services that are currently in development but not yet available to customers.
Private previews are sometimes not announced to the general public, so they may not always appear on the Azure Updates web page. Likewise, not all features or services in development will be announced.
To show updates only for the products you’re interested in, you can search for a product by entering it in the search box. You can also click Browse and select one or more products from the list as shown in Figure 4-29.
Let’s put the concepts you’ve learned in this chapter into practice using a thought experiment. Answers to this thought experiment can be found in the section that follows.
ContosoPharm has an on-premises application that uses a web server installed on a physical server running Windows Server 2016. It uses another physical server running SQL Server for back end data storage. They are also storing scanned documents in a network attached storage (NAS) device.
The database contains sales information for pharmacies that stock ContosoPharm products. Sales personnel access the database using a section of the website allocated to sales. The regulatory division of ContosoPharm uses a separate section of the website to upload scanned documents into the NAS device.
The IT director at ContosoPharm has recommended that the application be moved to the cloud. However, the CFO of the company requires that a detailed report be submitted proving that ContosoPharm can save money using the cloud.
The CIO, John, is concerned about separation of departments. In the current configuration, sales personnel are not able to access any of the resources used by the regulatory division, and they want to ensure that this policy remains in effect. John also wants to make sure that the critical nature of the application is realized after it moves to the cloud. If there is a problem with application availability, John wants to ensure that they can engage someone at Microsoft about the problem within an hour’s time.
The CEO, Jill, also has concerns about moving to the cloud. Jill’s concerned about over-spending on cloud resources, and because expenses at ContosoPharm aren’t the same month-over-month, she’s concerned about keeping an eye on expenses over the long term.
You are charged with advising the IT director on meeting the requirements of the various C-level executives at ContosoPharm in order to convince them to move to Azure.
This section provides the answers to the thought experiment.
You first decide to address the cost concerns of the CFO. Using the TCO calculator, you put together a detailed report that shows how much you can save over the next five years by moving to Azure. The TCO calculator takes all savings into account, including savings on computer hardware, electricity costs, and IT infrastructure costs. Using this method, you are able to clearly show a savings of tens of thousands of dollars over a five-year period. You are also able to download a copy of the report so that other C-level executives can refer to it to bolster your case.
You also put together an estimate of your total Azure expenses using the pricing calculator. By exporting this report to an Excel spreadsheet, the CFO is able to easily incorporate it into existing budgets to see how Azure expenses fit into financial planning.
To address the CIO’s concerns about separation of departments, you recommend that two Azure subscriptions be used. Resources for sales can be created under one subscription and resources for the regulatory division can be created under the other subscription. You can then use RBAC to enforce access restrictions to the subscriptions so that only the people you want to have access can reach resources under each subscription.
To address the CIO’s concerns related to support, you recommend that ContosoPharm purchase a Pro Direct support plan. While this support plan will cost ContosoPharm $1,000 per month, it will give them access to Microsoft support engineers 24x7, and if a critical problem arises that impacts application availability, ConotosoPharm can open a Sev A support case with Microsoft and receive a response within one hour.
To address the CEO’s concerns, you put together a presentation that outlines Cost Management. Your presentation includes information on creating budgets that you can apply to expenses. You show how you can create alerts that will notify the appropriate people when expenses reach a certain point. Because expenses vary month-over-month, you demonstrate how budgets can apply to particular timeframes and how multiple budgets can be created to cover all spending scenarios.
You also present information on cost analysis in Cost Management and how you can easily view expenses broken down by services, resource groups, locations, and so on. These reports can also be scoped to specific subscriptions so the C-level executives can review expenses only for the sales personnel, only for the regulatory division, or for everyone combined.
Finally, you present information on Advisor Recommendations in Cost Management and how this feature can help to highlight areas where cost savings can be achieved. You also recommend that if Jill is truly interested in using Azure resources over the long-term, ContosoPharm can likely save money by purchasing an Enterprise Agreement and agreeing to a long-term commitment for usage of Azure resources.
Costs and support are among the top concerns for companies moving to the cloud, and it’s important to understand how to minimize costs while ensuring your support options meet your needs. In this chapter, you learned about the following concepts related to pricing and support.
Azure resources are created within an Azure subscription.
Subscriptions have limits associated with them, and you can create additional subscriptions if you need more than these limits allow.
Azure offers a free trial subscription and Pay-As-You-Go subscriptions.
You can purchase Azure products and services directly from Microsoft or through a Microsoft Cloud Solution Partner (CSP).
CSPs sell entire cloud solutions and you don’t manage individual Azure resources.
You can purchase Azure products and services from Microsoft in the Azure portal or you can commit to a long-term use of Azure resources and save money with an Enterprise Agreement.
A free trial subscription gives you free access to the most popular Azure services for one year. It also provides $200 in credit towards Azure services and products.
Azure services are billed according to meters that are associated with a resource.
Costs for Azure services may vary in different regions. Costs also vary by billing zones that include specific geographies.
The pricing calculator makes it easy to estimate your Azure costs by selecting the products you intend on using, and estimates can be shared, saved for later reference, or exported to Excel.
The TCO calculator allows you to determine your cost savings in Azure over on-premises expenses over a period of five years.
You can control your expenses in Azure by ensuring that you fully utilize all Azure resources you’re paying for.
You can save money when you need cloud resources for smaller jobs that aren’t time-sensitive by using Azure Batch to run your workloads on non-utilized VMs.
Creating budgets in Azure Cost Management can make it easy to see when expenses are approaching pre-defined limits, and alerts can be used to notify the proper people when expenses reach a defined threshold.
Cost analysis can help you to see which resources are contributing to your Azure expenses.
Microsoft offers free support for subscription issues and billing issues. Technical issues require the purchase of an Azure support plan or a Premier account.
Support plan levels dictate when you can speak to Microsoft support personnel and the response time that Microsoft promises when you open a support case.
You can open a support case from within the portal using either the home page or the New Support Request menu option while within a specific Azure resource.
Microsoft provides MSDN forums and Stack Overflow forums for support outside of support plans. You can also use the @AzureSupport Twitter account for simple issues.
The Knowledge Center can help you find support articles for specific Azure products.
Azure services offer a service level agreement (SLA) that guarantees a certain level of availability. Services that fail to meet SLA may make you eligible for a credit on your Azure invoice.
You can use the SLA web page on the Microsoft website to find SLA details for all Azure services.
The Azure service lifecycle can include a private preview and always includes a public preview and general availability (GA).
Services and features in preview do not offer an SLA and are usually available at a discount.
Private previews are usually made available using command-line tools. Public previews are available to everyone in the Azure portal.
Once a feature or service meets the quality level for full support and SLA, it becomes generally available (GA).
The Azure Updates page provides details on feature and service updates and lifecycles.