Create a CI/CD pipeline in VSTS to deploy ARM templates

This is the final post in the series of basics for working on Infrastructure as a Code or IaaC. For first two posts, please refer below two links:

  1. Code virtual network configuration in Azure using ARM templates, Visual Studio and Git
  2. Sync local source code and commit history with Visual Studio Team Services

We learned how to create ARM template inside Visual Studio, enable versioning, deploy ARM template using Visual Studio, make new configuration changes, sync source and commit history to VSTS. In this blog post, we’ll learn how to create a CI/CD pipeline to deploy ARM templates.
Read More »

Code virtual network configuration in Azure using ARM templates, Visual Studio and Git

Infrastructure as code and configuration as code both fall into the category of configuration management, and both relate to defining or scripting for environments.

Infrastructure as code is more specifically defined as:

Defining your environments to include networks, servers, and other compute resources as a text file (script or definition) that is checked into version control and used as the base source for creating or updating those environments. For instance, adding a new server should be done by editing a text file and running the release pipeline, not by remoting into the environment and spinning one up manually.

When designing scripts or definitions for infrastructure as code, it’s important to make sure that the code and tools are set up to be idempotent, or able to run multiple times without error and with consistency.Read More »

Create Azure App Service using Azure ARM and deploy using Visual Studio

In few of the previous blog posts, we discussed on what Azure ARM is and how it helps in the DevOps philosophy of Infrastructure-as-a-Code (IaaC). So we’ll build further on that knowledge. In this blog post, we’ll discuss how to create an Azure App service using ARM template.

We’ll be using Visual Studio 2017 for this post’s purpose. It is not necessary to use this, you can use just Visual Studio code and appropriate extension for ARM or you can use a simple notepad (as all ARM templates are JSON files in the end of the day) or any other editor of your choice. However, using Visual Studio 2017 further simplifies it. Read More »

Understand Syntax of Azure Resource Manager (or ARM) Templates

The infrastructure for an application generally consists of many components. It consists of an application code itself, a server somewhere to run that code (typically a virtual machine), a storage to hold the data, a database and a network. You may also want to have integration with 3rd party services. So in order for your application to work, either you want to have all this in place, or none at all. Same is true whenever you would want to deploy your application in Microsoft Azure. Azure Resource Manager or ARM is a way to manage all interdependent parts as one resource group. You can deploy, update or delete all the resources required for your application to work.

With Azure Resource Manager, you can create a template that defines all the interdependent parts required for your application. This template is defined using JSON format. See more details on ARM templates here and about JSON here. In this blog post, we’ll understand the syntax to create ARM templates.Read More »

Identify outgoing Azure App Service IP address

Outgoing IP address for Azure App service are different than the incoming IP address. To clarify the difference, the incoming IP address (as the name would indicate) identify the IP address using which data could be sent to App Service. This is what you would see when you would typically do DNS resolution for the App Service. Outgoing IP address identify IP address which would be used when sending data from Azure App service to the outside world. You may need this info because you may need to protect your environment from threats or white-list certain requests.

To identify outgoing Azure App Service IP address, we can simply navigate to the https://portal.azure.com and then go to the app service in reference. Read More »

Understand what Azure ARM templates are

The infrastructure for an application is typically made up of many components – a server to execute and respond to all calls, a storage mechanism to handle all I/O (input/output) , some kind of networking mechanism and finally off course, your application. Your application may be a standalone application with or without any database support and with or without any 3rd party integration services. You don’t generally want to see these components as separate entities or you may be (depending upon your background in Information Technology Sector) .

Generally, if you are a consumer, all you are concerned about is to consume how services available by a particular piece of the application. Read More »