~/talk

The Recipe for the Worlds Largest Rails Monolith

Talkat Ruby on Ales 2015 · 2015-03-05..03-06· [ruby-on-rails, software-architecture]
slides:none on file

Cookpad runs a single Rails monolith with 1,700 ActiveRecord models, ~400,000 LOC, 276 gems, 50M monthly users and peaks at 15,000 req/s served by up to 300 app servers and 30 DB servers. They build their own autoscaler and immutable images, a fast deployer called mamia deployer (uses goip, 300 servers in ~1 minute), a Master/Slave switcher switch_point, distributed test runner on c3.8xlarge spot instances that shrinks 5‑hour specs to ~10 minutes, a patched DB cleaner, a prototyping framework chano, and a shadow proxy for safe Rails upgrades.

AI-written summary · about

  1. 0:00Start
  2. 10:31The application must run fast
  3. 12:16300 servers (maximum, before the dinner time) We do not always need 300 servers
  4. 12:54Similar to Amazon AutoScaling We don't want to see different versions running on different servers Locks auto-scaling when deploying Locks deployment when auto- scaling
  5. 15:22mamiya Uses Serf for orchestration Gossip protocol instead of SSH Collaborates with the repo, the Cl server, and the auto- scaler
  6. 23:09Distributed Optimization of the test execution order Highly fault-tolerant
  7. 27:10We made our own prototyping framework
  8. 30:11We run the actual user requests on shadow servers We compare response body HTMLs created in the tests
  9. 30:32HTTP shadow proxy server Duplex requests to the master (production) server and shadow servers
  10. 35:18Think before start splitting your service
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.