Review: Google Compute Engine rocks the cloud
Google's new compute cloud offers a crisp and clean way to spin up Linux instances and easily tap other Google APIsFollow @peterwayner
A Compute Engine with a view
Google Compute Engine is just one part of the Google APIs portal, a grand collection of 46 services. These include access to many of Google's biggest databases such as Books, Maps, and Places, as well as to some of Google's lesser-known products like the Web Fonts Developer API.
I suspect many developers will be most interested in using Google Compute Engine when they want to poll these Google databases fairly often. While I don't think you're guaranteed to be in the same zone as the service you want, you're still closer than when traveling across the generic Web. Google offers "courtesy" limits to many of these APIs to help out new developers, but you will end up paying for the best services if you use them extensively. These prices are changing frequently as Google and the developers try to figure out what they're really worth.
Google says some experimenters are already pairing the Compute Engine with the App Engine to handle expensive computations. In one of the experiments, Google worked with a biology lab to analyze DNA [PDF]. The data was uploaded through an App Engine front end, then handed over to a block of Compute Engine cores to do the work. The Compute Engine machines were started up when the data arrived, and they were shut down and put back in the pool as soon as their work was done.
You can start and stop your machines by hand and track them with the Web portal, but I suspect many will end up using the command-line tool. Google distributes some Python code that handles most of the negotiations for reserving, starting up, and stopping servers. While the Web portal is OK for small jobs, the ability to easily write scripts makes the command-line version more useful.
The command-line tool is also more powerful. You can create instances through the Web GUI, but there's a limit to how far you can go. I couldn't figure out how to log in with SSH through the portal, then I switched back to the command line. Perhaps Google should check out some of the HTML5-based tools like FireSSH that integrate SSH with a Web page. The only real challenge is finding a good way to hold the SSH keys.
One of the more interesting features is the way to bind metadata to each computer. Google is clearly intending for people to write their own automatic routines for bringing machines online and off. If you want your software to be self-aware, it can look at the metadata for each instance, and the instance can also read the metadata about itself. This lets you pass in configuration information so that each new machine is not born with a clean slate.
If you want to build your own collection of Linux boxes, Google Compute Engine offers a nice, generic way to buy servers at what -- depending on the size of compute instance you need -- can be a great price. The most attractive feature will probably be the proximity to the other parts of the Google infrastructure. Google is as much a data vendor as an advertising company, and the collection of APIs is growing nicely. I can see how some companies will want to run their computational jobs in the Google cloud just to be closer to these services.
The Web GUI for provisioning instances and disk shows the REST packet that will actually do the work, in case you want to automate the task later.
This article, "Review: Google Compute Engine rocks the cloud," was originally published at InfoWorld.com. Follow the latest developments in application development and Java programming at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.
Read more about cloud computing in InfoWorld's Cloud Computing Channel.