Azure is now very much at the heart of Microsoft’s enterprise strategy, providing a place to build the next generation of applications and services. It’s easy to focus on it as a platform and as a host for virtual infrastructures, forgetting one if its other roles: a host for .

Over the last few months, I’ve been talking to a lot of companies that you’d think of as traditional infrastructure or software providers. They’re the type of company you’d talk to about adding storage hardware, security platforms, or hefty pieces of enterprise software. But now, as well as hardware and software for your datacenter, they’re also providing software implementations in the . So can you.

Introducing the Azure Marketplace

For example, if you’ve been using a NetApp storage appliance in your on-premises applications, you may well want to use the company’s Ontap storage management platform to link your cloud storage to your own datacenter. Using the Azure Marketplace, you can drop a virtual appliance into your virtual network, linking the two environments without having to change your management tool. Other well-known vendors in the Azure Marketplace include Barracuda, Chef, and Oracle.

There are two reasons this is happening:

on Azure. With simple service descriptions for all the elements of an Azure virtual infrastructure, from servers to networking to storage to Azure platform services, it’s an important part of working directly with Azure and integrating it with existing devops tools and services.

Once you’ve built an Azure virtual network, you can take all the elements you’ve used, turn them into an Azure resource group, and use that as the basis for an ARM template. ARM templates are , declarative descriptions of the contents of a resource group that can recreate it as and when required. They’re a useful tool for developers and admins, allowing repeatable deployment of proven environments stored in configuration management systems and used as part of a continuous integration build process.

With Azure Resource Manager, there’s a single consistent view for all the elements that go into building an Azure application. It’s accessible from the Azure Portal, from the command line (using or Bash), and through . By wrapping them in a resource group, all those elements also have the same life cycle: They’re created and destroyed at the same time, as well as replicated in other regions.

Building ARM templates

You make your first an ARM template from existing resource group by exporting its current state. The resulting JSON file is ready for editing, using any text editor, though there is an ARM syntax tool built into Visual Studio and available for . It’s easy to see how ARM templates describe each aspect of your virtual network, and you can quickly build a library of components that assemble into whatever infrastructure template you might need.

When a template loads into Azure, it’s parsed and checked before running as a series of Azure API operations. These operate in parallel to build, configure, and deploy your application, including setting up Azure services.

Complex applications don’t need to be in a single file, where it’s easy to make mistakes that can affect deployments. Instead, you use a series of templates, wrapped in a single master template. That way, you can keep specific functions separate, with one template handling Azure databases, one storage and another for VMs. The master template handles the application life cycle, controlling the functional templates. Alternatively, you can have separate templates for separate parts of an application or service, where you’re managing each part’s life cycle separately.

Because ARM templates can wrap other ARM templates, if you’re using an application from the Azure Marketplace, you can make it part of your own resource groups. This ensures that any future deployment accesses the same resources and services.

Mixing third-party services and virtual appliances in your Azure applications makes a lot of sense; such mashups let you take advantage of familiar tools or use features that would otherwise require significant configuration and management. With Microsoft certifying code and offering it through the Azure Marketplace, you’ve also got the assurance that it’s been tested—as well as access to support services and a single billing platform.