130 likes | 360 Views
Google App Engine. What is it?. Cloud Service with a difference Rather than just give you a blank machine to work Google hosts the app directly, provides environment, data layer, scaling, service APIs All you worry about is your application logic and its presentation. A Bit Like Maven.
E N D
What is it? • Cloud Service with a difference • Rather than just give you a blank machine to work • Google hosts the app directly, provides environment, data layer, scaling, service APIs • All you worry about is your application logic and its presentation
A Bit Like Maven • Like Maven Google have made a lot of decisions about how to structure things • Mightn't be exactly the way you would have done it but it takes the burden of those decisions away • From my meagre experience (both in building apps and google app engine) they haven't done anything drastically annoying
Some Details • 5 millions clicks for free • python 2.6 with some restrictions • api for google users, images, datastore, mail, others... • you get to use google's infrastructure, ever notice a significant page load on a google search
Development Env • Pydev, Eclipse Plugin, missing features, active community • Google SDK, full mocked out server env. • Command-Line tool to upload your project directly • SDK recompiles code automatically never a need for a server reload, very fast feedback cycle • gaeUnit, unit testing framework, launching from browser, couldn't get it to run personally
Datastore • Object Oriented Design, no need for a mapping xml file or annotations • define a entity class with properties • call put on this object to store it • call fetch on this object with GQL to filter • Scales as impressively as page loading • Expando objects, dynamic properties, each instance can have different properties • Supports transactions and keys
Some Drawbacks • Currently only supports a subset of python 2.6 • Doesn't support a lot of system calls, can't sniff what hardware you're running on • Doesn't support the any python library that has compiled c code which is most of them • If you're lucky enough to get 5 million clicks a month it can be a bit flaky in how it cuts you off • A web request can only take around 8 seconds • Patriot Act 1 and 2 • High cost to migration
On the other hand • On October 18th in a Google Conference java support announced but no official word since. • 5 million clicks for free, looks like each million after will be $40 a month. • Some effort to make useful python libraries gae friendly • When running out of quotas, exception thrown which you can catch to explain to user what’s happened • Has been hinted 8-10 second limit will be extended when billing comes around
What google app engine offers • Great dashboard system, similar to google analytics • Good local dev environment and upload tools • Google probably handle more web requests than any other single organization, if you can't hit google its probably a problem with your dns • Google takes on the burden of deployment, scaling and security. Unlike Amazon's service which gives you a blank machine where you're left with all those decisions
Not a silver buffet • In my humble opinion, its really only good for small quick applications that don't need to do anything out of the ordinary. • Its not good if your application will need to: • Think about anything for longer than 10 seconds • Need to use fancy 3rd party libraries • contain sensitive data
Topicvote • Simple app I made to play with google app engine • http://topicvote.appspot.com • allows people to add topics and vote for them • Someone really likes eliminating waste • spent about a week learning the basics of python
Topicvote 2 • From when I downloaded the sdk I had an basic app written and deployed in 4 hours • another 4 hours to flesh it out • This is particularly impressive if you knew of my track record on deployment stories • Can you think of any other tech stack were you take a complete newbie, give them the sdk and they'll have something ready for heavy load in 4 hours?
That last awkward slide • Questions, Discussion, look at the code?