Google App Engine is a platform as a service (PaaS) cloud computing platform for developing and hosting web applications in Google-managed data centers.
2. Topics We Cover In This Session
Designing for Scale and Reliability
•What problems App Engine resolve?
•App Engine Stack
•App Engine design
motivations
How Front End works
•Edge Caching
•Load Balancing
How App Server works
•Frontend and Backend instances
•Pending Latency and Idle Instance
6. Designing for Scale and Reliability
A Case Study : Real time Earthquake Monitor
•By NIED Japan in collaboration with Google
•The blinking dots represents real time Peak
Ground Acceleration
•20,000 concurrent users, 10000 req/sec at peak
8. Designing for Scale and Reliability
The important requirements for Earthquake monitor site
•Scalability
- As it gets spike of traffic at the event of earthquake
•Reliability
- It’s useless if it does not work at the time of disaster
•Cost efficiency
- It’s too expensive to prepare for enough hardware resources that can handle the peak
traffic. They would be idle for the rest of the time.
9. Designing for Scale and Reliability
How do I design a web service that is scalable and
reliable like this?
15. Designing for Scale and Reliability
VM
MANAGEMENT
SOFTWARE
MANAGEMENT
WEB
SERVER DISTRIBUTED
DATABASE
DISTRIBUTED
FILE SYSTEM
APPLICATION
MONITORING
SECURITY
LOAD
BALANCING
???????
19. Designing for Scale and Reliability
Google App Engine is a platform for building scalable web applications and mobile
backends. App Engine provides you with built-in services and APIs such as NoSQL
datastores, memcache, and a user authentication API, common to most applications.
App Engine will scale your application automatically in response to the amount of
traffic it receives so you only pay for the resources you use. Just upload your code
and Google will manage your app's availability. There are no servers for you to
provision or maintain
20. Designing for Scale and Reliability
Key Features of Google App Engine
•Start Quickly, Build Faster
built-in services such as load balancing, health checks, and application logging
•Automatic Scaling
App Engine offers built-in auto-scaling so that your apps can instantly scale
automatically based on need, from zero to millions of users.
•Automated Security Scanning
Security Scanner automatically scans and detects common web application
vulnerabilities.
•Use the Tools You Love
App Engine works with popular development tools such as Eclipse, IntelliJ, Maven, Git,
Jenkins, and PyCharm
21. Designing for Scale and Reliability
The App Engine Encapsulate Them All
What if you have:
•Hardware failures
•Traffic Spike
•Growing Big Data
•No initial fund
•No one to build/operate
22. Designing for Scale and Reliability
App Engine design motivations
Encourage Google’s best practice for scalability and reliability
Non-relational data model by Datastore/Bigtable
Sharding, Denormalization…
Portable and fine-grained app design
Fast request handling to optimize server resource utilization
Independent to each physical server
It’s not just a hosting service: App Engine empowers you to design your app in
Google way!
24. hat Benefits will Front End provide?
Huge difference between the traffic volume on the orange line (the number of requests)
and blue line (the number of requests handled by application)
How Front End works
25. hat Benefits will Front End provide?
Huge difference between the traffic volume on the orange line (the number of requests)
and blue line (the number of requests handled by application)
How Front End works
26. Life of a Request in Front End
How Front End works
GFE closest to the
user provides edge
caching capability
AE FE provides load
balancing on App Servers
and Static Servers
29. How App Engine works
What is an Application Instance?
Similar to a virtual machine, provides a runtime environment for your app
•has dedicated memory for your app
•but fully managed
No burden of managing OS; the overhead, device drivers, security..
30. How App Engine works
ntend and Backend Instances
Frontend instances (not App Engine Front End)
•Dynamically created and deleted = low cost
•Enforce fast response and stateless design
•Suitable for processing short-lived requests
Backend instances
•Statically created and deleted = higher cost
•No limit for response time, support stateful design
•Suitable for batch processing
31. How App Engine works
How Frontend instances Scale
•App Engine watches pending request queue of each instances
•Let’s see what would happen if your app gets a traffic spike
•Instances dynamically added/removed based on queue size
Pending
request
queue
32. How App Engine works
How Frontend instances Scale
•App Engine watches pending request queue of each instances
•Let’s see what would happen if your app gets a traffic spike
•Instances dynamically added/removed based on queue size
Pending
request
queue
Idle Instances
Pending
Latency
33. How App Engine works
Pending Latency
•Time to hold request in pending queue before creating new instances
•Less latency responds faster but costs more
34. How App Engine works
What are idle instances?
•Number of instances always available
•Higher number responds faster but costs more
35. How App Engine works
Key Takeaways
App Engine encapsulate all the cost and effort
•To build and operate a web app with Google scale and reliability
•Encourage Google’s best practices for scalability and reliability
•Significantly lower Total Cost of Ownership
Front End provides scalability and reliability by:
•Edge Caching by Google Front End
•Load Balancing by App Engine Front End
App server controls scalability by:
•Dynamic control of Frontend and Backend instances
•Managing Pending Latency and Idle Instances