Self-service deployment of Microsoft workloads on Cloud Platform System (and other systems with Windows Azure Pack) – Part 2

We are privileged to have a guest blogger on Building Clouds, Jeff Goldner.  Jeff is a Principal Program Manager in Microsoft’s Cloud Solutions Group.  This is the second post in a series discussing new artifacts being rolled out by Microsoft that are designed to run Microsoft workloads on the Cloud Platform System (CPS). More to come, stay tuned!

Hello again, this is Jeff Goldner from Microsoft’s Cloud Solutions. Today, I’m here to talk about the second round of deployment artifacts. We’ve done a little polishing on SQL Server (so make sure you look at that as well), and now we are also revealing the Exchange 2013 SP1 deployment. Brought to you by the CPS team, with a lot of help from the Microsoft Enterprise Cloud Group’s Customer Acceleration Team (the Building Clouds guys). And remember, CPS is not a pre-requisite, because you can use these items with some adjustment if you have already deployed the Windows Azure Pack (WAP). As with the first release, we are making these available through the VMM content feed. See my last blogfor more of the introduction, but let’s jump in to this release.

Each of the artifacts we are publishing has gone through testing on an actual CPS system(!)

Let’s talk about Exchange

Everyone wants it. Small and medium businesses require it. Happily, there are many ways to get Exchange for your (or your customer’s) business, including Office 365. But let’s say you are catering to the crowd that, for whatever reason, is not ready to adopt the public cloud. And maybe they don’t want the hassle of in-house equipment and/or they don’t have the necessary expertise.

That’s where the Exchange VM roles and “Dedicated Exchange” plan come into play. A lot of automation brings you an almost-ready-to-run, highly available instance of Exchange Server 2013 SP1. Two Exchange servers running all roles, and AD. To satisfy the requirements for fixed data VHDs, we create those for the mailbox databases in keeping with Exchange best practices, and we now have support for the F5 load balancer that comes with CPS. If you are aren’t using CPS, you will have to figure out how to configure load balancing across the CAS servers (DNS round-robin, anyone?)

What the deployment does

We’ve talked about using a subscription to a plan to trigger a set of VM roles, thereby overcoming the issue with VM Roles not supporting multi-tier deployments. (See the resources at the end, particularly the videofrom TechEd Europe 2014.)


After a user decides to subscribe to the dedicated Exchange plan, here what happens behind the scenes – mostly in parallel:

1. A VM network is created using our software defined networking capability

2. A new AD domain is set up with two DCs, including DNS (and the VM network is configured for that)

3. Two Exchange servers are set up with the OS (Windows Server 2012 R2) & Exchange 2013 SP1 installed with all roles

a. Each VM is an “A7” size: 8 cores, 56GB of memory

b. 2 TB data disks are created – this is going to take time and unfortunately WAP will tell you it’s done long before this completes

c. The servers are going to join the domain (when it’s available)

d. The data disks will get attached to their respective VMs

e. Once the first mailbox server is all set, it will extend the AD schema. The other one will wait for all of that to finish.

4. The load balancer will get configured except for the part that can’t be automated today

Now, you may not want 2TB data disks – you may want more or less. We based this on a canonical example of 1,000 users, each with a 1GB mailbox. Since this is a Database Availability Group (DAG) configuration, half of the users should wind up on each mailbox server except if one fails, and data will be replicated by Exchange between the members of the DAG. Add some more space for overhead, logs, etc. and then we rounded up to 2TB. Exchange provides a calculatorfor determining the optimum size of the data disks, database layout, etc.

Also, let’s say you have only 100 users. You can probably make those VMs smaller. We’ll leave that as an exercise for the user.

Another point to remember is that CPS is configured to provide 3-way mirrored volumes, so all data is protected against multiple failures in the fabric itself. This means you get higher reliability than you would get with just simple disks and 2-way DAGs.

What now?

I would like to tell you that you will be up and running in a few clicks and a few minutes, but those fixed VHDs do take time to create (since Hyper-V zeroes out the data for your protection) and there are some steps that come after the OS and application has been installed on all of the nodes. The README file that is part of the WebPI feed has the information you need. But briefly, here’s what you are looking at:

1. Complete that Exchange configuration. You have to tell it to configure the database availability group (and give that an IP address).

2. The CAS role supports multiple protocols, but you will need to provide a certificate for HTTPS, which is probably the protocol clients (like Outlook) are going to us. And then bind that to the correct ports. This really needs to be a certificate from a trusted authority or each user will have to import the cert in order to use Outlook. And it should be a wildcard certificate because you will want the same cert configured to all of the Exchange servers.

3. The load balancer needs some extra configuration and that must be handled by the fabric administrator.

Once this has all been configured, you should validate that it meets the requirements for the number of users and how much data they generate. Loadgen will help you do that. We ran sixteen such instances on a CPS rack to make sure we can scale as above.



Let me be clear: these are intended as examples for you (the service provider/enterprise private cloud admin) to customize to better suit your customers’ needs. And this will require an understanding of how WAP works, how the multiple scripting engines process scripts, and how to edit the automation artifacts. An understanding of PowerShell is also going to be a prerequisite.  I won’t go into the details here but the Building Cloudsblog has a wealth of information. More resources (blogs, videos, downloads) at the end of this article.



Exchange Load Generator 2013:

Exchange Server Role Requirements Calculator:

About CPS:

Everything you ever wanted to know about automation for the private cloud:

Like videos?,

Windows Azure Pack:

WAP Virtual Academy (A whole day of WAP training):

Hands on Lab: Introduction to Virtual Machine Roles

VM Role Authoring Tool:

SMA training:

Web Platform Installer:

DSC (Getting Started and Advanced):