Over a million developers have joined DZone.

Deploying Application Containers Using Azure Resource Manager and Nirmata

Here's an in-depth look at Nirmata, a container deployment tool designed for getting your applications up on the cloud as quickly and painlessly as possible.

· Cloud Zone

Build fast, scale big with MongoDB Atlas, a hosted service for the leading NoSQL database on AWS. Try it now! Brought to you in partnership with MongoDB.

A core philosophy at Nirmata has been to integrate with cloud providers without hiding the value provided by the infrastructure-as-a-service layer. For example, on AWS we integrate with constructs like auto scaling groups, spot fleet requests and launch configurations. This approach provides significant flexibility in configuring the underlying resources to deploy applications. When exploring integration of Nirmata with Microsoft Azure, we identify Azure Resource Manager (ARM) to be a powerful construct for grouping various resources into a logical unit which can be used to not only manage infrastructure resources but also to deploy applications. I this post, I will discuss how Nirmata integrates with Azure Resource Manager to provide ultimate flexibility when deploying containerized applications.

Azure Resource Manager

Azure Resource Manager enables you to group your resources so that you can deploy, update, or delete all the resources in a single, coordinated operation. You can use templates for deployment and the template can work for different environments such as testing, staging, and production. Resource Manager also provides security, auditing, and tagging features to help manage resources after deployment.

Creating Azure Resource Group

To create a new resource group, login to the Azure console and select Resource Groups and add a new resource group.

Create resource group

Create resource group

Once the resource group is created, you can create:

  • Storage accounts: A storage account provides a unique namespace to store and access your Azure Storage data objects. There are two types of storage accounts. A general-purpose storage account gives you access to Azure Storage services such as Tables, Queues, Files, Blobs and Azure virtual machine disks under a single account. A Blob storage account is a specialized storage account for storing your unstructured data as blobs (objects) in Azure Storage. More details on storage accounts can be found here.
  • Virtual networks: A virtual network (VNet) is a representation of your own isolated network in the cloud. You can fully control the IP address blocks, DNS settings, security policies, and route tables within this network. More details on virtual networks can be found here.
  • Security groups: Network security group (NSG) contains a list of Access Control List (ACL) rules that allow or deny network traffic to your VM instances in a Virtual Network. You can find more details on security groups here.

Once you have set up your resource group, you are ready to use it in Nirmata.

Image title

Create security group, virtual network, and storage account

Creating Cloud Provider and Host Group

Before using Azure as a cloud provider in Nirmata, you need to set up Nirmata as an application in Azure Active Directory. Detailed steps for this can be found here.

Once you have added Nirmata as to Azure AD, you should have Client ID, Client Secret, Tenant ID, and Subscription ID to use when creating a Cloud Provider in Nirmata.

Image title

Create cloud provider

Before using a resource group in Nirmata, you need to give Nirmata user access to your resource group using the Access Control (IAM) settings.

Image title

Resource group access control

Now you can create a Host Group in Nirmata. When creating aHost Group, you need to select the Resource Group you would like to use for this Host Group. Once you select the resource group, you can select the image, instance type, virtual network, security group and storage account. You can also specify if you want to attach public IP address to instances in this host group and setup a default username and password. Once the host group is created, you are ready to deploy your applications.

Create Host Group

Create host group

Deploying Applications

After creating the host group, you need to create a Resource Selection Policy to map an Environment Type to the Host Group and then create an Environment of that type for your Application.

Here is a short video showing how to deploy containerized applications on Azure using Nirmata:


As you can see, with Nirmata it is extremely easy to deploy and manage containerized applications on any cloud. Nirmata integrates natively with cloud provider specific constructs and provides tremendous control on how infrastructure is configured while presenting a uniform interface for deploying and managing applications on any cloud. This not only lowers the learning curve for your DevOps teams but also eliminates any cloud provider lock-in.

Now it's easier than ever to get started with MongoDB, the database that allows startups and enterprises alike to rapidly build planet-scale apps. Introducing MongoDB Atlas, the official hosted service for the database on AWS. Try it now! Brought to you in partnership with MongoDB.


Published at DZone with permission of Ritesh Patel. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}