Monthly Archives: December 2015

Docker Swarm Cluster using Azure Container Services

Azure Container Service (ACS) is an Azure Compute resource provider to create and manage a cluster of virtual machines that act as container hosts together with a number of “master” machines that are used to orchestrate your application containers. Currently ACS is in preview, and my subscriptions got access to the preview service last week. I will be exploring ACS and blogging about them.

ACS works with Apache Mesos as well as Docker Swarm. In this article, I am sharing my experience on creating Docker Swarm cluster on ACS. For build the service, I used the guidance provided at as the primary reference.


  • Microsoft Azure Subscription enabled with ACS preview: If you need access, please request here –
  • Client (Git or Open SSH) to generate RSA Keys

Setup Sequence

  • Create SSH RSA Public Key
  • Deploy Swarm ACS Template
  • Explore Resources in Container Service

Create SSH RSA Public Key

I used Git Client on my Windows Laptop to create the SSH key pair.

# Use ssh-keygen to create RSA key pair

# id_rsa and files are created in ~/.ssh folder

ssh-keygen –t rsa –b 2048

Open file, which has three parts (ssh-rsa <key> user@machinename). We need to copy all these content and provide as the SSHRSAPUBLICKEY, while deploying the template for ACS.

Deploy Swarm ACS Template

Open Browser and navigate to

Click on Deploy to Azure button.

Provide parameter values for the custom deployment and click OK.

  • DNSNAMEPREFIX: Unique DNS prefix
  • AGENTCOUNT: You can choose 1 through 40. Provide 3.
  • MASTERCOUNT: 1, 3 or 5 are allowed now. Choose 3.
  • AGENTVMSIZE: For experiments, choose lower size (helps with reduced cost)
  • SSHRSAPUBLICKEY: Ensure that you copy all the three parts created in previous step and provide here.

Choose to Create a new Resource Group, name it ACSExperiment.

Ensure that you choose Japan East
as the resource group location as this is the only supported region for ACS now.

Click on Legal Terms, review the terms and click Create.

Click on Create from the custom deployment blade.

Wait for the deployment to complete.

Explore Resources in Container Service

Once the template deployment is complete, open the Resource Group, ACSExperiment. You can see that there are four categories of resources.

  • Azure Container Service Resource – Which manages all other resources
  • A number of agent nodes with in an availability set for agents
  • A number of master nodes with in an availability set for masters
  • Availability set (one for agents and another for master)

In the next article, I will be going through in-detail on exploring the above resources, followed by publishing apps to Swarm cluster. J

Microsoft Azure Training & Workshops to Solution Architects from various Global System Integrators

Last two weeks, I have travelled to Bangalore, India to provide trainings to Architects from various global system integrators on Microsoft Azure technology. During this travel, I have delivered sessions / workshops on the following:

  • Architecting Big Data & Analytics Solutions: The proliferation of customer data and the desire for insights not previously attainable has created a new industry focused on analyzing massive amounts of data. The cost of processing huge amounts of data does not need to be prohibitive when you can take advantage of a scalable cloud platform. We will discuss the Lambda architecture to take advantage of both batch and stream processing of data and will show various Azure services such as Azure Data Lake, Azure Data Factory, Azure Stream Analytics, Azure Machine Learning, and Power BI to provide a solution to unlock insights into data.


  • Architecting Modern Cloud Applications: Modern cloud applications offer end-user experiences and features that transcend traditional on-premises applications. For example, there are often multiple database technologies supporting today’s modern app. Embrace the notion of polyglot persistence and see how RDBMS’s, NoSQL databases, and caches can be combined to deliver robust end-user experiences. Modern cloud apps today are also expected to be reachable regardless of the platform or device. See how Azure’s App Service can be used to expand the reach of your solutions. Modern cloud apps are also not always just platform-as-a-service solutions. Learn about modern architecture patterns enabled by Azure that span infrastructure-as-a-service and platform-as-a-service deployments.


  • Architecting Global Scale Web and Mobile Solutions: One of the main benefits of the Microsoft Azure platform is its massive scale. Microsoft Azure runs on a massive network of over 19 regions worldwide. This global reach makes it possible to create solutions on a global scale that meet your demanding performance requirements. We will discuss architectural patterns that lend themselves to global geo-located solutions and the specific features of Microsoft Azure that enable geo-replicated data.


  • Dev Ops: Enterprise IT organizations are increasingly driven by business demands for faster, better solutions delivered more quickly than ever before. DevOps has emerged as a trend to help organizations evolve to better collaborate between development and operations teams for addressing these solution delivery challenges. While a DevOps transformation can take time to fully realize within an organization’s people and processes, there’s opportunities to accelerate the path towards DevOps by smartly leveraging cloud capabilities that can reduce infrastructure complexity, simplify release management, and support end-to-end application visibility through all stages of a solution’s lifecycle. This session will discuss the features in Microsoft Azure that help to realize this transformation and how the platform enables integration with existing assets.


  • Case Study – Internet of Things (IoT)
  • Case Study – Refactoring Multi-Tier Solutions
  • Case Study – Lift and Shift
  • Case Study – Identity and Access Management
  • Case Study – Networking

Tips & Tricks for Configuring Laptop / Tablet for Presentation

During a recent Azure Trainings sessions, many of us ran into couple of issues while doing presentations. This article is about what we ran into and how we solved them.

  • Resolution of projector / monitor do not match the preferred resolution of laptop: Typically I work with 1920×1080 resolution or higher. However the maximum resolution supported by the projector was less than this. Before the sessions, changed resolution of my laptop to match the projector resolution, so that all screens get refreshed (including terminal server client) to the right resolution.
  • Duplicating the monitor gave issues: It is a very good feature to extend the monitor so that we can see speaker notes in our laptop, while projecting the slide show to attendees. However, this gave issues when we had to switch back to demo etc. I decided to turn off the extend feature and stick to duplicate monitor. Also, set properties in PPTX as following. Note that this may not be recommended, use only if you really need to do this.

  • Automatic rotation of the laptop screen: I have a Windows 8.1 laptop with touch screen. It automatically goes for screen rotation (just like how Surface would do), when I tilt the laptop and sometime it doesn’t rotate back. I ran into this issue, just when I placed my laptop on the dais before the session. Had to do the following to recover from this:
    • Disable auto-rotation of screen: Open Screen Resolution window, uncheck Allow the screen to auto-rotate and click OK.

    • Rotate explicitly to get back to the required position: Right click on desktop and choose Graphics Options > Rotation > Rotate to x Degrees.

  • Code snippets were not viewable: Used ZoomIt –

    If you have any feedback or other tips, please write it as a comments to this post. Thanks.

My views on technology

Virtualization and some coffee

My views on technology

Thomas Maurer

Cloud and Datacenter Blog focusing on Microsoft Azure

Cloud Administrator in Azure World

Begin Your Azure Management Journey with the Cloud Administrator