Date post: | 15-Jun-2015 |
Category: |
Technology |
Upload: | lynn-langit |
View: | 1,848 times |
Download: | 7 times |
Google App EngineGetting started…for Java developers@LynnLangit
New Course Preview – Google App Engine for Developers
@LynnLangitwww.lynnlangit.com
www.TeachingKidsProgramming.org
• 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
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
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
GAE APIs core and more…
Download and Configure Eclipse for GAE
• Download Eclipse• Get GAE SDK (access
to APIs)• Get GAE plug-in for
Eclipse
Configure Eclipse for GAE - options
• Enable other available APIs, partial list shown below• Use the GWT (Google Web Toolkit)
GAE Setup in Eclipse
• GAE SDK• GAE Eclipse plug-in• GAE developer
account– 5 GB storage free
Hello (Google) World – first application
Viewing Deployed Applications
• Create up to 10 applications• Click application to view detailed information about
each instance
Managing your application
Version Control
• Updating current versions• Using appcfg
Google App Engine – 2. Storage Options
Getting started…for developers@LynnLangit
Default data storage location – noSQL -- Datastore
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
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
Create your Application
• Select the storage options >>>
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
HR Datastore put and get (asList)…from Ikai’s blog
Transactional Put..another example from Ikai
Viewing GAE storage
Cloud Data Storage Options for GAE
NoSQLRDBMS
Other
Cloud Data Storage Options for GAEType Name Notes
noSQL Datastore – High Replication
Default (Data, Blobs. Queues)
noSQL Datastore – Master/Slave For highest consistency
noSQL Developer Storage Beta (Experimental)
RSDBMS mySQL Beta - RDBMS
Graph Freebase Beta
MapReduce Big Query Beta (Invite only)
Other Full-text indexing Beta (Invite only)
Document-based
None available n/a
www.TeachingKidsProgramming.org
• Do a Recipe Teach a Kid (Ages 10 ++) free courses
• Teach or Donate
New Course Preview – Google App Engine for Developers
@LynnLangitwww.lynnlangit.com
www.TeachingKidsProgramming.org
• 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