System Center Virtual Machine Manager 2012 as Private Cloud Enabler (3/5): The Power of Service Templates
A primary focus of private cloud is service delivery. In contrast to the traditional datacenter approach to application deployment, maintenance and troubleshooting, private cloud refocuses our attention to the service that is actually being consumed by the user of the service. When you take a service providers approach you begin to think about how you can meet the requirements you set in the SLAs you establish with the consumers of your private cloud based services.
Standardization and automation are two key characteristics of private cloud – and in this article, Yung Chou discusses these issues and how System Center Virtual Machine Manager 2012 and Service Templates empower you to deliver standardized services through self-services mechanisms through the miracle of automation. Yung did a great job with this article and I’m confident that you’ll enjoy it!
This article was originally published in Yung Chou’s Blog and I encourage you to visit and subscribe to his feed.
-Tom Shinder, The Cloud Guy
System Center Virtual Machine Manager 2012 as Private Cloud Enabler (3/5): The Power of Service Templates
By this time, I assume we all have some clarity that virtualization is not cloud. There are indeed many and significant differences between the two. One major point of departure between a highly virtualized datacenter and private cloud is the approach one takes for deploying apps. In this article, the 3rd article of the 5-part series on how SCVMM enables the private cloud, I would like to examine s service-based deployment that uses VMM 2012 for building a private cloud.
As a reminder, the follow is a list of articles that comprise this series:
- Part 1. Private Cloud Concepts
- Part 2. Fabric, Oh, Fabric
- Part 3. Deployment with Service Template (This article)
- Part 4. Private Cloud Lifecycle
- Part 5. Application Controller
VMM 2012 has the ability to carry out both traditional virtual machine (VM)-centric and emerging service-based deployments. The is virtualization-focused and operated at a VM level, while the latter is service-centric approach and intended for private cloud deployment. This article is intended for those with some experience with VMM 2008 R2 infrastructure.
When speaking about cloud computing, the term “service” is a critical concept which I have discussed elsewhere. In the context of cloud computing, a “service” and an “application” means the same thing, since in cloud computing everything delivered to users is considered a service, for example SaaS, PaaS, and IaaS. Throughout this article I will use the terms, service and application, interchangeably.
In virtualization, deploying a server is shipping or building a virtual machine and booting it from a (VHD) file. Those who would like to refresh their knowledge of virtualization are invited to review the 20-Part Webcast Series on Microsoft Virtualization Solutions.
Virtualization has brought many opportunities for IT to improve processes and operations. With system management software such as System Center Virtual Machine Manager 2008 R2 or VMM 2008 R2, we can deploy VMs and install operating systems to a target environment with little or no operator intervention. From an application point of view, with or without automation the associated VMs are essentially deployed and configured individually.
For example, a multi-tier web application like the one shown above is typically deployed with a pre-define number of VMs, followed by installing and configuring applications among the deployed VMs based on application requirements. Particularly when there is a back-end database involved, a system administrator typically must follow a particular sequence to first bring a target database server instance on line by configuring specific login accounts with specific database roles, secure specific ports, and register in Active Directory before proceeding with subsequent deployment steps. These manual operations are required due to lack of a cost-effective, systematic, and automatic way for streamlining and managing the concurrent and event-driven inter-VM dependencies which become relevant at various moments during application deployment.
Despite the fact that there may be a system management infrastructure in place like VMM 2008 R2 integrated with other System Center members, at an operational level VMs are largely managed and maintained manually and individually in a VM-centric deployment model. Perhaps even more significant is a VM-centric deployment often labor-intensive with relatively high TCO included if you want to deploy a multi-tier application “on demand” (in other words, as a service) and deploy multiple times, and run multiple releases concurrently in the same IT environment, if it is technically feasible at all.
That all changes VMM 2012. With VMM 2012 you now have the ability to deploy services on demand, deploy multiple times, run multiple releases concurrently in the same environment. VMM 2012 makes the entire process straightforward and amazingly simple with a service-based deployment model.
In a VM-centric model, there isn’t an effective way to address event-driven and inter-VMs dependencies during a deployment, nor there is a concept of fabric which is an essential abstraction of cloud computing. In VMM 2012, a service-based deployment means all the resources encompassing an application, i.e. the configuration, installation, instances, dependencies, etc. are deployed and managed as one entity with fabric .
The integration of the fabric in VMM 2012 is a key enabler and clearly illustrated in the VMM 2012 admin console as shown on the left. As you might see, a precondition for deploying services to a private cloud is all about first laying out the private cloud fabric.
The process of deploying a service normally employs administrator and service accounts to carry out the tasks of installing and configuring infrastructure and applications on servers, networking, and storage based on application requirements. The servers collectively act as a compute engine to provide a target runtime environment for executing code.
Networking is to interconnect all relevant application resources and peripherals to support all management and communications requirements. Finally, storage is where code and data reside In VMM 2012, this is collectively managed by the fabric .
There are three resource pools/nodes encompassing fabric: Servers, Networking, and Storage.
Servers contain various types of servers including virtualization host groups, PXE, Update (i.e. WSUS) and other servers. Host groups are containers that are used to logically group servers with virtualization hosting capabilities and ultimately represent the physical boxes where VMs can be possibly deployed to, either with specific network settings or dynamically selected by VMM Intelligent Placement, as applicable, based on defined criteria.
VMM 2012 can manage Hyper-V based, VMware, as well as other virtualization solutions. When you add a host into a host group, VMM 2012 installs an agent on a target host which then becomes a managed resource of the fabric.
A Library Server is a repository where the resources for deploying services and VMs are available via network shares. As a Library Server is added into fabric (by specifying the network shares defined in the Library Server), file-based resources like VM templates, VHDs, .iso images, service templates, scripts, server app-v packages, etc. become available and can be used as building blocks for creating VMs and service templates. As various types of servers are brought in the Server pool, coverage is expanded and capabilities increased as if additional fibers are weaved into fabric.
Networking presents the wiring between resource repositories, running instances, deployed clouds and VMs, and the intelligence for managing and maintaining the networking fabric. It essentially forms the nervous system to filter noise, isolate traffic, and establish interconnectivity among VMs based on how Logical Networks and Network Sites are put in place.
Storage reveals the underlying storage complexities and how storage is virtualized. In VMM 2012. A cloud administrator can discover, classify and provision remote storage on supported storage arrays through the VMM 2012 console. VMM 2012 fully automates the assignment of storage to a Hyper-V host or Hyper-V host cluster, and tracks the storage that is managed by VMM 2012.
Deploying Private Cloud
A powerful feature in VMM 2012 is the ability to deploy a private cloud, or more specifically to deploy a service to a private cloud. The focus of this article is to depict the operational aspects of deploying a private cloud with the assumption that an intended application has been well tested, signed off, and sealed for deployment. The application resources including code, service template, scripts, server app-v packages, etc. are packaged and provided to a cloud administrator for deployment. The package has all the intelligence, settings, and contents needed to deploy a service. This self-contained package can then be easily deployed on demand by validating instance-dependent global variables and repeating the deployment tasks on a target cloud.
The following illustrates the concept where a service is deployed in update releases and various editions with specific feature compositions, while all running concurrently in VMM 2012 fabric. Not only is this relatively easy to do (by streamlining and automating all deployment tasks with a service template), the service template can also be configured and deployed to different private clouds.
The secret sauce is a service template, which includes all the where, what, how, and when of deploying all the resources of an intended application as a service. It should be apparent that the skill sets and amount of effort required to develop a solid service template apparently are not trivial. Because a service template not only needs to include the intimate knowledge of an application, but also best practices of Windows deployment in addition to system and network administrations, server app-v, and system management of Windows servers and workloads.
The following is a sample service template of StockTrader imported into VMM 2012 and viewed with Virtual Machine Manager Service Template Designer where StockTrader is a sample application for cloud deployment downloaded from Windows Connect.
Here are the logical steps I follow to deploy StockTrader with VMM 2012 admin console:
- Step 1: Acquire the Stock Trader application package from Windows Connect.
- Step 2: Extract and place the package in a designated network share of a target Library Server of VMM 2012 and refresh the Library share. By default, the refresh cycle of a Library Server is every 60 minutes. To make the newly added resources immediately available, refreshing an intended Library share will validate and re-index the resources in added network shares.
- Step 3: Import the service templates of Stock Trader and follow the step-by-step guide to remap the application resources.
- Step 4: Identify/create a target cloud with VMM 2012 admin console.
- Step 5: Open Designer to validate the VM templates included in the service template. Make sure SQLAdminRAA is correctly defined as RunAs account.
- Step 6: Configure deployment of the service template and validate global variables in specialization page.
- Step 7: Deploy Stock Trader to a target cloud and monitor the progress in Job panel.
- Step 8: Troubleshoot the deployment process, as needed, restart the deployment job, and repeat the step as needed
- Step 9: Upon successful deployment of the service, test the service and verify the results.
A successful deployment of Stock Trader with minimal instances in my all-in-one-laptop demo environment (running in Lenovo W510 with sufficient RAM) took about 75 to 90 minutes as reported in Job Summary shown below.
Once the service template is successfully deployed, Stock Trader becomes a service in the target private cloud supported by VMM 2012 fabric. The following two screenshots show a Pro Release of Stock Trader deployed to a private cloud in VMM 2012 and the user experience of accessing a trader’s home page.
Not If, But When
Witnessing the way the IT industry has been progressing, I envision that private cloud will soon become, just like virtualization, a core IT competency and no longer a specialty. While private cloud is still a topic that is being actively debated and shaped, the upcoming release of VMM 2012 enables you to employ a methodical approach for constructing private clouds using a service-based deployment with fabric. It is a high-speed train and the next logical step for enterprise to accelerate private cloud adoption.
I forecast the future is mostly cloudy with scattered showers. In the long run, I see a clear cloudy day coming.
I encourage everyone to be ambitious with their private cloud plans. When it comes to Microsoft private cloud, the essentials are Windows Server 2008 R2 SP1 with Hyper-V and VMM 2012. And those who first master these skills will stand out, become the next private cloud subject matter experts, and lead the IT pro communities. While recognizing private cloud adoption is not a technology issue, but a culture shift and an opportunity of career progression, IT pros must make a first move.
In an upcoming series of articles tentatively titled “Step-by-Step Deployment of Private Cloud with VMM 2012,” I will walk through the operations of the above steps and detail the process of deploying Stock Trader to a private cloud. To keep yourself informed of my content deliveries, I want to invite you to follow me on twitter and subscribe my blog.