東京への三度目の大雪予報が不発だったその日、渋谷のITベンチャー系イベントに参加してきました。
【 ヒカ☆ラボ 】 ITベンチャーを支えるテクノロジー 今、話題の4社が合同技術勉強会を開催!! ~ChatWork、ブラケット、Lang-8、ランサーズ~(2014.2.20)
勢いのある ITベンチャー4社のインフラ、システムアーキテクチャを紹介するという、今回のイベント。内容としてはちょうど、
国内注目のWebサービスを支える言語・フレームワーク・アーキテクチャ一覧【2013年版】
っぽいなぁ、と思いました。もちろんこの記事に書かれたものから技術要素も進化しているようでしたし、詳しい舞台裏を聞くこともできました。
個人的には、つい最近まで
- 英語相互添削サイト「Lang-8」一年分の総まとめ(趣味編)
- 英語相互添削サイト「Lang-8」一年分の総まとめ(天気編)
- 英語相互添削サイト「Lang-8」一年分の総まとめ(英語・仕事編)
- 英語相互添削サイト「Lang-8」一年分の総まとめ(役立ちフレーズ集)
という「Lang-8」(らんげーと)に関する記事を書いていたこともあって、「Lang-8」のセッションが面白かったです。一年間ずっと使っていたので思い入れもありましたし、地味に画面や機能が少しずつ進化してきた過程をずっと見てきたので。それにしてもあのシステムを3人くらいで作って回しているのはすごいなぁ。
まとめを先にしてしまうと、サービスやプロダクトとして、
- インフラ基盤: AWS
- DB: mongoDB, Redis
- フロントのフレームワーク: AngularJS
- コード管理: GitHub、Jenkins
- 監視: fluentd、New Relic
- 解析: Mixpanel
を各社が申し合わせたように採用していたのが衝撃でした(全社一致でないものもありますが)。特に「New Relic」は、全員オススメしていたので気になります。
イベントレポートが公開されたようです。(2014/3/5追記)
『【ヒカ☆ラボ】ITベンチャーを支えるテクノロジー』レポート~話題の4社ChatWork,ブラケット,Lang-8,ランサーズが合同技術勉強会を開催!~:レポート|gihyo.jp … 技術評論社
チャットワークを支える技術
山本 正喜氏(ChatWork株式会社 専務取締役CTO)
blog: http://blog-ja.chatwork.com/2013/06/ten-webservice.html
参考: http://levtech-time.jp/article/a-hikalab-chatwork/
- シリコンバレーに子会社。ルクセンブルグにも設立予定。
- 創業は2000年で、意外と長くやってる。
- 仕事をChatWork一本に絞った。
- クラウド型ビジネスチャットツール。「チャットの効率性・シンプルさをビジネスへ」
- 3万8千社。31万ユーザー。170ヶ国で利用されている。
- ChatWork 3年目でこの規模。
- 運営体制は30人くらい?
- Web(PHP) 6人、Mobile 3人、Server 3人
- UI Design 2人、Support 3人
- その他グロースが5人(Web Design, Marketing)
- 週ベースガントチャートで進行管理
- 進め方
- プロジェクトごとにディレクター(PD)を決める
- 仕様書はほとんどマインドマップ
- MindManagerを使ってる。MindMeisterもいいよ
- PivotalTracker/ GitHub Issues で詳細なタスク管理
- コミュニケーションはチャットで。メールはしない。MTGも最低限。
- 関係者を全員入れる。Dev/Ops等問わず
- PHP部、AWS部などの部活チャットが多数立っている
- プロジェクトで困ったときに答えてくれたりする
- 社外の専門家とのチャット部屋も用意されている(Titanium, セキュリティ、弁護士なども)
- すごい人がすごい安い値段でやってくれたりする
- 特徴
- リアルタイム通信のために、Google App Engine の「Channel API」を使っている
- NodeでソケットAPIをする代わりに
- Web Notifications
- File API + XML Http Request Level 2
- 複数ファイルをドラッグ&ドロップで送信。ファイル送信時にプログレス表示
- WebRTC
- アプリは、Titanium Mobile でクロスプラットフォーム開発
- Titanium Mobile, Backbone.js(+拡張FW),
- ライブラリは、Zepto.js, Lo-Dash, Moment.js, Hogan.jsなど
- Titaniumを採用した結果、、、Web版とのコード共有化は夢だった。。
- ネットワークとスペックがプアなモバイルでは、全くコードの書き方が違う。。
- しかも、Titanium SDK がiOS7に対応するまで何も出来ず。。
- ネイティブ化を決意!!
- Phest
- デザイナ向け静的サイトジェネレーター
- テンプレートエンジンの結果をhtmlに書き出して、S3にデプロイできる
- APIドキュメントページの作成
- インフラ
- AWS+GAE
- DBは RDS(MySQL)+DynamoDB+ElastiCache(Memcached)
- 検索は Groonga
- 監視は fluentd+Nagion+New Relic+SumoLogic
- New Relicは超オススメ。有料で使ってる
- GitHub+Jenkins+Capistrano+ChatWork
- 開発環境は、Vagrant+Ansible+AWS
STORES.jp のそだてかた
牧野 圭将氏(株式会社ブラケット)
STORES.jpの開発体制全体の話。
少ない人数でスピーディに開発するためのノウハウ
できるだけ自動化をし、機能開発に集中できるように
なお、情報共有はマメに!
- STORES.jsは 1年半。ほかにも4つのサービスを運営
- 最短2分でオンラインストアが作れるサービス
- メンバーは、エンジニア7名+デザイナー1名
- 役割は特に無し。機能ごとにアサインされて、全てを担当
- 開発
- Ruby on Rails
- mongoDB, redis
- AngularJS
- サービスが急成長するので、スキーマフリーな mongoDBは便利
- 使わなくなったフィールドのお掃除はマメにしましょう!
- バックアップやリストアが大変になってくる
- AngularJSは手軽だが、Fat Controllerに注意!
- テストが大変
- デプロイは、1日8回ほど。
- ワンクリックでEC2にデプロイできる仕組みにしている
- インフラは AWS
- スポットインスタンスなら安価。負荷テスト用に
- リソース/エラー監視は、New Relicにお任せ
- AWSを使うと、Standardプランが無料で使える
- エラーレートやレスポンスタイムの劣化も監視できる
- 監視サーバのメンテコストが不要!
- ログ解析は Mixpanel
- アクセス解析は、Google Analytics
- Mixpanelは従量課金なので、トップページなどの重いところはこちらで。。
- ABテストは Optimizely
- https://www.optimizely.com
- 統計的な判断もお任せ
- 情報共有は ChatWork と Googleサイト
- デプロイ連絡とか
- 気になったサービスを共有する部屋も
- 仕様の共有は Googleサイト(主に非エンジニア向け)
- ダッシュボードで、アクセス数・流通額などをリアルタイム表示
- 社員みんなが数字を意識できるように
Lang-8についての話(仮)
佐々木 達也氏(株式会社Lang-8) @sasata299
blog: http://blog.livedoor.jp/sasata299/archives/52014014.html
参考: http://yang8.hatenablog.com/entry/2014/02/21/100949
からあげエンジニア??の「ささたつ」さんのセッション。「からあげエンジニア」というのは、唐揚げを作るタイプのエンジニアらしいです。余計に分からん(笑)。前職の Cookpad と関係があるとかないとか。敢えて小さなITベンチャーに飛び込んだ、その理由を語っていました。
- iKnowなどはコンテンツ提供型
- Lang-8は、プラットフォーム型
- 学習用のコンテンツは提供せず、場だけを提供
- メンバーは、社長1名+デザイナー1名+エンジニア1名+アルバイト数名
- どうしてLang-8に?
- 実際に触ってみて感動したから
- すぐにレスポンスが返ってくる
- 添削をし合うと、自然と仲良くなれるのがすごい
- ユーザ数:75万人、PV:630万
- 90ヶ国語以上がやり取り
- 開発環境
- Redisはデータ分析用(ちょっとしたキャッシュとしても)
- MongoDBは一部だけ(あとはMySQL)
- MySQLだとカラム追加するときにロックが必要なので、メンテナンスが発生
- AngularJSは jQueryから移行している。
- デザインの変更に強い
- AutoScallingは自動的にEC2を立ち上げたり落としたりしてくれるサービス
- 急なアクセス負荷が起こっても耐えられるように
- 設定のクセが強いが、実際楽になった
ベンチャーあるある
- やりたいことはたくさんあるのに人が全然足りない。タスク管理が重要
- Trelloを使ってる
- シンプルなタスク管理ツール。誰がどこをやるか、だけを管理
- 優先順位は付けない。どうせ全部優先順位が高い
- Trelloを使ってる
- 生煮えプルリ(完成していないプルリクエスト)歓迎
- GitHubでデザイナーとやり取りするのに便利
- 文字だけじゃないやり取りをするように心がけている(画像、IMOなど)
- Team Geak
Team Geek ―Googleのギークたちはいかにしてチームを作るのか
- 作者: Brian W. Fitzpatrick,Ben Collins-Sussman,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/07/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (15件) を見る
-
- 感情的な議論にならないように注意している
- とにかく話す
- やることが変わる
- 結局は話し合い?
- コードレビューがSPOF
- テストの文化
成長し続けるサービスを支える技術
秋好 聡氏(ランサーズ株式会社)
ランサーズを5年間開発して得たこと・困ったことなど。
- 2008年にリリース
- 時間と場所にとらわれない新しい働き方の創出
- エンジニア6名+アルバイト・業務委託
- ユーザ:26万人
- 半年してYahoo!トップページで紹介された
- 5〜12万PV? さくらの専用サーバでは賄いきれず
- 最初からAWSにしておけばよかった。。
- Lancersタイムカード
- 10分ごとにランダムでPCの画面キャプチャ、キーボード・マウスのクリック数が送信される
- Adobe AIR(ActionScript)+Java+C
- AWSに移行。コスト < スピード
- 移行後のトラブル① RDSの処理遅延
- 結局、EC2に移転
- 移行後のトラブル① EC2のリブート問題
- 監視は、Munin, Nagios, New Relic
- CakePHP, Rails
- Lancersマガジン
- http://www.lancers.jp/magazine/
- ランサーズで発注。WordPressで開発。3週間くらいでリリースできた
- ランサーズマイチーム(オンラインでチームを作成)