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::..
Showing posts with label Python. Show all posts
Showing posts with label Python. Show all posts
Friday, April 18, 2008
Thursday, April 17, 2008
App Engine Part1
Google Power?
The challenges to create and deploy a web application is a major issue as the need for speed and unbridled creativity asserts itself in our day to day online activities.
Focus on your core activity, let Google do the rest. App Engine is an infrastructure to expose Google 's scalable system to your web application. It lets you run your web applications on Google's infrastructure. This is more than simple web hosting. It makes applications easy to build, to maintain, and easy to scale. You don't have to worry about your traffic and data storage, it will expand as needs grows.
There are no servers to maintain: You just upload your application, and it's ready to serve your users. You can serve your application using a free domain name on the appspot.com domain, or use Google Apps to serve it from your own domain. You can share your application with the world, or limit access to members of your organization.
We've reached the limits of the “jack of all trade” web bravado. In a classical web setting, one would typically have a foundation such as a Lamp [Linux, Apache, MySQL, PHP] (or equivalent proprietary framework). It is used despite its flaws and inconveniences with various success. However, with the shift from desktop to “webtop”, just getting the job done is no longer enough. Tools should help the creative process, speed the passage from conception to sales this is what both developers and users want.
In a typical business setting, a team, or even a sole developer, must manage issues such as authentication, production code, tools to update data and monitor logs. Applications must be upgraded, code maintained, machines must be serviced. Any serious project is directly confronted with questions pertaining to hardware. This implies a choice of machines, and or a hosting service (ISP, in-house servers ...), and of course some type of data persistence solution (MySQL, ORACLE ...).
Several layers of complications and added workload burdens software developers, web designers, and the end user.
And all this cost money. Behind all the technical jargon and sales pitch, what really is at stake is money. How much is having the proper tool worth to you. Inadequate, ill-fitting software products were once considered to be normal and a natural cost of doing modern business. This feeling of could be better is no longer necessary, and as the word “recession” sinks in, most managers will be attentive to that.
App Engine addresses these issues by making it “easy to use, easy to scale, and free to get started” (up to 500Mb for a maximum of 3 applications). Google runs and servers your code and takes care of your application's life cycle (Log files, runtime Database, status and activity data ...).
All you have to do is create those things of value for your clients and users.
Sounds too good to be true? Is there a catch?
Find out in Part 2
The challenges to create and deploy a web application is a major issue as the need for speed and unbridled creativity asserts itself in our day to day online activities.
Focus on your core activity, let Google do the rest. App Engine is an infrastructure to expose Google 's scalable system to your web application. It lets you run your web applications on Google's infrastructure. This is more than simple web hosting. It makes applications easy to build, to maintain, and easy to scale. You don't have to worry about your traffic and data storage, it will expand as needs grows.
There are no servers to maintain: You just upload your application, and it's ready to serve your users. You can serve your application using a free domain name on the appspot.com domain, or use Google Apps to serve it from your own domain. You can share your application with the world, or limit access to members of your organization.
We've reached the limits of the “jack of all trade” web bravado. In a classical web setting, one would typically have a foundation such as a Lamp [Linux, Apache, MySQL, PHP] (or equivalent proprietary framework). It is used despite its flaws and inconveniences with various success. However, with the shift from desktop to “webtop”, just getting the job done is no longer enough. Tools should help the creative process, speed the passage from conception to sales this is what both developers and users want.
In a typical business setting, a team, or even a sole developer, must manage issues such as authentication, production code, tools to update data and monitor logs. Applications must be upgraded, code maintained, machines must be serviced. Any serious project is directly confronted with questions pertaining to hardware. This implies a choice of machines, and or a hosting service (ISP, in-house servers ...), and of course some type of data persistence solution (MySQL, ORACLE ...).
Several layers of complications and added workload burdens software developers, web designers, and the end user.
And all this cost money. Behind all the technical jargon and sales pitch, what really is at stake is money. How much is having the proper tool worth to you. Inadequate, ill-fitting software products were once considered to be normal and a natural cost of doing modern business. This feeling of could be better is no longer necessary, and as the word “recession” sinks in, most managers will be attentive to that.
App Engine addresses these issues by making it “easy to use, easy to scale, and free to get started” (up to 500Mb for a maximum of 3 applications). Google runs and servers your code and takes care of your application's life cycle (Log files, runtime Database, status and activity data ...).
All you have to do is create those things of value for your clients and users.
Sounds too good to be true? Is there a catch?
Find out in Part 2
Subscribe to:
Posts (Atom)