Cloud Computing Vs Grid Computing
I was just curious about the cloud computing and wanted to know the difference between new technical buzz(at least for me! cloud computing) and grid computing, as I have worked on a financial product based on grid computing and trust me I was really amazed about its architecture and its design. Now its time to know about cloud computing and evaluate its usefulness for future endeavors.
What is Grid computing?
Interoperability is a keyword to understand grid computing, It was the main requirement in Grid systems. Grid systems support the execution of end-users applications as computational activities; a typical computational activity once accepted by a Grid endpoint, is locally handled by a batch system as a batch job. Grid was born to share resources among different admin domains in order to solve problems requiring resources exceeding the individual capacity;
Grid computing (or the use of a computational grid) is the application of several computers to a single problem at the same time — usually to a scientific or technical problem that requires a great number of computer processing cycles or access to large amounts of data. Grid computing depends on software to divide and apportion pieces of a program among several computers, sometimes up to many thousands.
Grid computing can also be thought of as distributed and large-scale cluster computing, as well as a form of network-distributed parallel processing. It can be small — confined to a network of computer workstations within a corporation, It could be large, public collaboration across many companies or networks.
What is Cloud computing?
Cloud computing could be seen as a natural evolution of concepts in Grid computing. Cloud computing focus on resource leases enabled by virtualization. In simple word clouds can provide more computational power than application required, application just need to tell the requirement, resources will be available at real-time.
Definition from Wikipedia “Cloud computing is Internet (“cloud”) based development and use of computer technology (“computing”). It is a style of computing in which typically real-time scalable resources are provided as a service over the Internet to users who need not have knowledge of, expertise in, or control over the technology infrastructure (“in the cloud”) that supports them. The concept incorporates software as a service (SaaS), Web 2.0 and other recent, well-known technology trends, in which the common theme is reliance on the Internet for satisfying the computing needs of the users. An often-quoted example is Google Apps, which provides common business applications online that are accessed from a web browser, while the software and data are stored on Google servers.”
Cloud computing really is about lots of small allocation requests, these allocations are real-time and in fact there is no provision for queuing allocations until someone else releases resources. This is a completely different resource allocation paradigm, a completely different usage pattern, and all this results in completely different method of using compute resources.
Cloud computing is an opportunity for businesses to implement low-cost, low-power and high-efficiency systems to deliver scalable infrastructure. But moving to a cloud infrastructure is not necessarily as nice and clean as the providers would want you to think. With cloud infrastructures problems don’t magically go away; they just shift: you don’t have scalability or storage problems any more, but you need to constantly monitor the cloud and your application in it.
Grid computing vs Cloud computing
Grid computing is some what like scheduling jobs, while Cloud computing focuses on resource leases enabled by virtualization.
Grid systems are designed for collaborative sharing of resources belonging to different admin domains, while Clouds at the moment expose the resources of one domain to the outside world.
Clouds are born to enable flexible renting of an IT infrastructure.
Grid systems support the execution of end-users applications as computational activities; a typical computational activity once accepted by a Grid endpoint, it is locally handled by a batch system as a batch job; Clouds are mainly used for the remote deployment of services.
Grids provide more domain-specific services.
Grids are moving towards the adoption of virtual machine technologies.
Grid systems support large set of users organized in virtual organizations, Cloud systems support individual users.
I come across a very good java platform for grid computing implementations link[http://www.jppf.org/] ” java platform for parallel processing”. JPPF is an open source Grid Computing platform written in Java that makes it easy to run applications in parallel, and speed up their execution by orders of magnitude. Write once, deploy once, execute everywhere!, its highly scalable, distributed framework for the execution of Java tasks, leverages JCA 1.5 to integrate with leading J2EE application servers, easy programming model that abstracts the complexity of distributed and parallel processing, graphical and programmatic tools for fine-grained monitoring and administration, fault-tolerance and self-repair capabilities ensure the highest level of service and reliability.
Though I feel, there are more to understand about cloud computing but there are live examples like Google, Microsoft, Amazon who already adapted cloud computing to support their large networks of products for exponentially increasing demand of their services and products.