Blog

Soundboard with Ember.js

Story all about how a soundboard featuring my friend's funny antics got made with Ember.js. This post has it all: UI stuff, ember-cli, deployment, and secrets.

Continue reading…

I'm a digital nomad

In September 2015, my wife and I hopped onto Finnair’s wings. The plane would take us from the autumn-stricken Helsinki to Singapore. A week long holiday in tropic after no summer holidays sounded good to me...

Continue reading…

The Recipe for the Worlds Largest Rails Monolith by Akira Matsuda

Akira Matsuda gave a really good talk on some of the problems that CookPad has run into with their quite sizable Rails app:

  • 300 app servers, deploys are slow (~20min) => replaced capistrano with a handmade deploy program (mamiya) which deploys in 1 min

  • 1000+ models, 30 databases, ActiveRecord is choking => read / write splitting, handmade ActiveRecord adapter for this (switch_point)

  • Tests take 5 hours
    => execute rspecs distributedly (rrrspec)
    => use a beefy, spot instance server to run tests. Cheap.
    => database_cleaner is slow with 1000+ tables => database_rewinder

  • ActiveRecord migrations take forever to execute => ridgepole

  • Big rails app with big team results in code conflicts => created a rapid prototyping framework for rails (chanko)

  • Upgrading rails: created a response verification tool (kage)

Conclusion: Monolithic apps can scale, you don’t have to split it into many apps, eventho' microservices are really hot these days. Microservices bring their own problems and are not a silver bullet.