As of today, Azure is present in 54 regions, several sovereign clouds, as well as in our customers’ data centers through Azure Stack. Consistency is a fundamental pillar of Azure, no matter which region you are deploying your application to, the way you write your scripts and templates is the same.
Consistency is great because it allows you to reuse knowledge and artifacts. This post will provide you with key things you should be aware of when writing your applications to target the different Azure clouds.
- Resource type availability and versions will vary across different regions and clouds.
- Available images, virtual machine (VM) sizes, and extensions can vary between the clouds.
- Azure resource manager (ARM) and the storage endpoints can also vary.
In short, it’s important that you design your code and templates to accept parameters for the above items. Doing so will ensure that you can easily deploy your resources across different clouds. In addition to parametrization, you should also consider leveraging nested templates which could allow you to break down your solution into smaller chunks that can be deployed across different clouds. For more information, read the article, "Develop Azure Resource Manager templates for cloud consistency."
There is also great guidance from our AzureCAT team, which focuses on helping our customers to deploy Azure Stack. Please check out the blog post, "Design considerations for hybrid applications," for more insight and guidance. We had a great line up of sessions at Microsoft Ignite 2018 as well, all of which have valuable resources you can reuse. Here are some sessions that we recommend:
- Kirtana Venkatraman and Michela Sainato, Program Managers for Compute and ASDK, walk you through several areas of interest for developers such as endpoints, tools, powershell and CLI, and Azure Stack Developer Kit.
- Siddique Juman, our Program Manager for developer tools and SDKs, gives a great overview of consistent app development using visual studio.
- Shriram Natarajan, the Program Manager for Azure Services in Azure Stack, walks you through API Profiles followed by a demo of the Azure SDKs. This session was our highest rated session at Ignite!
Finally, from the many features and capabilities described in the above links, I’d like to showcase API Profiles as it’s the core of our capability to allow you to write code that effectively takes advantage of the hybrid capabilities and consistency of Azure. API profiles represent a set of Azure resource providers and their API versions that target multiple Azure Cloud Services. The following are the different types of API Profiles:
- latest
This contains the most recent API versions released in global Azure.
- yyyy-mm-dd-hybrid
Released at a biannual cadence, this release focuses on consistency and stability across multiple clouds. This profile targets optimal Azure Stack compatibility.
- yyyy-mm-dd-profile
This feature sits between optimal stability and the latest features.
I hope you find the information in this post useful! Stay tuned for new topics around developing hybrid applications and feel free to follow me and my team on Twitter.
To learn more about hybrid application development, read the previous post, "Developing hybrid applications with Azure Stack."