Month: November 2015

Visual Studio Code Artifact for Azure DevTest Lab Service

Have you seen the Azure DevTest Lab service preview announcement? From the service documentation: Azure DevTest Lab is a service that helps developers and testers quickly create environments in Azure while minimizing waste and controlling cost. You can test the latest version of your application by quickly provisioning Windows and Linux environments using reusable templates and artifacts. Easily integrate your deployment pipeline with DevTest Lab to provision on-demand environments. Scale up your load testing by provisioning multiple test agents, and create pre-provisioned environments for training and demos. Within this service, you can deploy virtual machines from a base image and then quickly deploy applications that are required for the developers or testers. You can set limits on how many VMs they can create and put policies on how long these VMs should be running and so on. One of the concepts of DevTest Lab service that helps application deployment and configuration inside the lab VMs is the artifacts. Artifacts are used to deploy and configure your application after a VM is provisioned. Artifacts can be: Tools …

Building Azure Resource Manager Templates – Using Copy Object

If you are following this series, by now you know how to use parameters and variables in ARM template language. We used that knowledge to create a template that creates storage account and virtual network. Let us revisit the scenario. In this part, we will extend the template to add publicIP, load balancer, and RDP endpoints for the virtual machines. Before we do that, let us review what we need. To achieve what we want in this, we will use copy object in the template. What is Copy Object? In our template, we already have the storage account and virtual network configuration defined. What we now need is a load balancer with a public IP so that we can access this deployment from the Internet. Also, we need the inbound NAT rules for enabling RDP access to the VMs in this deployment. But before we create the RDP rules for each VM, we need to know how many VM instances we are deploying. As shown in the scenario diagram, we need to be able to deploy …

Building Azure Resource Manager Templates – Using Variables

If you have been following this series on ARM templates, in the last part, we started with a sample scenario that we are using to build an ARM template. Here it is again. In the last part, we completed creation of storage account required for backing the OS and data disks for virtual machines in the deployment. The next step in our scenario is to create the virtual network for the VM connectivity. A virtual network and any subnets required must exist before the creation of virtual machines. So, in today’s article, we will see how we can use variables in the ARM template language while incrementally building an ARM template for our scenario and add virtual network. Towards the end, we will review some best practices guidance with regards to using parameters and variables in developing ARM templates. Working with Variables Variables in ARM template language can be used to simplify the template. For example, in our template, we will be using the subnet name at multiple places. There is no point repeating the same …

Building Azure Resource Manager Templates – Using Parameters

In the earlier parts of this series, we briefly looked at different methods of deploying ARM templates and then basics of ARM template language. Starting today’s article, we will see our leaning in action. To get going with our leaning, we will start building the ARM template for the following scenario. We will incrementally build this scenario by learning different aspects of ARM template language. We won’t be covering all resource types in Azure but we will cover every aspect of the ARM template language and functions and expressions used in the template language. We will also review best practices in building these ARM templates as we proceed forward in this series. So, what is there in the scenario that we are building? A resource group to host different resource types in our scenario. A storage account for hosting the VM OS and data disks. A virtual network for VM network connectivity. A public IP to connect to this deployment from external world. A load balancer that has the RDP and PowerShell remoting endpoints for the non-DC virtual …

Slides from Future Unleashed 2015 – Authoring Azure Resource Manager Templates

I had a great time at Future Unleashed 2015 talking about Authoring Azure Resource Manager Templates. This was a one-day technical event where there were 11 tracks covering different aspects from Cloud to Data to Analytics. The breakout session setup was a little weird. There were no walls for the breakout session room (or whatever you call it). It was just a big expo hall with 11 tracks spread across like exhibitor booths. All the attendees had to wear a headset to hear the speaker. This is where my session had happened. It took a few mins for me get adjusted to this but overall, it was a very good experience. My session was very interactive and the attendees showed lot of interest in learning how to build ARM templates. I used a step-by-step approach in my demo to show the ARM template authoring and discussed how to use some artifacts in the ARM template language. A 45-minutes session is certainly not enough to show everything but I certainly hope that my attendees got a good …

Building Azure Resource Manager Templates – The Basics

As a part of this series, we will go through the language semantics of writing ARM templates. We will explore each and every aspect of the ARM template language and go through multiple examples to understand the concepts better. We won’t focus much on the resource types and resource definitions until we complete the discussion around the language semantics and artifacts. Let us get started. Tools for the job JSON templates for ARM can be edited in notepad too. But, there are better tools that can help us with this. Visual Studio Visual Studio, along with Azure SDK, provides an easy way to get started with the template creation. You get started by creating a Resource Group project and just keep adding resources to the project and VS automatically generates the JSON for you. You can then customize it the way you want. More than the auto-generation of JSON, what I like is the intellisense capability that shows me the properties I can use within a template for a resource type. For more information on …

Building Azure Resource Manager Templates – An Introduction

Azure Resource Manager isn’t a new thing! It was announced during Build 2014. ARM is certainly the preferred way, with more and more services getting ARM support, to deploy Azure services. Microsoft also announced that the upcoming Azure Stack release will feature Azure Resource Manager and the template deployment. This means that learning how to use ARM and write you own templates is an essential skill not just for public cloud but also for the private and hybrid cloud administrators. There is lot of Microsoft and community content out there that describes why ARM is important and how you can use the templates to deploy multi-tier and multi-service cloud deployments and manage all of them as a single entity. I am not going to repeat all that here. My focus, here, will be a thorough coverage of template language and design patterns. Through this series, you will get a complete and in-depth coverage of what you need to know to build world-class ARM templates. ARM uses JSON formatted templates to perform these cloud deployments. You can …