Creating your first Container App with Azure

In past if you wanted to deploy a container application in Azure you had to use Docker enabled Ubuntu VM or install docker on Linux VM for the Docker Engine. Few days back Microsoft has announced a new service in Azure Preview portal called Container Apps which eliminates this requirement.

Deploying a container app from Azure market place

  1. Sign in to This feature is available only in the preview portal.Docker App 1 - Copy
  2. Click NEW > Container Apps. If you need to explore the full list of container apps available in the Marketplace click Marketplace button.
  3. I’m going to deploy mysql as a container app. Once selected click CREATE.Docker App 2 - Copy
  4. In the next dialog box you have to configure mysql instance settings. Note that you will have to provide a resource group as well. If you don’t have one you can simply create one from there.Docker App 3 - Copy
  5. Next you have to select the VM size. I’ve selected A1 Standard.Docker App 4 - Copy
  6. Next step is to provide storage account, network an availability set details. If you have existing resource for these you can re-use same or create everything from scratch here. The default setting is to create from scratch.Docker App 5 - Copy
  7. Review the configuration and Click OK.Docker App 6 - Copy
  8. Once the container VM is created you can view the resources as below.Docker App 7

Now lets try to log in to our docker host VM. I’m using PuTTY to SSH.Docker App 8As we are closing into the Windows Server 2016 release we can expect more feature coming up with docker integration in Azure.

Reserving existing dynamic VIPs for Azure Cloud Services

When you create a cloud service in Azure the Public Virtual IP address (VIP) assigned to it is by default dynamic. What this means is that once you stop the cloud service from Azure Portal the next time you start it you are assigned a different public IP. As an example if you de-allocate the underlying VMs in a cloud service this will happen definitely.

Microsoft understands that the customers require static Public IP addresses for their workloads due to the fact that Internet enabled DNS always rely on a static IP. When you create a new cloud service you can assign a static IP reservation for that. Previously it was only possible for new cloud services not existing deployments.

All Azure subscriptions are authorized to use 20 reserved IPs.However if you require more you can ask them an extension.

Let’s see how we can reserve an existing VIP assigned to a cloud service reserved.

Convert a dynamic VIP of to Reserved VIP

Take a look at below Azure PowerShell cmdlet.

New-AzureReservedIP -ReservedIPName “jcbvip01” -Location “Southeast Asia” -ServiceName “jcbvipcs”

Notice the -ServiceName parameter. This enables to provide an existing cloud service name where it will automatically reserve the exiting VIP.

Removing a Reserved IP from an existing deployment

You can use below cmdlet to remove the static VIP association.

Remove-AzureReservedIPAssociation -ReservedIPName “jcbvip01” -ServiceName “jcbvipcs”

Reassigning the VIP to another deployment

Here you simply provide the new cloud service name.

Set-AzureReservedIPAssociation -ReservedIPName “jcbvip01” -ServiceName “nabvipcs”

One important thing is that reassigning should occur within the same Azure region as these IP addresses are location specific. You cannot assign the same IP reservation to a service that is running in a different Azure region.

Validate Your Management Packs with MPR Test Tool

Not all management packs are written by Microsoft or partners. Some of them are actually designed to address a specific monitoring challenge in SCOM. While I was wandering in SCOM land I came across this great but tiny tool.

Microsoft Platform Ready Test Tool for System Center 2012 R2 Operations Manager lets MP authors to validate their MPs and examine they are up to the SCOM standard with few clicks. This tool is a life saver and helps one to achieve Application Logo Certification for System Center.

Let’s take a first look on this tool.

MPR 1The Interface is quite simple. You need to supply a MP deployment guide if you want to certify your MP for GOLD competency.

MPR 2On the next screen you will have to provide either .mp or .xml file as the MP to be validated. Note that the test will be unsuccessful if you do not provide the correct reference MPs along with your MP.

MPR 3You can download this great tool from here.

Static IP configuration is missing in E2A Azure Site Recovery

Azure Site recovery is a great cost effective platform to host your DR sites. These days most of my time is spent on this technology and I’m experimenting on new things everyday. Troubleshooting ASR is not so easy as the information available is relatively low in some cases.

In one of my ASR deployments I have noticed below issue.

As per Microsoft Documentation for a SCVMM to ASR scenario we can enable the protected VM in ASR to have a predefined IP address from a mapped virtual network. The guidelines read as “If the network adapter of source virtual machine is configured to use static IP then the user can provide the IP for the target virtual machine. User can use this capability to retain the ip of the source virtual machine after a failover. If no IP is provided any available IP would be given to network adapter at the time of failover. In case the target IP provided by user is already used by some other virtual machine that is already running in Azure then the failover would fail.”

Now I have enabled replication on one VM and checked the configuration section and guess what the only option available was DHCP.

ASR DHCP 1Solution

ASR sees what VMM can see. In this case the on premise logical network didn’t have any static IP pool assigned to it. When I checked the VM properties in VMM I noticed it is also reflecting IP as DHCP.

ASR DHCP VM 2Below are the steps I’ve performed to overcome this issue.

  1. Create a static IP Pool for my logical network. As I didn’t use network virtualization I didn’t need to create a static IP pool for my VM network. You can follow this guide to create a static IP pool in a logical network.
  2. This static IP pool should be of the same range that you used for your VMs. If you click the Connection details button as in above screen you get get the actual IP address assigned in the OS level and determine the range.
  3. Next step is to refresh virtual machines. Once you refresh a VM and and check the Network adapter properties in SCVMM it will now display the IP as static.
  4. I have already replicated one VM. For that I had to disconnect it from the on-premise network (Connectivity > Not Connected in above screen) and connect it again to the same VM network. Then I did a VM refresh and et viola now I can see the static IP option in the ASR portal.