Cloud computing programming API tutorial

Developers have a wide range of platforms to choose from in creating cloud-based applications. Two of the most popular platforms are Amazon's Elastic Compute Cloud (EC2) and the Google App Engine (GAE). In addition there are a wide variety of other platforms that have not gotten as much press, but are making traction such as SaleForce.com environment. In this guide, we will dive into some of the more interesting sites with development resources and tips to get the developer rolling.

Google App Engine
Google App Engine is in a preview release. It is more oriented to testing out the concept and the tools than building mission critical applications. Google is currently giving developers sample

    Requires Free Membership to View

accounts with 500 megabytes of storage, 200 megacycles of CPU per day, and 10 gigabytes of bandwidth per day. This should allow most applications to serve about 5 million pageviews per month. In the future, Google plans to keep the basic accounts for free, while charging for additional resources.

Google's offering is similar to Amazon, but it does not provide a set of standalone services like Amazon's S3 for storage, EC2 for hosting. The Google offering bundles everything into one package.

One of the downsides of the Google App engine is that developers are limited to Python, although Google plans to add other programming languages in the future. Developers are also constrained to the BigTable database, which runs inside the Google File system. Although it is different than traditional databases it does offer some benefits around scalability. Download the App Engine SDK here .

Google App Engine Blog
The official blog relating to Google's cloud deployment environment. It contains links to the Google App Engine Group, the documentation and all of the official news relating to the app engine.

The GAE APIs include:
The Python Runtime
Datastore API
Images API
Mail API
Memcache API
URL Fetch API
Users API
 

BigTable
A key component of the Google App Engine is BigTable, which has some key distinctions from a traditional database. It is fast and extremely large scale, which enabled by a sparse distributed multi-dimensional map, rather than traditional database rows and columns. Google App Engine has a SQL-like syntax called "GQL". Select statements in GQL can be performed on one table only. GQL intentionally does not support the Join statement.

Read a white paper on BigTable and a Bigtable overview.

Google App Engine Optimizations
Niall Kennedy provides a number of different optimizations for GAE development. This blog shares some of the best practices he has learned for key-based lookups, reduce indexed columns, defining favicons, and deployment.

Google App Engine Tips and Tricks
Majek presents a variety of tips and tricks for developing GAE applications. Some of the highlights include how to dynamically get application name and version, how to identify the current host, and how to set up captcha on GAE.

Using Komodo Edit as an IDE for Google App Engine
This guide explains how you can use Komodo as an alternative development environment for GAE, after the author gave up on Eclipse.

Rollin' With Google App Engine, 80's Style
Andrew Tetlaw takes you the basics of getting an application up and running on GAE. He explains the basic components of the framework and takes you through the steps of a dice rolling application. He writes, "Google App Engine represents something like the Commodore 64. You know a personal computer that doesn't do much on its own but is flexible, programmable, inspiring, and fun. You use it to tinker with stuff, finding out how stuff works, trying out ideas for new gizmos, and building custom tools."

Building Flash applications with Google App Engine
The GAE SWF Project is a resource of Flash and Flex-related knowledge specifically aimed at getting you up and running quickly with Google App Engine for building and deploying massively-scalable Flash and Flex applications.

Amazon
Amazon's EC2 is a commercial service that allows companies to rent computers to run their own computer applications. Customers rent out virtual machines (VMs) through a web services interface. These can be launched and terminated on demand. The platform uses Xen virtualization of one of three sizes ranging from 1.7 gigabytes to 7.5 gigabytes of memory and 850 gigabytes of storage.

The main site for Amazon Web Services contains news and links to tutorials and white papers for getting started with running your own AWS applications.

The top Amazon Web Services products include:

Amazon Elastic Compute Cloud (EC2)
Amazon Simple Storage Service (S3)
Amazon Simple Queue Service (SQS)
Amazon Mechanical Turk (Mturk)
Alexa Web Services for providing traffic data
Amazon SimpleDB

Amazon's SimpleDB makes it easier to work with data
Tony Patton provides an overview of how SimpleDB works and how to set up a database.

Amazon Developer Connections
The developer's gateway to Amazon development. The site contains a number of tutorials, tips, and provides source code for getting an AWS project off the ground.

Amazon Web Services Blog
Provides news and views on Amazon Web Services products, tools, and developer information. Includes links to background information, tutorials, webinars, and security.

Other cloud platforms include:
NetSuite Business Operating System (NS-BOS)
NS-BOS' primary purpose is customizing the company's accounting, sales, and ERP (enterprise resource planning) applications.

Salesforce.com's Apex wiki
The official Salesforce.com developer guide to getting started with Apex, the programming language used to develop cloud applications for SalesForce.com. It includes code samples, documentation, tools, and other technical resources for building and customizing apps on the Salesforce.com platform.

Etelos
Etelos provides a cloud computing platform for building and distributing apps built in PHP, JSP, Python and other languages. This site provides links to all of the resources to get started on the Etelos platform.

Comparing Amazon's and Google's Platform as a Service (PaaS) offerings
Compares the service offerings for developers. Showing how the databases, services, and other features line up.

Cloud computing news desk
News on all areas of cloud development. Focused on various tools, APIs, and services available for developing massive scalable compute systems.

This was first published in May 2009

Join the conversationComment

Share
Comments

    Results

    Contribute to the conversation

    All fields are required. Comments will appear at the bottom of the article.