SlideShare a Scribd company logo
Java Applications on Google App Engine




Narinder Kumar
www.xebiaindia.com
Easy to build, easy to maintain,
         easy to scale
Current Web Application LifeCycle
         Management
āž¢   Prepare
āž¢   Deploy
āž¢   Scale
āž¢   Maintain / Monitor
āž¢   Upgrade

    Difficult and Expensive
Google App Engine ?
What is Google App Engine
āž¢   Yet another Cloud Computing Platform
āž¢   Hosts your Web Applications on Google
    Infrastructure
āž¢   Formally launched in April'08 with Python
āž¢   Java Support enabled in April'09
Java on Google App Engine
āž¢   Platform as a Service (PaaS)
    āž¢   Hardware, Connectivity
    āž¢   Operating System
    āž¢   JVM
    āž¢   Servlet Container
    āž¢   SDK
    āž¢   API's for accessing Google Infrastructure
        Services
Key Features
āž¢   No need to install or maintain your own stack
āž¢   Scaling on Demand
āž¢   Google's proven infrastructure for you
āž¢   Pay as you Go, Free to get started
Architecture
Typical Application Building Blocks
      Industry Standard APIs : JPA/JDO, JCache,JavaMail



                Google Specific API Interfaces




                    Google Infrastructure
Platform
āž¢   JVM 5 or later
āž¢   Servlet 2.5 Container, Jetty & Jasper (can
    change)
    āž¢   HTTP Session
    āž¢   JSP
āž¢   SandBox Environment
āž¢   Google Services API
Getting Started
āž¢   Google Account & Mobile Phone

āž¢   Download and install SDK

āž¢   Plugin for your IDE / Command Line
DEMO OF HELLO-WORLD
Summary
āž¢   SDK includes
    āž¢   Dev AppServer
    āž¢   Disk based version of DataStore
    āž¢   Simulation of Google User Service
āž¢   Deployment
    āž¢   https://appengine.google.com
    āž¢   Application hosted at <app-id>.appspot.com or
        Custom Domain
Configuration
āž¢   appengine-web.xml
    āž¢   Application Name and Version
    āž¢   Logger
    āž¢   Static Files
    āž¢   Resource Files
    āž¢   System Properties & Environment Variables
    āž¢   SSL
    āž¢   Session
    āž¢   Inbound Services
Data Manipulation
āž¢   Underlying Storage is BigTable
āž¢   JDO or JPA or DataStore API
āž¢   JDO & JPA implemention by DataNucleus
    Access Platform
āž¢   jdoconfig.xml or persistence.xml
āž¢   datastore-indexes.xml
           Let's try with a simple scenario
Data Manipulation Constraints
āž¢   Max 1000 rows per request
āž¢   Not Allowed while Using JPA
    āž¢   Owned Many-to-many relations
    āž¢   Join, group by, having...
āž¢   Only JOINED and MAPPED_SUPERCLASS
    during Inheritance
āž¢   Restrictions on Queries
RDBMS vs DataStore
 RDBMS     DATASTORE           JPA            JDO
DataBase   DataStore   @Entity         @PersistanceCapa
Table      Kind                        ble
Row        Entity      @Id             @PrimaryKey
Row ID     Key         @GeneratedVal   @Persistent
Column     Property    ue
                       find(...)       getObjectById(...)
Other Google Services
āž¢   URL Fetch
āž¢   Memcache
āž¢   User Service
āž¢   Mail
āž¢   Image
āž¢   XMPP
Additional Services
āž¢   Cron

āž¢   AOP Like Interface

āž¢   Task Queues
Managing & Monitoring
āž¢   Dashboard

āž¢   Reporting

āž¢   Manage different versions

āž¢   Logs
Developer's Toolkit
āž¢   IDE Plugins
āž¢   Ant supported, Maven on the way
āž¢   Testing Facilities
āž¢   XML Validation
Quotas & Billing
āž¢   Billable Quotas & Fixed Quotas
āž¢   Per-minute Quotas
āž¢   Resources
    āž¢   Requests
    āž¢   CPU
    āž¢   Bandwidth (In/Out)
    āž¢   Google Services
