Editor's note: Developers' options for cloud application development have evolved significantly since this tutorial...
was first published. You can find more current information about cloud platform as a service features here, about PaaS pricing here and about cloud computing programming API management here.
There are various platforms to help developers create cloud-based applications. Two of the most popular cloud programming platforms are Amazon 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 the SalesForce environment. In this tutorial, 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 accounts with 500 megabytes of storage, 200 megacycles of CPU per day and 10 gigabytes (GB) 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 cloud programming offering is similar to Amazon's, but it does not provide a set of stand-alone services like Amazon Simple Storage Service and 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 offers some benefits around scalability.
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. GAE APIs include the Python Runtime, Datastore API, Images API, Mail API, Memcache API, URL Fetch API and Users API.
A key component of the Google App Engine is BigTable, it has some key distinctions from a traditional database. It is fast and extremely large scale, which is 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.
Amazon EC2 is a commercial service that allows companies to rent computers to run their own computer applications. Customers rent out virtual machines 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 GB to 7.5 GB of memory and 850 GB of storage.
Top Amazon Web Services products include: Amazon Elastic Compute Cloud, Amazon Simple Storage Service, Amazon Simple Queue Service, Amazon Mechanical Turk, Alexa Web Services for providing traffic data and Amazon SimpleDB. 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's Apex wiki
The official Salesforce developer guide to getting started with Apex, the programming language used to develop cloud applications for SalesForce. It includes code samples, documentation, tools, and other technical resources for building and customizing apps on the Salesforce platform.
Comparing Amazon's and Google's platform as a service offerings
This guide compares the service offerings for developers and shows 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.
Other Cloud Computing Programming Resources
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
There are 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, '80s 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."
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.
Measure your knowledge of cloud computing and programming
What to know about cloud APIs and the associated risks
Manage cloud API security and protect multiple clouds