【ヒカ☆ラボ】さくらインターネットとMilkcocoa!年末イベント:ここだけのウラ話 に行ってきた。
ヒカ☆ラボことヒカリエ・ラボラトリー(レバレジーズが運営するイベント)に行ってきました。
最近は随分勉強会から離れてしまっていたので久しぶりの参加でした。
Milkcocoaの裏側 - Technical Rockstars CEO 部谷(ひや) 修平さん
Technical Rockstarsのサービス
開発の裏話
- スタートアップの開発現場あるある
- とにかく早く開発しないといけない。
- 開発できなければ価値があるかどうかわからない。
- 2014/8: 開発開始
- 2015/4: IoTに方針転換 (この時点でサーバーサイドは部谷さん一人)
- 2015/5: リリース
- 開発速度をあげるには
- プロトタイピング力
- 道具の幅を持つこと
- 普段から広げておくことが大事
- 継続的インテグレーション
- 石橋を高速に叩いて渡る
- 心理的負担を減らす
- アーキテクチャ
- コード量を減らす
- 機能追加をしやすくする
- テストを書きやすくする
- プロトタイピング力
- Milkcocoaの初期の開発方針 (優先順位は上から)
- 簡単に機能を追加したい
- ベンダロックインを防ぎたい
- 運用を楽にしたい
- 多人数で開発したい(学習コストを減らしたい)
- 早く動くものを作りたい
- 開発する中でなにが起こるかわからないので、
- 型を決めてテストバリバリした
- Dockerでポータブルに環境構築
- サーバーイメージは全てコード化して構築は自動化(fabric)
- クライアント/サーバーサイドは全てHexe
- サーバーサイドはHexe x node.js
- すると...
- 途中からなにも進まなくなった
- 新しくなにかを追加する時にハードルが劇高になった。
- 途中からなにも進まなくなった
- 最終的な構成
- Node.js + MongoDB の構成を Erlang + Cassandra に変更 (1サーバーあたりの処理量アップ)
- MQTTに対応
- さくらサーバーに変更 (コスト削減)
- 再度、開発方針を立て直し
- Microservicesの利点
- ちゃんとIFが切れていればそこだけ変更しやすい
- 性能や通信が問題な箇所だけ重課金、それ以外はDockerとはHeroku
- とにもかくにもインターフェース重要。
まとめ
- 目的をもって設計する
- 小さいサービスにシステムを分ける
- 細かいことはサービス毎に分ける
- クリティカルな部分は重課金で
*1:milkcocoaと競合らしい。