dena×マネーフォワード×wantedly railsエンジニアセミナー

39
Wantedly の作り方 2015-05-26 Nao Minami (@south37)

Upload: nao-minami

Post on 08-Aug-2015

1.818 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

Wantedly の作り方 2015-05-26 Nao Minami (@south37)

Page 2: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

自己紹介

Page 3: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
Page 4: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

サービス紹介

Page 5: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

シゴトでココロ オドルひとを ふやす

Page 6: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
Page 7: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
Page 8: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
Page 9: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

www.wantedly.com/sync�

Page 10: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

• 1. Wantedly はどんな風に出来ているのか(過去) • 2. どうやって作っているのか(現在) • 3. どういう風に作り変えていくのか(未来)

アジェンダ

Page 11: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

働くを面白くする ビジネスSNS

Page 12: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

全部 Rails で出来ています!

Page 13: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

www.wantedly.com�

Main/Server�

Wantedly/DB�

No7fica7on/DB�

Feed/DB�

Mail/DB�

Main/Elas7csearch�

www.wantedly.com�

iOS/Client�

Android/Client�

Page 14: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

• AWS • Docker • Nginx • Unicorn • Rails 4.0.13 • Ruby 2.1.5

Page 15: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

• Backbone.js • Angular.js • Postgresql • Elasticsearch • Java for Android • Swift

Page 16: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

• 265 models • 302 controllers • 1792 view templates • 1192 routes • 159 gems

Size of Our Rails App

Page 17: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

コード行数 約 61 万行

Page 18: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
Page 19: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

• 1. Wantedly はどんな風に出来ているのか(過去) • 2. どうやって作っているのか(現在) • 3. どういう風に作り変えていくのか(未来)

アジェンダ

Page 20: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
Page 21: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
Page 22: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

Issue ベースの非同期コミュニケーション

Page 23: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
Page 24: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

PRベースの開発フロー

(Github Flow)

Page 25: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

継続テストの結果

[WIP]: working in progress という印を付けて作業の初期段階

からPullRequestを出す

Github Flow

Page 26: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

development env

Slack

GitHub

Wercker CI

Honeybadger error monitoring

production servererror

push

test

Docker Registry

upload image

deploy

create issue

notify build statusnotify

pull req

notify error

開発サイクル

Page 27: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

最もおしゃれなUIを持ったCI リアルタイムで結果を見れる

Wercker CI

Page 28: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

エラーをただ表示するだけでなく、 Issueと連携して、よりBugFixされやすい設計

Honeybadger Error Monitoring

Page 29: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

HipChat Slack

外部サービス連携 豊富(○) 豊富(○)

検索 Webに遷移(△) アプリ内(○)

@mention 見逃す(☓) 一覧がみれる(○)

モバイルアプリ 使いにくい(△) 割と使いやすい(○)

メッセージの識別 背景色で区別しやすい (○)

オシャレだけど背景色が変更不可 (△)

値段 2$/人月(○) ただし無料でも使える

6$/人月(△) ただし無料でも使える

※メッセージの識別のしにくさはアイコンを細かく設定すれば対応可能※グループメンションもslackbotで擬似的に可能

Page 30: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

• 1. Wantedly はどんな風に出来ているのか(過去) • 2. どうやって作っているのか(現在) • 3. どういう風に作り変えていくのか(未来)

アジェンダ

Page 31: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

Current Architecture

Page 32: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

www.wantedly.com�

Main/Server�

Wantedly/DB�

No7fica7on/DB�

Feed/DB�

Mail/DB�

Main/Elas7csearch�

www.wantedly.com�

iOS/Client�

Android/Client�

Page 33: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

• ユーザへの影響 • 他の変更のデプロイによるリスタート回数の増加 • 直接関係のない障害によるダウンタイム • 肥大化したRailsプロセスの起動時間の増加

• 開発効率低下 • CIサーバのビルド時間の増加 • モジュール間の相互影響

Page 34: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

Microservices

Page 35: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
Page 36: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

新サービス

チラ見せ

Page 37: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
Page 38: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

まとめ

• Wantedly は Rails で作られた(過去) • チームの生産性を大事にして開発している(現在) • 大規模化に伴い、Microservices 導入へ(未来)

Page 39: DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

Thanks and we are hiring! https://www.wantedly.com/projects/18085