Should developers care whether the infrastructure supporting their apps is in the cloud or in a grid? Absolutely. Each has its pros and cons -- and until recently, the cloud and grid computing models did not combine the best of both worlds in a single solution.
GridGain, a small cloud vendor, claims to have a solution that merges the cloud and grid computing, allowing developers to maximize the benefits of both models on one platform.
Cloud vs. Grid Computing
Cloud computing and grid computing are scalable, employing multitenancy architectures and multitasking. Both models also provide service-level agreements (SLAs) for guaranteed uptime availability. Where they differ is in their fundamental offerings:
- A public cloud enables companies to scale up to massive capacities in an instant, without having to invest in new infrastructure, train new personnel, or license new software.
- A computational grid system enables companies to use software to divide one large computing job into many portions across multiple machines, which can number in the thousands.
The cloud model does more than maximize computing power (grid's main strength), as a cloud can provide many different services from Web hosting to word processing.
"A lot of people really get confused on cloud versus grid," said Mike DiPetrillo, a senior engineer at VMware. "The two are closely related. I always think about it in terms of virtualization versus grid. Grid is great if you have an app that needs a lot of combined compute cycles. Virtualization is great if you have a lot of apps that need little compute cycles each."
Cloud encompasses both grid and virtualization, he added.
"The point of cloud is you don't have to care if you have a grid infrastructure underneath or a virtualization infrastructure underneath. All you do is deploy your app to the cloud and let the cloud figure out how to get the app the resources it needs."
That's why cloud is the over-arching architecture for virtualization, grid, SaaS, PaaS or anything else you can think of, said DiPetrillo.
The Shortcomings of Grid Computing Alone
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 also 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.
The large system images and associated hardware to operate and maintain them can create big capital and operating expenses as well.
Sometimes security and outages pose problems, but interoperability can be the biggest issue. If a company outsources or creates applications with one cloud computing vendor, and then decides to switch to another cloud vendor, the company may find it has to deal with two sets of proprietary APIs and different formats for importing and exporting data.
The GridGain Developer Story
To make the cloud as easy and powerful to use as possible for developers, GridGain created its GridGain platform.
"This is the world's first and only cloud application platform that combines state of the art computation and data grid technologies in one product," said Nikita Ivanov, GridGrain's CEO.
Using GridGain, developers no longer need to sacrifice features by emulating compute grid with data grid or vice versa, said Ivanov.
"Our platform allows developers to avoid any manual deployment of user code, while providing advanced cloud-enabled, on-demand loading to any JVM-based applications," he said. "There are no websites to click through, no awkward manual network configuration or restarts, no Ant/Maven builds, no IDE plugins, and no custom management consoles required."
Developers can execute new code or cache new types of data in GridGain without any deployment or any restarting of a grid.
"You can have a live grid/cloud installation, dynamically create a new Java or Scala class and immediately put it into a data grid, and start querying it," Ivanov explained.
Finally, GridGain enables developers to launch multiple GridGain nodes in the same JVM.
"This is one of the greatest time-savers today in distributed computing," said Ivanov. "In fact, you can launch an entire grid or cloud right in the same JVM, put breakpoints onto multiple nodes and step through the entire cloud, tracing your distributed logic in your debugger -- and never leaving the IDE."