Google: Compute Engine Plays Nice With Open Source

Google's educational effort makes developers aware of the possibilities when pairing Google Compute Engine with open-source applications.

Google is working hard to make it clear to developers and corporate IT departments that its powerful Google Compute Engine platform ties in well with a wide range of open-source applications in the enterprise.

Google's latest educational effort was unveiled recently by Eric Johnson, program manager for Google Compute Engine, in a post on the Google Cloud Platform Blog.

"With the recent announcement that Google Compute Engine is now Generally Available, we thought you might also like to know about the many popular open-source solutions for interacting with Google Compute Engine," Johnson wrote. "And now that Compute Engine support is built right into the tool, it makes it that much easier for you to try it out in a known environment."

To work well with popular programming languages, "Google provides a general set of Client APIs for accessing Compute Engine, as well as other Google services," he wrote. "However, you may have code or applications written against another language API that makes updating to Google's client APIs questionable."

For such cases, open-source applications such as Ruby, Python and Java can be considered for use with Google Compute Engine, he wrote. With Ruby, the cloud API has had support for Compute Engine since version 1.11.0 in May, according to Johnson. "Take a look at the Compute Engine docs to get started with Compute Engine and fog. It primarily supports instance operations such as create, destroy and bootstrap."

With Python, the Apache libcloud API project "has been receiving solid support and updates for Compute Engine since July," he said. "It supports a broad set of Compute Engine features including instances, disks, networks/firewalls, and load-balancer support. The handy getting-started demo gives a good code example of how to use libcloud and Compute Engine."

When it comes to Java, however, the jclouds cloud API does have Compute Engine support in labs, Johnson wrote. "See the jclouds-labs-google repository for work being done to provide Compute Engine support and to elevate the lab into jclouds-core."

Sometimes, developers need tools to automate configuration management of their Compute Engine instances, he wrote. To do that, developers can choose from configuration management tools, including: PuppetLab's Puppet, which has been around since 2005 and has evolved from supporting on-premise and hosted-datacenter support to also managing public cloud infrastructure; Opscode's Chef, which is an automation platform with a modular design that has been extended to support Compute Engine through its knife-google plugin; SaltStack, a configuration management tool that provides a highly scalable and fast data collection and execution framework for system administration; and AnsibleWorks' Ansible, which does not utilize a centralized configuration server nor does it require any agents running on the managed instances. Ansible instead relies on SSH to remotely execute scripts on the managed nodes, according to Johnson.

Several other open-source projects also support Compute Engine, he wrote, including CoreOS, which is a very thin Linux system that provides just enough "OS" to enable the use of Linux containers; Docker, which is an application for running Linux containers that can now be run on Compute Engine instances; Packer, which creates machine images across multiple platforms from a single configuration; and Vagrant, which is primarily a development tool for easily describing and replicating work environments, according to the post.

"Google is committed to helping support the open-source ecosystem and we welcome your help in improving and extending the tools listed above in addition to any tools you feel should be added to the list," Johnson wrote.