Grids vs Clouds
Join the DZone community and get the full member experience.
Join For FreeI constantly run into conversations where people use the word Grid and
Cloud interchangeably without actually understanding what each one
really means. When I actually ask what do they mean by Grid or Cloud -
the usual answer is that they are the same. Well, they are not.
Cloud
Computing is on-demand provisioning of virtual resources and services
around those resources. For example, if a cloud provider wants to
provide a data storage (like S3), then the same provider also needs to
provide APIs to access and manipulate this data storage. If a cloud
provider allows for allocation of virtual instances, then the same
provider must provide APIs to create images and deploy them on those
instances.
Grid Computing, on the other hand, has to do with
providing ability to join multiple computers together for the purpose
of solving computational problems. It deals with such issues as
auto-node discovery, dynamic deployment and redeployment of a problem,
topology and collision resolutions, load balancing and monitoring,
etc... A grid should allow you to take a problem, determine the optimal
node topology for it, dynamically deploy the problem onto the chosen
topology, provide means to divide the problem into multiple parts for
parallel execution, distribute the problem within topology, gather
results, and return them to user. In the middle of all that, a grid
should automatically scale computations as load changes by
transparently utilizing additional nodes while remaining fault tolerant.
There
is an obvious connection between grids and clouds. If clouds let you
easily deploy your application on 20 nodes, then grids should easily
connect those applications into a cluster. This makes it absolutely
vital to allow users seamlessly grid-enable their applications on the
clouds. At GridGain we are working on making the process of gridifying cloud applications
as transparent as possible. For example, with GridGain 3.0, user
applications will transparently auto-discover each other on a cloud,
without any additional effort or configuration. On top of that GridGian
will allow combining different clouds into one joined topology - this
way you can have a few computers from your local datacenter work
together with virtual instances started on a cloud.
So, to
summarise, in majority of the cases (with some exceptions) cloud
computing has to do with providing virtual hardware resources together
with APIs that allow access to those resources. Grid computing is at a
higher level - it is the middleware that allows you to join multiple
physical or virtual resources together to solve computational problems
in parallel fashion.
Opinions expressed by DZone contributors are their own.
Comments