SlideShare a Scribd company logo
1 of 39
Download to read offline
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

More Related Content

What's hot

RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方Satomi Tsujita
 
WebAPIのこれまでとこれから
WebAPIのこれまでとこれからWebAPIのこれまでとこれから
WebAPIのこれまでとこれからYohei Yamamoto
 
2016 02-25-crawler-study-01
2016 02-25-crawler-study-012016 02-25-crawler-study-01
2016 02-25-crawler-study-01Hiroshi Oyamada
 
DSLについて語るときに僕の語ること
DSLについて語るときに僕の語ることDSLについて語るときに僕の語ること
DSLについて語るときに僕の語ることTomohiro Nishimura
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたいMasato Noguchi
 
20150627 九州男児が山形でリモートワークして分かったこと
20150627 九州男児が山形でリモートワークして分かったこと20150627 九州男児が山形でリモートワークして分かったこと
20150627 九州男児が山形でリモートワークして分かったことSeiji Akatsuka
 
ApplicationTemplateのススメ
ApplicationTemplateのススメApplicationTemplateのススメ
ApplicationTemplateのススメTakafumi ONAKA
 
CSSから国民を守る党ver2
CSSから国民を守る党ver2CSSから国民を守る党ver2
CSSから国民を守る党ver2akatsuki 1910
 
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01Yuta Shimizu
 
RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1Satomi Tsujita
 
AWS free tier maximization
AWS free tier maximizationAWS free tier maximization
AWS free tier maximizationKenkichi Okazaki
 
PWAをWebサービスに導入した話
PWAをWebサービスに導入した話PWAをWebサービスに導入した話
PWAをWebサービスに導入した話dobby618
 
ぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュKenji Mori
 
