@kyanny's blog

My thoughts, my life. Views/opinions are my own.

最近読んだもの

Switching user database on a running system | Spotify Labs

Spotify がユーザー情報データベースを Postgres から Cassandra にスイッチした話。 Cassandra クラスタ側にもプロダクション環境のアプリケーションからの書き込みを流して結果は無視して捨てる、というやり方でパフォーマンスやバクを確認するのをじっくりやって、移行そのものはマスタースレーブの役割をチェンジしただけ。プロダクショントラフィックを流すというやり方は cookpad/kage と同じ(これ、これ自体がオリジナルだったか、元ネタがあったか、どっちだっけ?)こういうやり方はよく知られたものなのだろうなと思った。地味で地道な準備と検証をきっちり真面目にやったからスイッチの瞬間は「最も退屈なデプロイだった」とさらりというのがかっこいい。


まあ確かにそうだなぁ。でも引数に空文字列とか 0 を渡したい関数を作っておいてデフォルト値も nil ガードで書いちゃうという設計が良くない気もする。とはいえうっかりそう実装されてしまうことを言語仕様とかのレベルでは現状防げないから規約で頑張るのは仕方ない。


Docker イメージがあるけど docker run したものにどうやって接続すればよいのかがわからなかった。 docker run したとき起動中のログが出てる画面のまま止まってて、そういうものなのかシェルに制御が戻らないのは異常なのかすら判断できなくて、やはり docker 使い方全くわからないと厳しくなってきたなと思った。