Yung Chou's Slides (PDF)
If cloud computing is not confusing enough, there is also this so called private cloud. And what is private cloud? I am hoping at this time you have reviewed my Cloud Computing for IT Pros series and have a clear understanding of what a service is and what cloud computing is. These are key concepts. And equally important, you know the 5-3-2 Principle of Cloud Computing and why an application is a cloud application while others may not. Generally speaking, there are 5 essential characteristics, 3 delivery methods, and 2 deployment models (or 4 if following NIST definition) in cloud computing. Does not matter it is public cloud or private cloud. If it is classified as cloud computing, it should at least exhibit the 5-3-2 principle as the core set of attributes. With that in mind, so what is private cloud?
Private cloud? Well, it is a cloud, so the 5 essential characteristics of cloud computing apply. The term, private, here means dedicated and a private cloud is a cloud dedicated to an organization. The classification here is based on the intended users and not the ownership of the infrastructure. Namely, an organization has a dedicated cloud does not necessarily mean the organization must own the infrastructure on which a dedicated cloud is running. A obvious example is a private cloud running on an infrastructure owned and managed by a 3rd party hosting company. So a subscribing company may possibly own the data, software, configurations, and instances, but not the physical boxes and underlying infrastructure. To find out more of running private cloud in this fashion, a list of private cloud hosting companies is readily available.
Perhaps a more commonly assumed definition of private cloud is an on-premises deployment of cloud computing. In other words, all including the servers, cabling, software, running instances, etc. are owned and managed by an organization behind its enterprise firewall, as shown above. Many enterprises assume this definition of private cloud due to an existing deployment of on-premises IT resources. While transitioning into private cloud, it is a logical step to build one by employing already deployed hardware and software.
Ultimately cloud computing is to better deliver applicaitons. The goal of constructing a private cloud can be acquiring IaaS, PaaS, or SaaS. Based on the objectives, an organization, for example, may simply seek the ability to efficiently deploy/manage servers to provide maximal flexibility for develoying and testing applicaitons, and in this case IaaS is what and all the organization needs. While the servers are deployed via IaaS, applications running within these servers do not have to be cloud applications. The applications can very well be traditional (i.e. non-cloud computing) ones. The point is that to pursue a private cloud, it is not necessarily to acquire all three (IaaS, PaaS, and SaaS) delivery methods. Nevertheless, for enterprise it is only logical to start with IaaS to fundamentally and strategically convert existing IT establishments into a cloud-ready environment. For pursuing a private cloud, IT should have IaaS in place first which will fundamentally provide the mechanism for resource pooling, scalability, and elasticity.
Microsoft private cloud solutions is called Hyper-V Cloud. Which is a set of guidelines as shown here on the right and offerings on building private cloud with IaaS using readily available technologies, i.e. Windows Server 2008 R2 and System Center Virtual Machine Manager. Hyper-V Cloud is exciting since not only it increase the ROI on existing deployment, it also strategically places a foundation to integrate Windows Azure platform offered in public cloud. Ultimately, enterprise will be able to manage physical, virtualized, and cloud (private and public) with a single pane of glass provided by System Center.
Above all, it does not matter if the delivery method is IaaS, PaaS, or SaaS. As far as a user is concerned, whatever your service/application is, it is always SaaS even if your application is not cloud-based. Application is what this is all about. So when it comes to implement private cloud which will eventually change how your IT delivers services, it is an expensive proposition on both cost and customer satisfaction. Be clear on short-term checkpoints and long-term business goals. Scope down but be very strategic in overall implementation.
Virtualization vs. private cloud has confused many IT pros. Are they the same? Or different? In what way and how? We have already virtualized most of my computing resources, is a private cloud still relevant to us? These are questions I have been frequently asked. Before getting the answers, in the first article of the two-part series listed below I want to set a baseline.
Lately, many IT shops have introduced virtualization into existing computing environment. Consolidating servers, mimicking production environment, virtualizing test networks, securing resources with honey pots, adding disaster recovery options, etc. are just a few applications of employing virtualization. Some also run highly virtualized IT with automation provided by system management solutions. I imagine many IT pros recognize the benefits of virtualization including better utilization of servers, associated savings by reducing the physical footprint, etc. Now we are moving into a cloud era, the question then becomes “Is virtualization the same with a private cloud?” or “We are already running a highly virtualized computing today, do we still need a private cloud?“ The answers to these questions should always start with “What business problems you are trying to address?” Then assess if a private cloud solution can fundamentally solve the problem, or perhaps virtualization is sufficient. This is of course assuming there is a clear understanding of what is virtualization and what is a private cloud. This point is that virtualization and cloud computing are not the same. They address IT challenges in different dimensions and operated in different scopes with different levels of impact on a business.
Virtualization
To make a long story short, virtualization in the context of IT is to “isolate” computing resources such that an object (i.e. an application, a task, a component) in a layer above can be possibly operated without a concern of those changes made in the layers below. A lengthy discussion of virtualization is beyond the scope of this article. Nonetheless,let me point out that the terms, virtualization, and “isolation” are chosen for specific reasons since there are technical discrepancies between “virtualization” and “emulation”, “isolation” and “redirection.” Virtualization isolates computing resources, hence offers an opportunity to relocate and consolidate isolated resources for better utilization and higher efficiency. Virtualization is rooted in infrastructure management, operations, and deployment flexibility. It's about consolidating servers, moving workloads, streaming desktops, and so on; which without virtualization are not technically feasible or may simply be cost-prohibitive.
Cloud Computing
Cloud computing on the other hand is a state, a concept, a set of capabilities. There are statements made on what to expect in general from cloud computing. A definition of cloud computing published in NIST SP-800-145 outlines the essential characteristics, how to deliver, and what kind of deployment models to be cloud-qualified. Chou further simplifies it and offers a plain and simple way to describe cloud computing with the 5-3-2 Principle as illustrated below.
Unequivocally Different
To realize the fundamental differences between virtualization and private cloud is therefore rather straightforward. In essence, virtualization is not based on the 5-3-2 Principle as opposed to cloud computing does. For instance, a self-serving model is not an essential component in virtualization, while it is essential in cloud computing. One can certainly argue some virtualization solution may include a self-serving component. The point is that self-service is not a necessary , nor sufficient condition for virtualization. While in cloud computing, self-service is a crucial concept to deliver anytime availability to user, which is what a service is all about. Furthermore, self-service is an effective mechanism to in the long run reduce training and support at all levels. It is a crucial vehicle to accelerate the ROI of a cloud computing solution and make it sustainable in the long run.
So what are specifically about highly virtualized computing environment vs. a private cloud?
For discussing cloud computing, I recommend employing the following theories as a baseline.
Theory 1: You can not productively discuss cloud computing without first clearly defining what it is.
The fact is that cloud computing is confusing since everyone seems to have a different definition of cloud computing. Notice the issue is not lack of definitions, nor the need for having an agreed definition. The issue is not having a well-thought-out definition to operate upon. And without a good definition, a conversation of cloud computing all too often becomes non-productive since cloud computing touches infrastructure, architecture, development, deployment, operations, automation, optimization, manageability, cost, and very aspect of IT. And as explained below, it is indeed a generational shift of our computing platform from desktop to cloud. Without a good baseline of cloud computing, a conversation of the subject results in nothing more than an academic exercise in my experience.
Theory 2: The 5-3-2 principle defines the essence and scopes the subject domain of cloud computing.
Employ the 5-3-2 principle as a message framework to facilitate the discussions and improve the awareness of cloud computing. The message of cloud computing itself is however up to individuals to articulate. Staying with this framework will keep a cloud conversation aligned with the business values which IT is expected to and should deliver in a cloud solution.
Theory 3: The 5-3-2 principle of cloud computing describes the 5 essential characteristics, 3 delivery methods, and 2 deployment models of cloud computing.
The 5 characteristics of cloud computing, shown below, are the expected attributes for an application to be classified as a cloud application. These are the differentiators. Questions like “I am running X, do I still need cloud?” can be clearly answered by determining if these characteristics are expected for X.
The 3 delivery methods of cloud computing, as shown below, are the frequently heard: Software as a Service, Platform as a Service, and Infrastructure as a Service, namely SaaS, PaaS, and IaaS respectively. Here, the key is to first understand “what is a service.” All 3 delivery methods are presented as services in the context of cloud computing. Without a clear understanding of what is service, there is a danger of not grasping the fundamentals as to misunderstand all the rest.
The 2 deployment methods of cloud computing are public cloud and private cloud. Public cloud is the Internet and private cloud is a cloud (and notice a cloud should exhibit the 5 characteristics) which is dedicated to an organization. Private cloud although frequently assumed inside a private data center, as depicted below, can be on premises or hosted off premises by a 3rd party.
The 5-3-2 principle is a simple, structured, and disciplined way of conversing cloud computing. 5 characteristics, 3 delivery methods, and 2 deployment models together explain the key aspects of cloud computing. A cloud discussion is to validate the business needs of the 5 characteristics, the feasibility of delivering an intended service with SaaS, PaaS, or IaaS, and if public cloud or private cloud the preferred deployment model. Under the framework provided by the 5-3-2 principle, now there is a structured way to navigate through the maze of cloud computing and offer a direction to an ultimate cloud solution. Cloud computing will be clear and easy to understand with the 5-3-2 principle as following: