Upload
wooga
View
3.735
Download
0
Tags:
Embed Size (px)
Citation preview
7M players / month
10K API calls / second
200K DB operations / second
100K DB writes / second
2 devops since 2009
app
slave
master master
slave
1. create new DBs
2. setup replication
3. start using masters
4. cut replication
app
slave
master master
slave
1. create new DBs
2. setup replication
3. start using masters
4. cut replication
5. remove old DBs
app
master
slave
1. create new DBs
2. setup replication
3. start using masters
4. cut replication
5. remove old DBs
app
slave
master master
slave
1. create new DBs
2. setup replication
3. start using masters
4. remove old DBs
app
master
slave
1. create new DBs
2. setup replication
3. start using masters
4. remove old DBs
5. cut replication
app
slave
master master
slave
1. create new DBs
2. setup replication
3. start using masters
4. drop database;
app
slave
master master
slave
1. create new DBs
2. setup replication
3. start using masters
4. drop database;
app
slave
master master
slave
1. create new DBs
2. setup replication
3. start using masters
4. drop database;
app
slave
master master
slave
1. create new DBs
2. setup replication
3. start using masters
4. drop database;
app
slave
master master
slave
1. create new DBs
2. setup replication
3. start using masters
4. drop database;
app
slave
master master
slave
1. create new DBs
2. setup replication
3. start using masters
4. cut replication
5. truncate data
app
slave
master master
slave
1. create new DBs
2. setup replication
3. start using masters
4. cut replication
5. truncate data
AB
AB
AB
AB
app
slave
master master
slave
1. create new DBs
2. setup replication
3. start using masters
BA
AB
AB
AB
AB
app
slave
master master
slave
1. create new DBs
2. setup replication
3. start using masters
4. cut replication
BA
AB
AB
AB
AB
app
slave
master master
slave
1. create new DBs
2. setup replication
3. start using masters
4. cut replication
5. truncate data
BA
AB
AB
AB
AB
app
slave
master master
slave
1. create new DBs
2. setup replication
3. start using masters
4. cut replication
5. truncate data
BA
AB
AB
AB
AB
SQL SQL
sql sql
SQL SQL
sql sql
SQL SQL
sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
lb lblblb
SQL SQL
sql sql
SQL SQL
sql sql
SQL SQL
sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
lb lblblb
SQL SQL
sql sql
SQL SQL
sql sql
SQL SQL
sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
SQL
EBS EBS EBS EBS
lb lblblb
0"
500,000"
1,000,000"
1,500,000"
2,000,000"
Apr*10" Jul*10" Oct*10" Jan*11" Apr*11" Jul*11" Oct*11"
0"
500,000"
1,000,000"
1,500,000"
2,000,000"
Apr*10" Jul*10" Oct*10" Jan*11" Apr*11" Jul*11" Oct*11"
AWS outagein Ireland
http://en.wikipedia.org/wiki/File:St%C3%B6wer_Titanic.jpg
SQL SQL
sql sql
SQL SQL
sql sql
SQL SQL
sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
lb lblblb
SQL SQL
sql sql
SQL SQL
sql sql
SQL SQL
sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
SQL SQL SQL SQL SQL
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
lb lblblb
Rd
rd
SQL SQL
sql sql
SQL SQL
sql sql
SQL SQL
sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd
rd
Rd Rd
rd rd
SQL SQL SQL SQL SQL
app appapp
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app appapp app
app appapp app app app app app app app app appapp app app
lb lblblb
Rd
rd
app appapp
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app appapp app
app appapp app app app app app app app app appapp app app
lb lblblb
1. Separate user and world DBs
2. Migrate to JRuby
3. Introduce life cycle
4. Remove (user) DBs
5. Enjoy!
SQL SQL
sql sql
SQL SQL
sql sql
SQL SQL
sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
SQL SQL SQL SQL
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
Rd
rd
lb lblblb
SQL SQL
sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
SQL SQL SQL SQL
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
Rd
rd
SQL SQL
sql sql
SQL SQL
sql sql
SQL
sql
lb lblblb
SQL SQL
sql sql
SQL SQL
sql sql
SQL SQL
sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
SQL SQL SQL SQL
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
Rd
rd
SQL
sql
SQL
lb lblblb
SQL SQL
sql sql
SQL SQL
sql sql
SQL SQL
sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
SQL SQL SQL SQL
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
Rd
rd
SQL
sql
SQL
Rd
rd
Rd
rd
lb lblblb
http://www.flickr.com/photos/biblicone/3425903181/sizes/l/in/photostream/
0
50
100
150
200
Rails 2.3.11MRI 1.8.7
Rails 3.2.8MRI 1.8.7
Rails 3.2.8MRI 1.9.3
Rails 3.2.8JRuby 1.7.2
Throughput
0
50
100
150
200
Rails 2.3.11MRI 1.8.7
Rails 3.2.8MRI 1.8.7
Rails 3.2.8MRI 1.9.3
Rails 3.2.8JRuby 1.7.2
Throughput
no benchmark
0
50
100
150
200
Rails 2.3.11MRI 1.8.7
Rails 3.2.8MRI 1.8.7
Rails 3.2.8MRI 1.9.3
Rails 3.2.8JRuby 1.7.2
Throughput
no benchmark
0
50
100
150
200
Rails 2.3.11MRI 1.8.7
Rails 3.2.8MRI 1.8.7
Rails 3.2.8MRI 1.9.3
Rails 3.2.8JRuby 1.7.2
Throughput
no benchmark
multithreaded
0
50
100
150
200
Rails 2.3.11MRI 1.8.7
Rails 3.2.8MRI 1.8.7
Rails 3.2.8MRI 1.9.3
Rails 3.2.8JRuby 1.7.2
Throughput
no benchmark
multithreaded
tuning
0
50
100
150
200
Rails 2.3.11MRI 1.8.7
Rails 3.2.8MRI 1.8.7
Rails 3.2.8MRI 1.9.3
Rails 3.2.8JRuby 1.7.2
Throughput
no benchmark
multithreaded
tuning
cpusaturation
SQL SQL
sql sql
SQL SQL
sql sql
SQL SQL
sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
SQL SQL SQL SQL SQL
app appapp app app app app app app appapp app app
app appapp app app app app app app appapp app app
app appapp app app app app app app appapp app app
app appapp app app app app app app appapp app app
app appapp app app app app app app appapp app app
app appapp app app app app app app appapp app app
app app
app app
app app
app app
app app
app app
app app
app app app app app app app app app appapp app app
lb lblblb
SQL SQL
sql sql
SQL SQL
sql sql
SQL SQL
sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
SQL SQL SQL SQL SQL
app appapp app app app app app app appapp app app
app appapp app app app app app app appapp app app
app appapp app app app app app app appapp app app
app appapp app app app app app app appapp app app
app appapp app app app app app app appapp app app
app appapp app app app app app app appapp app app
app appapp app app app app app app appapp app app
lb lblblb
app
app
app
app
app
app
app
app
app
app
app
app
app
app
SQL SQL
sql sql
SQL SQL
sql sql
SQL SQL
sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
Rd
rd
Rd
rd
SQL SQL SQL SQL
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
Rd
rd
SQL
sql
SQL
Rd
rd
Rd
rd
lb lblblb
SQL SQL
sql sql
SQL SQL
sql sql
SQL SQL
sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd Rd
rd rd
Rd
rd
Rd
rd
SQL SQL SQL SQL
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
Rd
rd
SQL
sql
SQL
Rd
rd
Rd
rd
Rd
rd
lb lblblb
SQL SQL
sql
Rd
rd
Rd
rd
Rd
rd
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
Rd
rd
SQL
sql
SQLSQL SQL
sql sql
SQL SQL
sql sql
Rd Rd
rd rd
Rd Rd
rd rd
Rd
rd
SQL SQL SQL SQL
Rd
rd
Rd
rd
Rd
rd
lb lblblb
SQL SQL
sql
Rd
rd
Rd
rd
Rd
rd
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
Rd
rd
SQL
sql
SQL
Rd
rd
Rd
rd
lb lblblb
SQL
sql
Rd
rd
Rd
rd
Rd
rd
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
Rd
rd
SQL
sql
SQL
Rd
rd
Rd
rd
lb lblblb
SQL
sql
Rd
rd
Rd
rd
Rd
rd
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
Rd
rd
SQL
sql
SQL
Rd
rd
Rd
rd
lb lblblb
Rd
rd
Rd
rd
Rd
rd
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
Rd
rd
SQL
sql
SQL
Rd
rd
Rd
rd
lb lblblb
Rd
rd
Rd
rd
Rd
rd
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
app appapp app app app app app app app app appapp app app
Rd
rd
Rd
rd
Rd
rd
lb lblblb
http://www.flickr.com/photos/aigle_dore/
http://www.flickr.com/photos/aigle_dore/
http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg
http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg
http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg
http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg
http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg