Approaches to architecting a private cloud solution for the enterprise can be top down or bottom up. The top down approach is directed towards reaching the desired goal of creating cloud based applications with just the right amount of infrastructure resources for running these applications. This gives the best return on investment (ROI) and is well appreciated by business owners. This works well for enterprises whose workload patterns are known and predictable. If workload patterns are unknown and subject to large variations, private clouds will have to be built around infrastructures supporting typical applications. This is a bottom up approach. New applications will have to be mixed with the typical applications to balance workloads and provide reasonable returns on investment.

A consistent definition of a private cloud would take into consideration data center design principles and will detail the reference architecture of the different layers. The resultant architecture must be resilient not redundant. It must be homogenous and standardized. It must allow resource pooling; virtualization. It must facilitate fabric management and make for elasticity. It should allow partitioning of shared resources and the costs for maintenance of the whole must be transparent.

The private cloud or the IaaS logical model is distinct from traditional data center models in that it abstracts physical resources by placing them into a higher level groupings that may be resource pools, fault domains or upgrade domains. These logical groups are then mapped to physical resources that can be automated and managed intelligently. This helps scale each layer independently to improve speed of deployment and consistency of implementation.

The data center facility and the mechanical systems will constitute the hardware layer; the storage infrastructure and the computing infrastructure. Each of these would have a management interface that has the capability of communicating with the upper or higher layers in the architectural construct.

The virtualization layer will provide storage through a cluster of shared volumes and virtual disks. Resource pooling and elasticity gains are characteristics of this layer. Capacity can be provisioned quickly and seamlessly from this layer.

The automation layer includes many foundation technologies for interfacing with the higher level management systems and physical or virtual resources.

The management layer leverages the automation technologies for performance of management tasks. However, the process automation is often limited to management of only one aspect of the server management lifecycle such as deployment or patching or monitoring.

The orchestration layer is an atypical construct. It provides many critical cloud-attributes and binds multiple products, technologies and processes together. It coordinates end to end processes across products and integrates third party products to create meaningful workflows making it valuable for Virtual Machine provisioning.

The top most layer is the user self service or tenant interface. It removes barriers to delivery of resources and helps even the novice deploy and use complicated systems and architectures.