Upload
nao-minami
View
1.819
Download
2
Embed Size (px)
Citation preview
Wantedly の作り方 2015-05-26 Nao Minami (@south37)
自己紹介
サービス紹介
シゴトでココロ オドルひとを ふやす
www.wantedly.com/sync�
• 1. Wantedly はどんな風に出来ているのか(過去) • 2. どうやって作っているのか(現在) • 3. どういう風に作り変えていくのか(未来)
アジェンダ
働くを面白くする ビジネスSNS
全部 Rails で出来ています!
www.wantedly.com�
Main/Server�
Wantedly/DB�
No7fica7on/DB�
Feed/DB�
Mail/DB�
Main/Elas7csearch�
www.wantedly.com�
iOS/Client�
Android/Client�
• AWS • Docker • Nginx • Unicorn • Rails 4.0.13 • Ruby 2.1.5
• Backbone.js • Angular.js • Postgresql • Elasticsearch • Java for Android • Swift
• 265 models • 302 controllers • 1792 view templates • 1192 routes • 159 gems
Size of Our Rails App
コード行数 約 61 万行
• 1. Wantedly はどんな風に出来ているのか(過去) • 2. どうやって作っているのか(現在) • 3. どういう風に作り変えていくのか(未来)
アジェンダ
Issue ベースの非同期コミュニケーション
PRベースの開発フロー
(Github Flow)
継続テストの結果
[WIP]: working in progress という印を付けて作業の初期段階
からPullRequestを出す
Github Flow
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
開発サイクル
最もおしゃれなUIを持ったCI リアルタイムで結果を見れる
Wercker CI
エラーをただ表示するだけでなく、 Issueと連携して、よりBugFixされやすい設計
Honeybadger Error Monitoring
HipChat Slack
外部サービス連携 豊富(○) 豊富(○)
検索 Webに遷移(△) アプリ内(○)
@mention 見逃す(☓) 一覧がみれる(○)
モバイルアプリ 使いにくい(△) 割と使いやすい(○)
メッセージの識別 背景色で区別しやすい (○)
オシャレだけど背景色が変更不可 (△)
値段 2$/人月(○) ただし無料でも使える
6$/人月(△) ただし無料でも使える
※メッセージの識別のしにくさはアイコンを細かく設定すれば対応可能※グループメンションもslackbotで擬似的に可能
• 1. Wantedly はどんな風に出来ているのか(過去) • 2. どうやって作っているのか(現在) • 3. どういう風に作り変えていくのか(未来)
アジェンダ
Current Architecture
www.wantedly.com�
Main/Server�
Wantedly/DB�
No7fica7on/DB�
Feed/DB�
Mail/DB�
Main/Elas7csearch�
www.wantedly.com�
iOS/Client�
Android/Client�
• ユーザへの影響 • 他の変更のデプロイによるリスタート回数の増加 • 直接関係のない障害によるダウンタイム • 肥大化したRailsプロセスの起動時間の増加
• 開発効率低下 • CIサーバのビルド時間の増加 • モジュール間の相互影響
Microservices
新サービス
チラ見せ
まとめ
• Wantedly は Rails で作られた(過去) • チームの生産性を大事にして開発している(現在) • 大規模化に伴い、Microservices 導入へ(未来)
Thanks and we are hiring! https://www.wantedly.com/projects/18085