Upload
adesso-ag
View
718
Download
1
Embed Size (px)
DESCRIPTION
Presentation about Google App Engine from a Java Developer's perspective as shown at JAX 2013
Citation preview
25.04.13
Dr. Halil-Cem Gürsoy, adesso AG
Tw @hgutwitG+ http://goo.gl/hljRS
JAX 2013 – PaaS Parade GAE/J
Agenda
● Google App Engine● Persistence in Google App Engine● Limits in GAE/J● Quota and Performance● Build-Tools● Getting started
The Google App Engine
● A classic PaaS● No control over the OS● A runtime for Web Application● At the start, only Python was supported● Since 2009 Java, now Google Go● Fast growing*
● 3B+ Request / Day● 300k+ Apps, 100k+ Developers
*) Source: David Chandler, Developer Advocate @ Google, DevNexus Talk
Talking about GAE/J● GAE/J = JRE7
● Supports Java 6, but will be dropped! ● A Sandbox with some restrictions
● Supports out of the box many but not all API's
● Servlet API 2.4, JSF 2.1, JSP + JSTL, JDO, JPA
● Limited support for JPA (no Joins)● Support for Google Services und API‘s
The Google App Engine
● “JRE Whitelist” = supported JRE classes● https://developers.google.com/appengine/docs/java/jrewhitelist
● Only ~ 1650 classes● Your application should not
● …start „own“ threads
– must use a GAE ThreadFactory, limit to 50● …write (and read non resource ) files● …open network sockets
Whitelist
● Overview frameworks and languages:● http://code.google.com/p/googleappengine/wiki/WillItPlayInJava
● No support for…● JAX-RPC, JDBC, JMS (!), JMX, JNDI...
● JAX-WS● Only Consumer, no Provider● Provider via javax.xml.soap & JAXB
● + Scala, Groovy (look @ Gealky), JRuby● + Spring (Core)
Will it play?
Some benefits
● Integration of Google Services and APIs● SPDY, G+, Analytics, Blogger, Books,
Google Cloud SQL, Maps etc.● Support of Android apps
● Google Cloud Messaging
● ...and for JavaScript● Google App Engine Channels
Quotas and Limits
● GAE with limits w/o fee
● Billing System to overcome limits
● Quota exceeded: HTTP 403 Errors or Exceptions (bad if you not aware of quota)
● Per minute quota = aprox. 500 Req./min.
Measured Performance
Build Tools
● Ant supported by Google● Enhancement of entity classes● Deployment
● Maven ● Maven plug-in ● Archetypes● Deployment
● Gradle (Community)● https://github.com/bmuschko/gradle-gae-plugin
How getting started
● Google App Engine Account activated?● You need your mobile number for activation
● Eclipse with the Google Plug-in ● Manual installation via Eclipse Market Place
● http://marketplace.eclipse.org/content/google-plugin-eclipse
● SDK & resources at GAE-Homepage● http://code.google.com/appengine/
Create Application in GAE
● Register your application ● https://appengine.google.com/ -> “Create Application”
● Choose Application Identifier & Name● Choose the Authentication Option● Default is “Open to all Google Account users”
● Users can sign using their Google Account● Choose Storage Option
● High Replication (default) vs. Master/Slave● High Replication is “eventually consistent” (latency in
writes)
Create new project
Hello World
Test
● You can test your application in the local sandbox
● http://localhost:8888/[your_project_name]
Thank you for your attention.