cloud computing howtoWhat is cloud computing? Cloud computing has become the new buzz word driven largely by marketing and service offerings from big corporate players like Google, IBM and Amazon. Cloud computing is the next stage in evolution of the Internet. Cloud computing provides the means through which everything — from computing power to computing infrastructure, applications, business processes to personal collaboration — can be delivered to you as a service wherever and whenever you need.


A brief history of client-server applications


Those of you who have been in the trenches of IT for one decade or two, would remember that the first type of client-server application that was  popular is the mainframe and terminal application. At that time, storage and CPU was very expensive and the mainframe pooled both types of resources and served them to thin-client terminals. With the advent of the PC revolution, which brought mass storage and cheap CPUs to the average corporate desktop, the file server gained in popularity as way to enable document sharing and archiving. True to its name, the file server served up storage resources to clients in the enterprise, while the CPU cycles needed to do productive work with those resources were all produced and consumed within the confines of the PC client.


In the early 1990s, the budding Internet finally had enough computers attached to it that academics began thinking seriously about how to connect those machines together to create massive, shared pools of storage and compute power that would be much larger than what any one institution could afford to build. This is when the idea of "the grid" began to take shape.


The term "grid" is misinterpreted as a synonym for "cloud" as they both are made up with the addition of lots of computers connected. However they are two different things:


Grid computing requires the use of software that can divide and farm out pieces of a program as one large system image to several thousand computers. One concern about grid is that if one piece of the software on a node fails, other pieces of the software on other nodes may fail. This is alleviated if that component has a failover component on another node, but problems can still arise if components rely on other pieces of software to accomplish one or more grid computing tasks. Large system images and associated hardware to operate and maintain them can contribute to large capital and operating expenses.


cloud computing


Cloud computing evolves from grid computing and provides on-demand resource provisioning. Grid computing may or may not be in the cloud depending on what type of users are using it. If the users are systems administrators and integrators, they care how things are maintained in the cloud. They upgrade, install, and virtualize servers and applications. If the users are consumers, they do not care how things are run in the system.


cloud computing

The difference between grid computing and cloud computing is hard to grasp because they are not always mutually exclusive. In fact, they are both used to economize computing by maximising existing resources.  

However, the difference between the two lies in the way the tasks are computed in each respective environment. In a computational grid, one large job is divided into many small portions and executed on multiple machines. This characteristic is fundamental to a grid; not so in a cloud.

The computing cloud is intended to allow the user to avail of various services without investing in the underlying architecture.

Cloud services include the delivery of software, infrastructure, and storage over the Internet (either as separate components or a complete platform) based on user demand.


Advantages of cloud computing:


The most effective transition to a cloud computing approach enables organizations to yield the following benefits:

On demand service provisioning: by using Self-service provisioning customers can easily get cloud services without going through a lengthy process. The customer simply requests an amount of computing, storage, software, process, or other resources from the service provider.

Elasticity: that is simple to add more stuff. Cloud computing provides the ability to scale up and down when additional users are added and when the application requirements change.


Cost reduction: As a matter of fact, companies are often challenged to increase the functionality of IT while minimizing capital expenditures. By purchasing just the right amount of IT resources on demand the organization can avoid purchasing unnecessary equipment.


Application programming interfaces (APIs): accessibility to software that enables machines to interact with cloud software in the same way the user interface facilitates interaction between humans and computers. Cloud Computing systems typically use REST based APIs.