Cloud – Harold’s Musings on Public, Private and Dedicated Clouds

On January 24th and 25th, I delivered the “Cloud” portion of the TechNet Event Presentation that took place in Irvine, CA and Los Angeles, CA.  Based on the questions before and after the session, I thought it would be very useful to put up a blog post that recaps what I presented.  Some of this may be very basic information, but I do believe it is necessary to cover the full spectrum.

One of the slides I used in the presentation is the one below:

TheCloudDiagram

I will go through all the key terms in this diagram (Enterprise, Private Cloud, Public Cloud, Dedicated Cloud) during the course of this post.

First, I’ll start with the Enterprise.  This essentially refers to a company’s local datacenter.  No matter the size of the company, everyone has at least one server in server room (or sitting on / under the desk somewhere in the office).  Essentially, the company owns the assets (hardware and software) and is responsible for maintaining it.  Most folks are familiar with this environment since that’s what most IT Professionals get paid to manage.

The next piece of the puzzle is Public Cloud.  The Public Cloud is “Public” because everyone can access it from the Internet.  Much like the datacenter, most people are familiar with some aspect of the Public Cloud.  Services in the Cloud are available for us to use, but we don’t necessarily have control over the individual components.  Some great examples of Public Cloud services are Bing, Hotmail, Live ID, XBox Live, Live Messenger, Skype, etc.  Consumers get to use some service (like email or IM) and can configure certain aspects (like who is on their buddy list), but have no control over the server infrastructure, server operating system, location of the servers, etc.  When referring to the Public Cloud, we can generally categorize the services into three categories – SaaS, PaaS and IaaS.

SaaS (Software as a Service) is a finished service like Hotmail, XBox Live or BPOS / Office 365.  The underlying infrastructure as well as the application is provided by the provider (in my example, this is Microsoft).  I just use the application with some basic configuration capabilities.  As an example, in BPOS, I can allocate different mailbox sizes to each of my users, but I cannot configure the location of the databases since that is managed entirely by Microsoft.

PaaS (Platform as a Service) provides a platform for companies to build applications.  In this scenario, I would be responsible for writing my application and supporting my application.  The PaaS provider would provide the entire underlying infrastructure for me to run my application on.  I would not have to worry about OS patching, high availability, redundancy, power, etc. as the provider would take care of all of those items behind the scenes.  In the Microsoft realm, this is our Windows Azure and SQL Azure offerings.  In Windows Azure, Microsoft provides the underlying platform (hardware, operating system, framework, etc.) while I would write the application that uses the platform.  Microsoft provides the elastic infrastructure that can grow and shrink as needed as well as being highly available and redundant.

Iaas (Infrastructure as a Service) provides the underlying hardware for a company to run it’s infrastructure.  I would be responsible for everything from the OS stack and up.  Patching of the OS and all the middle tier components would be my responsibility.  Most IaaS providers provide their services by hosting Virtual Machines (VMs) for their customers.  In this model, I don’t need to build out my datacenter and worry about the Internet bandwidth necessary to host my Internet facing application.  I just build out the VMs that I need and then host them in the IaaS provider’s datacenter.  I still have full control over the entire OS layer (and up), but that means I am still going to worry about patching the OS and implementing high availability and scalability of my VMs if that is important to me.  I see this space as more of a advanced hoster offering that has been around for quite some time.  Microsoft does not currently have an offering in this space.  The well known provider in this space is Amazon with their EWS and EC2 offerings. 

The third component is the Dedicated Cloud.  In this scenario, I would still use a Public Cloud provider, but the instance(s) in use would be fully dedicated to me only.  I would essentially be extending my on-premise datacenter into the Public Cloud provider’s public datacenter via some kind of secure connection.  This would allow me to run my internal infrastructure services such as Domain Controllers and other application servers in the Public Cloud in a seamless manner to my end users.  Depending on specific needs, Microsoft does offer variations of this today with Windows Azure and SQL Azure.  For Exchange Server 2010 purposes, we will also offer similar capabilities once Office 365 releases.

