Upload
assaf-gannon
View
158
Download
0
Tags:
Embed Size (px)
DESCRIPTION
A slideshow from Fullstack Developers Israel, "Mind The Stack - Architecture stories by Israeli startups" - May 20 2014, Google Campus Tel Aviv.
Citation preview
TabTale story: Building a publishing and monitoring
mobile games architecture with high
scale
FullStack Developers Israel
20.5.2014Google Campus TLV Hosted by:
Assaf Gannon
The project’s goal:Provide a set of server side services and SDK
for the company’s apps
Mobile Device
Client App
SDK
Server
First Sketch
TabTale is a very successful startup that develops interactive books, games, and educational apps
• Released Over 250 apps for children on both iOS and Android devices
• Over 350 million downloads• Over 25M active monthly users
text
The Tricky Stuff
text
Zero downtime
Clients must never be affected from server failures or
downtime
text
Zero Downtime - Solutiontext
Solid Infrastructure - AWS
● Elastic Beanstalk - PaaS to run the services
● S3 - static content storage and delivery service
● MongoHQ - Managed MongoDB
● RedisLab - Managed Redis
Zero Downtime - Solution
• A good contingency:
○ Fallback to static content on S3
text
Large Scale from Day 1text
Large Scale from Day 1
• Horizontal Scaling - Stateless servers
• Prevent heavy server loads
○ Setup multiple tiers of static content delivery:■ CDN (Cloud Front) ■ S3■ Nginx / Apache■ Pre-generated permutations on Redis / in
memory• Use cache effectively
text
Effective Cachetext
Effective Cache, cont.text
Rapidly Changing Requirements
• Avoid Monolithic Application• Take the “Micro Services” approach from the
beginning• Dynamic Model - loose types• Separate Data Base per Service• Services are entirely stateless• Services are decoupled, and talk JSON
text
Node js
Ideal for rapid development of IO intensive applications
● Extremely easy and fast to setup, develop, and deploy
● Very low learning curve● Speaks JSON as mother tongue● Great performance doin IO operations● NPM● Can be deployed to multiple PaaS providers
including Elastic Beanstalk
text
Nodejs Internal Overviewtext
The Event Looptext
Spring Boot
The Java way to rapidly bootstrap applications
● Create stand-alone Spring applications● Embed Tomcat or Jetty directly (no need to deploy WAR
files)● Provide opinionated 'starter' POMs to simplify your
Maven configuration● Automatically configure Spring whenever possible● Provide production-ready features such as metrics,
health checks and externalized configuration● Absolutely no code generation and no requirement for
XML configuration
text
MongoDB
Great for managing document oriented data and Meta Data
● No schema management
● Very fast reads
● Very simple and powerful DSL
text
Tricky Stuff Checklist
• Zero downtime
• Large scales from day 1
• Vague and rapidly changing requirements
text
THANK YOU
Assaf GannonEmail: