Building a scalable mobile application on
Google Cloud Platform
About us
Lukas Masuch
Google+: +LukasMasuch Twitter: @lukasmasuch
Henning Muszynski
Google+: +HenningBalboa Twitter: @henningmus
Benjamin Räthlein
Google+: +BenjaminRäthlein Twitter: @B3nRa
Drop
Make the world around you more social
Google Cloud Platform
Google Cloud Platform
Cloud Platform – Compute
Compute Engine: Virtual machines hosted on
Google's infrastructure - Infrastructure-as-a-Service
App Engine: Deploy your code directly to a fully-
managed platform - Platform-as-a-Service
Container Engine: Run Docker container cluster on
Google Cloud Platform – Container-as-a-Service
Cloud Platform – Storage Options
Cloud SQL: Full SQL support for an online transaction
processing (OLTP) system
Cloud Datastore: Store highly structured objects and
query with SQL-like statements
Cloud Storage: Store immutable blobs larger than
10 MB, such as large images or videos
Cloud BigTable: High-performance, extremely
scalable NoSQL database, scales to billions of entries
Google Cloud Platform
App Engine
Objectify Cloud Datastore
Cloud Endpoints GCM Endpoint File Servlet Cloud Storage
Other Dev Tools
App Engine
Cloud Endpoints
Cloud Endpoint
REST has never been easier!
Automatically generate client libraries to make
wiring up the client to your backend easy.
+ Annotation based
+ Easy declaration of REST
methods and services
+ support for local testing
Really ?
1. Annotate 2. Generate 3. Run everywhere
Cloud Endpoint - Pitfalls
What we should have known before
Getter / Setter require to be named same as the member
variables. Otherwise duplicate methods are generated
1 Endpoint methods allow only one object as parameter
int No native data types are returnable. Use Wrappers!
1..2..3 Enums are neither returnable nor allowed as parameters
App Engine
Cloud Datastore
Cloud Endpoints File Servlet Cloud Storage
Cloud Datastore & Cloud Storage
Save everything in the cloud!
Datastore: Store all entities
Storage: Store all files
Better database design vs. less data operations
Cloud Storage: Convenient API for Images.
Additional Servlet for Files needed.
Manageable with an easy-to-use Interface on
Google Cloud Console
App Engine
Objectify Cloud Datastore
Cloud Endpoints File Servlet Cloud Storage
Objectify
The simplest convenient ORM for App Engine datastore
Enables you to store and retrieve your Object
directly from Cloud Datastore. It is that simple!
+ Annotation based
+ Easy caching and indexing
+ Human-friendly query interface
It just works like a charm!
App Engine
Objectify Cloud Datastore
Cloud Endpoints GCM Endpoint File Servlet Cloud Storage
Google Cloud Messaging - Users want to be notified!
App Engine
Objectify Cloud Datastore
Cloud Endpoints GCM Endpoint
2. GCM ID 4. push messages
1. Registration
3. Send GCM ID
to App Engine
App Engine
Objectify Cloud Datastore
Cloud Endpoints GCM Endpoint File Servlet Cloud Storage
App Engine
Objectify Cloud Datastore
Cloud Endpoints GCM Endpoint File Servlet Cloud Storage
Other Dev Tools
Resources & Links
Github Repository – App Engine Skeleton
Google Cloud Playground (Python)
Drop - Website
Lukas Masuch
Henning Muszynski
Benjamin Räthlein