How to Build, Manage & Run Your Business Applications on Google’s Infrastructure
Christian Schalk – Developer Advocate, Google
- not really an advocacy position
- still in engineering, but work a lot more with users directly
- go out to companies to help them be successful
What is cloud computing?
- lots of different definitions
- pyramid of (bottom up):
- infrastructure as a service
- joyent, rackspace, vmware, amazon web services
- provides cooling, power, networking
- application platform as a service
- GAE falls in this category
- tools to build apps
- software as a service
- google docs, etc.
- infrastructure as a service
GAE
- easy to build
- easy to maintain
- easy to scale
- appengine resides in google’s overall infrastructure so will scale up as needed
- started with only python
- with java support, opened the doors for java enterprise developers
By the Numbers
- launched in 2008
- 250,000 developers
- 100,000+ apps
- 500M+ daily pageviews
- 19,000 queries per second — has almost doubled since January
Some Partners
- best buy
- socialwok
- xylabs
- ebay
- android developer challenge
- forbes
- buddypoke
- 62 million users
- gigya
- do social integration for large media events (movie launches, sports events) — huge spikes in traffic so GAE just handles it
- ubisoft
- google lab
- ilike
- walk score
- gigapan
- others
- point here is it’s very easy to drop specific apps on GAE without running litearlly everything on GAE
- very popular among social networking apps because of easy scalability
Why App Engine?
- managing everything is hard
- diy hosting means hidden costs
- idle capacity
- software patches & upgrades
- license fees
- “cloud development in a box”
App Engine Details
- collection of services
- memcache, datastore, url fetch, mail, xmpp, task queue, images, blobstore, user service
- ensuring portability — follows java standards
- servlets -> webapp container
- jdo/jpa -> datasource api
- java.net.URL -> URL fetch
- javax.mail -> Mail API
- javax.cache -> memcache
- extended language support through jvm
- java, scala, jruby, groovy, quercus (php), javascript (rhino)
- always free to get started
- liberal quotas for free applications
- 5M pageviews/month
- 6.5 CPU hours/day
Application Platform Management
- download and install SDK
- Eclipse plugin also available
- build app and then deploy to the public GAE servers
- app engine dashboard
- app engine health history
- shows status of each service individually across GAE as a whole
Tools
- google app engine launcher for python
- sdk console
- local version of the app engine dashboard
- google plugin for eclipse
- wizard for building new app engine apps
- can run the entire gae environment locally within eclipse
- easy deployment to app engine servers
- in process of building a new version of this with more features
Continuously Evolving
- aggressive schedule for providing new features
- may 2010 — app engine for business announced
What’s New?
- multi-tenant apps with namespace API
- high performance image serving
- openid/oauth integration
- custom error pages
- increased quotas
- app.yaml now usable in java apps
- can pause task queues
- dashboard graphs now show 30 days
- more — see http://googleappengine.blogpost.com
Getting Started
- go to http://code.google.com/appengine for basic information
- can link gmail account to appengine
- download sdk and optionally the eclipse plugin
- http://appengine.google.com is the url for the actual service
- log in here with google account and create new applications
Creating and Deploying an App
- demoing eclipse plugin
- can create a new Google Web Application, optionally with GWT
- projects follow the typical java webapp structure
- before deployment, can test/debug locally just like any Java project in eclipse
- even the datastore is available locally for development/testing
- new features tend to be introduced in python first, then java gets them later
- to deploy, right click the project, choose “google,” then deploy
- this brings up a window where you put in your application ID and version, then uploads to the GAE servers
- can log into GAE dashboard and configure billing with maximum charges if your app will exceed the free quotas
- can use your own custom domains, this ties into google apps
- can assign additional developers to GAE applications by email address
- can deploy new versions of applications and keep the old ones as well, can toggle between versions and choose one as default
What about business applications?
- GAE for Business
- same scalable cloud hosting platform, but designed for the enterprise
- not production quite yet
- enterprise application management
- centralized domain console (preview available today)
- enterprise reliability and support
- 99.9% SLA
- direct support
- tickets tracked, phone support, etc.
- hosted SQL (preview available today)
- managed relational sql database in the cloud
- doesn’t replace the datastore–available in addition to the datastore
- ssl on your domain
- current core product doesn’t offer this
- secure by default
- integrated single signon
- pricing that makes sense
- apps cost $8/user, up to a max of $1000 per month
Enterprise App Development With Google
- GAE for Business
- Google Apps for Business
- Google Apps Marketplace
- Firewall tunneling technology available (Secure Data Connector)
App Engine for Business Roadmap
- enterprise admin console (preview)
- direct support (preview)
- hosted sql (limited release q4 2010)
- sla (q4 2010)
- enterprise billing (q4 2010)
- custom domain ssl (2010 – 2011)
SQL Support
- can run this all locally in eclipse
- demo of spring mvc travel app running on GAE with the SQL database
- have to explicitly enable sessions
- had to disable flow-managed persistence
Become an App Engine for Business Trusted Tester!