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
Google Developer Days Brazil 2009 - Java Appengine
Patrick Chanezon
 
PPT
Google App Engine for Java
Lars Vogel
 
PPTX
Google appenginejava.ppt
Young Alista
 
PDF
Google App Engine for Java v0.0.2
Matthew McCullough
 
PDF
Google App Engine for Java
Lars Vogel
 
PDF
Introduction to Google's Cloud Technologies
Chris Schalk
 
PDF
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
IMC Institute
 
PDF
Google App Engine
Software Park Thailand
 
PPTX
Google Cloud Platform
Francesco Marchitelli
 
PDF
Javaedge 2010-cschalk
Chris Schalk
 
PPT
Google App Engine - Java Style
Peter Lind
 
PDF
Google App Engine - September 17 2009
sullis
 
PDF
Google App Engine
cloudcampnigeria
 
PPT
The 90-Day Startup with Google AppEngine for Java
David Chandler
 
PDF
Cannibalising The Google App Engine
catherinewall
 
KEY
Appengine Nljug
Paul Bakker
 
PDF
Google app-engine-cloudcamplagos2011
Opevel
 
PPTX
Google app engine
Renjith318
 
PDF
Introduction to Google Cloud Platform Technologies
Chris Schalk
 
PDF
Google App Engine With Java And Groovy
Ken Kousen
 
Google Developer Days Brazil 2009 - Java Appengine
Patrick Chanezon
 
Google App Engine for Java
Lars Vogel
 
Google appenginejava.ppt
Young Alista
 
Google App Engine for Java v0.0.2
Matthew McCullough
 
Google App Engine for Java
Lars Vogel
 
Introduction to Google's Cloud Technologies
Chris Schalk
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
IMC Institute
 
Google App Engine
Software Park Thailand
 
Google Cloud Platform
Francesco Marchitelli
 
Javaedge 2010-cschalk
Chris Schalk
 
Google App Engine - Java Style
Peter Lind
 
Google App Engine - September 17 2009
sullis
 
Google App Engine
cloudcampnigeria
 
The 90-Day Startup with Google AppEngine for Java
David Chandler
 
Cannibalising The Google App Engine
catherinewall
 
Appengine Nljug
Paul Bakker
 
Google app-engine-cloudcamplagos2011
Opevel
 
Google app engine
Renjith318
 
Introduction to Google Cloud Platform Technologies
Chris Schalk
 
Google App Engine With Java And Groovy
Ken Kousen
 
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
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 

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