200 likes | 400 Views
Google App Engine. Danail Alexiev Technical Trainer SoftAcad.bg. Who’s Talking?. Danail Alexiev Software Consultant at Axway , technical trainer at SoftAcad learning center. Topics Today. What is Google App Engine(GAE) ? Why GAE ? Architecture of GAE Quota & Pricing
E N D
Google App Engine Danail Alexiev Technical Trainer SoftAcad.bg
Who’s Talking? • Danail Alexiev • Software Consultant at Axway, technical trainer at SoftAcad learning center
Topics Today • What is Google App Engine(GAE) ? • Why GAE ? • Architecture of GAE • Quota & Pricing • Developing using GAE • Deploying Applications • Security • GAE datastore • Demo application
What is GAE? • Google’s platform to build Web Applications on the cloud • Dynamic Web server • Transactional DataStore Model
Why GAE? • Automatic scaling and load balancing • Lower total cost of ownership • Web administration console & utilities • Enhances developing & deploying of web applications • Multilanguage support (Java, Python, GO..) • Secure environment (Sandbox)
Quota & Pricing http://code.google.com/intl/bg-BG/appengine/docs/quotas.html#Resources • $0.10 - $0.12 per CPU core-hour • $0.15 - $0.18 per GB-month of storage • $0.11 - $0.13 per GB outgoing bandwidth • $0.09 - $0.11 per GB incoming bandwidth
Developing using GAE • Dynamic web serving • With full support for common web technologies • Persistent storage • With queries, sorting and transactions • Automatic scaling and load balancing • Google Account APIs • For authenticating users and sending email • A local development environment • That simulates Google App Engine on your computer • Task queues • For performing work outside of the scope of a web request • Scheduled tasks for triggering events
The Sandbox • Outgoing access via URL fetch or email services • Incoming access via HTTP (or HTTPS) • Store state via App Engine datastore, memcache • Respond to web request, queued task, scheduled task • Return response data within 30 seconds • Quotas and Limits • Free 500MB of storage and 5 million page views a month • 10 applications per developer account
Intro to DS • Apparently based on BigTable • Absolutely not a relational database • No joins (they do have “reference fields”) • No aggregate queries - not even count()! • Hierarchy affects sharding and transactions • All queries must run against an existing index
Models & Entities • Data is stored as entities • Entities have properties - key/value pairs • An entity has a unique key • Entities live in a hierarchy, and siblings exist in the same entity group • These are actually really important for transactions and performance • A model is kind of like a class; it lets you define a type of entity
Developing using GAE • Hello world • Datastore & entities • Memcache • Mail and Task Queues API • High Replication • Queues & Backends • Warmup requests • Pagination
Deployment • Register using admin console if not done yet and get application ID • Uploading using eclipse plugin – just click upload! • Or using command line : appengine-java-sdk\bin\appcfg.cmd [options] <action> <war-location>
Homework • Following the GAE tutorial at https://developers.google.com/appengine/docs/java/gettingstarted/creating create and deploy a "Hello World" application in the GAE cloud. • Following the official GAE manuals (https://developers.google.com/appengine/docs/java/gettingstarted/) create and deploy a simple guestbook application in Java or Python. In case you find difficulties, check the solution here: http://code.google.com/p/guestbook-java/ As a result of your work send the source code + the URLs of your working application deployed in GAE.