Current Pricing
āž¢   Very Generous
āž¢   CPU : 6.5 hours / day, $0.10 / hour later
āž¢   Bandwidth In/Out : 1 GB / day, $0.10/$0.12
    GB later
āž¢   Stored Data : 1 GB
āž¢   Emails : 2000/day
How to Manage / Monitor Costs
āž¢   QuotaService
āž¢   Profiling Tool
āž¢   Application behaviour when Resources are
    finished
āž¢   AdminConsole
Constraints
āž¢   Restricted JVM
    āž¢   Threads
    āž¢   File System Writes
    āž¢   ClassLoader, JNI,...
āž¢   Read Only File System
āž¢   DataStore : Only choice for persistence
āž¢   Requests limited to max 30 seconds
Limitations
āž¢   No Server Push
āž¢   Request & Response Size Max 10 MB
āž¢   Max Files < 3000
āž¢   Max Size of Application Files < 150 MB
Supported Languages &
               Frameworks
āž¢   Groovy & Grails
āž¢   JRuby on Rails (with some build and config modifications)
āž¢   Scala & Lift (no Scala Actors)
āž¢   Wicket
āž¢   Blaze-DS
āž¢   Struts,...
Powered By Google App Engine
Competitors
āž¢   SaaS / PaaS / IaaS

āž¢   Azure Sevices

āž¢   Force.com

