Friday, April 18, 2008

App Engine part2

Google wants to host your applications. This is great, but some ISP and businesses like Amazon.com or salesforce.com also offer such run without hassle services. So big deal? Yes, absolutely!
Using App Engine gives the developer access to the same building blocs as the ones used by Google to create there own applications. This means scalable serving infrastructure, Google accounts and authentication, Goggle file system (GFS) and the massively distributed Google data-persistence solution known as “BigTable”.

In the words of our Google friends,this is what we get:
1.Scalable Serving Infrastructure
2.Python Runtime
3.App Engine SDK
4.Web-based Administration Console
5.Datastore.

Scalable Serving Infrastructure
It's a distributed low overhead system for running your code. This means your application on the whole is fault tolerant. It also means that resources for your application is scaled in response to demand and load. Why should you care? Because application development is shifting from a Desktop to a “Webtop” environment. If your application is to tap into this huge pool of users, you will need some serious hardware. That's were Scalability becomes a big deal. But event if your needs a more modest, within a corporate Intranet or even a Extranet, not having to manage a pool of machines, the purchase additional hardware as demand increases, and schedule maintenance around system availability in an ever changing technological world is worth it.

Python runtime and libraries
If you have not heard of Python you are probably not a software developer. But that's alright :-)
According to the official site ( http://www.python.org ) “Python is a dynamic object-oriented programming language...”. Suffice it to say NASA uses Python and so should you :-)
More seriously, the usage of python is great news for people that value good programming.

Software Development Kit (SDK)
You can download the preview release here
If you know Django you'll fill right at home. Finally pythonistas have the tools from which the long awaited python killerapp can emerge.

Web-based Administration Console
The array of programs needed to configure and keep in sync a major web application is greatly simplified thanks to a uniformed web-based administration console. You can set the administrators and grant users access to your application. You can event run multiple versions of your application, very useful to test changes. You get tools for login analysis, to manage domain names.
The Administration Console lets you create a new application, invite other people to help develop your application. All this is don with minimal fuss. Just access the web Console and upload new versions of your code. In absolute conformity to the K.I.S.S (keep it small and simple) principle, view access data and error logs, and analyze traffic, browse your application's datastore and manage indexes.

Scalable Datastore.
The concept of a relational Database does not scale well in a massively distributed system. The same power used by Google to make Google map/earth a reality is made available to your application through the scalable Datastore. The Datastore does not use a relational, hierarchical tree. Instead, it uses “BigTable” which is a horizontally distributed scalable system. It spans thousands of machines and is fault tolerant. It uses a language similar to SQL, called GQL Query. (Notice though that datastore does not provide “table joints” because it is not efficient in a distributed system“.
The App Engine datastore is not a relational database, but its interface has many of the same features of traditional databases. This implies a different way of designing and managing data, but to take advantage of the ability to scale automatically, you don't really have to concern your self with these details. App Engine is still in preview the preview phase. Already work in on the way to allow easy data transfer to and from Google's storage. Read more here http://code.google.com/appengine/docs/datastore/overview.html

There is more.
App Engine gives us some nifty modules that make it easy to send email, make HTTP requests, Authenticate with Google Accounts. One very interesting feature of this system is it's flexibility. You do get some preloaded framework such as a mini version of django, and web template markup such as yaml. But the most exiting thing is that App Engine can be extended by any framework of your choice (twister, Quixote, full fledge Django ...)

2008 may very well be the year of Python... In part3 and part4 we'll see some actual code.
Happy coding.
..::Part1 || Part3::..

No comments: