I was wondering if I should try to create a white paper about «Services» in VMM 2012. But I found out that a bunch of blog post would be more suitable, and also less formal than a white paper.
What is a Service?
From the early beginning of Microsoft Private Cloud, they stated very loud and clear that they were able to focus on the real deal, - services.
If you`re familiar with Windows Azure, you may recognize the term ‘Service’ as in hosted services in the Windows Azure portal. It can be a VM Role, Web Role or a Worker Role. But that`s for Azure. There are some architectural differences between the service concept in Microsoft Private Cloud (VMM) and in Microsoft Public Cloud (Windows Azure).
Let`s talk shortly about both of them before we go any further.
In Windows Azure, you can create hosted services. These services are created in Visual Studio 2010, and as mentioned earlier, either a VM Role, Web Role or a Worker Role. For the Web and Worker Role, you`ll get a configuration file and a package. Upload these files to the Windows Azure portal (or you could simply use System Center App Controller for that) and you`re good to go. Prior to this, you must have signed up and created a Windows Azure Subscription.
The beauty of the Platform as a Service model is that Windows Azure will take care of everything. Define how many instances you`d like and Azure will configure the required VMs, and eventually place them behind a load balancer and a VIP template.
- Ok, brilliant. But what about the storage?
That`s a very good question Kristian.When you`re working with Windows Azure – think stateless, stateless and stateless. Also when it comes to the VM Role. You should use one of the storage options in Windows Azure, and there`s several options here as well. Binary Large Objects (Blobs), Queues, Tables and SQL Azure. Now, if you plan for a massive scalable storage solution, use Blobs. This is the cheap storage solution for you hosted services, and if you`re creating an application that will not update the content quite frequently, you can also take advantage of the Content Delivery Networks (CDN) – so that you`re closer to your users, which gives them a better user experience. If your applications require some sort of relational data storage, use SQL Azure.
That was a really short summary of the service architecture in Windows Azure.
And since I`ve got your attention: if you`re an ISV and have not considered Windows Azure as a platform for your developer projects in the future: shame on you. J
In the private cloud where Virtual Machine Manager 2012 plays the most important role, there is also a service concept.
Actually, I`ve blogged about this before. Get a quick introduction by reading this post first: http://kristiannese.blogspot.com/2011/07/understanding-service-concept-in-vmm.html
As you can see, there are some similarities in both clouds. Reminder: think stateless!
If you plan to scale out, scale out the tiers that`s suitable for this scenario. Stateless!
In VMM 2012 – you can create Virtual Machine Templates, but also Service Templates. A service template is the starting point for your services where you configure virtual machines and connectivity requirements. The service template is more than just a template, because VMM is able to support the life cycle of your applications. So every deployed services are always linked to their templates so you can do servicing of the instances.
Now, what`s an instance?
An instance could be groups of machines that work together which includes machine definitions as well as applications. There is support for these native applications types in VMM: Web Applications (WebDeploy), Virtual Applications (Server App-V packages) and Database Applications (SQL DAC). You can create application profiles in the library so that you can use them over and over again.
For more information about the new improvements in the library of VMM 2012: http://kristiannese.blogspot.com/2011/04/sorting-things-out-in-library.html
So before we go ahead and look closer at the service concept in VMM 2012, why would you consider using services in the first place?
A service can be a single tier service or a multi-tier service. And you are able to configure and manage multi-tier applications as a single entity.
Example, you may have an application that your organization has developed, or you are testing and doing some research on an application from a software vendor. Anyhow, this particular application is comprised of a web server, a database server and an application server which should be considered as critical for your business. Call it a line-of-business application – the one that your CEO really cares about.
Since this one is important, you want this application to be alive and kicking 24/7 – no matter what happens related to traffic and peaks. VMM enables you to handle fluctuations in capacity for your application, allow you to easily add or remove virtual machines (hey – please think ‘stateless’) needed to support the application.
This is the beauty of cloud computing, the cloud workload patterns:
The next blog post will discuss the service designer in detail.