What is Cloud Computing?
What is Cloud Computing?
This common questions is not easy to answer. The quick answer is that it is computing, in the cloud. But what is the cloud? Is it just a new name from client server or N-Tier architecture. The complete answer is more complex.
In recent years, the Cloud Computing buzzword has grown with intensity but its meaning is not clear. It seems that many people, and companies, tout the power of Cloud Computing but have trouble explaining exactly what it is. In fact, there are many different definitions given by different technical authorities and Cloud Computing vendors. Some analysts claim that Cloud Computing has been with us for years and it is simply the modern version of Utility Computing, with a catchy new buzzword. Others claim it is much broader and includes anything used outside of your local firewall. The goal of this postis to explain what Cloud Computing really means. This post takes the point of view of a software developer, as a user of the Cloud Computing environment, and it does not deal with setting up a Cloud Computing data center.
Utility Computing refers to a business model that focuses on providing computing services for a fee based on usage. This is similar to the current business models used by public utilities. Public utilities, such as the water service, provide a continuous service that can be used as needed, and the cost is based on the amount used. This public utility business model is analogous to the Utility Computing business model, in which computing services are always available and the customer is charged based on usage. Utility Computing is not a new concept and as early as 1955, MIT professor John McCarthy compared it with a public utility company in the following quote:
“If computers of the kind I have advocated become the computers of the future, then computing may someday be organized as a public utility just as the telephone system is a public utility… The computer utility could become the basis of a new and important industry.”
Utility Computing offers an economic model that, in some cases, can be superior to that of an on-site corporate data center. Studies have shown that servers residing in corporate data centers are underutilized with an average idle time of approximately 85%. The reason for this idle time is that servers in a corporate data center must be able to handle periodic spikes in demand and possible future load increases. However, with Utility Computing, a company does not pay for idle time. Instead, the company will only pay for the computing resources it needs, when it needs them.
Utility Computing is a type of Cloud Computing. However, Cloud Computing is a broader concept that describes the architecture on which Utility Computing is based. Cloud Computing can also describe categories of computing that do not meet the definition of Utility Computing. In fact, many forms of Cloud Computing offer services and benefits far in excess of those offered by standard Utility Computing.
This post as given a broad definition of cloud computing. However, in practice computing in the cloud comes in various forms. These layers provide a different level of service to meet different needs. In addition, the economic model for cloud computing is different from a standard computing model.
To summarize, the term Cloud Computing refers to any off-site computing environment with the most basic version simply being access to a server on which customers can install their applications and services. More advanced Cloud Computing environments provide services, such as email servers and applications servers that allow the customer to build and deploy custom applications to the cloud. The pinnacle of Cloud Computing is software application running in the cloud and made available over the Internet on a subscription basis.
Most Cloud Computing implementations employ virtualization technologies that allow multiple resources to appear as a single resource. This technology allows the cloud to expand and contract based on the system load and required performance levels. This elastic nature of the cloud allows for a pay-as-you-go billing model, based on usage, and the elimination of costly idle computing time.
In some cases, the type of cloud is based on the perception of the user. For example, a developer may build applications using a Platform as a Service (PaaS) cloud and make those applications available to an end user. From the end users perspective, the cloud is a Software as a Service (SAAS) cloud.