Cloud computing is a concept. It is an architectural framework by which one or many organizations can deploy, manage and retract any workload, public or private. Cloud computing addresses business needs from a self-service, automated workload perspective. The concept collectively addresses all the aspects of modern computing, from components (SAN, Network, Servers, Software) to implementations (Virtual Desktops, Hosted Applications, E-mail, etc.) in a comprehensive, cohesive solution.
What It Is
The industry has evolved from implementing disparate, individual systems to sharing workloads and the cost of those workloads (Grids), to offering software and solutions as services (Service Oriented Architecture – SOA). Cloud is the next step in the evolution of the industry; it is the step that meets business requirements with a dynamic approach. “My business, my user, needs to do this,” Cloud makes this possible with the fewest number of duplicated efforts.
The buzzword-laden and slightly more complete definition:
A Cloud is a dynamic, infinitely scalable, expandable, and completely contractible architecture. It may consist of multiple, disparate, local and non-local hardware and virtualized platforms hosting legacy, fully installed, stateless, or virtualized instances of operating systems and application workloads.
What It Is Not
Cloud computing is not a platform, specific hardware architecture, specific software architecture or any specific product. It is not Internet-based computing, nor is it merely the use of shared resources or the storage of data somewhere abstract. Were any of this the case, then the first time an e-mail, a document or any other piece of data were ever stored on a server on the Internet, that would have been considered a Cloud.
Marketers seem to be struggling with how to position and sell Cloud computing and the offerings based on it. This is leading to many misrepresentations of what a Cloud is. Most of the Cloud computing solutions being marketed today are merely hyped up hyperbole of Internet-based or Web 2.0 computing. These solutions and offerings are components of what a Cloud computing architecture would represent.
Amazon’s online resource offering, EC2, is a good example of the common divide between marketing and technology. Amazon’s site defines EC2 as: “Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud.” It would more appropriately be defined something to the effect of “… is a web service based on Amazon’s Cloud computing architecture that provides resizable compute capacity to its users via the Internet.”
The Internet is not “the Cloud”, yet that seems to be the most common misuse of the term. This misuse is confusing business people as to what the Cloud really is and technology professionals as to how a Cloud is useful within their organizations. As a technology professional, it is important to understand that Cloud computing has benefits and applications far beyond large web service and hosting providers.
This does not preclude Cloud computing from use in Internet-based solutions. Amazon’s EC2 and Google Apps are good examples of this. The technologies used to deploy these systems are either heavily or entirely Cloud-based. The systems are dynamic, extensible and expandable. They may or may not exhibit all of the qualities of a true Cloud computing architecture, but they certainly qualify as being Cloud-based.
Another misconception of Clouds is that they are exclusively public, private, internal or external. Based on its definition, Cloud computing is a construct to implement any of those solutions, independently of each other or inclusive. A properly designed Cloud computing architecture could allow an organization to dynamically deploy, manage and retract, internal, external, public and private workloads.
Although a Public and a Private Cloud could be one and the same, most commonly, if a Cloud computing architecture is implemented to offer billable, service-based offerings to external users or customers, it is being considered a Public Cloud. Likewise, it is becoming commonplace to refer to Cloud computing architectures that only offer compute services to internal employees as being Private Clouds.
Cloud computing is fast becoming fantastic marketing jargon for companies and organizations that may or may not have the capability or the desire to really explain it or deliver on its promise. It is not an easy concept to grasp. The more abstract a concept is, the harder it is to explain; and even harder to properly implement. Cloud computing is an abstract concept that includes the implementation of multiple abstract technologies. All of the intangibles involved make explaining Cloud computing difficult, but poor explanation should not minimize what Cloud computing can accomplish.
How We Get There
Extensible – it can be modified to suit multiple purposes while the base architecture remains intact
Accessible – the services are easy to deploy, access and manage
Scalable – the components used in the design can be scaled indefinitely
Contractible – the deployed services can be easily removed
Clouds are built from existing and emerging technologies. Cloud computing architectures will be put in place and merged with existing, installed systems. They will incorporate every major technology used today. Virtualization and interconnectivity are only a few of the vital technologies that go into implementing a Cloud computing solution. Service Oriented Architecture (SOA), Storage Area Networks (SAN), and Dynamic configuration of Virtual Networks (VLANs) and physical networks are all part of it. Self-service user portals, virtualized desktops and shared compute resources could all be part of a well-designed Cloud.
Cloud computing is accomplished with a building block approach. Start with the base, reference architecture. Install the underlying tools to deploy, manage and retract the resources on that architecture. Then add the necessary components (hardware and software) for the workloads that a particular Cloud needs to support. As workloads requirements increase, additional building blocks are added to the Cloud.
What about traditional Operating System (OS) deployment tools? What about application deployment and orchestration tools? These legacy tools are part of the building blocks that get added to a Cloud computing architecture. On their own, they do not constitute a Cloud. They are part of the components that provide the ability to add and customize workloads within the Cloud.
One of the major requirements of Cloud computing is that the underlying tools to deploy, manage and retract the resources in a Cloud must be indefinitely scalable. If the underlying architecture is not scalable beyond any known capacity, then the design could be limiting.
Why are we building Clouds? What does Cloud computing accomplish?
- Reduces time to deployment
- Reduces administration
- Increases application flexibility
- Decreases dependence on proprietary platforms
- Enables Fit For Purpose Computing
- Decouples the Workload from the Platform
The industry will build Clouds because Cloud computing is the next major step in delivering solutions, not just applications. Organizations need to rapidly deploy new workloads faster than ever. They need to be able to dynamically modify how those workloads are deployed. They need to be able to redeploy and retract those workloads, on-demand, like never before. Cloud computing is the logical next step in dynamic infrastructures and architectures.