Hit Refresh – A Book By MS CEO Satya Nadella

I recently purchased the hard back copy of Hit Refresh, the new book by Microsoft CEO Satya Nadella. I got it at MS Ignite, and read it on the plane between Orlando and Seattle, and Seattle and San Francisco (a week later).

The book is much like an episode of the TV show, Arrow, blending today with flashbacks of Nadella’s past, using his life story to explain his outlook on managing Microsoft’s future. The book is split into two, first explaining how Nadella got the role and his mission to change the culture of Microsoft, and then the last few chapters explain what Nadella sees as the future.

Most of the first few chapters explain Nadella’s childhood and entry into IT. He wasn’t the classic nerd; he wanted to be a cricket player – that’s like wanting to be a baseball player in the USA, but maybe bigger considering how popular cricket is in a huge country such as India. His father gave him the present of a computer, and like many with an early home computer (ZX-81, I think), he started programming in BASIC, and learned the power of code. Nadella discusses his journey to America, and to Microsoft. Of huge importance, is his personal life and how it formed his outlook on life. Microsoft’s renewed (and genuine) focus on accessibility and community involvement can be better understood by understanding the man.

Nadella’s mission with Microsoft was to change the culture. If you knew Microsoft employees from 5 years ago, they weren’t a happy bunch. Enron’s stack ranking system was used to review staff – someone in the team must always get the “stinker” review – and why would anyone copy anything from Enron, seriously!?!?! The company appeared to have no mission, petty fiefdom squabbling killed innovation, and Microsoft became a place where innovation was unacceptable. Microsoft had plans to get into mobile very early on, but they were killed off. Sinofsky was … you know already! Microsoft was always late to every party, and had become reliant on Office software & Windows sales, both of which were at huge risk. He knew all this, he’d seen things he disagreed with (acquisition of Nokia), and wanted a root change within the corporation.

Phrases like “growth mindset”, “culture change” and “empathy” are throughout the book. Every decision must help the corporation grow – for example, acquiring Minecraft wasn’t an obvious case of growth, but it’s been a marketing coup and has Microsoft products/services in the hands of most under-10s out there. Closing Nokia killed a cancer that was eating Microsoft. And most of all, Nadella did start a culture change. I’ve been dealing with Redmond and engineering teams for 10 years now. In 2010-2012, Microsoft was a bit of a black hole. In 2014, Microsoft was very different; instead of telling us what to think, we were being asked for our thoughts and opinions. I can look at WS2016 and point out things that I and other Windows Server MVPs gave feedback on, including one that MS didn’t think was necessary at all, which became a key feature! I’m regularly in contact with Azure program managers who are hungry for feedback.

Today’s Microsoft takes smart chances with Surface, creates HoloLens, forms alliances with old rivals (Salesforce, RedHat, Apple, Amazon, and more) where there are mutual opportunities that benefit both sets of customers. Microsoft has bent over so far backwards to embrace opensource in Azure that they are probably the most open-friendly public cloud around.

It wasn’t easy for Nadella to accomplish this. He goes into a lot of detail about how this was done. Some of his approaches were rebuffed a bit at first, he broke some traditions, but these are things that needed to be broken.

In the final chapters, he talks about the future of Microsoft. He’s clear that Microsoft completely missed the boat when it came to mobile devices. Microsoft was too late to market and there wasn’t room for a 3rd platform. He’s quite clear about that in interviews – what can Microsoft do that will be different and attractive enough to bring a critical mass of customers to a new product? Simple being another OS doesn’t cut it, and several years of 3 generations of Windows Phone/Mobile proved that. What Microsoft does bring is genius, and the power of the cloud. Microsoft’s big push for the future is based on IoT, AI, and quantum computing. The three solutions are intertwined and there is an indirect consumer link – a customer’s freezer can malfunction, a bot can reach out, and that bot’s AI could be trained/enhanced by quantum computing.

This book isn’t going to change your life. There’s no life & death car chases. No one barely escapes being eaten by a black hole. But if you are interested in the world of Microsoft, this might be an interesting read to understand the new Microsoft. A lot of the text is very Nadella-keynote, being repetitive, dry, and conceptual. But you will come away understanding his thought process, realizing how well read and educated the man his, how he thinks deep about everything, and most of all, why empathy is so important to him.

Two New Books By Hyper-V MVPs

Congratulations to my MVP colleagues, Alessandro Cardoso and Benedict Berger on the recent publication of their respective books.

System Center 2012 R2 Virtual Machine Manager Cookbook, 2nd Edition

Alessandro wrote this second edition book to focus on SCVMM 2012 R2, available from Amazon:


  • Create, deploy, and manage datacenters and private and hybrid clouds with hybrid hypervisors using VMM 2012 R2
  • Integrate and manage fabric (compute, storages, gateways, and networking), services and resources, and deploy clusters from bare metal servers
  • Explore VMM 2012 R2 features such as Windows 2012 R2 and SQL 2012 support, converged networks, network virtualization, live migration, Linux VMs, and resource throttling and availability