The last component is the Private Cloud.  This one seems to have the most confusion since it seems to sound like a Dedicated Cloud, but it really isn’t.  Instead, the Private Cloud scenario is where you take your on-premise Datacenter infrastructure and offer efficient services to your internal customers.  This model goes beyond just looking at datacenter resources as servers and storage.  To make this easier to understand, I will walk through a sample scenario.

Let’s say the Marketing Department wants to run a new campaign and needs to have 5 servers provisioned for the development team to start coding and testing with.  Historically, most companies would have a process where the lead person would submit a request for the servers.  Once the request was approved, the hardware would be ordered.  Once the hardware arrived, it would be racked and then the OS installed and all the components configured.  From my experience, this process usually takes between 2 weeks and 2 months in a lot of companies.  From a “customer” perspective, this is not very efficient.  So how does a “Private Cloud” make this easier and more efficient???  Great question!

Let’s take a look at this same scenario where I have implemented tools such as System Center, Hyper-V, Self Service Portal 2.0, etc.  The lead person from above would go to an intranet site to request resources.  Based on templates that the IT department has defined, this person selects the configurations they need and submits the request.  The approving manager is notified and once he approves the request, the tools on the back end automatically configures 5 servers (VM based) configured per the request.  Once these are provisioned and ready to go, the lead is notified via email and immediately starts using the resources.  Because we are automating a lot of tasks and utilizing VMs, this process could be done in say, 4 hours.

In the Private Cloud space, Microsoft has decided to use the marketing term “Hyper-V Cloud”.  You won’t find a product from Microsoft called Hyper-V Cloud because it doesn’t exist.  Right now, you are probably thinking “WHAT the heck Harold, you just finished walking me through a scenario and then you tell me Microsoft doesn’t have a solution?!?!?!”  I didn’t say we don’t have a solution, but that the solution is not one product called Hyper-V Cloud 2010 or anything like that.  Instead, you would use existing tools from Microsoft like System Center Virtual Machine Manager, System Center Configuration Manager, System Center Operations Manager, Windows Server 2008 R2 with Hyper-V, Self Service Portal 2.0, etc. to “create” your Private Cloud (or Hyper-V Cloud).  I’ll admit that this probably isn’t for all organizations out there, but if you currently have a large datacenter and want to be more efficient, then definitely look into this.

Microsoft also has the ability to help you get from On-Premise and Private Cloud to the Public Cloud easily.  We also offer great capabilities for the Hybrid Cloud where some of the stuff is in the Public Cloud and some in your datacenter.  I will stretch and say we are the only provider out there that offers this true breadth of capabilities.

I am going to stretch my neck out here a little more and talk just a bit about one of our competitors in this space – VMWare.  Yes, I know this isn’t normally what I do, but I think it’s about time I did.

I will admit that VMWare has been in the server virtualization space longer than we have.  I will also concede that their VMotion and HA solutions are pretty good.  However, these tools alone will not give you a “Private Cloud”.  You still need the components to expose some sort of self service portal for your business units (customers) to use in order to streamline the overall process of requesting resources and having them fulfilled.  There needs to be something in place that allows VM templates to be created and then used easily in an automated fashion to create new instances.  Yes, VMWare has been working on that with all the purchases they have been making this past year, but they still need to truly integrate all of those pieces together.  Also, VMWare today has no true Public Cloud offering (they are partnering with hosters to use VMWare technologies to host their VMs) let alone the ability to connect on-premise datacenter resources (securely) with Public Cloud resources. 

Over the last 10 years, VMWare has done quite a bit in the virtualization space to bring top notch virtualization technology to the large enterprises.  In the last 4 years, Microsoft worked hard to make sure virtualization was available to the masses.  The way I see it, virtualization is but a commodity and the value add is in all the other stuff that can be done with virtualization.  This is where Microsoft has made the investments and where I think we will truly shine with all of our solutions.

Harold Wong