Essentials for Realizing Azure Baseline Costs

Subscription and Service Limits, Quotas, and Constraints (

This is a must-bookmarked page to find out, for instance:

  • Total cpu cores a subscription can consume
  • The number of endpoints a VM can have.
  • The bandwidth an Azure website may provide.
  • Total VMs a virtual network may host.
  • Total TB per storage account
  • Maximum of objects in Azure Active Directory

Azure Pricing Model (

This is where to find detailed Azure pricing information of Azure services with options like pay-as-you-go, Microsoft resellers, and enterprise agreements. A good reference this is. Keep it handy.

Azure Pricing Calculator (

This is a what-if analysis tool. How will the costs be different when changing your deployment plan from 3 small Linux VMs to 2 Large ones, deploying Oracle Weblogic server with A5 instead of A8, and replacing locally-redundant storage with geo-redundant storage? Just drag the slide bar on each category and one can realizing the combined baseline costs form the number shown under full calculator.


There is also a VM calculator ( to better understand the cost implementations on VM, bandwidth, support, etc. with Azure Infrastructure Services.


Azure SLAs (

imageDo examine the SLAs from a cloud vendor including those of Microsoft’s. Cloud computing is emerging and the business model continues evolving. SLAs are not all created equal. Pay attention to the fine print. Understand what does and what does not count as an outage and when there is one how a subscriber is compensated. Following your flow of data, the overall SLA is the service with the lowest SLA along the path.

Azure Support Options (

imageSupport costs will have impact on the business values of an application throughout the lifecycle. Not just the support subscription costs, but also the associated activities to initiate, monitor, manage, and document support activities.

Azure Compliance Page (

For some industries, if it is not compliant, there is really no point of investigating the cost of a solution. If compliance is a requirement, investigate early. For Azure, this page lists out all the achieved certificates. Pay attention to those referenced links like Azure HIPAA Implementation Guidance. Some specifically document the implementations for a cloud applications to become compliant.


Closing Thoughts

Cloud is about the ability to deliver instant gratification, and grow or shrink the capacity based on demand. Those days of rolling out a patch in 6 weeks, deploying a branch office in 3 months, building a cluster in two weeks, are long gone. The delivery needs to be on demand, in the next hour, within a half-day, or something relatively quick.

At the same time, cloud is not an one-size-fits-all platform. And there are legitimate reasons not to deploy resources in cloud. Get all the facts, learn how cloud works, and assess the risks. Know what you pay for, set a realistic expectation, then cloud responsibly and happily.

So where to start? Learning by practicing is what I recommend. For those who do not subscribe MSDN which offers Azure monthly usage credit, sign up a 30-day free trial at and follow and to start making cloud work for you. Use Azure as your datacenter, your global networks, and your colossal storage drive in cloud.


My presentation at IT Camp: Modernizing Your Infrastructure

This is a PDF file of my presentation at the event in Microsoft Malvern office on 09/23/2014. I had a great time meeting the folks and delivering the event.

Automating and Managing Hybrid Cloud Environment

In part 5 of our “Modernizing Your Infrastructure with Hybrid Cloud”  series, Keith Mayer and I got a chance to discuss and demonstrate ways to manage and automate a hybrid cloud environment. System Center, Microsoft Azure and Windows Azure Pack combined with PowerShell are great solutions for hybrid cloud scenarios. Keith is a great guy and we always have much fun working together.


  • [1:15] When architecting a Hybrid Cloud infrastructure, what are some of the important considerations relating to management and automation?
  • [4:09] You mentioned PowerShell for automation … how can PowerShell be leveraged for automation in a Hybrid Cloud?
  • [7:54]  Is PowerShell my ONLY choice? Are there other automation and configuration management solutions available for a Hybrid Cloud?
  • [11:12] DEMO: Let’s see some of this in action
      • Brief tour of System Center and Azure / Azure Pack management portal interfaces
      • Getting started with PowerShell for Azure, Azure Pack automation
      • Intro to PowerShell DSC for configuration management
      • Intro to Azure Automation for automated runbooks

Additional resources:

Windows Azure Pack (WAP) simplified: Prepping OS Image Disks for Gallery Items

To publish a gallery item in Windows Azure Pack (WAP), the associated OS image disks, i.e. vhd files, must be set according to what’s in the readme file of a gallery resource package. For those who are not familiar with the operations, this can be a frustrating learning experience before finally getting it right. This blog post is to address this concern by presenting a routine with a sample PowerShell script [download] to facilitate the process.

Required Values of OS Image Disks for WAP Gallery Items

For example, below is from the readme file of the gallery resource package, Windows Server 2012 R2 VM Role. It lists out specific property values for WAP to recognize a vhd as an applicable OS image disk for the Role. To find out more about WAP gallery resources, the information is available at


As a gallery item introduced into vmm and WAP, the item then becomes available when a tenant is provisioning a Role as shown below.


There are several steps involved including:

  • Prepping vhds of and importing resource extension of the gallery item, as applicable, to vmm server library shares
  • Importing resource definition to WAP

Here, prepping vhds is the focus. And the process and operations are rather mechanical as detailed in the following.

Process and Operations

The script below illustrates a routine for a vmm administrator to set required property values on applicable OS image disks in a target vmm server’s library shares, . This sample script is available for download.


Line 23 connects to a target vmm server.

Line 25 builds a list of vhd objects the prefix, ws2012r2, in their names. Which suggests a vmm administrator to develop a meaningful naming scheme for referenced resources.

Line 27 and 28 display settings of the vhd files before making changes.

Line 30 to line 35 are to set the values to specific fields including OS, familyname and release according to the readme file of a particular gallery resource package, for example, WS2012_R2_WG_VMRole_Pkg. And as preferred, one can also default a product key to a vhd.

The foreach loop goes through each vhd in the list and set the values. WAP references the tag values of a vhd file to realize if a vhd is applicable for various workloads. Make sure to add all tag values specified in the readme file, as demonstrated between line 41 and line 44 to build the list. Line 46 to line 52 sets all specified values to corresponding property fields of a currently referenced vhd file.

Finally upon finishing the foreach loop,  line 56 and line 57 present the updated settings of the processed vhd files for verification.

User Experience

Here’s an example of running the script:




And with a vmm admin console of the target server, go to Library workspace and right-click an updated vhd disk to verify the property values are correctly set, as shown below.


At this time, with correctly populated property values and tags, the vhds are ready for this particular WAP gallery item, Windows Server 2012 R2 VM Role.

For all the gallery items which WAP displays, a vmm administrator must reference the readme file of each gallery resource package and carry out the above exercise to set property values of the applicable OS image disks. Pay attention to the tags. Missing a tag may invalidate an image disk for some workload and inadvertently prevent that workload from being available for a tenant to provision an associated VM Role in WAP, despite the OS is properly installed on the disk.

Closing Thoughts

The tasks of prepping OS imaging disks for WAP gallery items are simple and predictable. Each step is however critical for successfully publishing an associated gallery item in WAP. Like many mechanics, understand the routine, practice, and practice more. A vmm administrator needs to perform these operations with confidence and precision. The alternative is needless frustration and delay, while both are absolutely avoidable at this juncture of deploying WAP.

Introduction of Microsoft Virtual Academy at HTTP://AKA.MS/MVA1

A knowledge portal with free self-training contents of Microsoft products and solutions is Microsoft Virtual Academy at Developed courses as shown below are presented by topics and products for an individual to develop and customize a learning plan to best fit one’s interests and objectives. And the contents are packaged in modules with presentations, videos, whitepapers, etc. and they are available online as well as for download. Each module ends with a self-assessment to facilitate learning. There are also live events like Jump Start and Virtual IT Camps delivered by subject matter experts offering global IT community an accelerated learning experience on virtualization, hybrid cloud, Azure, Office 365, Application development and more.


For an IT pros in any discipline and at any technical level, Microsoft virtual Academy offers an effective vehicle for developing IT skills profile and maintaining competency. And it is very easy to access the contents. Simply go to Microsoft Virtual Academy at Pick and start a course of your interest and register/log in with your Microsoft Account which you can sign up one at, if not already have one. Your Microsoft Account also comes with 15 GB OneDrive (i.e. cloud storage), Outlook-alike Internet email, and Office Web Applications all free.

Once you have registered in Microsoft Virtual Academy, it is now up to you how fast and how far you would like to go from virtualization to Azure, hybrid cloud and DevOps. Do it. Learn it. Enjoy it. And be an IT pro.

TechNet Radio: (Part 7) Accelerate DevOps with the Cloud – Configuration Management

In part 7 of our  “Accelerate DevOps with the Cloud” series on TechNet Radio, Keith Mayer and Yung Chou welcome Sr. Program Manager Michael Greene to the show as they discuss the importance of configuration management for organizations that are starting to leverage the cloud for their daily operations. Tune in as they also demo PowerShell DSC and how it can be used with Azure. 


  • [2:30] When an organization is beginning to leverage the cloud, why is Configuration Management important?
  • [5:01] How is Configuration Management different from Automation?
  • [6:48]  Is Configuration Management more than just initial provisioning?
  • [10:29]  What tools and resources are available to perform Configuration Management?
  • [13:03] How does PowerShell DSC differ from PowerShell scripts?
  • [15:11] Is PowerShell DSC specific to only Windows workloads?
  • [17:23] DEMO: Can you show us how PowerShell DSC can be leveraged with Azure?


TechNet Radio: (Part 6) Accelerate DevOps with the Cloud – Automating for Predictability

Continuing our  “Accelerate DevOps with the Cloud” series on TechNet Radio, Yung Chou welcomes Sr. Program Manager Charles Joy to the show as they discuss the be the importance of automation in your datacenter especially when it comes to advancing your DevOps strategy.


  • [2:36] How does automation help organizations accelerate the delivery of new solutions as they move to the Cloud?
  • [5:18] What tools and resources are available to help IT Pros get started with automation? Do they need to be a professional “scripter”?
  • [6:04]  Do IT Pros need to learn a different set of tools for automating each component?
  • [6:26]  If an IT Pro is automating cloud resources in Azure, do they have to spin up an entire set of infrastructure components just to handle automation? How does Azure automation organize and leverage these automation sequences?
  • [7:22] How can Runbooks be triggered? Based on schedule? Based on other events?
  • [8:24] Is Azure Automation extensible? Can I incorporate other PowerShell modules?
  • [9:10] DEMO: Quick walkthrough of Azure Automation accounts, assets, runbooks, schedule

Websites & Blogs:

Devops, automation, and cloud computing

Convention wisdom refers DevOps as a strategy, an approach, or a movement as some call it. DevOps addresses the idea that Development and Operations need to be aligned well in an application lifecycle, work closely and collaboratively to eliminate inefficiency, reduce bottlenecks, and maximize productivity. The concept is certainly not new, for decades business processes and operations based on software engineering concepts or lifecycle management methodologies are all trying to minimize inefficiency and maximize productivity. So what is different now.

DevOps in Cloud Computing

In cloud computing, infrastructure construction, run-time configuration, and application deployment are now delivered on demand, i.e. as a service, hence IaaS, PaaS, and SaaS. (1, 2) Form an operation’s point of view, cloud computing eliminates most, if not all, physical aspects of Dev and Ops. The physical establishments of Dev and Ops including servers, networks, and storage are now a lesser concern on application administration, maintenance, and costs since applications are based and operated upon logical artifacts like virtual machines, virtual networks, and virtual storage. From a user’s point of view, infrastructure support, run-time operations, and application maintenance are now all logical models where Dev and Ops can operate on a common, i.e. identical platform with standardized services from a cloud provider. This setting offers many opportunities to promote and to practice DevOps. With cloud computing, the integration of Dev and Ops becomes lucid and an achievable proposal both financially and administratively. DevOps is also an opportunity to further increase productivity, hence the ROI, of adopting cloud. I believe the inevitability to integrate Dev and Ops is quickly becoming apparent as IT continues to adopt cloud as a service delivery platform.

DevOps and Automation

Why to automate anything should be obvious. In addition to efficiency, there are also considerations on consistency, repeatability, and predictability to programmatically carry out tasks. Considering Dev and Ops, automation is an effective vehicle to minimal user interventions from both Dev and Ops for establishing application infrastructure, configuring run-time, and deploying a target application. This automation provides consistency and predictability of application deployment with transparency to both Dev and Ops. The theme is that DevOps calls for automation and automation sets DevOps in motion.

DevOps and Tools

Here, I highlight a few tools which can cultivate DevOps. Azure PowerShell Cmdlets and Cross-Platform Command Line Interface are for installing on individual devices, and with which each of us can take a DevOps approach and automate as much as applicable on our deliveries. Parallel processes, plan operations based on a logical unit of work, separate business logic from data, etc. and make automation a common work style.

Azure Automation is a Microsoft’s solution for IT automation. For those have not had a chance to work on Microsoft System Center Orchestrator, this may possibly present a learn curve to some. Orchestrator as the name suggests is a powerful component in System Center to for automating and orchestrating a data center. You can consider it as a turbo DevOps engine leaning towards the Ops side.

Visual Studio Lab Management on the other side is the ultimate DevOps operating environment facilitating entire application lifecycle management. Form departments, business units, organizations, to an entire enterprise, Visual Studio Lab Management can be scoped accordingly.

Azure PowerShell Cmdlets

This is the tool to manage Microsoft Azure with Windows PowerShell. For those who are new to PowerShell, relevant information is readily available in TechNet Library. To learn and assess Microsoft Azure cmdlets, one needs first acquiring a trial subscription, followed by downloading and installing Microsoft Azure PowerShell. Then, one must first configure a secure connection between an intended subscription and the Windows PowerShell environment in a local device. Instructions to Install and configure Windows Azure PowerShell are well documented.

Desired State Configuration (DSC)

This is an extension of Windows PowerShell in Windows Server 2012 R2 and Windows 8.1. Notice as of May, 2014, both Windows 7 and windows 8.1 are also available for MSDN subscribers to deploy in Microsoft Azure.  DSC provides a set of PowerShell cmdlets and resources enables to declaratively specify how to configure, manage and maintain configuration data for services and managing the environment in which these services run including:

  • managing server roles and features, registry settings, processes, files and directories, local groups and user accounts, environment variables, etc.
  • installing .msi and .exe packages
  • discover current state on a given node and validate its configuration

DSC is a vehicle to realize automation for predictability. Additional information of DSC is available elsewhere.

Azure Cross-Platform Command Line Interface (Xplat-CLI)

The xplat-cli is for managing resources like web sites, virtual machines, mobile services, SQL Database and other services provided by the Azure platform. It is written in JavaScript and requires Node.js. There are two installer packages available: Windows and OS X, with detailed installation instructions. The source code is also available for download from GitHub.

Cross-Platform Automation in Azure with Puppet and Chef

Both Puppet and Chet offers technologies to automate deployments, configurations, and management of VMs across platforms. Microsoft Azure VM has both as configuration extensions as shown below. Microsoft Azure VM Image Gallery also includes a pre-configured Puppet Master based on Ubuntu Linux distribution. These additions offers vehicles to integrate with developed DevOps communities and practices, facilitate hybrid cloud adoption with automated deployment across platforms, and realize operating on Microsoft Azure is essentially a continual DevOps practice.

image image

Azure Automation

This is an IT automation solution for Microsoft Azure by employing the concept of a runbook as employed in System Center Orchestrator. A runbook comprises activities which are the steps, i.e. instructions for an automated process, operations, and tasks. A runbook in Microsoft Azure is a Windows PowerShell workflow to automating the management and deployment of resources. Above all, an Azure runbook can automate essentially what a Microsoft Azure PowerShell and Windows PowerShell script can perform.

To configure Azure Automation, one must first create an automation account which is a container for managing automation resources including runbooks, jobs, and assets. Each automation account is associated with an Azure subscription, and a subscription can have multiple automation accounts.

This feature is being previewed in Microsoft Azure at this time.

Visual Studio Lab Management

Managing development, test, staging, user acceptance tests, demo environment, etc. are key part of application life cycle management. Visual Studio Lab Manager, a feature of Team Foundation Server (TFS), facilitates the management of existing and simplifies the process of provisioning of new environments for all team members. It can automate the routines of building, deploying, running tests on, and removing a lab environment. Here a lab environment is a collection of virtual and physical machines for developing and testing applications. A target lab environment, for instance, can now be automatically provisioned using templates with consistency and predictability, and as needed reverted to a specific point of time with snapshots. Visual Studio Lab Manager is raising application lifecycle management to a new standard.

Closing Thoughts

For developers, cloud computing has rejuvenated DevOps with a higher intensity and a bigger ambition. The integration and collaboration of Dev and Ops, from users’ point of view are now pertinent most at a logical level and above fabric, i.e. the virtualization layer. DevOps is no longer just a right idea, but now an approachable proposition with cloud computing both administratively and financially. Application lifecycle management environment like Visual Studio takes full advantages of System Center and Hyper-V and integrates Dev with Ops (System Center and Hyper-V) at an enterprise architecture level and with methodologies. The result of practicing DevOps will be timely, impactful, and rewarding.

For IT professionals, DevOps signifies a call to action for data center automation with a comprehensive system management solution. DevOps is much more than just automation, nevertheless towards DevOps automation is an essential step. Above all, I view DevOps as an exciting prospect with a strategic roadmap for IT professionals like you and me to continue growing professionally, and explore career opportunities with DevOps or data center automation discipline in this cloud computing era.

My Selected Contents for IT Pros

The following is a list of articles I have recently published. It highlights a core set of hybrid cloud computing contents which I want to share and help IT pros better understand at this juncture.

Cloud Concepts


Windows Azure


Windows Server


On-premises Deployment


TechNet Radio

App Controller with Multiple Windows Azure Subscriptions

 App Controller ( is a component of Microsoft System Center as a self-service portal for managing a hybrid deployment environment. On one hand, App Controller connects to System Center Virtual Machine Manager (VMM) servers and manage VMM-based private cloud resources. On the other, App Controller can also connect to multiple public cloud service providers like Windows Azure and 3rd-party vendors for managing resources deployed to off-premises facilities. As part of the Microsoft System Center family, VMM and App Controller together strategically converge all IT cloud deployment models (i.e. private, public, and hybrid clouds) into a common and management platform. A free ebook highlighting essential concepts and operations is available for download.

Here is a quick walkthrough of the user experience. The following shows two Windows Azure subscriptions as indicated by the subscription IDs are connected with an App Controller instance.


Within App Controller in this setting, an administrator can manage the two public cloud subscriptions for off-premises deployment and a VMM managed private cloud for on-premises deployment.


The security of App Controller is a role-based model. Within App Controller UI, under Settings one can create a User Role where to restrict access to a Windows Azure subscription, as shown below.