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