Inspector CLI (JAWS-UG 京王線支部 #4 LT)
Inspector CLI (JAWS-UG 京王線支部 #4 LT)Inspector CLI (JAWS-UG 京王線支部 #4 LT)
Inspector CLI (JAWS-UG 京王線支部 #4 LT)Kenkichi Okazaki
 
React+fluxを導入した話
React+fluxを導入した話React+fluxを導入した話
React+fluxを導入した話Yuki Ishikawa
 
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソースクローズドソースから始めるオープンソース
クローズドソースから始めるオープンソースTakafumi ONAKA
 
サーバを運用する時代は終わった
サーバを運用する時代は終わったサーバを運用する時代は終わった
サーバを運用する時代は終わったYuki Ishikawa
 
トレタのMySQL MySQL casual #8
トレタのMySQL MySQL casual #8トレタのMySQL MySQL casual #8
トレタのMySQL MySQL casual #8Hiroaki Sano
 
cocos2d ☓ OpenOffice
cocos2d ☓ OpenOfficecocos2d ☓ OpenOffice
cocos2d ☓ OpenOfficeKazunori Nanji
 

What's hot (20)

RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方
 
RSpecしぐさ
RSpecしぐさRSpecしぐさ
RSpecしぐさ
 
WebAPIのこれまでとこれから
WebAPIのこれまでとこれからWebAPIのこれまでとこれから
WebAPIのこれまでとこれから
 
2016 02-25-crawler-study-01
2016 02-25-crawler-study-012016 02-25-crawler-study-01
2016 02-25-crawler-study-01
 
DSLについて語るときに僕の語ること
DSLについて語るときに僕の語ることDSLについて語るときに僕の語ること
DSLについて語るときに僕の語ること
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたい
 
20150627 九州男児が山形でリモートワークして分かったこと
20150627 九州男児が山形でリモートワークして分かったこと20150627 九州男児が山形でリモートワークして分かったこと
20150627 九州男児が山形でリモートワークして分かったこと
 
ApplicationTemplateのススメ
ApplicationTemplateのススメApplicationTemplateのススメ
ApplicationTemplateのススメ
 
CSSから国民を守る党ver2
CSSから国民を守る党ver2CSSから国民を守る党ver2
CSSから国民を守る党ver2
 
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
 
RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1
 
AWS free tier maximization
AWS free tier maximizationAWS free tier maximization
AWS free tier maximization
 
PWAをWebサービスに導入した話
PWAをWebサービスに導入した話PWAをWebサービスに導入した話
PWAをWebサービスに導入した話
 
ぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュ
 
Inspector CLI (JAWS-UG 京王線支部 #4 LT)
Inspector CLI (JAWS-UG 京王線支部 #4 LT)Inspector CLI (JAWS-UG 京王線支部 #4 LT)
Inspector CLI (JAWS-UG 京王線支部 #4 LT)
 
React+fluxを導入した話
React+fluxを導入した話React+fluxを導入した話
React+fluxを導入した話
 
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソースクローズドソースから始めるオープンソース
クローズドソースから始めるオープンソース
 
サーバを運用する時代は終わった
サーバを運用する時代は終わったサーバを運用する時代は終わった
サーバを運用する時代は終わった
 
トレタのMySQL MySQL casual #8
トレタのMySQL MySQL casual #8トレタのMySQL MySQL casual #8
トレタのMySQL MySQL casual #8
 
cocos2d ☓ OpenOffice
cocos2d ☓ OpenOfficecocos2d ☓ OpenOffice
cocos2d ☓ OpenOffice
 

Viewers also liked

Elasticsearch for Hackadoll
Elasticsearch for HackadollElasticsearch for Hackadoll
Elasticsearch for Hackadollmosa siru
 
Microservicesのdesign patterns
Microservicesのdesign patternsMicroservicesのdesign patterns
Microservicesのdesign patternsNaohiko Uramoto
 
Microserviceなんて最初からやるもんじゃ無かった
Microserviceなんて最初からやるもんじゃ無かったMicroserviceなんて最初からやるもんじゃ無かった
Microserviceなんて最初からやるもんじゃ無かったAkira Miki
 
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そうマイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そうTakashi Abe
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門to_ueda
 
Microservicesを実現するために、インフラエンジニアと開発者がすべきこと
Microservicesを実現するために、インフラエンジニアと開発者がすべきことMicroservicesを実現するために、インフラエンジニアと開発者がすべきこと
Microservicesを実現するために、インフラエンジニアと開発者がすべきことTakashi Abe
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Tokuhiro Matsuno
 
マイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devマイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devKazuhiro Sera
 
マイクロサービスアーキテクチャ とは何か
マイクロサービスアーキテクチャとは何かマイクロサービスアーキテクチャとは何か
マイクロサービスアーキテクチャ とは何かYusuke Suzuki
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 

Viewers also liked (11)

Microservices on pairs
Microservices on pairsMicroservices on pairs
Microservices on pairs
 
Elasticsearch for Hackadoll
Elasticsearch for HackadollElasticsearch for Hackadoll
Elasticsearch for Hackadoll
 
Microservicesのdesign patterns
Microservicesのdesign patternsMicroservicesのdesign patterns
Microservicesのdesign patterns
 
Microserviceなんて最初からやるもんじゃ無かった
Microserviceなんて最初からやるもんじゃ無かったMicroserviceなんて最初からやるもんじゃ無かった
Microserviceなんて最初からやるもんじゃ無かった
 
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そうマイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 
Microservicesを実現するために、インフラエンジニアと開発者がすべきこと
Microservicesを実現するために、インフラエンジニアと開発者がすべきことMicroservicesを実現するために、インフラエンジニアと開発者がすべきこと
Microservicesを実現するために、インフラエンジニアと開発者がすべきこと
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
マイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devマイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3dev
 
マイクロサービスアーキテクチャ とは何か
マイクロサービスアーキテクチャとは何かマイクロサービスアーキテクチャとは何か
マイクロサービスアーキテクチャ とは何か
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 

Similar to DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー

RESTful #とは RailsスタイルからRESTを学ぼう
RESTful #とは RailsスタイルからRESTを学ぼうRESTful #とは RailsスタイルからRESTを学ぼう
RESTful #とは RailsスタイルからRESTを学ぼうToru Kawamura
 
広島Ruby勉強会#35プレゼン
広島Ruby勉強会#35プレゼン広島Ruby勉強会#35プレゼン
広島Ruby勉強会#35プレゼンKakigi Katuyuki
 
Tiなごや vol.3 Alloyやろまい
Tiなごや vol.3 AlloyやろまいTiなごや vol.3 Alloyやろまい
Tiなごや vol.3 AlloyやろまいMori Shingo
 
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Takuya Mukohira
 
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsThe Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsKoichiro Ohba
 
COOKPAD tab 勉強会 2014.04.24
COOKPAD tab 勉強会 2014.04.24COOKPAD tab 勉強会 2014.04.24
COOKPAD tab 勉強会 2014.04.24akahira
 
20141122 デジコミュ秋田 WordPressサイト永代供養の儀
20141122 デジコミュ秋田 WordPressサイト永代供養の儀20141122 デジコミュ秋田 WordPressサイト永代供養の儀
20141122 デジコミュ秋田 WordPressサイト永代供養の儀Seiji Akatsuka
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Masakazu Muraoka
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたしRyunosuke SATO
 
Sql world を支える技術
Sql world を支える技術Sql world を支える技術
Sql world を支える技術Oda Shinsuke
 
JavaからScalaへ
JavaからScalaへJavaからScalaへ
JavaからScalaへtakezoe
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方健一 辰濱
 
剣と魔法のログレスーMmoの継続的な改善と運用
剣と魔法のログレスーMmoの継続的な改善と運用剣と魔法のログレスーMmoの継続的な改善と運用
剣と魔法のログレスーMmoの継続的な改善と運用Satoshi Yamafuji
 
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門Hironori Sekine
 
20150228 Realm超入門
20150228 Realm超入門20150228 Realm超入門
20150228 Realm超入門Kei Ito
 

Similar to DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー (20)

Tech fun rails_workshop
Tech fun rails_workshopTech fun rails_workshop
Tech fun rails_workshop
 
RESTful #とは RailsスタイルからRESTを学ぼう
RESTful #とは RailsスタイルからRESTを学ぼうRESTful #とは RailsスタイルからRESTを学ぼう
RESTful #とは RailsスタイルからRESTを学ぼう
 
広島Ruby勉強会#35プレゼン
広島Ruby勉強会#35プレゼン広島Ruby勉強会#35プレゼン
広島Ruby勉強会#35プレゼン
 
Tiなごや vol.3 Alloyやろまい
Tiなごや vol.3 AlloyやろまいTiなごや vol.3 Alloyやろまい
Tiなごや vol.3 Alloyやろまい
 
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1
 
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsThe Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in Corporations
 
COOKPAD tab 勉強会 2014.04.24
COOKPAD tab 勉強会 2014.04.24COOKPAD tab 勉強会 2014.04.24
COOKPAD tab 勉強会 2014.04.24
 
20141122 デジコミュ秋田 WordPressサイト永代供養の儀
20141122 デジコミュ秋田 WordPressサイト永代供養の儀20141122 デジコミュ秋田 WordPressサイト永代供養の儀
20141122 デジコミュ秋田 WordPressサイト永代供養の儀
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
 
ENGINEER WORK!!
ENGINEER WORK!!ENGINEER WORK!!
ENGINEER WORK!!
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
 
Yesod(at FPM2012)
Yesod(at FPM2012)Yesod(at FPM2012)
Yesod(at FPM2012)
 
WooCommerce & AWS
WooCommerce & AWSWooCommerce & AWS
WooCommerce & AWS
 
Sql world を支える技術
Sql world を支える技術Sql world を支える技術
Sql world を支える技術
 
JavaからScalaへ
JavaからScalaへJavaからScalaへ
JavaからScalaへ
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方
 
剣と魔法のログレスーMmoの継続的な改善と運用
剣と魔法のログレスーMmoの継続的な改善と運用剣と魔法のログレスーMmoの継続的な改善と運用
剣と魔法のログレスーMmoの継続的な改善と運用
 
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門
 
20150228 Realm超入門
20150228 Realm超入門20150228 Realm超入門
20150228 Realm超入門
 
WebsitesプチDeepDive
WebsitesプチDeepDiveWebsitesプチDeepDive
WebsitesプチDeepDive
 

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