Context for Private Cloud
Admittedly I said our next post would be the Principles and Concepts of Private Cloud computing. However, without any context it may be pre-mature. But don’t worry, there will be rapid-fire content for a while. So next up is Principles and Concepts, but first, what is the context in which we are architecting solutions? What is this Cloud business anyhow, and why should we care so much? I will try to not bore you by re-hashing what’s already out there on this…
Evolution
Traditional IT is evolving to a more Cloud-centric model. Weather or not you like or use the term “Cloud” is irrelivant. Given the technological advances of the past decade coupled with the global economic conditions of the last couple years, the perfect storm is brewing. We must challenge the preconceptions about how IT is delivered and find innovative delivery and sourcing options.
Cloud computing offers new tools for addressing changing business needs by providing very valuable and effective architectural, delivery, and sourcing options. Despite the hype that surrounds it, Cloud Computing is not a panacea for all IT woes. It is indeed a powerful extension of existing architectures and technologies, which enables delivery of hardware, software, and infrastructure as standardized, modular services. Businesses may choose to either give out commercial contracts for these services or provide them internally.
Cloud computing has the potential to improve the following aspects of an organization:
Agility
- Reduces Time to Market
- Shortens the Solution Development Life Cycle
- Enhances Responsiveness to Business Changes
Cost
- Lowers Barriers to Entry (primarily by enabling a pay-as-you-go model as opposed to requiring massive up-front investments)
- Reduces Operational Costs
- Improves Cost Control
- Enables Shared IT Services as opposed to Dedicated
Quality
- Improves Customer Satisfaction through rapid responsiveness, capacity, and availability through the life cycle
- Enhances Service Level Efficiency
- Enriches Continuity of Service
- Ability to Meet Regulatory Requirements (i.e. eDiscovery, auto-archival, etc.)
By now we’re likely familiar with the current popular thinking around general Cloud Computing definitions. There are no shortage out there as this space is still being defined. As some are better than others I try to consume a broad sampling from trustworthy sources. Here are some references:
Experts Define Cloud Computing: Can we get a Little Definition in our definitions?, Gartner Blog
Design Considerations for S+S and Cloud Computing, Microsoft Architecture Journal
NIST Definition of Cloud Computing v15
And my own personal favorite:
Cloud = IT-as-a-Service
Businesses are moving away from caring about where and how IT is delivered or sourced from. IT itself is becoming a service provider instead of an operator, administrator, or engineer. It’s this fundamental change in IT Service Delivery that is the main challenge traditional IT organizations face. To achieve the cloud-like attributes that their customers, managers, executives are clamoring for, IT must shift its traditional server-centric approach to a service-centric approach. This implies that IT must go from deploying applications in silos with minimal leverage across environments to delivering applications on pre-determined standardized platforms with mutually agreed service levels. A hybrid strategy that uses several Cloud options at the same time will become a norm as organizations choose a mix of various Cloud models to meet their specific needs.
Cloud options typically are categorized by the following service and sourcing models:
Service Models
Software as a Service (SaaS) Delivers business processes and applications, such as CRM, collaboration, and e-mail, as standardized capabilities for a usage-based cost at an agreed, business-relevant service level. SaaS provides significant efficiencies in cost and delivery in exchange for minimal customization and represents a shift of operational risks from the consumer to the provider. All infrastructure and IT operational functions are abstracted away from the consumer.
Platform as a Service (PaaS) delivers application execution services, such as application runtime, storage, and integration, for applications written for a pre-specified architectural framework. PaaS provides an efficient and agile approach to operate scale-out applications in a predictable and cost-effective manner. Service levels and operational risks are shared because the consumer must take responsibility for the stability, architectural compliance, and overall operations of the application while the provider delivers the platform capability (including the infrastructure and operational functions) at a predictable service level and cost.
Infrastructure as a Service (IaaS) abstracts hardware (server, storage, and networking infrastructure) into a pool of computing, storage, and connectivity capabilities that are delivered as services for a usage-based cost. Its goal is to provide a flexible, standard, and virtualized operating environment that becomes a foundation for PaaS and SaaS.
IaaS is usually seen to provide a standardized virtual (or even physical) server. The consumer takes responsibility for configuration and operations of the guest Operating System (OS) and all installed software. Compute capabilities (such as performance, bandwidth, and storage access) are also standardized. Service levels cover the performance and availability of the virtualized infrastructure. The consumer takes on the operational risk that exists above the infrastructure.
Comparison of Cloud Service Models
Type |
Consumer |
Service Provided by Cloud |
Typical Service Level Coverage |
Customization |
SaaS |
End user |
- Finished application |
- Application uptime - Application Performance |
- Minimal to no customization - Capabilities dictated by market or provider |
PaaS |
Application owner |
- Runtime environment for application code - Cloud storage - Other Cloud services such as integration |
- Platform availability - Platform performance - No application coverage |
- Custom code runs within constraints of the services offered - Many applications will need to be rewritten |
IaaS |
Application owner or IT provides OS, middleware, and application support |
- Virtual server - Cloud storage |
- Virtual server availability - Time to provision - No platform or application coverage |
- Minimal constraints on applications installed on standardized virtual OS builds |
Sourcing Models
Sourcing models (shared or dedicated, and whether internally hosted or externally hosted) are defined by the ownership and control of architectural design and the degree of available customization. The different sourcing models can be evaluated against the three standards - cost, control, and scalability.
Public Cloud
The Public Cloud is a pool of computing services delivered over the Internet. It is offered by a vendor, who typically uses a “pay as you go” model. Public Cloud Computing has the following attractive attributes: you only pay for resources you consume; you gain agility through quick deployment; there is rapid capacity scaling; and all services are delivered with improved and consistent availability, resiliency, security, and manageability. Public Cloud options include:
Shared Public Cloud: The Shared Public Cloud provides the benefit of rapid implementation, massive scalability, and low cost of entry. It is delivered in a shared environment where the architecture, customization, and degree of security are designed and managed by the provider according to market-driven specifications.
Dedicated Public Cloud: The Dedicated Public Cloud provides functionality similar to a Shared Public Cloud except that it is delivered on a dedicated infrastructure. Security, performance, and sometimes customization are better in the Dedicated Public Cloud than in the Shared Public Cloud. Its architecture and service levels are defined by the provider and the cost may be higher than that of the Shared Public Cloud, depending on the volume.
Private Cloud
The Private Cloud is a pool of computing resources delivered as a standardized set of services that are specified, architected, and controlled by a particular enterprise.
The path to a Private Cloud is often driven by the need to maintain control of the delivery environment because of application maturity, performance requirements, and regulatory or business differentiation reasons. For example, banks and governments have data security concerns that may preclude the use of currently available Public Cloud services. Private Cloud options include:
Self-hosted Private Cloud: A Self-hosted Private Cloud provides the benefit of architectural and operational control, utilizes the existing investment in people and equipment, and provides a dedicated on-premise environment that is internally designed, hosted, and managed.
Partner-hosted Private Cloud: A Partner-hosted Private Cloud is a dedicated environment that is internally designed, externally hosted, and externally managed. It blends the benefits of controlling the service and architectural design with the benefits of outsourcing.
Private Cloud Appliance: A Private Cloud Appliance is a dedicated environment that procured from a vendor, is designed by that vendor with provider/market driven features and architectural control, is internally hosted, and externally or internally managed. It blends the benefits of using pre-defined functional architecture, lower deployment risk with the benefits of internal security and control.
Dynamic Datacenter Reference Model
Lastly, I’d like to finish with something Microsoft-specific, which I didn’t want to do but oh well. Taking a holistic view of the datacenter problem-space, Microsoft has been talking for a while about the concept of a Dynamic Datacenter. I don’t want to get into the details of it at this time, but I do think there is value in understanding the model used to break-down the individual components which we aim to address with Private Cloud solutions.
- The Software, Platform, and Infrastructure Layers represent the technology stack, where each provides services to the layer above.
- The Operations and Management Layers represent the process perspective and includes the management tooling required to implement aspects of the process.
- The Service Delivery Layer represents the alignment between business and Information Technology (IT).
It is a deliberate attempt to blend technology and process (for example, Information Technology Infrastructure Library (ITIL)) perspectives because Cloud Computing is as much about the Service Management as it is about the technologies involved in it.
(Thanks to authors Kevin Sangwell, Laudon Williams & Monte Whitbeck (Microsoft) for allowing me to modify and share)