Public Cloud vs. Private Cloud
Author: Evi Rachmilewitz, ClickSoftware Contributor
Various IT vendors try to cast every technological solution they have as a cloud solution. They do this because they know how popular the term “Cloud Computing” is and because their products involve virtualization. The vendors that execute some degree of datacenter automation go one step further and claim to have a private cloud architecture. Yet when one defines the building blocks of private cloud architecture, it seems some of the IT vendors offer only a subset of this type of cloud.
In order to understand what properties make a cloud computing environment private we must first shift our view to public clouds.
Public clouds are defined as having the following properties:
- Computing resources available to subscribing users upon request
- Virtualization over a physical layer, thus maximizing hardware utilization
- Elastic scaling of computer resources without CAPEX
- Automated management of virtual machines
- Resource usage billed only as used
Computing Resources Availability
Cloud computing utilizes pooled computing assets. These assets are available to any subscriber who is willing to pay for them. This is similar to the consumption of electricity. Any subscriber is allowed to consume or pool electric power as long as electric power is available.
Virtualization of data centers in not a new concept. Most enterprises have been shifting much of their physical infrastructure to virtual infrastructure. The shift to virtualization makes economic sense as utilization rate grows significantly with a relatively minor added cost. This growth is achieved by the ability to partition a single physical server into many virtual servers. Each server acts like a real server that can run an operating system and a complete set of applications. Virtualization is a huge catalyzer for technology companies that wish to offer cloud computing services as it introduces a profitable business model, one that is based on billing per usage of computing resources over a virtualized environment.
Today’s business world is very dynamic. A given company might need to grow (or reduce) its business over a short period of time. Changing business requirements have a direct impact on IT needs. Hence an efficient business is constantly looking for “dynamic scaling,” the ability to grow or reduce computing power in a matter of minutes and pay only for actual usage. This is what elasticity is all about. In a non-cloud world, you would have to build sufficient capacity to not only perform well under everyday load conditions, but also handle peak load levels. This constraint has a direct impact on CAPEX. You would have to purchase hardware to cover for peak load levels when in all other times you will be underutilizing and over paying for your IT environment.
Automation is about efficiency. A virtualized IT environment has to be automated in order to be effective. Automation provides speed of execution and billing options that are easy to implement. A cloud-deployed application is expected to provision and deploy new server instances in minutes or de-provision and shutdown existing instances in minutes. This can only be done with automation and API interaction.
Billing per Usage
Cloud computing turns CAPEX to OPEX. The meaning is that computing costs become variable rather than fixed and are based on usage. Billing is applied on CPU cycles, storage and bandwidth. A cloud computing billing application has to count CPU cycles, GB of storage and GB of bandwidth consumed within a given period, usually a month. Then it needs to multiply these measurements by a configurable rate and output the bill. The ability to bill by usage is an integral part of public clouds.
Now that we carefully defined the properties of public clouds, how do we make the connection to private clouds?
Private clouds are a subset of the above properties. They are virtualized, elastic and automated. The other two – pooled resources and billing per usage are less applicable to private clouds. Pooled resources are not private by definition. There is no logic in providing anyone who is willing to pay with access to a private cloud environment.
The resources in private clouds are reserved for exclusive use of the organization hence billing per usage is not a logical business scenario – organizations will not bill their employees for using resources in a private cloud datacenter.
Reasons for selecting a private cloud
As noted in my previous posts, public clouds are extremely secured. With that organizations might require or be forced to place an additional layer of security. By managing and authorizing access to a cloud computing environment organizations place an additional layer of security. Virtual instances are not shared by heterogeneous users but rather by a single group that is constantly monitored.
Cloud computing farms have a finite pool of computing resources. Even with virtualization computing resources might exhaust. IT organizations that require massive computing processing in a short notice might find that a cloud hosting company cannot provide this requirement because it doesn’t have enough resources. Hence these organizations might consider starting private cloud computing datacenters that will guarantee the availability of computing power at all times.
Utility Computing and Economies of Scale
Large enterprises or government benefit from economies of scale. These organizations build massive datacenters that demand volume purchases of hardware for a very small rate per unit. In addition, these organizations might deploy utility computing via virtualization because it makes sense from a business point of view. Their datacenters are highly secured behind a firewall and provide access only to authorized users. These attributes are quite close to the requirements of a private cloud. Thus, the added cost of turning a datacenter into a private cloud environment is relatively low and might make sense for some organizations.