Hands on App Engine
GCPUG.TW / Simon Su
What is
App Engine?
An integrated software
architecture and full managed by
google~
Cloud
Datastore
Cloud
SQL
Cloud
Storage
Runtime
Cloud Endpoints Task Queues
GAE Scaling
App Engine Architecture
Closest Google
Data Center
Edge Cache
Google
Frontend
App Engine Data Center
App Master
(App Engine Management Layer)
Static
Servers
App
Engine
Frontend
App Servers
Application
Instances
Application
Instances
Application
Instances
Google’s
Fiber
ISP
Memcache
GAE
User
Datastore
Task
Queues
GAE
Scheduled Tasks
GAE
Search API
GAE
Logs API
GAE
Cloud Console
Manage your AppEngine
Resources
Install SDK
Python Launcher
https://cloud.google.com/appengine/downloads
Hello World!
Create your first project
Run use CLI locally
Using “gcloud preview app”
# cd $your-project
# gcloud preview app run ./app.yaml
Datastore
Unlimited store with transaction
support and high replicate
class Employee(db.Model):
name = db.StringProperty(required=True)
hire_date = db.DateProperty()
e = Employee(name="Antonio Salieri")
e.hire_date = datetime.datetime.now().date()
e_key = e.put()
scalable and
reliable storage
query
transactions
Bigtable
Megastore
Datastore
Memcache from google.appengine.api import memcache
...
value = memcache.get(key)
if value is None:
value = get_value_from_db(key)
if not memcache.add(key, value):
logging.error('Memcache add failed.')
...
Improve Application Performance
Reduce Application Cost
Task Queue
Task Queue
Web Requests Worker
/process_form?status=processed&form_data=...
Ancillary Services
External
APIs
Task Queue
queue:
- name: push-queue-1
rate: 1/s
- name: pull-queue-1
mode: pull
queue = taskqueue.Queue("Qname")
task = taskqueue.Task(...)
queue.add(task)
Managed VM
Using Standard VM
Deploy to
Production $ gcloud preview app deploy 
./app.yaml 
--set-default 
--version demo
Managed VM
Custom Runtime

Hands on App Engine

  • 1.
    Hands on AppEngine GCPUG.TW / Simon Su
  • 2.
    What is App Engine? Anintegrated software architecture and full managed by google~ Cloud Datastore Cloud SQL Cloud Storage Runtime Cloud Endpoints Task Queues
  • 3.
  • 4.
    App Engine Architecture ClosestGoogle Data Center Edge Cache Google Frontend App Engine Data Center App Master (App Engine Management Layer) Static Servers App Engine Frontend App Servers Application Instances Application Instances Application Instances Google’s Fiber ISP Memcache GAE User Datastore Task Queues GAE Scheduled Tasks GAE Search API GAE Logs API GAE
  • 5.
    Cloud Console Manage yourAppEngine Resources
  • 6.
  • 7.
  • 8.
    Run use CLIlocally Using “gcloud preview app” # cd $your-project # gcloud preview app run ./app.yaml
  • 9.
    Datastore Unlimited store withtransaction support and high replicate class Employee(db.Model): name = db.StringProperty(required=True) hire_date = db.DateProperty() e = Employee(name="Antonio Salieri") e.hire_date = datetime.datetime.now().date() e_key = e.put() scalable and reliable storage query transactions Bigtable Megastore Datastore
  • 10.
    Memcache from google.appengine.apiimport memcache ... value = memcache.get(key) if value is None: value = get_value_from_db(key) if not memcache.add(key, value): logging.error('Memcache add failed.') ... Improve Application Performance Reduce Application Cost
  • 11.
    Task Queue Task Queue WebRequests Worker /process_form?status=processed&form_data=... Ancillary Services External APIs Task Queue queue: - name: push-queue-1 rate: 1/s - name: pull-queue-1 mode: pull queue = taskqueue.Queue("Qname") task = taskqueue.Task(...) queue.add(task)
  • 12.
  • 13.
    Deploy to Production $gcloud preview app deploy ./app.yaml --set-default --version demo
  • 14.