What you will learn from this book

  • Plan and design a VMM architecture for real-world deployment
  • Configure network virtualization, gateway integration, storage integration, resource throttling, and availability options
  • Integrate SC Operations Manager (SCOM) with VMM to monitor your infrastructure
  • Integrate SC APP Controller (SCAC) with VMM to manage private and public clouds (Azure)
  • Deploy clusters with VMM Bare Metal
  • Create and deploy virtual machines from templates
  • Deploy a highly available VMM Management server
  • Manage Hyper-V, VMware, and Citrix from VMM
  • Upgrade from previous VMM versions

Hyper-V Best Practices


Benedict wrote this book, available from Amazon:

This is a step-by-step guide to implement best practice configurations from real-world scenarios, enhanced with practical examples, screenshots, and step-by-step explanations.This book is intended for those who already have some basic experience with Hyper-V and now want to gain additional capabilities and knowledge of Hyper-V.If you have used Hyper-V in a lab environment before and now want to close the knowledge gap to transfer your Hyper-V environment to production, this is the book for you!

Congratulations to both authors!

Before anyone asks – no, I am not planning an update to the WS2012 Hyper-V book. It’s too much work for too little return in too small a window (Windows Server vNext Preview will be announced in October, 12 months after the RTM of WS2012 R2).

TechEd NA 2014–And The Winner Of Speaker Idol Is …

So I told you that I had qualified as a wildcard to the final of Speaker Idol in TechEd North America 2014. The judges also said I need to give them a tech talk rather than my tall tale based on photography. This would be a challenge. Other finalists would tweak existing decks that they’d worked on for ages. I had to start from scratch and get it right in less than a day. The most difficult thing is … it’s a 5 minute session and they time you. It’s one of the judging criteria. An hour long session is much easier to prepare.

So I got to the hotel on Wednesday night and started working. I knew what my topic would be: WS2012 R2 Live Migration. I had a demo script and a lab in Dublin … but there is no reliable speaker net at the podium so I would have to record my demo. VPN was too unreliable.

I built up my deck. No problem there. I knew the rules: the judges expect you to stick to a format. I went to build my demo but I had some problems with PowerShell modules in my VMM-deployed labs. It took some time, but I figured them out and got the demo ready. Then Camtasia did it’s thing … I remembered to record the video at eactly the screen resolution used by the big screen at the podium. One run through of the session and it was … nearly 9 minutes long. I needed to edit the deck, the demo, and me … brutally.

At 00:30 I was exhausted. I set the alarm for 06:00 and slept like a baby. It was the first morning that the alarm woke me. No jetlag on Thursday. I had a few hours to get myself ready for the final at 12:30. I rehearsed again and again, finally figuring that if I said certain things at the right time in the demo, and left out others, I could hit 4 minutes 45 seconds. Perfect!

So off I went to TechEd. I attended a session on Azure connectivity and thin skipped a fairly dull second slot, opting to go through my deck. I remembered something Mark Minasi told me last year – when he was not a judge. Speaker Idol judges and the audiences are a mixture of IT pros and devs. Give both audiences a hook. So I did: more service uptime and “your aps stay running while IT does stuff”.

