Platforms in the cloud

Do you enjoy Python or Java programming? You want to write web applications? Try the Google App Engine. And don’t fear, because it’s easy to learn and, of course, it’s free…

Remember Platform as a Service (PaaS) from my first cloud column? A PaaS is a scalable, integrated application runtime (and in most cases) development platform for one or more programming languages.

The Google App Engine is the most popular public cloud PaaS available, and Python and Java are both supported. With the App Engine you can develop your application locally and test them with the development server provided with the SDK. Whenever you want, you can deploy your application to the App Engine servers inside the Google infrastructure. If you enjoy Eclipse, the Google plug-in for Eclipse will be your friend.

There is a limited but powerful set of APIs inside the Google App Engine. Your applications can use the huge persistent Datastore (with an SQL-like query language called GQL) and the fast Memcache for storing data. The applications can fetch resources and communicate with other hosts over the internet using HTTP and HTTPS requests. Emails can be sent and received and it’s easy to resize, rotate, flip and crop images. User authentication is done with Google Accounts. It is also possible to create applications that send and receive instant messages to and from users of XMPP-compatible instant message services.

Every developer can have up to ten applications. The quota rates for free applications inside the App Engine are 1GB for incoming and outgoing data each, as well as 1GB total stored data, 2,000 emails and a CPU time of 6.5 CPU hours. The quotas are reset every 24 hours. Getting more resources is quite cheap.

You want your own private cloud PaaS? Try AppScale. It has the same functionality as Google App Engine and it is open source (BSD License). Python and Java (since AppScale 1.3) are supported. AppScale runs inside public cloud infrastructures (IaaSes) such as Amazon’s Elastic Compute Cloud (EC2) and private cloud IaaSes like Eucalyptus. Don’t have access to an IaaS and don’t want to run one of your own? No problem. You can simply deploy AppScale across Xen or KVM instances.

In addition to the Google App Engine, some other public cloud PaaSes are available. Examples include Engine Yard that supports Ruby on Rails, Force.com that hosts applications written in Apex (a proprietary Java-like programming language) and Microsoft’s Azure Services Platform. But none of these is available for free and has an open source private cloud brother like AppScale. Working with PaaS is great if your application demands are fulfilled. And you can save a lot of money, so it’s worth a look.

This article originally appeared in issue 86 of Linux User & Developer. Linux User & Developer, one of the nation’s favourite Linux and Open Source publications, is now part of the award winning Imagine Publishing family. Readers can subscribe and save more than 30% and receive our money back guarantee – click here to find out more.