• 6 min read

IaaS just got easier. Again

Announcing public preview for template-based deployments of Compute, Networking and Storage, using the Azure Resource Manager to transform building, deploying and managing large-scale complex applications into simple actions.

It was about three years ago, when we first demonstrated Virtual Machine support at the Meet Azure event. We were enthusiastic to show how easy it was to launch and deploy applications using these new agile and powerful Virtual Machines, also showing the first Linux VM on Azure.

Today, I am excited to announce the public preview for template-based deployments of Compute, Networking and Storage, using the Azure Resource Manager. With this new release, our goals are simple: to transform building, deploying and managing large-scale complex applications into simple actions. This new template language will enable you to easily stitch together VMs, Virtual Networks, Storage Accounts, NICs, Load-balancers, and other PaaS services, like App Service and SQL Databases, in a single coherent application model. You can model application installations directly on the VMs, using the integrated extension support.

Once deployed, you can easily add tags to any of the resources, for simple resource management. Finally, you can configure role-based access at the API level, enabling your team to deploy with the ease and speed of the Azure CLI or PowerShell but with the security you demand. Whether you are a developer, system administrator, or engineering living in a DevOps world, never before has the creation and management of applications with VMs been this fun, fast and easy!

This public preview is available today, in East US, West US, West Europe, East Asia, and Southeast Asia.

Templates made easy

With the launch of the Azure Resource Manager last year, we introduced a new JSON-based template language, enabling you to deploy various services on Azure. With today’s announcement, templates include Virtual Machines, Virtual Networks, Availability Sets, Network Interfaces (NICs), Storage Accounts, Load Balancers, Network Security Groups, and Public IPs. Today’s release will allow you to create everything you need for a complex application using a simple file that you can check-in and collaborate on. It also allows these distinct resources to be deployed following a specific dependency chain and allows passing of parameters between resources, where required.

You can even combine the deployment of Virtual Machines with other services offered on Azure, like a Web App, a SQL Database, Azure Automation, and many others. The lines between PaaS and IaaS can now be completely forgotten, combining services and solutions across the entire Azure platform to meet your needs.

To edit these templates, use your favorite JSON-editor, edit directly in GitHub, edit directly in the new portal, or use the new support for editing Azure Resource Manager templates in the latest release of the Azure SDK for Visual Studio.

You can also fully automate the deployment of these templates using both PowerShell and the  Azure CLI. Deployment is so amazingly simple, I can add it directly to this post, where the below commands deploy directly from our Azure Git Hub repo.

Azure CLI:

azure group create --name LinuxRG --location "West US"
azure group deployment create --resource-group LinuxRG --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-simple-windows-vm/azuredeploy.json"

PowerShell:

New-AzureResourceGroup -Name WindowsRG -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-simple-windows-vm/azuredeploy.json"

Extending your configuration

One of the unique capabilities of Azure VMs is our extension technology. With VM extensions, you can deploy a wide set of configuration, security, management, and automation technology directly on to your Virtual Machine at any point in the lifecycle of the VM. This includes extensions built by Microsoft, supporting PowerShell and DSC, Microsoft antimalware and a BASH script extension. We also have extensions created for partner solutions including Docker, Chef and Puppet configuration extensions and Symantec, MacAfee, and Trend Micro antimalware solutions.

With today’s announcement, you can now create solutions that combine the power of extensions with the agility, re-usability, and expressed dependencies of templates.  We have templates that will create a Windows or Linux VM and launch the latest Chef agent and automatically connect to your hosted Chef server. We have templates that will deploy VMs and automatically install Django, Jenkins, Kafka, ElasticSearch, Apache, or a Zookeeper cluster of VMs. We also have a deep dive document deploying DataStax using the new template model. My personal favorite (since I wrote it), is a simple template that deploys the Docker extension, configures Docker on an Ubuntu VM and passes configuration to Docker Compose directly using the template language through the extension. You can find all of these templates and MANY more on our templates page on Azure.com.

Here is a snippet of the simple template with the Docker Extension:

Which translates into this simple-to-use experience in the portal, just press this simple button:

To deploy here:

The combined power of VM extensions with the new template support on IaaS will herald a new era of automation and collaboration, unparalleled by other cloud providers.

Exciting new partners on the new platform

The flexible and simplified model to launch and manage Virtual Machines has enabled a new wave of partners on the Azure platform. Today, we are also announcing support for the Mesosphere Datacenter Operating System (DCOS), that expands the options for container deployment and orchestration solutions on Azure. The Mesosphere DCOS can easily integrate with existing orchestration solutions available on Azure, including Docker Swarm and Compose. See more on this new support in Mark’s session and in this blog post, here. You may also sign up for the public beta of the Mesosphere DCOS on Azure.

We are also announcing platform integration with Juju, an open source Universal Modeling Language from Canonical, the company behind Ubuntu. Learn more about this support here and test it on Azure in minutes with this template. Additionally, we are excited to announce support for Scalr on the Azure platform, an open cloud management platform. Rightscale continues to support management on the Azure platform, offering Cloud Portfolio Management across multiple clouds.

To expand upon the Service Fabric application platform announcement last week, we are also announcing plans to support popular 3rd-party PaaS solutions on Azure, including CloudFoundry, an open source PaaS platform, Jelastic, a multilingual PaaS with a worldwide network of providers, and Apprenda, an Enterprise Private PaaS offering. We are strongly committed to offering customers the most choice and flexibility on the Azure platform and with this wide range of PaaS offerings, whether Microsoft or Partner delivered, I believe we can meet all your needs in development, deployment, and management. Together, these innovations and partnerships are giving businesses a competitive advantage on Azure as developers are freed to focus on innovation, not operations.

Improved security

In addition to the flexibility offered with template deployment, the support for the Azure Resource Manager with Compute, Storage and Networking also brings with it full Role-Based Access Control (RBAC) in both the portal experience and using the API, PS, and Azure CLI. This allows you to control access to your different environments even for your developers who may want to interact with PowerShell or Azure CLI.

Tagging, tracking and billing

With this new support for the Azure Resource Manager, we will support tagging directly on the resources available to Compute, Networking and Storage. These tags will apply to each individual resource for grouping and association purposes. In the coming weeks, these tags will be associated with your resources in your bill. This will enable you to track usage in your organization by tag, by resource type, and by subscription. Whether you are a hoster, large IT shop or small start-up, with tagging you will be able to track complex usage patterns in a very simple way. You can configure the tags directly in the portal or can configure them using the Azure CLI and PowerShell.

Here is the example for using the Azure CLI on Linux: azure vm set -vv -t team=Azure Linux5 MyUbuntuVM And here is what the tagging support looks like in the portal:

Hybrid consistency

Finally, one of the promises we have with Microsoft Azure is to create a fantastic development, deployment and management experience in the public cloud. The above announcements are testament to this promise. One of the unique offerings of Microsoft Azure is we are also committed to enabling this same cloud experience in private and hosted clouds. The new template-based experience we are announcing today for Azure will be the same application model for all hybrid deployments in the future. As a developer, ISV or system administrator, you will be able to deploy and manage the same app in the same way in any Azure cloud.

Getting started

With all of the fantastic capabilities outlined above, you are probably wondering how you get started? Well, there are a few ways you can jump in and start automating, right away.

Hope this helps and makes it much easier to deploy on Azure!! Have any other ideas, any missing templates, or any recommendations, please send me a note or put it in the comments below. We are always listening… See ya around, Corey