Being asked many times by “non-Technology” people to explain what Cloud Computing is all about. Some parallels can be used to help explain Cloud Computing. Let’s look at electricity being provided to each household, this can be explained as a basic Cloud Service. The household receive electricity to run all the appliances on a continual basis and at certain times require more electricity which is based on-demand/self service premise. This is perhaps one of the most basic examples to try and explain Cloud Computing, meaning that all your Services or Applications that you need to run on your computer is somewhere in the Cloud which can potentially be in one Computer Center or spanning multiple Computer Centers.
Cloud computing on the other hand must be able to be more flexible and able to cater for more scenarios than the Electricity Service described above.
“Cloud computing is enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”
Considering the above definition Cloud Computing should exhibit the following essential characteristics.
A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.
Broad network access:
Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g. mobile phones, tablets, laptops, and workstations).
The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, and network bandwidth.
Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.
Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g. storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.
The deployments models below describe the different “types” of Clouds that can exist or deployed.
The cloud infrastructure is provisioned for exclusive use by a single organization comprising multiple consumers (e.g., business units). It may be owned, managed, and operated by the organization, a third party, or some combination of them, and it may exist on or off premises.
The cloud infrastructure is provisioned for exclusive use by a specific community of consumers from organizations that have shared concerns (e.g. mission, security requirements, policy, and compliance considerations). It may be owned, managed, and operated by one or more of the organizations in the community, a third party, or some combination of them, and it may exist on or off premises.
The cloud infrastructure is provisioned for open use by the general public. It may be owned, managed, and operated by a business, academic, or government organization, or some combination of them. It exists on the premises of the cloud provider.
The cloud infrastructure is a composition of two or more distinct cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology that enables data and application portability (e.g. cloud bursting for load balancing between clouds).
The above provides a very small picture of a much larger Cloud computing landscape and there are many facets to it, which I will try and explore, from time to time.
Understanding the Architecture of Cloud Computing and the interaction of the different Services associated with Cloud Computing can become very complicated the deeper you go, and each layer is almost a science on its own, i.e. Security Management, Provisioning, Multi-tenancy etc.
One of the concepts that I am currently exploring is the notion of a Cloud Operating System (COS). I my mind an COS should essentially be Cloud native while providing the basic services of what an Operating System like Windows on Linux should provide.