Not so long ago, if you were like many CIOs or ops managers, you were consumed with issues related to providing power, space, and cooling for corporate data centers. As the capabilities of server hardware continued to increase (Moore’s Law stands the test of time), the workload generated by a typical application could no longer completely consume the resources of a single server. Vast amounts of valuable resources were sitting idle and burning capital with their power, space, and cooling requirements. Then data center virtualization stepped in and helped to solve many of these problems.
Virtualization Is Just the Halfway Point
With the implementation of multiple virtual machines (VMs) running within the same physical host, the classic setup of one server per physical host was expanded to a many-to-one relationship, providing huge cost savings. But once that vast improvement to the classic one-to-one design had been found, the issues regarding the procurement and provisioning of those resources still remained.
You could compress more computing resources into the same physical and power footprint, but getting new VMs provisioned could still be a time-consuming and labor-intensive process. Typically, you would file a support ticket with the IT department, which often resulted in separate tickets for the compute, network, and storage administrators. Manual action was then required on those tickets to provision the resource.
Achieving an Automated Private Cloud
For many organizations, creating a private cloud effectively eliminates the provisioning bottleneck of the datacenter virtualization model while also preserving cost savings because the same many-to-one relationship exists between VMs and physical hosts. And by automating the procurement and provisioning of VMs, ops teams can more efficiently provide these resources to any or all members of their organizations.
Seven Key Considerations
But a private cloud may not be the solution in every situation. When evaluating whether a private cloud is the right choice for you, start with these seven considerations:
1. Workload and Infrastructure Interaction Choose the correct workload for the infrastructure, or tailor the infrastructure to a specific workload. For example, if the hardware allocated for your private cloud contains high-performance CPUs, then a processor-intensive application would be compatible within the confines of the available resources. If high-bandwidth I/O is required, and the disk drives in use are not up to the task, then you may be required to update the storage systems to meet the demands of the application.
2. Security If you have a known application workload footprint in terms of CPU, memory, and storage utilization and have stringent security considerations, then a pure private cloud configuration may be your preferred choice. In the private cloud environment, all application traffic (and therefore all data) is contained locally within the organization, which can meet your security compliance needs.
3. Latency You can generally achieve significantly reduced network latencies in a private cloud because traversal of the public Internet to the end user is typically not required. And you can optimize storage performance in a private cloud environment with the use of high-performance storage hardware and the configuration of high-bandwidth connectivity to those devices.
4. User Experience Because private cloud infrastructure is typically closer in geographical proximity to your internal users than public cloud resources, their user experience is improved through decreased latency and increased application performance.
5. Cost A private cloud environment is in most cases less expensive on a VM-per-hour (operational expense) basis compared to a public cloud, and storage and network costs will most likely be significantly reduced. Data ingress into a public cloud may be free, but egress is typically charged on a sliding scale based on total bandwidth consumption. Because of this, a public cloud can prove prohibitively expensive for high-bandwidth applications.
6. Automation You should also decide how to automate the deployment of resources. One way is to use monolithic standalone images for the deployment of your server instances. Or, if you have a cloud management solution that allows for boot-time dynamic server configuration, you can use basic “vanilla” operating system images, which save time because you do not need to create new images when you make changes to the application or deploy new applications on your private cloud.
7. Cloud Enablement Cloud infrastructure software is a fundamental component of a cloud-enabled data center. Commercial and open source solutions provide for the provisioning of VM, storage, and networking resources, whether these resources are virtualized and running on a hypervisor or on bare metal infrastructure. Additionally, a cloud management solution abstracts the underlying cloud API and presents a consistent programmatic interface, which allows access to the underlying cloud resources regardless of the cloud infrastructure software used.
As with many complex technologies, there is no “one-size-fits-all” model for building a private cloud. But by first evaluating whether a private cloud is appropriate for your use case given the guidelines above, you’ll be better prepared to develop a private cloud architecture that supports both your technological and business goals.
How to Design Private and Hybrid Clouds
If you would like more detail in addition to what I’ve outlined here, you can download my white paper on designing private and hybrid clouds. In it, I explain the challenges that you will face at different branches of the decision tree and explore the use cases for the allocation and utilization of your internal resources, focusing in particular on the technological considerations that need to be addressed. The white paper also includes a reference architecture (and associated diagrams) that is the framework for the customized architectures used by many RightScale customers.