2. New Course Preview – Google App Engine for Developers
• 4 day class ‘Intro to GAE’
• Course in Java
• www.Develop.com
• On Site or at DevelopMentor
• New Developer User Group for GAE
• first meeting at DevelopMentor in LA
• Monthly – first meeting March 20
@LynnLangit
www.lynnlangit.com
www.TeachingKidsProgramming.org
3. Full Course Objectives
• Understanding GAE
– Setup for development with GAE
– Creating first simple site with IDE templates
– Simple deployment
• Understanding Google’s Cloud Storage Options
– Non-relational, relational and more…
• Using Google Cloud Storage
• Using Google Relational Cloud Storage
• Using Authentication
• Understanding other APIs
• Deploying
• Next Steps
4. What is Google App Engine? Why use it?
• What
– Google’s cloud hosting and storage environment
– Java or Python are supported
– NoSQL (High-Replication Datastore) and/or mySQL supported
• Why
– Easy and free to try it out
– Interesting feature set
• Automatic compute scaling
• Flexibility on data storage / queries
• Authentication choices
• Access to other Google APIs
15. Two types of Datastores I – About High-Replication
• Data is replicated across multiple data centers
– using a system based on the Paxos algorithm
– in synch, multi-master
• Provides the highest level of availability for reads
and writes (99.999% SLA)
– at the cost of higher latency on writes due to the propagation of
data (2x slower on write than other datastore type [master/slave])
– Results in most queries being eventually consistent*
• Reads from ‘fastest source’ (usually local)
• Reads are transactional
16. Two types of Datastores II – About Master/Slave
• Data written to a single master data center is replicated
async to all other (slave) data centers
• Offers strong consistency for all reads and queries
• Results in periods of temporary unavailability during data
center issues or planned downtime (99.9% SLA)
• Reads from master only
18. Configure your GAE Application for Data Storage
• Configure the data storage in Eclipse
– HR Datastore (default) -- noSQL
• JDO/JPA (optional)
• JDBC/nHibernate not supported
– Cloud mySQL (optional) -- RDBMS
• Use local mySQL instance for testing
– Can also use Developer Storage -- buckets
25. New Course Preview – Google App Engine for Developers
• 4 day class ‘Intro to GAE’
• Course in Java
• www.Develop.com
• On Site or at DevelopMentor
• New Developer User Group for GAE
• first meeting at DevelopMentor in LA
• Monthly – first meeting March 20
@LynnLangit
www.lynnlangit.com
www.TeachingKidsProgramming.org
Notas del editor
https://code.google.com/appengine/
Course outline for GAE - http://www.develop.com/training-course/google-app-engine-training
Good list of which APIs are implemented on which languages, Python or Java or bothhttp://code.google.com/appengine/tools_tips.htmlAnd more at---https://code.google.com/apis
https://code.google.com/appengine/SDK for Eclipse - https://code.google.com/appengine/downloads.html#Google_App_Engine_SDK_for_JavaPlug-in for Eclipse - https://code.google.com/eclipse/docs/getting_started.htmlTutorial - http://googcloudlabs.appspot.com/whatgae.html
https://code.google.com/apisGWT - http://code.google.com/webtoolkit/The GWT SDK provides a set of core Java APIs and Widgets. These allow you to write AJAX applications in Java and then compile the source to highly optimized JavaScript that runs across all browsers, including mobile browsers for Android and the iPhone.
From the GAE documentation - https://code.google.com/appengine/docs/whatisgoogleappengine.htmlThe DatastoreApp Engine provides a distributed data storage service that features a query engine and transactions. Just as the distributed web server grows with your traffic, the distributed datastore grows with your data. You have the choice between two different data storage options differentiated by their availability and consistency guarantees. The App Engine datastore is not like a traditional relational database. Data objects, or "entities," have a kind and a set of properties. Queries can retrieve entities of a given kind filtered and sorted by the values of the properties. Property values can be of any of the supported property value types.Datastore entities are "schemaless." The structure of data entities is provided by and enforced by your application code. The Java JDO/JPA interfaces and the Python datastore interface include features for applying and enforcing structure within your app. Your app can also access the datastore directly to apply as much or as little structure as it needs.The datastore is strongly consistent and uses optimistic concurrency control. An update of a entity occurs in a transaction that is retried a fixed number of times if other processes are trying to update the same entity simultaneously. Your application can execute multiple datastore operations in a single transaction which either all succeed or all fail, ensuring the integrity of your data.The datastore implements transactions across its distributed network using "entity groups." A transaction manipulates entities within a single group. Entities of the same group are stored together for efficient execution of transactions. Your application can assign entities to groups when the entities are created.
Google IO video comparing - http://www.google.com/events/io/2011/sessions/more-9s-please-under-the-covers-of-the-high-replication-datastore.htmlPaxos algorithm - http://en.wikipedia.org/wiki/Paxos_algorithm*for non-ancestor entity group queries (with unknown entity group)About the HR datastore for Java developers - http://code.google.com/appengine/docs/java/datastore/overview.html
Google IO video comparing - http://www.google.com/events/io/2011/sessions/more-9s-please-under-the-covers-of-the-high-replication-datastore.htmlPaxos algorithm - http://en.wikipedia.org/wiki/Paxos_algorithm*for non-ancestor entity group queries (with unknown entity group)About the HR datastore for Java developers - http://code.google.com/appengine/docs/java/datastore/overview.html
http://appengine.google.com
http://code.google.com/appengine/articles/storage_breakdown.htmlAnd Ikai’s blog - http://ikaisays.com/