Greg Scallan discusses Flipboard, a social magazine app launched 6 months after an initial team put it together. It delivers relevant articles and photos based on users' social networks and interactions, and now has over 5 million users and 2 billion page views per month. To manage the complex, real-time data needs, Flipboard uses Amazon RDS MySQL and ElastiCache for its operational configuration and state data needs. RDS provides a highly performant, reliable database technology to handle Flipboard's complex queries on user and relevancy data.
2. Introduction
Your Social Magazine for Apple Mobile Devices
Delivers relevant articles and photos based on usage and
interactions within your social networks
Launched 6 months after the initial team put together
Over 5 million users and 2 billion page “flips” per month
3. Operating in the Cloud : Managing Complex, Real Time Data
6 months to deploy a real-time, socially relevant magazine
Challenge Constantly changing user interests
Ability to change all hardware and software elastically
Architecture
Frequently changing system requirements
Complex queries on user and relevancy data
App needs
Milliseconds count. So, does uptime
Highly performant, reliable, proven database technology
Solution
Amazon RDS MySQL
4. The Data View of the World
Flipboard Application
ElastiCache Memcache for
performance
Reliable and
Operational Complex data,
Configuration Queries
and State Data
SimpleDB RDS MySQL
5. Friends, Magazines …
anyone relevant to
me who published
something very
recently that I care
about seeing
Show Me More, Please!
A friend who recently shared a photo
6. Amazon RDS Tips For Success
1. Leverage the Cloud for what it does best. Don’t bring old DC habits.
2. Scale up for better performance.
3. Use RDS for complex, real-time data.
4. Use Read Replicas to augment write heavy databases. They are awesome.
5. Leverage existing SQL knowledge and experience.
6. Use copies of your database for testing new code. It’s trivial and saves time.
7. Scale horizontally with sharding. Plan for it before you need it.
Notes de l'éditeur
Standard N-Tier Layered Architecture : Logic Tier talks to Data TierData Tier: we have many different DB's depending on the problem space:SimpleDB : Operational Configuration and State goes hereNoSQL : Content Processing (e.g. article categorization), usage processing (e.g. what topics do most readers in England care about at 8am versus 10pm), etc...Memcached (a.k.a ElastiCache) : If you will query it twice based on simple key/value, it goes here.RDS: Reliable AND Complex queries needed? Go hereIn general, we found per user data needed by the presentation tier is best stored using RDS since most requests are user/session focused and requires complex logic based on new features or user interface designs. This includes stuff such as what social networks you belong to, your social interactions such as liking photos or reading articles, synchronization of state across multiple devices, etc.