SlideShare a Scribd company logo
1 of 31
Download to read offline
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
References & Credits
➢   Of-course Google
    (http://code.google.com/appengine/)

➢   Google IO 2009 Sessions

➢   Dzone RefCardz

More Related Content

What's hot

Serverless and Design Patterns In GCP
Serverless and Design Patterns In GCPServerless and Design Patterns In GCP
Serverless and Design Patterns In GCPOliver Fierro
 
Magento Cloud - Introduction
Magento Cloud - IntroductionMagento Cloud - Introduction
Magento Cloud - IntroductionOleg Posyniak
 
JAMstack WTJ
JAMstack WTJJAMstack WTJ
JAMstack WTJzonathen
 
Kubernetes for machine learning
Kubernetes for machine learningKubernetes for machine learning
Kubernetes for machine learningAkash Agrawal
 
Embracing the modern web using a Headless CMS with GatsbyJS CMS Philly
Embracing the modern web  using a Headless CMS with GatsbyJS CMS PhillyEmbracing the modern web  using a Headless CMS with GatsbyJS CMS Philly
Embracing the modern web using a Headless CMS with GatsbyJS CMS PhillyJesus Manuel Olivas
 
Aliaba Cloud Singapore Meetup- ECS Deep Dive
Aliaba Cloud Singapore Meetup- ECS Deep DiveAliaba Cloud Singapore Meetup- ECS Deep Dive
Aliaba Cloud Singapore Meetup- ECS Deep DiveChirag Nayyar
 
Cloud Native and CNCF
Cloud Native and CNCFCloud Native and CNCF
Cloud Native and CNCFAkash Agrawal
 
Drupal, GraphQL, Views, View Modes and Gatsby for a US Gov site CMS Philly
Drupal, GraphQL, Views, View Modes  and Gatsby for a US Gov site CMS PhillyDrupal, GraphQL, Views, View Modes  and Gatsby for a US Gov site CMS Philly
Drupal, GraphQL, Views, View Modes and Gatsby for a US Gov site CMS PhillyJesus Manuel Olivas
 
Google app engine introduction
Google app engine introductionGoogle app engine introduction
Google app engine introductionrajsandhu1989
 
How We Benefited from Cloud
How We Benefited from CloudHow We Benefited from Cloud
How We Benefited from CloudAsanka Nissanka
 
Stateful applications on kubernetes
Stateful applications on kubernetesStateful applications on kubernetes
Stateful applications on kubernetesAkash Agrawal
 
An overview of BigQuery
An overview of BigQuery An overview of BigQuery
An overview of BigQuery GirdhareeSaran
 
Using Google's Cloud - for Developers
Using Google's Cloud - for DevelopersUsing Google's Cloud - for Developers
Using Google's Cloud - for DevelopersLynn Langit
 
Serverless Architecture in Azure and AWS
Serverless Architecture in Azure and AWSServerless Architecture in Azure and AWS
Serverless Architecture in Azure and AWSSeven Peaks Speaks
 
Google Cloud Platform at Vente-Exclusive.com
Google Cloud Platform at Vente-Exclusive.comGoogle Cloud Platform at Vente-Exclusive.com
Google Cloud Platform at Vente-Exclusive.comAlex Van Boxel
 

What's hot (20)

Serverless and Design Patterns In GCP
Serverless and Design Patterns In GCPServerless and Design Patterns In GCP
Serverless and Design Patterns In GCP
 
Magento Cloud - Introduction
Magento Cloud - IntroductionMagento Cloud - Introduction
Magento Cloud - Introduction
 
JAMstack WTJ
JAMstack WTJJAMstack WTJ
JAMstack WTJ
 
Kubernetes for machine learning
Kubernetes for machine learningKubernetes for machine learning
Kubernetes for machine learning
 
Embracing the modern web using a Headless CMS with GatsbyJS CMS Philly
Embracing the modern web  using a Headless CMS with GatsbyJS CMS PhillyEmbracing the modern web  using a Headless CMS with GatsbyJS CMS Philly
Embracing the modern web using a Headless CMS with GatsbyJS CMS Philly
 
JAMStack
JAMStackJAMStack
JAMStack
 
Aliaba Cloud Singapore Meetup- ECS Deep Dive
Aliaba Cloud Singapore Meetup- ECS Deep DiveAliaba Cloud Singapore Meetup- ECS Deep Dive
Aliaba Cloud Singapore Meetup- ECS Deep Dive
 
Cloud Native and CNCF
Cloud Native and CNCFCloud Native and CNCF
Cloud Native and CNCF
 
Cloud sql datasheet
Cloud sql datasheetCloud sql datasheet
Cloud sql datasheet
 
Drupal, GraphQL, Views, View Modes and Gatsby for a US Gov site CMS Philly
Drupal, GraphQL, Views, View Modes  and Gatsby for a US Gov site CMS PhillyDrupal, GraphQL, Views, View Modes  and Gatsby for a US Gov site CMS Philly
Drupal, GraphQL, Views, View Modes and Gatsby for a US Gov site CMS Philly
 
JAMStack
JAMStackJAMStack
JAMStack
 
Google app engine introduction
Google app engine introductionGoogle app engine introduction
Google app engine introduction
 
How We Benefited from Cloud
How We Benefited from CloudHow We Benefited from Cloud
How We Benefited from Cloud
 
Stateful applications on kubernetes
Stateful applications on kubernetesStateful applications on kubernetes
Stateful applications on kubernetes
 
Mondra achitect
Mondra achitectMondra achitect
Mondra achitect
 
An overview of BigQuery
An overview of BigQuery An overview of BigQuery
An overview of BigQuery
 
Using Google's Cloud - for Developers
Using Google's Cloud - for DevelopersUsing Google's Cloud - for Developers
Using Google's Cloud - for Developers
 
Serverless Architecture in Azure and AWS
Serverless Architecture in Azure and AWSServerless Architecture in Azure and AWS
Serverless Architecture in Azure and AWS
 
Google app engine
Google app engineGoogle app engine
Google app engine
 
Google Cloud Platform at Vente-Exclusive.com
Google Cloud Platform at Vente-Exclusive.comGoogle Cloud Platform at Vente-Exclusive.com
Google Cloud Platform at Vente-Exclusive.com
 

Similar to Build Java Apps Easy on Google Cloud

Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Enginecatherinewall
 
Top AWS DevOps course in Hyderabad
Top AWS DevOps course in HyderabadTop AWS DevOps course in Hyderabad
Top AWS DevOps course in HyderabadManiSri4
 
Infrastructure Considerations : Design : "webops"
Infrastructure Considerations : Design : "webops"Infrastructure Considerations : Design : "webops"
Infrastructure Considerations : Design : "webops"Piyush Kumar
 
Cloud Platforms for Java
Cloud Platforms for JavaCloud Platforms for Java
Cloud Platforms for Java3Pillar Global
 
Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudEberhard Wolff
 
Oracle WebLogic 12c New Multitenancy features
Oracle WebLogic 12c New Multitenancy featuresOracle WebLogic 12c New Multitenancy features
Oracle WebLogic 12c New Multitenancy featuresMichel Schildmeijer
 
Cloud Best Practices
Cloud Best PracticesCloud Best Practices
Cloud Best PracticesEric Bottard
 
Architecting for scalability in cf
Architecting for scalability in cfArchitecting for scalability in cf
Architecting for scalability in cfTed Steinmann
 
Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.
Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.
Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.Otávio Santana
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011Arun Gupta
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsArun Gupta
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQLKonstantin Gredeskoul
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAkshaya Mahapatra
 
Application Architecture Trends
Application Architecture TrendsApplication Architecture Trends
Application Architecture TrendsSrini Penchikala
 
Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Arun Gupta
 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Arun Gupta
 
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps WayDevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Waysmalltown
 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowCTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowSpiffy
 

Similar to Build Java Apps Easy on Google Cloud (20)

Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
Top AWS DevOps course in Hyderabad
Top AWS DevOps course in HyderabadTop AWS DevOps course in Hyderabad
Top AWS DevOps course in Hyderabad
 
Infrastructure Considerations : Design : "webops"
Infrastructure Considerations : Design : "webops"Infrastructure Considerations : Design : "webops"
Infrastructure Considerations : Design : "webops"
 
Cloud Platforms for Java
Cloud Platforms for JavaCloud Platforms for Java
Cloud Platforms for Java
 
Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and Cloud
 
Oracle WebLogic 12c New Multitenancy features
Oracle WebLogic 12c New Multitenancy featuresOracle WebLogic 12c New Multitenancy features
Oracle WebLogic 12c New Multitenancy features
 
Cloud Best Practices
Cloud Best PracticesCloud Best Practices
Cloud Best Practices
 
Architecting for scalability in cf
Architecting for scalability in cfArchitecting for scalability in cf
Architecting for scalability in cf
 
Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.
Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.
Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 Applications
 
PaaS with Java
PaaS with JavaPaaS with Java
PaaS with Java
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
 
Application Architecture Trends
Application Architecture TrendsApplication Architecture Trends
Application Architecture Trends
 
Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011
 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps WayDevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowCTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should Know
 

More from Xebia IT Architects

Using Graph Databases For Insights Into Connected Data.
Using Graph Databases For Insights Into Connected Data.Using Graph Databases For Insights Into Connected Data.
Using Graph Databases For Insights Into Connected Data.Xebia IT Architects
 
Use Cases of #Grails in #WebApplications
Use Cases of #Grails in #WebApplicationsUse Cases of #Grails in #WebApplications
Use Cases of #Grails in #WebApplicationsXebia IT Architects
 
When elephants dance , enterprise goes mobile !
When elephants dance , enterprise goes mobile !When elephants dance , enterprise goes mobile !
When elephants dance , enterprise goes mobile !Xebia IT Architects
 
Exploiting vulnerabilities in location based commerce
Exploiting vulnerabilities in location based commerceExploiting vulnerabilities in location based commerce
Exploiting vulnerabilities in location based commerceXebia IT Architects
 
Modelling RESTful applications – Why should I not use verbs in REST url
Modelling RESTful applications – Why should I not use verbs in REST urlModelling RESTful applications – Why should I not use verbs in REST url
Modelling RESTful applications – Why should I not use verbs in REST urlXebia IT Architects
 
Scrumban - benefits of both the worlds
Scrumban - benefits of both the worldsScrumban - benefits of both the worlds
Scrumban - benefits of both the worldsXebia IT Architects
 
#Continuous delivery with #Deployit
#Continuous delivery with #Deployit#Continuous delivery with #Deployit
#Continuous delivery with #DeployitXebia IT Architects
 
Continuous integration using thucydides(bdd) with selenium
Continuous integration using thucydides(bdd) with seleniumContinuous integration using thucydides(bdd) with selenium
Continuous integration using thucydides(bdd) with seleniumXebia IT Architects
 
Xebia-Agile consulting and training offerings
Xebia-Agile consulting and training offeringsXebia-Agile consulting and training offerings
Xebia-Agile consulting and training offeringsXebia IT Architects
 
Xebia e-Commerce / mCommerce Solutions
Xebia e-Commerce / mCommerce SolutionsXebia e-Commerce / mCommerce Solutions
Xebia e-Commerce / mCommerce SolutionsXebia IT Architects
 
A warm and prosperous Happy Diwali to all our clients
A warm and prosperous Happy Diwali to all our clientsA warm and prosperous Happy Diwali to all our clients
A warm and prosperous Happy Diwali to all our clientsXebia IT Architects
 
"We Plan to double our headcount" - MD, Xebia India
"We Plan to double our headcount" - MD, Xebia India"We Plan to double our headcount" - MD, Xebia India
"We Plan to double our headcount" - MD, Xebia IndiaXebia IT Architects
 
Agile FAQs by Shrikant Vashishtha
Agile FAQs by Shrikant VashishthaAgile FAQs by Shrikant Vashishtha
Agile FAQs by Shrikant VashishthaXebia IT Architects
 
Agile Team Dynamics by Bhavin Chandulal Javia
Agile Team Dynamics by Bhavin Chandulal JaviaAgile Team Dynamics by Bhavin Chandulal Javia
Agile Team Dynamics by Bhavin Chandulal JaviaXebia IT Architects
 
Practicing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Practicing Agile in Offshore Environment by Himanshu Seth & Imran MirPracticing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Practicing Agile in Offshore Environment by Himanshu Seth & Imran MirXebia IT Architects
 

More from Xebia IT Architects (20)

Using Graph Databases For Insights Into Connected Data.
Using Graph Databases For Insights Into Connected Data.Using Graph Databases For Insights Into Connected Data.
Using Graph Databases For Insights Into Connected Data.
 
Use Cases of #Grails in #WebApplications
Use Cases of #Grails in #WebApplicationsUse Cases of #Grails in #WebApplications
Use Cases of #Grails in #WebApplications
 
When elephants dance , enterprise goes mobile !
When elephants dance , enterprise goes mobile !When elephants dance , enterprise goes mobile !
When elephants dance , enterprise goes mobile !
 
DevOps demystified
DevOps demystifiedDevOps demystified
DevOps demystified
 
Exploiting vulnerabilities in location based commerce
Exploiting vulnerabilities in location based commerceExploiting vulnerabilities in location based commerce
Exploiting vulnerabilities in location based commerce
 
Modelling RESTful applications – Why should I not use verbs in REST url
Modelling RESTful applications – Why should I not use verbs in REST urlModelling RESTful applications – Why should I not use verbs in REST url
Modelling RESTful applications – Why should I not use verbs in REST url
 
Scrumban - benefits of both the worlds
Scrumban - benefits of both the worldsScrumban - benefits of both the worlds
Scrumban - benefits of both the worlds
 
#Continuous delivery with #Deployit
#Continuous delivery with #Deployit#Continuous delivery with #Deployit
#Continuous delivery with #Deployit
 
Continuous integration using thucydides(bdd) with selenium
Continuous integration using thucydides(bdd) with seleniumContinuous integration using thucydides(bdd) with selenium
Continuous integration using thucydides(bdd) with selenium
 
Battlefield agility
Battlefield agilityBattlefield agility
Battlefield agility
 
Fish!ing for agile teams
Fish!ing for agile teamsFish!ing for agile teams
Fish!ing for agile teams
 
Xebia-Agile consulting and training offerings
Xebia-Agile consulting and training offeringsXebia-Agile consulting and training offerings
Xebia-Agile consulting and training offerings
 
Xebia e-Commerce / mCommerce Solutions
Xebia e-Commerce / mCommerce SolutionsXebia e-Commerce / mCommerce Solutions
Xebia e-Commerce / mCommerce Solutions
 
Growth at Xebia
Growth at XebiaGrowth at Xebia
Growth at Xebia
 
A warm and prosperous Happy Diwali to all our clients
A warm and prosperous Happy Diwali to all our clientsA warm and prosperous Happy Diwali to all our clients
A warm and prosperous Happy Diwali to all our clients
 
"We Plan to double our headcount" - MD, Xebia India
"We Plan to double our headcount" - MD, Xebia India"We Plan to double our headcount" - MD, Xebia India
"We Plan to double our headcount" - MD, Xebia India
 
Agile 2.0 - Our Road to Mastery
Agile 2.0 - Our Road to MasteryAgile 2.0 - Our Road to Mastery
Agile 2.0 - Our Road to Mastery
 
Agile FAQs by Shrikant Vashishtha
Agile FAQs by Shrikant VashishthaAgile FAQs by Shrikant Vashishtha
Agile FAQs by Shrikant Vashishtha
 
Agile Team Dynamics by Bhavin Chandulal Javia
Agile Team Dynamics by Bhavin Chandulal JaviaAgile Team Dynamics by Bhavin Chandulal Javia
Agile Team Dynamics by Bhavin Chandulal Javia
 
Practicing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Practicing Agile in Offshore Environment by Himanshu Seth & Imran MirPracticing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Practicing Agile in Offshore Environment by Himanshu Seth & Imran Mir
 

Recently uploaded

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Build Java Apps Easy on Google Cloud

  • 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
  • 30.
  • 31. References & Credits ➢ Of-course Google (http://code.google.com/appengine/) ➢ Google IO 2009 Sessions ➢ Dzone RefCardz