イベント

【レポート】ChatWork、ブラケット、Lang-8、ランサーズ 合同技術勉強会【ITベンチャーを支えるテクノロジー】:前編

  • この記事をシェアする
  • 0
  • 1
  • 1
hikalab_study

hayashiこんにちは。

生活感を出さずにミステリアスぶっていたら「ノリが悪い」「性格が悪い」「キモい」という事実無根なレッテルを貼られてしまった林です。

先日、弊社主催のイベント「ヒカ☆ラボ」にて「ITベンチャー4社 合同技術勉強会」イベントが開催されました。

各社の発表から、注目ポイントをいくつかピックアップしてお届けいたします。

内容のざっくりまとめ

■どんなイベント?
→ChatWork、ブラケット、Lang-8、ランサーズの4社のエンジニアが、各社で採用している言語・フレームワーク・アーキテクチャや運用について共有しました。

■見どころは?
→AWSやAngular.jsの採用など「注目ベンチャーの水準」が垣間見える濃い時間となりました。

■詳しく見たい
→SlideShareに資料が共有されていますので、記事中よりご覧いただけます。

 

1.チャットワークを支える技術

専務取締役CTOの山本正喜氏に登壇いただき、プロジェクト管理、フロントエンド(HTML5/JavaScript)、サーバーサイド(PHP)、モバイル(Titanium Mobile)まで幅広い領域の共有となりました。

ChatWork(株) 専務取締役CTO 山本正喜氏
chatwork_yamamoto

大学在学中より兄の山本敏行とともに兄弟で創業。以来,製品開発担当として企画・マネジメントを行いながら、現在でも自らプログラマとして現場の第一線で開発を行っている。2011年3月にクラウド型ビジネスチャットツール「チャットワーク」を開発。

 170ヵ国31万ユーザー、ファイル数1100万

chatwork1

チャットワークの現在の規模がこちら。シリコンバレー進出を果たし、世界170ヵ国というグローバルサービスです。

グロース担当として独立した5名のチーム

chatwork2

USにもチームをもつチャットワークの運営体制が上記。グロース担当として5人のチームが存在するようです。UIデザインは開発、Webデザインはグロースとして分かれているところも注目ポイントですね。

メールはしない。コミュニケーションはチャット

chatwork7

印象的だったのがこのスライド。

プロジェクトごとのグループチャットを作成し、関係者を全員入れる理由は、タスクの背景から全ての履歴がテキストとして残るため、国内外にメンバーが居ても機能するからとのことでした。

コミュニケーションをショートカットするためにチャットにするのではなく、深く理解するためにチャットにするという発想なのですね。

社内部活チャットの「nginx部」「Google Apps Script部」

chatwork3

技術別の部活チャットというものがあり、スキルアップの手段になっているそうです。また、社外の専門家を「チャットコンサル」で活用しているなど、チャットサービスの会社ならではの取り組みが独特です。

リッチに作りこまれたフロントエンド

chatwork4

チャットワークに触れた事がある方は、スムーズさに驚いた経験があると思います。

画面遷移のないフルAjaxアプリケーションで作りこまれており、リアルタイム通信とHTML5によるリッチな機能を実装しているとの説明でした。

リアルタイム通信ではChannel APIを活用。イチ押しのAPIとして紹介されていたことを付け加えておきます。

Titanium Mobileでクロスプラットフォーム開発

chatwork5

当初はWeb版とモバイル版とのコード共有に期待して導入したTitanium Mobileですが、実際にはネットワークとスペック差でコードの書き方が異なり、期待通りには行かなかったとのこと。

しかしそこからTitaniumのベストプラクティスに置き換えていったところでiOS7が登場。TitaniumSDKが対応するまで何もできない状態になったため、ネイティブ化を決意し,絶賛開発中のようです。

「絶対使った方がいい」NewRelic

chatwork6

資料にはインフラ周りまで広範に説明されており、なかでも「ビジネスアプリなので、平日と休日の負荷の落差が大きく、伸び縮みできる仕様を重視している」との部分がチャットワークさんならではのポイントでした。「スケーラブル」というと、すぐに拡大をイメージしますが、縮む事ができるというのも大事な利点ですね。

特記する点として「絶対使った方がいいです」という一言を添えてNewRelicを紹介されていました。

資料全編はこちら

 

2.STORES.jpの育てかた

続いて(株)ブラケットの牧野氏が登壇。
じつは同社のエンジニアがイベント等でしゃべるのは初めてとのこと!
今後はAngular.js解説など、イベントを実施していく予定だそうです。

(株)ブラケット 牧野圭将氏
ブラケット_makino
STORES.jpのWeb Engineer。ナビゲーションアプリのWeb API開発を4年経験し、2013年9月に(株)ブラケットに入社。STORES.jpのインフラ、サーバサイド、クライアントサイドと開発全般を担当。

エンジニア7名、デザイナー1名、役割分担はとくに無い

stores2

stores1

現在は7名のエンジニアも、1年前は2名体制だったとのことで、上記のようにサービスの拡大に合わせて増員してきたとのことです。

数字を並べて見るだけでも、店舗数の増加がすさまじいですね・・・。

超成長に対応できるmongoDB

stores7

この成長速度おいては、mongoDBのスキーマフリーが便利とのこと。注意点としてデータがどんどん追加できる分、増えっぱなしになりがちなので、要らないものを消していく点も大事だそうです。

stores3

言語とミドルウェアは上記の通り。他に、コード管理はやはりGithub。1日のデプロイは8回ほどで、Jenkinsでテスト実行し、ローカルからデプロイ。

TV放送のトラフィックにも対応できるAWS

STORES.jpのサービス自体がTV露出したり、活用していただいている店舗さんがTVに取り上げられたりと、急激なトラフィックが発生するケースがあるが、対応しやすいのが利点とのことでした。サービスのユーザーがTV露出してトラフィックが急増するという仕組みはSTORES.jpさんのサービスならではですね。

ここでも登場New Relic

stores4

STORES.jpさんも、リソースとエラー監視はNew Relic。iOSアプリでPush通知してくれるのが良い所とのことでした。

専任の監視チームが居ない体制なので、監視はNew Relicにまかせて、エラーが出たら対応する形式だそうです。

GoogleAnalyticsで全体を、Mixpanelで細部を見る

stores6

ログ解析には上記2つを併用しているそうで、Mixpanelは従量課金のため、欲しいデータだけを抽出して見ているとのこと。

また、ABテストには手軽にテストできて統計的判断もできるOptimizelyを活用しているとの説明でした。

社員みんなが数字を意識するDashboard

stores5

これ、かっこいいですよね。アクセス数や流通額をリアルタイムに表示しており、数字意識の上昇に一役かっているそうです。

エンジニア向けと非エンジニア向けのコミュニケーション

特に印象に残った点として「エンジニア」と「非エンジニア」でコミュニケーションを分けて運用している点があります。

・チャットワーク:改善報告や気になるサービスの共有
・Googleサイト:非エンジニア向けに社内ルールや仕様共有

として使い分けており、対エンジニアと非エンジニア向けのマメな情報共有を行っているそうです。

確かにエンジニアに必要な情報と、カスタマーサポートに必要な情報は別なケースが多そうなので、思い切って共有方法を分けたほうが効率が良い情報共有ができそうです。

資料全編はこちら

 

※後編ではLang-8さんとランサーズさんをお届けします。