2. Scalarium.com
EC2 Cluster Management
Automatic & dynamic configuration over lifetime
of a cluster via Chef runs
Self healing clusters
Auto scaling clusters
One click deployment
One click cluster cloning
Monitoring & alerting
Logs & accounting
Firewalls & backups
Access & rights management
2
3. Use case wooga.com
One of wooga’s Facebook games
1.5 million DAU (Daily Active Users)
~ 130 servers
~ 150.000 requests per minute
on average
Complex stack with different
databases and replication
Multiple deployments of the game
on multiple clusters
3
5. Data
Rather static but important Dynamic and non-critical
Cluster configuration Accounting & events
Server descriptions Monitoring and metering
and current state
Lifecycle events:
setup, deploy, configure, shutdown
Applications and deployment
definitions
EC2 assets like
EBS, elastic IPs, SSH keys
5
15. Conflict & Resolution
Re-load and retry: Automatically done by SimplyStored
Discard and report: Internal report
15
16. RockingChair
In-memory CouchDB as a Ruby library
Just a big Hash
Understands views generated by SimplyStored
Speeds up your tests
Tests can run in parallel
Nice for debugging
http://github.com/jweiss/rocking_chair
16
21. Keeping views fresh
Cronjobs for crawling all design docs and calling all
views
On master & standby!
Rollout new views without using them first
And while we are there, compact views&dbs
21
23. I/O
CouchDB heavily depends on file system I/O
EBS RAIDs for better performance
Different volumes for data and indices
Be generous with RAM & CPU
http://www.flickr.com/photos/walkn/5471945439
23
24. include_docs
Nice feature to load related data in one go…but slow
random I/O on read
Emit the data you need to the view index
24
25. Design Documents
Maintained in a framework/model-layer
Using md5 of content to decide if update needed
Whenever one view definition changed,
all views got recomputed
25