Google App Engine - Overview 1.1

Transcription

Google App Engine - Overview 1.1
Copyright 2008 ‐‐ All rights reserved. Persistent Confiden
ntial
Persistent Systems Ltd.
P i
S
Ld
Google App Engine Overview
October 6, 2009
1
Cloud Computing – Brief History
• Amazon was early pioneer of cloud storage through its Simple Storage Service (S3)
• Cloud storage model evolved from binary to messages (Amazon Simple Queue Service) then to structured data (Amazon SimpleDB, Google BigTable)
• Google app engine (GAE) provides scalable request‐driven application engine
• Amazon Elastic Compute Cloud (EC2) enables autonomous processing power
• GAE can only run web‐apps or front‐end apps, unlike EC2 which is richer
2
Other Google‐for‐Enterprise technologies
• Google for Healthcare
f
y
p
y
y p
p
p
y
Key USP are privacy & Security, e‐prescription as a Platform and portability
f
Google Health API based on CCR standards("Continuity of Care Record"), a standard format for transferring snapshots of a patient's medical history
• Google Apps for Enterprise
Google Apps for Enterprise
f
Hosted Enterprise Mail ƒ Provide a simple quick to start email solution for Small‐medium business
ƒ No infrastructure to maintain, easy to administer
N i f
i i
d i i
ƒ At a very nominal cost per user for the service.
f
Google Docs, etc
ƒ Provide a hosted collaboration platform with online docs, spreadsheets, presentations, etc.
ƒ Providing Faster access on the road
f
Secure Data Connectivity (SDC) :
ƒ Technology that enable secure access to Intranet data via the Apps Cloud
ƒ All Apps (Google Docs, Sheets, Mail, Gadgets, etc) can use SDC to provide Intranet apps for Enterprise Users on the Road
Google App Engine
• Google App Engine is a development platform for building and hosting web applications
• Leverages Google infrastructure
• Theme is ‘Platform as a Service’
• Is based on cloud computing technology
• Provides Distributed storage (Datastore)
• Automatic scaling and load balancing
Automatic scaling and load balancing
• Free version is available for small scale applications
f
allows up to 1,300,000 requests/day
• Billing can be enabled for larger applications
f
Facility to limit the usage of application ( per minute quota, per day quota)
• Easy development & deployment
d l
&d l
GAE Architecture & Design
• Goal ‐ Make the system easy to use, easy to scale, and free to get started
get started
GAE – Component Diagram
6
GAE – Benefits for an Enterprise
• Dynamic web serving
• ‘Pay‐as‐you‐use’ model ‐ Billing based on per day additional usage of different parameters
• App engine manages to scale application depending on traffic and data storage needs
• Easy to build and deploy
f
Development environment provides full fledged GAE simulators on local computer
p
p
g
p
f
Provides different tools for entire life cycle of a web application development & deployment
• Support for Java (V1.5+) & Python(2.5) Runtime • Supports JDO & JPA
• Datastore – A distributed database ‐ Persistent storage with queries, sorting and transactions support
transactions support
GAE ‐ Benefits contd..
• Supports Google Account integration (SSO) for User Authentication & emails
• Access to Google's infrastructure like Google Accounts, Google File System and Bigtable (datastore)
File System and Bigtable (datastore)
• Task Queue ‐ With this API, applications can perform work outside of a user request but initiated by a user request (For q
y
q
(
now supported by Python only)
GAE – Platform Services
f
f
f
f
f
f
Memcache : distributed in‐memory data cache for High performance scalable web applications
f
l bl
b
li ti
Ehcache – in‐process data cache, works for non serializable Objects too. (new release)
S h d l d T k Th
Scheduled Tasks: The cron service allows application to schedule i
ll
li i
h d l
tasks to run at regular intervals. For e.g. Daily Report Emails, updating cache objects, etc
URL f t h A li ti
URL fetch: Application can access resources on the internet, such th i t
t
h
as web services or other data.
Mail : Applications can send email messages using App Engine’s email service.
il
i
Image Manipulation : lets application to manipulate images. With this images can be resized, cropped, rotated and/or flipped.
GAE – Datastore Platform
• A schema less object datastore, with a query engine and atomic transactions • App Engine's infrastructure takes care of all of the distribution, replication and load balancing of data behind a simple API • App engine supports JDO & JPA for data store
• GQL ‐ Provides access to the App Engine datastore query engine's feature using SQL‐like language. • Entities
f
Entities are data objects in App Engine
Entities are data objects in App Engine
f
Contains properties • Entity groups –
f
are defined by a hierarchy of relationships between entities f
Parent child relationship
• Transactions Transactions
f
Data store transactions ensures This ensures consistency of data within an entity f
The datastore uses optimistic concurrency to manage transactions to entity group
GAE ‐ Use Cases
• Some of the applications in GAE environment are:‐
f
f
f
BuddyPoke
Check Google Pagerank
Browse the iPhone app store pp
• Persistent along with Minglebox had undertaken the migration of their exiting iPoke application to GAE.
f
f
f
f
Complete migration of ‘View’ and business logic
Complete migration of Data schema (not actual data)
Live integration with sandbox orkut demonstrated
Data migration initiated by MingeBox
Use case ‐ iPoke on GAE
Shows category wise Shows user’s Shows user’s received Excluded from POC scope
iP k
iPoke and user’s friend d
’sent/received ipoke f it/ d i d iiPoke messages
iP kk
list
history
My Gifts & myPoke ‐
Excluded from POC scope
iPoke notifications on orkut
12
iPoke ‐ GAE Dashboard
• Dashboard contains up‐to‐the‐minute overview of system status with real‐
time, unedited data • Daily overall serving status for each of APIs, including any outages or downtime • Detailed historical latency and error‐rate graphs for the App Engine Datastore, Images, Mail, Memcache, Serving, URL Fetch, and Users components
Learning’s of iPoke_on_GAE
f
Obtained good knowledge of ‘Platform as a Service’ concept. Every team member can play important role to start the projects E
t
b
l i
t t l t t t th
j t
in this area.
f
EEngineering Team is well versed with ‘Google App Engine’ i
i T
i
ll
d i h ‘G
l A E i ’
environment & can help reduce ramp up time
f
Rapid Application development platform, can be offered as a Time‐To‐Market accelerator service
f
Applications built on GAE help Small – medium size businesses deploy faster & cheaper.
iPoke on GAE ‐ Challenges
• Java IO api’s and Socket API’s are not supported on GAE
• Supports subset of Java SDK API
b
f
• Does not support file saving on local file system (Application needs to be redeployed for config changes)
to be redeployed for config changes)
• Threading is not supported (non‐thread based Lucene Indexing is supported)
• Dependent on GAE dashboard for application server utilization details
• Integration of third party services –
f
f
ImageMagic integration is not supported
ImageService is provided by Google Magic (only jpg & png)
g
p
y
g
g ( y jpg p g)
iPoke on GAE ‐ Datastore Challenges
• Datastore is not a ‘Relational’ Database
•
Does not support
f
f
Joins ‘Union’
Union / / ‘OR’
OR operations operations
• Query results are limited to 1000 records so optimized queries should be written
• App Engine datastore does not require that all entities of a given kind have the same properties.
• If required, any module change involves revisiting & updating all old entities.
• Un‐owned
Un‐owned relationship is not supported directly however can be relationship is not supported directly however can be
implemented using explicit Key values in JDO
Competitors
• Amazon f
Amazon provides the machines on network. User need to manage it’s configuration and go ahead with machine use like any physical machine.
• Force.com f
Cloud computing framework by salesforce.com provides platforms for building and d l
deploying enterprise application. Force.com allows
l
ll
b ld
building of core business f
b
applications on demand such as enterprise resource planning (ERP), human resource management (HRM) and supply chain management (SCM). • Microsoft's Azure Services Platform f
an internet‐scale cloud services platform hosted in Microsoft data centers, which provides an operating system and a set of developer services that can be used individually or together. Comparison of Cloud Platforms
18
Summary
• Given understanding of Google App Engine, advantages of GAE based applications are:
applications are:
f
High availability of scalable infrastructure f
GAE is best suitable environment for large load applications having limited complexity transactions
l it t
ti
f
Minimum deployment & maintenance efforts
f
Supports large load
f
Good data layer design results into faster database processing
f
With basic cache implementation acceptable performance is achieved
• GAE’s sweet spot includes
p
f
DB backed web apps
f
Office productivity programs
f
S i l t
Social networking tools
ki t l
Stop‐press: GAE now support standard IM protocol over XMPP open standard
19
20