April 8, 2008

Google App Engine: Write Your Own Google Apps

Google's applications could be useful and interesting, but they are just a small fraction from all the applications you may need. That's probably the reason why Google decided to open its infrastructure to third-party applications and released Google App Engine.
Google App Engine gives you access to the same building blocks that Google uses for its own applications, making it easier to build an application that runs reliably, even under heavy load and with large amounts of data. The development environment includes the following features:

* Dynamic webserving, with full support of common web technologies
* Persistent storage (powered by Bigtable and GFS with queries, sorting, and transactions)
* Automatic scaling and load balancing
* Google APIs for authenticating users and sending email
* Fully featured local development environment

For now, there are a lot of limitations: only the first 10,000 users who register at http://appengine.google.com/ will be able to test the new service, you need to write your applications in Python (more languages will come) and the quotas are enough only for small to medium projects. "During this preview period, applications are limited to 500MB of storage, 200M megacycles of CPU per day, and 10GB bandwidth per day. We expect most applications will be able to serve around 5 million pageviews per month. In the future, these limited quotas will remain free, and developers will be able to purchase additional resources as needed." The limitations are reasonable if you think this is only a preview release and Google wants to get feedback from developers before the official launch.


The applications can be run locally using a SDK provided by Google or uploaded to a subdomain of appspot.com or to your own site. There's already a gallery of applications that includes a chat room for teams, a movie quote site, a Python shell and more.


Google previously released Mashup Editor, "an AJAX development framework and a set of tools that enable developers to quickly and easily create simple web applications and mashups", but the new App Engine lets you build more complex applications. Kevin Gibbs explained more about Google's intentions at Google App Engine Campfire One.

Google App Engine provides an infrastructure for running web apps. By that, I mean that we're focused, specifically on web applications: making them easy to run, easy to deploy, and easy to scale. App Engine is different than a lot of other things out there: App Engine is not a grid computing solution-- we don't run arbitrary compute jobs. We also don't give you a raw virtual machine. Instead, we provide a way for you to package up your code, specify how you want it to run in response to requests, and then we run and serve it for you. You don't reserve resources, or machines, or RAM or a number of CPUs, or anything like that. It's a fluid system, that runs your code in response to load and demand. (...)

App Engine is a complete system. We provide ways to run your code, serve your static content, a database, request and application logs, methods to push new releases of your code, and more. Ultimately, we are trying to provide a simpler alternative to the traditional LAMP stack. (...) Finally, the other key part of App Engine is that we're providing you access to Google's infrastructure. The APIs and systems we are providing to you are built off of the same distributed, scalable infrastructure we use to power Google's other applications, like Google Accounts, GFS, and Bigtable. We're giving you access to those powerful building blocks, and giving you the ability to write real code and real apps that make use of them.

Usually, if you lower the entry barriers for a system, people will use it more often and the probability of building something great increases. Google wants to reduce the complexities of creating web applications and give developers the opportunity to spend more time writing code and less time building the infrastructure and scaling the application. The same way Amazon Web Services reduced the costs of running a start-up, Google App Engine could accelerate innovation by letting developers focus on what's important.


Google App Engine - http://appengine.google.com
Documentation - http://code.google.com/appengine
Featured applications - http://appgallery.appspot.com

9 comments:

  1. Having access to their MapReduce framework would be really excellent. I wonder if it is planned?

    ReplyDelete
  2. Please, let someone write a screenwriting program, or a plugin for Google Docs that does the formatting. That would really make my life great.

    ReplyDelete
  3. This is all pretty exciting. I just wish I were a better (and younger) coder so I could take advantage of it all.

    This and other Google roll-outs put pressure on a lot of low-level services, hosting services, co-lo services, etc. which collect a lot of entry-level dollars without providing a whole lot of support.

    ReplyDelete
  4. I think this packages things together quite nicely. I’ve done some preliminary research and the offerings therein seem much more complete than anything Amazon has done - most notably on the development and scale side of things.

    While S3 and EC2 are great, and in my opinion have really been a big hit for Amazon on all fronts, I think Google’s App Engine is going to begin to bring all of these pieces together in a way that makes it easy for startups to stop worrying about scale, api, authentication systems, billing, and development platforms - and just start making great products.

    Think about an app built with App Engine + Open Social + Google Gears. If it becomes a big hit, it won’t go down (theoretically).

    ReplyDelete
  5. and one week after its launch:

    http://www.betanews.com/article/Google_Apps_hacked_to_run_on_Amazon_Web_Services/1208276096

    ReplyDelete
  6. This sounds just wonderful, but a week after the announcement, there are no more accounts available.

    I will not waste my time with the SDK until I know that I can get an account.

    I am underwhelmed.

    ReplyDelete
  7. I'm trying to compare development using Google Apps or Oracle Apex. Since I already know Javascript but might be able to pick up Python, Apex seems slightly better.

    https://apex.appshosting.com/pls/apex/f?p=4700:1:765626313031080

    ReplyDelete
  8. i want to implement my own apps in google, what should I do?
    Plz suggest me asap.

    ReplyDelete

Note: Only a member of this blog may post a comment.