The time came. I went to the area and waited. A crowd started to gather … and then people I knew started to arrive. The Hyper-V PM team from Redmond, the Irish MVP gang (John McCabe [ex-mvp, now MSFT]), Kevin Greene, Damian Flynn), readers of my blog and twitter followers, the gang from Petri, the Ferrills (father and son tech journalists, and so many more.

I was nervous. I do not get nervous when I speak. I really don’t. I’m comfortable speaking. I enjoy it – it’s a buzz when you’ve got something to share and you can see that the audience want to hear it. But damn I was nervous. I got on stage, and completely forgot that I had a clicker on the desk. I stood with Richard Campbell (the organizer, and famed for things like RunAs Radio) as I was introduced to the crowd.


I realized how much of the audience were people rooting for me. I was amazed. These people took the time to come and support me. The view from the podium was so cool.

My plan might work. I had 5 minutes to impress … starting now!

First thing: “How is everyone? Is everyone enjoying Speaker Idol?”. And they whooped. Thankfully! That got things going well. I did my intro slides and completely let the fact that I had a clicker slip out of mind. I like to get out from behind a podium so I was walking back and forth, pressing the keyboard to progress. Yuk! I did my demo and screwed up my timing and included stuff that I shouldn’t have. I included the “It does stuff” line and people laughed. Damn, this was going OK.

I wrapped up and waited for comments. I went over 5 minutes, nearly hitting 6 minutes. Argh! I was toast. Maybe I should have trimmed the intro slide. Some comments about font and bullet points. But overall, great comments about delivery and inclusion of the audience. The dev outreach worked.

I thought the guy that did the Azure talk would win. I liked his pace (I was a bit rushed) and he seemed very polished to me. I was sure I was not winning. We were all called up for the results. The judges said this was a tough one, tougher than it used to be in past years because people know what to bring now.


Mark Minasi (who recused himself of voting because we are friends) announced the results. It was a non-American (there was a presenter from Finland who also did a good job). And the winner of a speaking slot in TechEd North America 2015 is …

Aidan Finn.

Instantly pressure slid off. And the lack of stress left me … I was shattered. I think the stress was holding me up. Afterwards I talked for about an hour with people from all over. When it all died down I was ready to drop.

A few beers were had to celebrate 🙂

TechEd NA 2014–Extending Your Premises To Microsoft Azure With Virtual Networks And ExpressRoute

Speakers: Ganesh Srinivasan (Azure Networking), Jai Desai (StorSimple), Jon Ormond (MSIT).

Legacy Connections for Site-Site in Azure

  • Secure point-site VPN: for developers. POCs. Small scale deployments. VPN in from a machine. Based on STP.
  • Secure site-to-site VPN: This is for SMB and enterprises. Connect your business to Azure compute. IaaS and PaaS workloads. Configuration generally done on and on-rem edge device. Based on IPsec.

Now added: Private site-to-site called ExpressRoute. For SMB (with WAN) and enterprises. Mission critical workloads. Backup/DR, Media, HPC. Based on services provided by WAN ISP that are Azure networking partners.

Virtual Network Recap

Software defined private network in Azure. You carve out your own IP space/subnets. Can punch holes through Azure firewall for public presence. VPN connects to the virtual network via an edge subnet.

In-Region VNet to VNet

You want security between tiers or services so you put them in different virtual networks. In the same region, there are no data transfer costs. You can punch holes through firewalls to let services communicate.

Cross-region VNet to VNet

Need local presences across the glob but with interconnectivity. For HA/DR also. Can communicate securely using private IP addresses.

Multi-site VNet Connectivity

Up to 10 on-prem sites can connect into a single VNet in Azure. They may be geographically dispersed.

VPN Partners

Watchguard, OpenSwan, Cisco, Fortinet, Brocade, Sonicawall, Checkpoint, Juniper, F5, Allie Telesis, and Windows Server 2012 R2.


Other techs go via public internet so you have dependencies on many ISPs between you and Microsoft. Lots of chokepoints. It might be secure (IPsec), but you cannot build SLA on this. ExpressNetwork brings Azure VNets into your WAN. Now you connect to Azure via a private, SLA controlled WAN connection managed by your ISP, subject to your contract with them.

Enterprise Workloads

All services are made available, and not just VNets. VPN is limited to VPN. You also have controlled and predictable latency. This means there are lots more workloads that you can do over ExpressRoute:

  • Storage/backup/recovery
  • Dev/test lab
  • BI/big data
  • Media
  • Hybrid apps
  • Productivity apps

SharePoint has generated lots of interest as a service over ExpressRoute from customers.

Two Flavours

  • Depoy “on prem” at a colo facility such as provided by Equinox. You can route via colo facility to Azure. Probably requires lots of work for you and additional h/w.
  • Use an Azure ExpressRoute partner as your WAN provider. Then your sites connect direct to Azure. Almost a light switch. Probably no additional h/w.


Equinix, TelecityGroup, BT, AT&T, Level3, Verizon, SingTel

BT important for UK/Ireland. Telecity are important for Europe. If you are not with any of these, “talk to us” according to the speaker, and “we will figure it out”.

ExpressRoute Tiers

Unlimited inbound data transfer. You get some outbound data for free and above that there is a charge.

  • 200 Mbps + 3 TB Month free
  • 500 Mbps and 7.5 TB/month free
  • 1 Gbps + 15 TB/month free
  • 10 Gbps and 250 TB free/month

Customer Connectivity

If you do VPN then you can only access compute that runs in VNets. If you do ExpressRoute then you can access anything. And of course, if you punch holes in firewalls, then you can make services available publicly.

Common misconception: stuff you place in Azure is public. No: it’s only public if you make it that way. Your Azure services can be completely private if you want.

Customer Sign Up Experience

Talk to MSFT and ask for partners in a location. You get a key. Pass that on to the service provider. They query Microsoft and then they create a cross connection between you and Azure. You then set up BGP routes between you and Azure. And then you are connected.

In the case of a WAN provider, the routing is done for you.


He creates an ExpressRoute connection via the web ONLY using MSFT WAN and AT&T. The whole process is basically orchestrated. Should take no more than 5 minutes to complete after walking through the wizards.

He VPNs into Microsoft and can ping and Azure VM over the new WAN connection.

Another ping demo: between 1-2 MS latency between a MSFT office in California and a SharePoint farm in Azure over ExpressRoute (think he said US East region).

Fails over the SharePoint SQL database (guest OS install) from one region to another – takes about 3-4 seconds.

We now get Jon Ormond of MS IT to talk about how they are using ExpressRoute.


LOTS of internal little apps that they have no interest in rewriting as PaaS apps. They use IaaS to run those VMs in Azure – doing that lift & shift now. Need a robust network connection. This is why they use ExpressRoute. They want to end up with 95% of VMs in “the cloud” both private (WAP) and public (Azure).

He does a demo using PowerShell to create the connection. Can also do this using REST API.

Jai Desai, a TSP takes over to talk StorSimple. I tune out here … a StorSimple talk.

TechEd NA 2014 – Windows Azure Pack versus OpenStack

Speaker: Damian Flynn, MVP

OpenSource options

  • Eucalyptus.
  • Apache CloudStack: open sourced by Citrix.
  • Open Nebula: Poor support for hypervisors. Not there for Hyper-V.
  • OpenStack: Youngest of the four.

Then we have the Microsoft Cloud OS.

A handful of the room are running open source cloud, managing Hyper-V. Windows Azure Pack and SMA are the front end to VMM/SPF.

OpenStack clearly dominates the forum chatter.

Cloud OS Basic Deployment

Management network for WAP, SysCtr stamp, Network resources (NVGRE g/w) on Control Plane and External networks, and Compute on Control Plane and External networks.

Tip: download Damian’s deck from the Channel 9 site in a few days.

Architecture of OpenStack

Portal manages network, compute, image and blob. Identity drives all of those. Block storage also added.

The names of the components are … random codenames, e.g. Horizon, Heat, Trove, etc. See Damian’s deck. Same 3  networks are used, but the stack is simpler.


  • WAP: only supports Hyper-V. vSphere and XenServer are supported by SysCtr.
  • OpenStack: Hyper-V, vSphere, XenServer/XenCloud, KVM, QEMU, UML

Hyper-V gets “a fair amount of love” from OpenStack. Microsoft Cambridge UK are writing support for OpenStack.


  • VMM will manage the storage fabric elements. Based on industry standards like SMI-S and MSFT-owned stuff like SMB 3.0/Storage Spaces.
  • OpenStack: Swift does BLOB/file-based storage. Cinder does block based storage. Relies on a lot of work by the storage vendors.


  • SCVMM: Store images here. Tag those images using POSH.
  • Openstack uses Glance: Uses a workflow. Unlike what is in SCVMM. Glance needs to do a lot of prep work –before- deploying a VM. Cloud OS uses Hyper-V KVPs for a lot of that work on running VM during deployment phase.


  • Cloud OS: WAP authentication sites. Authenticate against local DB, .net (build your own stuff), or using ADFS (potentially any authentication system via federation).
  • OpenStack: Keystone. Everything must talk to Keystone to authorise actions. Keystone does better role-based access control – what a user can do within their tenancy.

User Experience

  • Cloud OS: WAP Admin and Tenant portals.
  • OpenStack: Horizon. Single portal doing some admin and tenant roles.

Damian says “God damn this is complicated” regarding OpenStack administration. A nightmare to figure out where you start and what to do.

Italian company called Cloud Based IT that make a product to make OpenStack work. They configure Windows with all that jazz you need. And it’s way out date.

Damian reckons RedHat would have been a better choice for his lab. Went with Ubuntu. Installing: easy. Configuring: not so easy.


  • OpenStack: Public. Modules built within the stack.
  • Cloud OS: Microsoft do not talk futures publicly. MSFT focusing on bringing in partners to expand the eco system. SDK allows you/others to build add-ons.


  • MSFT engineering supporting 3rd party platforms.
  • Openstack is “free” – requires LOTS of engineering to customise and deploy

Cloud OS

  • One platform
  • Built on proven & documented System Center
  • Familiar and fully supported tech

Requires an incredible amount of work with HUGE hidden costs. Don’t let “free” fool you or your boss.

TechEd NA 2014 – Introduction To Microsoft Azure Automation

Speakers: Eamon O’Reilly (System Center automation) & Beth Cooper (same team)

What System Center has done has been extended into Azure. Both in preview. About half of the room are familiar with Orchestrator, the basis of what we will see this morning.

Pretty full room – pretty small room unfortunately.


  • Optimize and extend existing investments: Based on POSH. Integrates existing systems.
  • Deliver flexible and reliable services: quicker. Reuse.
  • Lower costs and improve predictability: reduce manual errors.


Same as SMA: runbooks, jobs, and assets.

Appears under Automation in the Azure portal.


All runbook management/authoring/testing can be done in the Azure portal. Has a HA engine. Also has suspend/resume/checkpoint features of SMA. All based on POSH workflows so if you have a cmdlet, you can do it.


Free in preview. Pricing based on 3 points:

  • Job run time: time from start to complete. 500 minutes on free plan. $20/month (standard plan) gives you 10,000 minutes
  • Number of runbooks: 20 for free in free.
  • Integration module size: 5 MB on free plan.

You can register for the preview on the Azure preview site. This week is the time to do it. Preview is limited to East USA region.


Create a new automation account. Sample runbooks to be found on script centre. Tags are present to search/filter runbooks, like in SMA. Also has draft (what you are editing) and published runbook status. So you can have a published runbook and edit a new version.

Almost everyone in the room is using PowerShell. IT pros in Ireland are 5 years behind the USA, at least, and this is not a question of scale.

You can manually start a runbook or schedule on. Example: shut down idle VMs at end of workday and power them up at start of workday – save the runtime cost of VMs in Azure.

Automation Accounts

  • Organise automation by group of individual contributor
  • Accounts live in different regions.
  • Create up to 30 accounts

Automation Dashboard

  • For analysis and troubleshooting operations
  • Access problem jobs to get up and running quickly – focus on them instead of the lots of others that are OK


  • Author: Create workflow runnbooks. Call existing runbooks in library
  • Manage & browse and insert assets in runbooks: Modules & activities, credentials, variables, connections, schedules
  • Test: Run and see results within authoring window.
  • Troubleshoot issues
  • Publish: Edit draft before publishing

Manage Runbooks & Jobs

  • Dashboard view: view jobs over time. Find jobs that need attention
  • Runbooks view: Filtering of jobs based on status and date. ID authoring state (new, in edit, published). Filter by tags to find runbooks.
  • Jobs view: Histor of jobs per runbook. Who last updated/when. Input parameters and output. Drill into each job to view streams generated to help troubleshooting. Stop/suspend/resume job.


  • Connections: Information to connect to a particular system. System specific settings.
  • Update to new versions of integration modules
  • Credentials
  • Variables
  • Schedules

Central set of resources that can be used by all runbooks, like in SMA.



Has application insights enabled. If there’s an error on his site, The runbook triggers an action when an alert is created. A response is triggered whenever an alert is detected. All done using inline runbooks. Note: the alert detection method he used was to search for an alert email in GMail via an RSS feed.

Another demo.


They’re using SharePoint to store and change control their runbook scripts. A runbook is monitoring the status of scripts in the SharePoint document library (list item), using a custom SharePoint module. This uses a connection asset. They see a script go into a “ready to test” status in SP and that triggers a child runbook. It appears that the action is that the runbook is updated in Azure and moved to “production” status in SharePoint – they don’t really explain but that’s not really the point anyway. The demo was connections to external resources.

Typical Scenarios

Azure automation is more than just about Azure resources. Posh offers huge extensibility via modules.

  • Monitoring & remediation: Alert on a VM. Monitor for new services to ensure management. Notify subscription owners of underutilized VMs that are wasting money.
  • Change control and provisioning: Deploy a VM, and enable monitoring. Deploy a new service and configure endpoints for alerts. Deploy from GIT and automate tests and swap to production if passes. Monitor SharePoint online for approval to update a service and do that once approved.
  • Patch/Update/Backup orchestration: Use traffic manager to patch IaaS VMs without downtime to services. Enable regeneration of storage account keys while avoiding downtime. SQL backup on a schedule. Backup and restore IaaS VMs.

Leave remote management of Azure VMs enabled and Azure Automation can reach into those VMs’ guest OSs.

Anything you do twice: Automate it.

Takes time to create automation, but the more you do it the quicker you do it. And the time you invest up front will save you time in the long term.

TechEd NA 2014–SCVMM Bare Metal Host Deployment

Speakers: Damian Flynn, MVP and Marc Van Eijk, MVP.

Confusing topic for many. The guys are very experienced in the real world so a good session to take notes from and share.

Environment Preparation

  • Rack the servers and configure the BMC card.
  • Build an OS image and add it to the library.
  • Configure DNS aliases for BMCs, set up certs (if required), and set up VMM Run As profiles, e.g. join a domain, log into BMC, etc.

Infrastructure Services

  • Set up WDS for SCVMM
  • You need a DHCP scope for your bare metal hosts for the deployment phase. The hosts will get static IPs after deployment.
  • Prep SCVMM – Import WDS, add OS image to the library (and refresh), add a Run As account for the domain join, and add a Run As account for the BMC.

The deployment

  • Configure the networking stack in SCVMM
  • Do a deep discovery to get hardware of the host
  • Deploy the VHD as boot-from-VHD on the host, install drivers, join domain, configure networking, enable Hyper-V,  etc.


Concepts of the network in SCVMM

  • Logical network: A role
  • Network site: Part of logical network
  • Subnet/VLAN ID: A subnet that’s a part of a site
  • IP Pool: A pool of IPs for a subnet

A VM Network is an abstraction of a logical network. Required to connect NICs to a logical network.

Demo of Logical Network

Marc asks who has used VMM. Almost everyone. Who has done bare metal deployment: Very few. Who was successful first time: one brave person puts his hand up (I mock him – seeing as he is a friend).

Marc does:

  1. Create a host group.
  2. Creates a logical network called management. He sets VLAN-basd independent networks. There will be converged networks that are split up based on VLANs.
  3. Creates a network site called host that is set to be available on the host group. He sets a VLAN on 0 for PXE boot, and sets the IP subnet.
  4. Additional network site for Live Migration with a different VLAN
  5. Then he adds a third site for cluster communications with a VLAN. So one logical network with 3 network sites.
  6. Creates IP pools for each network site. Use to assign static IPs during deployment. Configures gateway and DNS settings for the management network.

Note that there is no need to do anything special to enable NVGRE. No subnets, logical networks, or anything else. A check box was left checked to allow NVGRE to be used when creating the logical network.

  1. Creates a new logical network called Cloud Network. This is what would appear in WAP when a customer creates a virtual network – so choose a suitable name.
  2. Checks “allow new VM networks ….” to use NVGRE.
  3. Creates a site with a VLAN and associates with the host group.
  4. Now he creates an IP pool for that site/logical network. The number of IPs in the pool will limit the number of VMs. No DNS or gateway settings.

So now we have two logical networks: Management and Cloud Network. The Cloud Network appears to be used for the PA Space.

  1. A third logical network called tenant VLANs
  2. Network site: Names the site after the VLAN ID.
  3. Adds more network sites, named based on the VLAN IDs.
  4. Adds IP pools.


These VLANs appear to be used for tenants.

  1. Creates VM network for host/management.
  2. Creates VM network for cluster.
  3. Creates VM network for live migration.
  4. Creates a VM network for tenant A and another for tenant B

Back to presentation.

Network Design

Note that for VMM to create a team, you need to create a logical switch. BAD! Needless creation of virtual switches and limits things like RDMA. Complet convergence also not good for some storage, e.g. RDMA or iSCSI storage. Might do some convergence and non-converge your storage networks.

Benefit of logical switch

Repeatable consistency.

Note: also required for NVGRE, unless you want to go to PowerShell hell.

The design they are deploying:



  1. Create an uplink port profile to define a NIC team. This one is created for HNV/Tenants. Selects the Cloud Network and the tenant VLAN network sites. Also makes sure the enable NVGRE check box is left enabled.
  2. Creates an uplink port profile for the mangagement network. Now adds the cluster, host, and live migration network sites.

What he’s done: configure the above two network teams from the diagram and defined which networks will pass through the respective teams.

  1. Creates a logical switch for management. Selects the management uplink port profile and selects the teaming option. Even if you have just one NIC, you can add a NIC later and join it to the team. Now to define the convergence by adding virtual ports. A step in this is to define port classification – this does QoS. Select Host Management and match with management network – repeat for the reset of management networks.
  2. Creates a logical switch for tenants. And also teams with the tenant HNV uplink port profile. Adds three adapters (port profile classifications) for QoS – low, medium, and high (out of the box – weights of 1, 3, and 5).


  1. Next up: create a physical computer profile. Choose a host profile. Select the virtual hard disk from the library that will be the host OS. Now the fun bit – network configuration in Hardware Configuration.
  2. Tip: Expand this dialog using the control in the bottom right corner.
  3. It starts with a single physical NIC with the management role. Add 4 more physical NICs.
  4. First and second added to the logical switch of management.
  5. Configure 3rd and 4th to the tenant logical switch.
  6. Edit the original physical NIC and select “Create a Virtual Network Adapter as the management NIC”. Set the transient physical newtork adapter as NIC 1. Apply a classification – host management. Set the IP Pool as Host.
  7. Add 2 virtual NICs. Connect 2st to logical switch management. Set to Live Migration. Connect the 3rd to the mangement logical switch and configure for cluster.
  8. Can also do some other stuff like filtering drivers from the library for precise PNP.
  9. Continue the wizard – set domain join and runas account. Set the local admin password, the company info and product key. An answer file can be added to customize the OS more, and you can run tasks with GUIRUNONCE.
  10. You can skip the default VM storage path for clustered hosts – VMM will control this in other ways later.

Deployment Demo

  1. Kicks off the wizard from the host group. Provision the new machine.
  2. Select a host group that has a valid host profile. Select the host profile.
  3. Kick off the deep discovery. The host reboots into WinPE to allow VMM to audit the host h/w. With CDN enabled, you can pre-bind NICs to logical switches/teams. Without it, you’ll need to know which NIC is plugged into which switch port, then you can bind NICs to right logical switches. The server schedules a shutdown after the audit.
  4. In VMM you can finish the host configuration: naming of the host. Binding of NICs to logical switches if you don’t have CDN in the host. If you’re quick, the server will not shutdown and the setup will kick off.


Converging things like SMB 3.0 or Live Migration through a logical/virtual switch disables RSS so you limit 10 GbE bandwidth to 3.5 Gbps or thereabouts. Can create multiple management OS vNICs for SMB multichannel, where VMQ dedicates a queue/core to each vNIC.

My approach: I do not converge my SMB/cluster/storage rNICs. They are not teamed, so they are basic logical networks. No need then for logical switch.

TechEd NA 2014 – In-Depth Introduction To Service Management Automation (SMA)

Neil Person PFE is the presenter.

What is PowerShell Workflow?

Introduced with Posh 3.0. Common syntax  but different execution. Uses Windows Workflow Foundation (WF). Used by SMA.

Windows Azure Pack (WAP)

A collection of on-premise Azure tech. Gives you a true cloud: multi-tenant and self-service, with presentation of broad network access and reusable resources provided by Hyper-V and SCVMM. Add-ons provide the measurement billing.

What is SMA?

A process automation tool built on WF that has native integration into WAP. A component of System Center Orchestrator. The files to install it are on the SCORH media. A unit of automation is called a runbook. They are built using POSH workflows in SMA, rather than GUI in SCORCH.

HA and scalable infrastructure.


WAP provides a GUI to SMA. You can admin the SMA system and edit SMA runbooks in WAP. You do not need WAP to run SMA, but SMA provides a console to manage it. Once you integrate SMA into WAP, you can use SMA runbooks for WAP activities, e.g. creation of a VM triggers a runbook for post-deployment configuration.

WAP is not a service provided by tenants. It is a service used by the cloud admins to automate work. Might benefit the users/tenants.

Authoring, admin and execution

Can edit in WAP Portal or PowerShell ISE. Tags are used to categorize runbooks – Folders are not used. Runbooks can transition through states: draft, published, or in-edit. There are several ways to execute runbooks – Posh module, a web service. A job is an instance of an executed runbook.

SMA Architecture

3 components:

  • Posh module
  • Web service – the centre of SMA – authenticating users, accepting requests, etc. Deploying this creates an SMA database.
  • Runbook workers.

Requests made, maybe via Posh module or via HTTP to the web service. The request is placed in the SMA database. Results might be sent to the web service. Runbook workers pick up jobs from the database and send job state information back to the database – if using state persistence functionality.

Install and Post-Install

Deploy the SMA components. Deploy multiple runbook workers for HA. Deploy WAP if you want that integration and console. Configure the WAP integration.

Automation in WAP is where you work with SMA. You need to register the SMA endpoint to integrate SMA with WAP. Any runbooks that you’ve created will appear.

SMA also appears under VM Clouds as Automation tab in WAP. This requires a second integration. You can use “an existing endpoint” from the previous step.

There are PKI requirements that have not been covered. Also some admin rights stuff.

There are a bunch of sample runbooks that you’ll see when you install it.


Runbooks are tagged for sorting or filtering. Runbooks can have more than one tag. Gives a multiple result possibility that folders cannot offer. Useful for nested runbooks where a runbook is reused for several greater tasks.

Managing a runbook

Created via the New menu is used in WAP. Drill into the runbook to see more. Use Configure to tag the runbook and enable logging. Authoring is where you can build the runbook from within the WAP GUI. There are draft and published tabs. SMA will put in a script block (snippet) for the workflow in draft to get you started. The code that you add is PowerShell. He uses Get-ADUser as a simple “hello world” demo to dump data on the output stream (write-output).

The test button gives you immediate feedback on code syntax. Publish the code, and then you can run the runbook. A job is created. It goes from queued to starting as a worker picks up the job from the database.

He copies the code into ISE. He runs it in ISE to test the code. It’s just a POSH workflow. Now he has code from the SMA module. His code runs get-smarunbook to query all the runbooks. Then Import-SMARunbook to import a PowerShell script to create a new runbook. Publish-SMARunbook will publish the runbook, readying it for execution. A new job is createed by running Start-SMARunbook. Get-SMAJob queries the status of the job. The output stream is showsn with Get-SMAJobOutput. And finally he deletes the runbook with Remove-SMARunbook.

Note he has a variable for the web service endpoint that is used as a parameter in each of the above cmdlets.


A collection of globally available settings we can use in any runbook. A connection asset is used to conenct to an external service. More than just username/password/server name. In ConfigMgr, the site code might be there. Might have a place for a certificate. Similar to what you see in SCORCH. A variable is used to share data across multiple runbooks. Credentials can use PSCredential or certificate to embed ID in a script securely. A schedule allows you to automate the scheduling of runbooks.


We can checkpoint a runbook. This is a save state action. Not like Hyper-V. For example, a script is creating a user and configuring it. If the script is interrupted after creating the user, a resumed execution will continue from the last checkpoint, therefore not trying to create the same user a second time.


Don’t go nuts with them. They have a performance impact. Be judicious, e.g  after a critical action or after doing something that cannot be repeated.

A runbook can be suspended – pause and resume. Let the runbook do stuff, let someone inspect the work, and then resume execution to finish the runbook.

Nesting Runbooks

Don’t create a massive runbook. Use nested smaller runbooks. This encourages code resuse and higher quality runbooks that are more heavily tested.

A parent runbook orchestrates the execution of child runbooks. We can start a runbook inline by referencing the name of the child runbook and passing it any required parameters. They appear as one job. All of the output is rolled up into that one job thanks to your inline execution. Synchronous execution.

Start-SMARunbook is a second way to start child runbooks. The child runbook gets its own job. Output is specific to that job. Asynchronous execution.

Inline Script

Some code that you have lying around might not work. They can be encapsulated in an inline script. The workflow creates a POSH session to run that encapsulated script. Any returned data goes into the workflow. Checkpointing and suspending won’t work inside inline script, but can be done before or after the inline script.

$variable = inlinescript {




Parent runbook is taking in parameters that will need to be provided when starting a job. This parent will kick of children to create a user, populate groups, move the user to an OU, and send and email to a  manager.

Get-AutomationPS<something> is used to pull inforation from SMA assets into POSH variables so that they become usable in the runbook code.

EmulatdAutomationActivites module allows you to run the runbook locally on a PC as if it was in SMA.

He calls the child runbooks simply by using the names of the published runbooks in the script as if they were cmdlets.

He publishes the scripts, and filters the tags in WAP. He goes into Assets and clicks Add Setting to add the required assets for the parent runbook. He starts the parent runbook. The parent’s required parameters are supplied via a pop up screen. A single job is created because inline runbook execution is used. The job runs – it creates a user, configures it, and sends an email to the manager.

Post-VM Deployment Servicing Demo

In VM Clouds we see that the VM Create action is tied to a runbook. Run this action will trigger this runbook. He wants to rename the guest OS computer name from the WAP-default random name to match the VM name in Hyper-V.

The scipt goes into a loop until the VM is up and running. He does this using Suspend-Workflow.

That’s all folks. SMA as a concept is pretty simple, as is SCORCH. The magic is in the code that you write. Learn PowerShell.

TechEd NA 2014–Cloud Optimized Networking In Windows Server 2012 R2

I am live blogging this session. Press F5 to get the latest updates.

Bob Combs and Greg Cusanza are the speakers. Each are PMs in the Windows Server data centre networking team.

Bob starts with a summary of 2012 R2 features.

The scenarios that they’ve engineering for:

  • Deliver continuously available services
  • Improve network performance
  • Advanced software defined networking
  • Networking the hybrid cloud
  • Simplify data centre networking

The extensible virtual switch is the policy edge of Hyper-V. Lots of built in features such as Port ACLs, but third party’s extend the functionality of the virtual switch too, including 5nine.

Those port ACLs were upgraded to Extended ACLs with stateful inspection in WS2012R2. The key thing here is that ACLs now can include port numbers, not just IP addresses. This takes advantage of cool design of vNIC and switch port in Hyper-V. The rules travel with a VM when it migrates. That’s because the switch port is an attribute of the vNIC, not of the vSwitch. Policies apply to ports so policies move with VMs.

A few people in the room know what RSS is. About 90% of the room are using NIC teaming. About half of the room have heard of Hyper-V Network Virtualization.

Greg takes over. Greg shows a photo of his data center. It’s a switch with 5 tower PCs. Each PC has 2 NICs. 2 hosts, with virtual switch on the 2 NIC team. Host1 runs AD, WAP and SPF VMs. Host 2 runs VMM and SQL VMs, and some tenant VMs. One storage host, running iSCSI target and SOFS VMs. 2 VMs set up as a Hyper-V cluster for the HNV gateway cluster. There is one physical network.

Note that the gateway template assumes that you are using SOFS storage.

The host networking detail: Uses vNICs for management, cluster, and LM. Note that if you use RDMA then you need additional rNICs for that. He’s used multiple vNICs for the storage (non RDMA) for SMB Multichannel. And then he has a vNIC for Hyper-V Replica.

VMM uses logical networking to deploy consistent networking across hosts. Needed for HNV.  Uplink port profile creates the team. Virtual switch settings create the virtual switch. Virtual adapters are created from port profiles. If a host “drifts” this will be flagged in VMM and you can remediate it.

Remember to set a default port on you logical switch. That’s what VMs will connect to by default.

Then lots of demo. No notes taken here.

The HNV gateway templates are available through the Web Platform Installer. The 2-NIC template is normally used for private cloud. The 3-NIC template us normally used for public cloud. Note, you should edit the gateway properties to edit the network settings, admin username/password, product key, etc. During template you should edit the VM/computer names of the VMs and their host placement. They are not HA VMs. Guest clustering is set up within the guest OS. This is because guest clustering service HA is faster to failover than VM failover (service migration is faster than guest OS boot up – quite logical and consistent with cloud service design where HA is done at the service layer instead of fabric layer).