āž¢   Amazon Web Service
Developing, deploying and monitoring Java applications using Google App Engine
References & Credits
āž¢   Of-course Google
    (http://code.google.com/appengine/)

āž¢   Google IO 2009 Sessions

āž¢   Dzone RefCardz

More Related Content

What's hot (18)

PDF
Hosting huge amount of binaries in JCR
Woonsan Ko
Ā 
PPT
Web performance Talk
Prasoon Agrawal
Ā 
PPTX
Effectively Scale and Operate AEM with MongoDB by Norberto Leite
AEM HUB
Ā 
PPTX
AEM WITH MONGODB
Nate Nelson
Ā 
PDF
Building low latency java applications with ehcache
Chris Westin
Ā 
PDF
Architecting for scalability in cf
Ted Steinmann
Ā 
PPTX
How to Use OWASP Security Logging
Milton Smith
Ā 
PPT
Implementing High Performance Drupal Sites
Shri Kumar
Ā 
PDF
jboss.org-jboss.com
Dimitris Andreadis
Ā 
PDF
WordCamp RVA
codearachnid_test
Ā 
PDF
Best practices para publicar un WebSite con SharePoint Server 2010
Juan AndrƩs Valenzuela
Ā 
PPTX
Fluent 2012 v2
Shalendra Chhabra
Ā 
PDF
Hidden gems in Apache Jackrabbit and BloomReach Forge
Woonsan Ko
Ā 
PDF
XPages Performance Master Class - Survive in the fast lane on the Autobahn (E...
BCC - Solutions for IBM Collaboration Software
Ā 
KEY
Using NoSQL MongoDB with ColdFusion
indiver
Ā 
PDF
JavaCro'14 - Using WildFly core to build high performance web server – Tomaž ...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
Ā 
PDF
Optimizing Your Frontend Performance
Thomas Weinert
Ā 
PPTX
Dynamicly Scale Weblogic in the private Cloud clusters
Getting value from IoT, Integration and Data Analytics
Ā 
Hosting huge amount of binaries in JCR
Woonsan Ko
Ā 
Web performance Talk
Prasoon Agrawal
Ā 
Effectively Scale and Operate AEM with MongoDB by Norberto Leite
AEM HUB
Ā 
AEM WITH MONGODB
Nate Nelson
Ā 
Building low latency java applications with ehcache
Chris Westin
Ā 
Architecting for scalability in cf
Ted Steinmann
Ā 
How to Use OWASP Security Logging
Milton Smith
Ā 
Implementing High Performance Drupal Sites
Shri Kumar
Ā 
jboss.org-jboss.com
Dimitris Andreadis
Ā 
WordCamp RVA
codearachnid_test
Ā 
Best practices para publicar un WebSite con SharePoint Server 2010
Juan AndrƩs Valenzuela
Ā 
Fluent 2012 v2
Shalendra Chhabra
Ā 
Hidden gems in Apache Jackrabbit and BloomReach Forge
Woonsan Ko
Ā 
XPages Performance Master Class - Survive in the fast lane on the Autobahn (E...
BCC - Solutions for IBM Collaboration Software
Ā 
Using NoSQL MongoDB with ColdFusion
indiver
Ā 
JavaCro'14 - Using WildFly core to build high performance web server – Tomaž ...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
Ā 
Optimizing Your Frontend Performance
Thomas Weinert
Ā 
Dynamicly Scale Weblogic in the private Cloud clusters
Getting value from IoT, Integration and Data Analytics
Ā 

Viewers also liked (7)

PDF
Membangun aplikasi java restful web service [bagian 2] menggunakan hibernate
Eko Kurniawan Khannedy
Ā 
PDF
Membangun aplikasi java restful web service menggunakan spring web mvc
Eko Kurniawan Khannedy
Ā 
PPT
Java Tech Day 2009 - Developing Cloud Computing Applications With Java
Shlomo Swidler
Ā 
PPTX
Deploying applications to Cloud with Google App Engine
Alexander Zamkovyi
Ā 
PDF
Java application monitoring with Dropwizard Metrics and graphite
Roberto Franchini
Ā 
PPTX
How to Analyze Reports in Jmeter
Viviana Lesmes
Ā 
PPT
Developing Java Web Applications In Google App Engine
Tahir Akram
Ā 
Membangun aplikasi java restful web service [bagian 2] menggunakan hibernate
Eko Kurniawan Khannedy
Ā 
Membangun aplikasi java restful web service menggunakan spring web mvc
Eko Kurniawan Khannedy
Ā 
Java Tech Day 2009 - Developing Cloud Computing Applications With Java
Shlomo Swidler
Ā 
Deploying applications to Cloud with Google App Engine
Alexander Zamkovyi
Ā 
Java application monitoring with Dropwizard Metrics and graphite
Roberto Franchini
Ā 
How to Analyze Reports in Jmeter
Viviana Lesmes
Ā 
Developing Java Web Applications In Google App Engine
Tahir Akram
Ā 
Ad

Similar to Developing, deploying and monitoring Java applications using Google App Engine (20)

PDF
Cannibalising The Google App Engine
catherinewall
Ā 
PDF
Top AWS DevOps course in Hyderabad
ManiSri4
Ā 
PPTX
Infrastructure Considerations : Design : "webops"
Piyush Kumar
Ā 
PPTX
Cloud Platforms for Java
3Pillar Global
Ā 
PDF
Cloudy in Indonesia: Java and Cloud
Eberhard Wolff
Ā 
PDF
Oracle WebLogic 12c New Multitenancy features
Michel Schildmeijer
Ā 
PDF
Cloud Best Practices
Eric Bottard
Ā 
PDF
Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.
OtƔvio Santana
Ā 
PDF
GlassFish Server 3.1: Deploying your Java EE 6 Applications
Arun Gupta
Ā 
PDF
GlassFish 3.1 at JCertif 2011
Arun Gupta
Ā 
PDF
PaaS with Java
Eberhard Wolff
Ā 
PDF
12-Step Program for Scaling Web Applications on PostgreSQL
Konstantin Gredeskoul
Ā 
PPTX
Automating Software Development Life Cycle - A DevOps Approach
Akshaya Mahapatra
Ā 
PDF
Application Architecture Trends
Srini Penchikala
Ā 
PDF
Java EE 6 workshop at Dallas Tech Fest 2011
Arun Gupta
Ā 
PDF
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Arun Gupta
Ā 
ODP
Google App Engine
Tikal Knowledge
Ā 
PDF
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
smalltown
Ā 
PDF
CTU June 2011 - Things that Every ASP.NET Developer Should Know
Spiffy
Ā 
PDF
How to deploy a Java application on Google App engine Flexible environment
Michelantonio Trizio
Ā 
Cannibalising The Google App Engine
catherinewall
Ā 
Top AWS DevOps course in Hyderabad
ManiSri4
Ā 
Infrastructure Considerations : Design : "webops"
Piyush Kumar
Ā 
Cloud Platforms for Java
3Pillar Global
Ā 
Cloudy in Indonesia: Java and Cloud
Eberhard Wolff
Ā 
Oracle WebLogic 12c New Multitenancy features
Michel Schildmeijer
Ā 
Cloud Best Practices
Eric Bottard
Ā 
Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.
OtƔvio Santana
Ā 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
Arun Gupta
Ā 
GlassFish 3.1 at JCertif 2011
Arun Gupta
Ā 
PaaS with Java
Eberhard Wolff
Ā 
12-Step Program for Scaling Web Applications on PostgreSQL
Konstantin Gredeskoul
Ā 
Automating Software Development Life Cycle - A DevOps Approach
Akshaya Mahapatra
Ā 
Application Architecture Trends
Srini Penchikala
Ā 
Java EE 6 workshop at Dallas Tech Fest 2011
Arun Gupta
Ā 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Arun Gupta
Ā 
Google App Engine
Tikal Knowledge
Ā 
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
smalltown
Ā 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
Spiffy
Ā 
How to deploy a Java application on Google App engine Flexible environment
Michelantonio Trizio
Ā 
Ad

More from IndicThreads (20)

PPTX
Http2 is here! And why the web needs it
IndicThreads
Ā 
ODP
Understanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
IndicThreads
Ā 
PPT
Go Programming Language - Learning The Go Lang way
IndicThreads
Ā 
PPT
Building Resilient Microservices
IndicThreads
Ā 
PPT
App using golang indicthreads
IndicThreads
Ā 
PDF
Building on quicksand microservices indicthreads
IndicThreads
Ā 
PDF
How to Think in RxJava Before Reacting
IndicThreads
Ā 
PPT
Iot secure connected devices indicthreads
IndicThreads
Ā 
PDF
Real world IoT for enterprises
IndicThreads
Ā 
PPT
IoT testing and quality assurance indicthreads
IndicThreads
Ā 
PPT
Functional Programming Past Present Future
IndicThreads
Ā 
PDF
Harnessing the Power of Java 8 Streams
IndicThreads
Ā 
PDF
Building & scaling a live streaming mobile platform - Gr8 road to fame
IndicThreads
Ā 
PPTX
Internet of things architecture perspective - IndicThreads Conference
IndicThreads
Ā 
PDF
Cars and Computers: Building a Java Carputer
IndicThreads
Ā 
PPTX
Scrap Your MapReduce - Apache Spark
IndicThreads
Ā 
PPT
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
IndicThreads
Ā 
PPTX
Speed up your build pipeline for faster feedback
IndicThreads
Ā 
PPT
Unraveling OpenStack Clouds
IndicThreads
Ā 
PPTX
Digital Transformation of the Enterprise. What IT leaders need to know!
IndicThreads
Ā 
Http2 is here! And why the web needs it
IndicThreads
Ā 
Understanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
IndicThreads
Ā 
Go Programming Language - Learning The Go Lang way
IndicThreads
Ā 
Building Resilient Microservices
IndicThreads
Ā 
App using golang indicthreads
IndicThreads
Ā 
Building on quicksand microservices indicthreads
IndicThreads
Ā 
How to Think in RxJava Before Reacting
IndicThreads
Ā 
Iot secure connected devices indicthreads
IndicThreads
Ā 
Real world IoT for enterprises
IndicThreads
Ā 
IoT testing and quality assurance indicthreads
IndicThreads
Ā 
Functional Programming Past Present Future
IndicThreads
Ā 
Harnessing the Power of Java 8 Streams
IndicThreads
Ā 
Building & scaling a live streaming mobile platform - Gr8 road to fame
IndicThreads
Ā 
Internet of things architecture perspective - IndicThreads Conference
IndicThreads
Ā 
Cars and Computers: Building a Java Carputer
IndicThreads
Ā 
Scrap Your MapReduce - Apache Spark
IndicThreads
Ā 
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
IndicThreads
Ā 
Speed up your build pipeline for faster feedback
IndicThreads
Ā 
Unraveling OpenStack Clouds
IndicThreads
Ā 
Digital Transformation of the Enterprise. What IT leaders need to know!
IndicThreads
Ā 

Recently uploaded (20)

PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
Ā 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
Ā 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
Ā 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
Ā 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
Ā 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
Ā 
PDF
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
Ā 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
Ā 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
Ā 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
Ā 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
Ā 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
Ā 
PDF
ā€œSquinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
Ā 
PDF
ā€œComputer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,ā€ a ...
Edge AI and Vision Alliance
Ā 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
Ā 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
Ā 
PDF
Kit-Works Team Study_20250627_ķ•œė‹¬ė§Œģ—ė§Œė“ ģ‚¬ė‚“ģ„œė¹„ģŠ¤ķ‚¤ė§(ģ–‘ė‹¤ģœ—).pdf
Wonjun Hwang
Ā 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
Ā 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
Ā 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
Ā 
The Project Compass - GDG on Campus MSIT
dscmsitkol
Ā 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
Ā 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
Ā 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
Ā 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
Ā 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
Ā 
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
Ā 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
Ā 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
Ā 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
Ā 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
Ā 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
Ā 
ā€œSquinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
Ā 
ā€œComputer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,ā€ a ...
Edge AI and Vision Alliance
Ā 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
Ā 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
Ā 
Kit-Works Team Study_20250627_ķ•œė‹¬ė§Œģ—ė§Œė“ ģ‚¬ė‚“ģ„œė¹„ģŠ¤ķ‚¤ė§(ģ–‘ė‹¤ģœ—).pdf
Wonjun Hwang
Ā 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
Ā 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
Ā 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
Ā 

Developing, deploying and monitoring Java applications using Google App Engine

  • 1. Java Applications on Google App Engine Narinder Kumar www.xebiaindia.com
  • 2. Easy to build, easy to maintain, easy to scale
  • 3. Current Web Application LifeCycle Management āž¢ Prepare āž¢ Deploy āž¢ Scale āž¢ Maintain / Monitor āž¢ Upgrade Difficult and Expensive
  • 5. What is Google App Engine āž¢ Yet another Cloud Computing Platform āž¢ Hosts your Web Applications on Google Infrastructure āž¢ Formally launched in April'08 with Python āž¢ Java Support enabled in April'09
  • 6. Java on Google App Engine āž¢ Platform as a Service (PaaS) āž¢ Hardware, Connectivity āž¢ Operating System āž¢ JVM āž¢ Servlet Container āž¢ SDK āž¢ API's for accessing Google Infrastructure Services
  • 7. Key Features āž¢ No need to install or maintain your own stack āž¢ Scaling on Demand āž¢ Google's proven infrastructure for you āž¢ Pay as you Go, Free to get started
  • 9. Typical Application Building Blocks Industry Standard APIs : JPA/JDO, JCache,JavaMail Google Specific API Interfaces Google Infrastructure
  • 10. Platform āž¢ JVM 5 or later āž¢ Servlet 2.5 Container, Jetty & Jasper (can change) āž¢ HTTP Session āž¢ JSP āž¢ SandBox Environment āž¢ Google Services API
  • 11. Getting Started āž¢ Google Account & Mobile Phone āž¢ Download and install SDK āž¢ Plugin for your IDE / Command Line
  • 13. Summary āž¢ SDK includes āž¢ Dev AppServer āž¢ Disk based version of DataStore āž¢ Simulation of Google User Service āž¢ Deployment āž¢ https://appengine.google.com āž¢ Application hosted at <app-id>.appspot.com or Custom Domain
  • 14. Configuration āž¢ appengine-web.xml āž¢ Application Name and Version āž¢ Logger āž¢ Static Files āž¢ Resource Files āž¢ System Properties & Environment Variables āž¢ SSL āž¢ Session āž¢ Inbound Services
  • 15. Data Manipulation āž¢ Underlying Storage is BigTable āž¢ JDO or JPA or DataStore API āž¢ JDO & JPA implemention by DataNucleus Access Platform āž¢ jdoconfig.xml or persistence.xml āž¢ datastore-indexes.xml Let's try with a simple scenario
  • 16. Data Manipulation Constraints āž¢ Max 1000 rows per request āž¢ Not Allowed while Using JPA āž¢ Owned Many-to-many relations āž¢ Join, group by, having... āž¢ Only JOINED and MAPPED_SUPERCLASS during Inheritance āž¢ Restrictions on Queries
  • 17. RDBMS vs DataStore RDBMS DATASTORE JPA JDO DataBase DataStore @Entity @PersistanceCapa Table Kind ble Row Entity @Id @PrimaryKey Row ID Key @GeneratedVal @Persistent Column Property ue find(...) getObjectById(...)
  • 18. Other Google Services āž¢ URL Fetch āž¢ Memcache āž¢ User Service āž¢ Mail āž¢ Image āž¢ XMPP
  • 19. Additional Services āž¢ Cron āž¢ AOP Like Interface āž¢ Task Queues
  • 20. Managing & Monitoring āž¢ Dashboard āž¢ Reporting āž¢ Manage different versions āž¢ Logs
  • 21. Developer's Toolkit āž¢ IDE Plugins āž¢ Ant supported, Maven on the way āž¢ Testing Facilities āž¢ XML Validation
  • 22. Quotas & Billing āž¢ Billable Quotas & Fixed Quotas āž¢ Per-minute Quotas āž¢ Resources āž¢ Requests āž¢ CPU āž¢ Bandwidth (In/Out) āž¢ Google Services
  • 23. Current Pricing āž¢ Very Generous āž¢ CPU : 6.5 hours / day, $0.10 / hour later āž¢ Bandwidth In/Out : 1 GB / day, $0.10/$0.12 GB later āž¢ Stored Data : 1 GB āž¢ Emails : 2000/day
  • 24. How to Manage / Monitor Costs āž¢ QuotaService āž¢ Profiling Tool āž¢ Application behaviour when Resources are finished āž¢ AdminConsole
  • 25. Constraints āž¢ Restricted JVM āž¢ Threads āž¢ File System Writes āž¢ ClassLoader, JNI,... āž¢ Read Only File System āž¢ DataStore : Only choice for persistence āž¢ Requests limited to max 30 seconds
  • 26. Limitations āž¢ No Server Push āž¢ Request & Response Size Max 10 MB āž¢ Max Files < 3000 āž¢ Max Size of Application Files < 150 MB
  • 27. Supported Languages & Frameworks āž¢ Groovy & Grails āž¢ JRuby on Rails (with some build and config modifications) āž¢ Scala & Lift (no Scala Actors) āž¢ Wicket āž¢ Blaze-DS āž¢ Struts,...
  • 28. Powered By Google App Engine
  • 29. Competitors āž¢ SaaS / PaaS / IaaS āž¢ Azure Sevices āž¢ Force.com āž¢ Amazon Web Service
  • 31. References & Credits āž¢ Of-course Google (http://code.google.com/appengine/) āž¢ Google IO 2009 Sessions āž¢ Dzone RefCardz