The term “Cloud Computing” has gained a lot of attention by now and the momentum seems to be rising even in 2010.Cloud Computing appears in Gartner’s list of Top 10 Strategic Technologies for 2010 and as per the report:
Cloud computing is a style of computing that characterizes a model in which providers deliver a variety of IT-enabled capabilities to consumers. Cloud-based services can be exploited in a variety of ways to develop an application or a solution. Using cloud resources does not eliminate the costs of IT solutions, but does re-arrange some and reduce others. In addition, consuming cloud services enterprises will increasingly act as cloud providers and deliver application, information or business process services to customers and business partners.
Today I started looking into Google’s offering in this space “Google App Engine“.App Engine allows to host web applications in Google Cloud infrastructure which can scale up in terms of processing and storage needs as per demand and the billing model is pay as you use.
To host the applications in App Engine the application has to necessarily comply to the technical standards and constraints enforced by the platform.So we have got the Google App Engine SDK which provides a set of libraries and utilities for developing and deploying applications in App Engine.It also provides a simulation environment where we can run the programs in developer machine before uploading them to App Engine.
As far programming languages are concerned Google App Engine SDK is currently available for the Java and Python environments.I have started looking into the Python environment to start with.
The key components of the App Engine based application is shown below:
- Web App Framework – The App Engine web server and the web application interacts based on CGI protocol.The webapp framework is a simple web application framework provided by App Engine which contains Request Handlers,Request and Response objects.The webapp is also compatible with WSGI protocol widely used by the Python web containers.It’s not mandatory to use the webapp framework other frameworks like Django can be used well in conjunction with the App Engine.
- DataStore – App Engine uses a non relational schemaless database which is suited for web applications and specifically suited for scalable read and query performance.
- API for App Engine Datastore – App Engine provide a rich set of Python API to access the datastore and also a SQL like query language called GQL.
- Memcache – A distributed in-memory caching service
- URL Fetch – A service for accesing services hosted in other web servers outside google app engine.
- Mail – A service for sending/receiving email
- Images – Service to manipulate image data like resize,rotate,flip,crop etc.
- Google Accounts – This provides an authentication service with Google accounts.
This is all for now.In the next post I will explain the simple steps I have followed to build my first App Engine application.