会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤...

250
Copyright © 2009-2015 eureka, inc. All rights reserved. 会員数180万人のマッチングサービスpairs急成長を支える技術基盤 Takuma Morikawa / Eureka, Inc.

Transcript of 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤...

Page 1: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

会員数180万人のマッチングサービスpairsの急成長を支える技術基盤 Takuma Morikawa / Eureka, Inc.

Page 2: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

訂正

会員数180万人のマッチングサービスpairsの急成長を支える技術基盤

Page 3: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

訂正

会員数180万人のマッチングサービスpairsの急成長を支える技術基盤

↓ + 1 0 0 , 0 0 0

Page 4: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

訂正

会員数180万人のマッチングサービスpairsの急成長を支える技術基盤

↓ + 1 0 0 , 0 0 0

会員数190万人のマッチングサービスpairsの急成長を支える技術基盤

Page 5: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

1. エウレカについて 2. サービスのスケール~pairs編~ 3. そして伝説へ…

もくじ

Page 6: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

1. エウレカについて 2. サービスのスケール~pairs編~ 3. そして伝説へ…

もくじ

Page 7: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

エウレカについて

About eureka

Page 8: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
Page 9: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
Page 10: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
Page 11: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

で、あんた誰?

・pairsのサーバーサイド全般を担当 ・エウレカは2014年2月から ・お雑煮が好きです

Page 12: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

pairsについて

About pairs

Page 13: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

F a c e b o o kのソーシャルグラフを活用した O n l i n e D a t i n gサービス

Page 14: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

【pairsのシステム特性】 現在、月間10億PV・スクリーンビュー超 ・多対多のSNSなので、ユーザーの登録数に対して、指数関数的に負荷が上がる ⇒ 今日は余裕でも、明日はそうじゃないかも…

・ゲーム並のキャンペーン展開 => キャンペーンの種類によって負荷のアップダウンが激しい ・接点0からはじまるコミュニケーションを提供するサービスなので、デリケートな配慮が必要 => 不具合はもちろんちょっとした仕様やUXの配慮の足りなさが、クリティカルになる

Page 15: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

1. エウレカについて 2. サービスのスケール~pairs編~ 3. そして伝説へ…

もくじ

Page 16: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

サービスのスケール

Scale of service

Page 17: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

私が入ってちょうど一年くらい経ちました。 (2014年2月~)

Page 18: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

入った頃について、少し昔話をします。

Page 19: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

あのころのわたし

Page 20: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

あのころのわたし

(半年間の F P S 出来事は長いので省略)

Page 21: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

あのころのわたし年表

8月(PHPがイヤで)前の会社を退職 9月 無職を謳歌する 10月 無職を謳歌する 11月 現金資産が目減りを始める 12月 現金資産がそこをついてくる . . . 1月 g ive me chocolate

Page 22: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

あのころのわたし年表

8月(PHPがイヤで)前の会社を退職 9月 無職を謳歌する 10月 無職を謳歌する 11月 現金資産が目減りを始める 12月 現金資産がそこをついてくる . . . 1月 g ive me chocolate 2月 わけあって、エウレカへJOIN! ←N e w !

Page 23: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

pairsの事例を用いて、サービスの拡大とともに、どのようにシステムをスケールしていったか、ざっくりとお話します。

サービスのスケール

Page 24: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

4つのプチストーリー

1) はじめてのリリース編 2) リニューアル編 3) RDB使えますか編 4) FIFO or LIFO編

Page 25: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

~ はじめてのリリース ~

第壱話

Page 26: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース

ʕº ºʔ(私=森川)        (ボス)ʕʘʘʔ

Page 27: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 入社日 (2月 )

ʕº ºʔ< 「よろしくお願いいたします。」

Page 28: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 入社日 (2月 )

ʕº ºʔ< 「よろしくお願いいたします。」

「緊張しないでくださいね」> ʕʘʘʔ 「席はここです」> ʕʘʘʔ

Page 29: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 入社日

ʕº ºʔ< o00(FPS以外のことをするのは久しぶりだな...)

Page 30: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 入社日

ʕº ºʔ< o00(FPS以外のことをするのは久しぶりだな...) ʕº ºʔ< o00(キーボード無しで人と会話できるだろうか...)

Page 31: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 入社日

「...というわけでこんな感じで修正お願いします」> ʕʘʘʔ

Page 32: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 入社日

「...というわけでこんな感じで修正お願いします」> ʕʘʘʔ ʕº ºʔ< 「かしこまりました。」

Page 33: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 入社日

ʕº ºʔ< o00(...)

Page 34: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 入社日

ʕº ºʔ< o00(...) ʕº ºʔ< o00(またPHPか...)

Page 35: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

ʕº ºʔ< (カタカタカタ..)

Page 36: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

ʕº ºʔ< (カタカタカタ..) ʕº ºʔ< (git push [enter]  ターン!! )

←打鍵音

Page 37: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

ʕº ºʔ< (カタカタカタ..) ʕº ºʔ< (git push [enter]  ターン!! ) ʕº ºʔ< (しばしドヤ顔。)

←打鍵音

Page 38: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

ʕº ºʔ< 「修正終わりました」

Page 39: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

ʕº ºʔ< 「修正終わりました」

「お、ありがとう」> ʕʘʘʔ

Page 40: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

「では...」> ʕʘʘʔ

Page 41: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

「では...」> ʕʘʘʔ

「今からリリースしちゃいます」> ʕʘʘʔ

Page 42: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

「では...」> ʕʘʘʔ

「今からリリースしちゃいます」> ʕʘʘʔ ʕº ºʔ< o00(ええ!さすがC向けサービス。サイクルが早い..)

Page 43: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

「80万人が使っているサービスですからね」> ʕʘʘʔ

Page 44: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

「80万人が使っているサービスですからね」> ʕʘʘʔ 「一日の売上もX万円ありますから」> ʕʘʘʔ

Page 45: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

「80万人が使っているサービスですからね」> ʕʘʘʔ 「一日の売上もX万円ありますから」> ʕʘʘʔ

「軽微なバグも影響が大きいんですよ」> ʕʘʘʔ

Page 46: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

「80万人が使っているサービスですからね」> ʕʘʘʔ 「一日の売上もX万円ありますから」> ʕʘʘʔ

「軽微なバグも影響が大きいんですよ」> ʕʘʘʔ 「新規の滞在時間低下は売上に影響ありますし」> ʕʘʘʔ

Page 47: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

「80万人が使っているサービスですからね」> ʕʘʘʔ 「一日の売上もX万円ありますから」> ʕʘʘʔ

「軽微なバグも影響が大きいんですよ」> ʕʘʘʔ 「新規の滞在時間低下は売上に影響ありますし」> ʕʘʘʔ

「既存のDAUが下がると...」> ʕʘʘʔ

Page 48: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

「80万人が使っているサービスですからね」> ʕʘʘʔ 「一日の売上もX万円ありますから」> ʕʘʘʔ

「軽微なバグも影響が大きいんですよ」> ʕʘʘʔ 「新規の滞在時間低下は売上に影響ありますし」> ʕʘʘʔ

「既存のDAUが下がると...」> ʕʘʘʔ

ʕº ºʔ< o00(なんか、わからんけどすごい...)

Page 49: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

「森川さんにはリリースも担当してもらいたいので」> ʕʘʘʔ

Page 50: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

「森川さんにはリリースも担当してもらいたいので」> ʕʘʘʔ

「ちゃんと手順見てて下さい」> ʕʘʘʔ

Page 51: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: 一週間くらいして

「森川さんにはリリースも担当してもらいたいので」> ʕʘʘʔ

「ちゃんと手順見てて下さい」> ʕʘʘʔ

ʕº ºʔ< o00(おお...緊張してきた...)

Page 52: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「まあ、簡単なんで!」> ʕʘʘʔ

Page 53: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「まあ、簡単なんで!」> ʕʘʘʔ

「まずWebサーバーに入ります...」> ʕʘʘʔ

Page 54: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「まあ、簡単なんで!」> ʕʘʘʔ

「まずWebサーバーに入ります...」> ʕʘʘʔ

「$ ssh srv-01」> ʕʘʘʔ

Page 55: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「まあ、簡単なんで!」> ʕʘʘʔ

「まずWebサーバーに入ります...」> ʕʘʘʔ

「$ ssh srv-01」> ʕʘʘʔ

ʕº ºʔ< o00(メモメモ...✍)

Page 56: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「そして公開ディレクトリに移動します」> ʕʘʘʔ

Page 57: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「そして公開ディレクトリに移動します」> ʕʘʘʔ

「$ cd /path/to っと...」> ʕʘʘʔ

Page 58: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「そして公開ディレクトリに移動します」> ʕʘʘʔ

「$ cd /path/to っと...」> ʕʘʘʔ

ʕº ºʔ<「ふむふむ…」

Page 59: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「そこでおもむろに」> ʕʘʘʔ

Page 60: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「そこでおもむろに」> ʕʘʘʔ

「$ git pull」> ʕʘʘʔ

Page 61: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「そこでおもむろに」> ʕʘʘʔ

「$ git pull」> ʕʘʘʔ

「ターン!(エンターキーを叩きつける)」> ʕʘʘʔ

Page 62: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「そこでおもむろに」> ʕʘʘʔ

「$ git pull」> ʕʘʘʔ

「ターン!(エンターキーを叩きつける)」> ʕʘʘʔ

ʕº ºʔ< o00(えっ)

Page 63: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「remote counting objects...」> bash 「create mode 100644 controller/user.php (100%)」> bash

Page 64: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「remote counting objects...」> bash 「create mode 100644 controller/user.php (100%)」> bash

ʕº ºʔ< o00(あ...)

Page 65: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「さて...」> ʕʘʘʔ

Page 66: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「さて...」> ʕʘʘʔ

「これで、リリースは終わりです」> ʕʘʘʔ

Page 67: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「さて...」> ʕʘʘʔ

「これで、リリースは終わりです」> ʕʘʘʔ

( ω ) o00(ぽかーん)

Page 68: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「あっ! あとはapp.confを編集して...と」> ʕʘʘʔ

Page 69: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「あっ! あとはapp.confを編集して...と」> ʕʘʘʔ

「$ vi app.conf」> ʕʘʘʔ

Page 70: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「あっ! あとはapp.confを編集して...と」> ʕʘʘʔ

「$ vi app.conf」> ʕʘʘʔ

( ω )<「e?」

Page 71: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「ここと...」> ʕʘʘʔ

Page 72: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「ここと...」> ʕʘʘʔ

「この部分を書き換えて下さい。」> ʕʘʘʔ

Page 73: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「ここと...」> ʕʘʘʔ

「この部分を書き換えて下さい。」> ʕʘʘʔ

「ま、1,2行だけなんで」> ʕʘʘʔ

Page 74: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「ここと...」> ʕʘʘʔ

「この部分を書き換えて下さい。」> ʕʘʘʔ

「ま、1,2行だけなんで」> ʕʘʘʔ

( ω )<「」

Page 75: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「2台目も同様に行います」> ʕʘʘʔ

Page 76: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「2台目も同様に行います」> ʕʘʘʔ

「git pull [enter](ターン)」> ʕʘʘʔ

Page 77: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「書き換えを忘れないようにしないとですね」> ʕʘʘʔ

Page 78: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「書き換えを忘れないようにしないとですね」> ʕʘʘʔ

( ω )<「あ、あの」

Page 79: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「なんですか?」> ʕʘʘʔ

Page 80: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「なんですか?」> ʕʘʘʔ

( ω )<「ロールバックはどうするんですか...?」

Page 81: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「?」> ʕʘʘʔ

Page 82: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「?」> ʕʘʘʔ

(ちっ…git初心者かよ…)> ʕʘʘʔ

Page 83: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「?」> ʕʘʘʔ

(ちっ…git初心者かよ…)> ʕʘʘʔ

(gitさんのスゴサ、教えてやるか…)> ʕʘʘʔ

Page 84: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「git checkout」> ʕʘʘʔ

Page 85: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「git checkout」> ʕʘʘʔ

「あるじゃないですかぁ」> ʕʘʘʔ

Page 86: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「git checkout」> ʕʘʘʔ

「あるじゃないですかぁ」> ʕʘʘʔ

「git reset --hard HEAD^ でもいいですよ」> ʕʘʘʔ

Page 87: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「ただし」> ʕʘʘʔ

Page 88: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「ただし」> ʕʘʘʔ

「設定ファイルの書き換えは忘れないで下さい」> ʕʘʘʔ

Page 89: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

「ただし」> ʕʘʘʔ

「設定ファイルの書き換えは忘れないで下さい」> ʕʘʘʔ

( ω )<「お、おう...」

Page 90: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

正直

Page 91: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: コードデプロイ

しんどい

Page 92: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: pa i rs@2014-02

この時のpairsは…

Page 93: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

はじめてのリリース: pa i rs@2014-02

■ pairsの登録者数 ・80万人

■ pairsの売上

・1週間の売上=年収のx倍くらい

Page 94: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

2014年2月頃の開発体制

Page 95: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

2014年2月頃の開発体制

一般的…?

Page 96: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

・AWSを使用したPHP x MySQL -  非VPCの全てフラットな構成

・デプロイ -  $ git pull

・ロールバック -  $ git checkout

2014年2月頃のpa i rs

Page 97: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

・AWSを使用したPHP x MySQL -  非VPCの全てフラットな構成

・デプロイ -  $ git pull

・ロールバック -  $ git checkout

2014年2月頃のpa i rs

やっぱしんどい…

Page 98: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

ʕº ºʔ<「…」

はじめてのリリースを終えて…

Page 99: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

ʕº ºʔ<「…」 ʕº ºʔ<「また…」

はじめてのリリースを終えて…

Page 100: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

ʕº ºʔ<「…」 ʕº ºʔ<「また…」 ʕº ºʔ<「PHPか…」

はじめてのリリースを終えて…

Page 101: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

~ はじめてのリリース ~ 完

第壱話

Page 102: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

~ リニューアル ~

第弐話

Page 103: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル: 入社一ヶ月くらいのある日

「突然ですが」> ʕʘʘʔ

Page 104: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル: 入社一ヶ月くらいのある日

「突然ですが」> ʕʘʘʔ

「諸事情により、UIを全部変えます」> ʕʘʘʔ

Page 105: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル: 入社一ヶ月くらいのある日

「突然ですが」> ʕʘʘʔ

「諸事情により、UIを全部変えます」> ʕʘʘʔ

「なのでPHP、JS、インフラ全てお願いします」> ʕʘʘʔ

Page 106: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル: 入社一ヶ月くらいのある日

「突然ですが」> ʕʘʘʔ

「諸事情により、UIを全部変えます」> ʕʘʘʔ

「なのでPHP、JS、インフラ全てお願いします」> ʕʘʘʔ

ʕº ºʔ< o00(クレイジー...)

Page 107: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

説明しよう!

リニューアル

Page 108: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

pairsのインフラとは

リニューアル

Page 109: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

AWSのコンポーネントを フル活用した

リニューアル

Page 110: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

こんな感じである!

リニューアル

Page 111: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

■ Web(App)  ・EC2 2台 ■ データベース  ・RDS(MySQL)2台 ■ キャッシュ  ・Elast iCache(Memcache)2台

当時のpa i rsメインシステム(簡易版)

Page 112: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

じゃん!

リニューアル

Page 113: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

あれ…

リニューアル

Page 114: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

なんだこれ...

全開放...?

ただのLAMPやん

どこにログ保存してるんだ

ユーザー管理したいんだけど

スケーラビリティが...

Page 115: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

なんだこれ...

全開放...?

ただのLAMPやん

どこにログ保存してるんだ

ユーザー管理したいんだけど

スケーラビリティが...

しんどい

Page 116: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

でも

リニューアル

Page 117: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアルでは ダウンタイムが取れるので

リニューアル

Page 118: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

1から作りなおしました

リニューアル

Page 119: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

システム構成図

Page 120: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル前 (簡略版)

Page 121: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

Page 122: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

Page 123: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

Page 124: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

堅牢なセキュリティ!

Page 125: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

堅牢なセキュリティ!

詳細な権限設定!

Page 126: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

VPC(AWS仮想プライベートクラウド)

EC2-Classic VPC内 サブネット 共有 専用

アプリ間接続 インターネット経由 プライベート

N/W設計 全開放 オンプレなみ

セキュリティ SGのみ SG+SubnetごとのACL&private NW

Page 127: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

VPC化@pai rs

・EC2-C lass icな構成で稼働していた ・VPCに既存のサーバーは追加できない

=> VPCの中にECを新規で作成 ※ 最近は移行ツールができている模様…

Page 128: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

VPC化@あたし

・はじめてのVPC(VPC歴 1日) ・AWS歴 20日くらい ・もちろん、かなりはまる

- Ne tworkACLのレスポンスとか…

Page 129: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

IAM(権限管理)

・アプリケーションに詳細なAWS権限を付与できる - V P Cじゃなくても元々できるやつ

・サーバーに詳細なAWS権限を付与できる - ステージングから本番へのアクセス不可とか

- 擬似本番はR e a dだけ許可とか

Page 130: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

Page 131: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

柔軟なログ収集!

Page 132: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

柔軟なログ収集!

そしてデータ可視化!

Page 133: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

導入の経緯

a) アプリケーションの高速化を行いたい - 担当者が応答速度を集計するのが手間 - 集計結果もチェックしなければならない

b ) ログのロストを防ぎたい -気軽にW e bの作成・追加・削除を実行したい -証跡を残す(事件や犯罪のログになり得る)

Page 134: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

f l uen tdによるログ収集

・いい感じにログ収集してくれます

- 再送機能

- パフォーマンス

- 豊富なプラグイン -> S3への保存も簡単

-> E las t i cSearchへの送信も簡単

Page 135: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

Elas t i cSearch

・全文検索エンジン ・ luceneクエリ使える ・REST APIとJSONでいい感じに操作できる

Page 136: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

k ibana

・いい感じにグラフ化できるダッシュボード ・Elast icSearchを裏側で利用

Page 137: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

連携図

Page 138: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

導入の結果

a) アプリケーションの高速化を行いたい  = > 応答速度の可視化  = > 正社員以外にも集計が可能になった

 = > トータルで1秒以上の改善を実行できた

ʕº ºʔo00(アプリのテキストログの集計もしたい…)

Page 139: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved. ブログ記事 http://eure.jp/blog/fluentd_elasticsearch_kibana/

k ibanaとElas t i cSearchによる可視化

Page 140: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

Page 141: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

Page 142: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

内部から死活監視!

Page 143: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

外部からパフォーマンス監視!

内部から死活監視!

Page 144: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

監視システム Zabb ix

・様々なデータを監視できる -  分間アクセス数・ロック数・登録者数

・しきい値を超えたらアラート

-  メール・チャット・電話 e tc . . . ・しきい値を超えたらアクション実行

-  Apache再起動・DBクエリ抽出

Page 145: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

監視システム NewRel i c

・手軽 ・一般的なサーバーの監視 ・アプリケーションの監視

-  様々な言語に対応 -  応答速度の内訳を可視化できる

・DB/キャッシュ /アプリ /レンダリング -  アプリエラー率も補足可能

Page 146: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

監視システム NewRel i c

・手軽 ・一般的なサーバーの監視 ・アプリケーションの監視

-  様々な言語に対応 -  応答速度の内訳を可視化できる

・DB/キャッシュ /アプリ /レンダリング -  アプリエラー率も補足可能

Page 147: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

監視システム NewRel i c

・サーバー監視サービスのインストール => 4行

1.  rpm -Uvh http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm 2.  yum install newrelic-sysmond 3.  nrsysmond-config --set license_key=<ライセンスキー> 4.  /etc/init.d/newrelic-sysmond start

Page 148: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

監視システム NewRel i c

・アプリ監視サービスのインストール => 4行

※ PHPの実行を解析するため、性能が劣化します。

1.  yum install newrelic-php5 2.  newrelic-install install 3.  echo “newrelic.license=<ライセンスキー>” >> /etc/php.d/newrelic.ini 4.  /etc/init.d/httpd restart

Page 149: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

Page 150: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

Page 151: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

そして一貫したデプロイ!

Page 152: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

そして一貫したデプロイ!

Forever Git Pull!

Page 153: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

Cap is t ranoによるデプロイ

・デプロイ&ロールバック! ・全て /特定 のサーバーに対して同一作業 ・意外に色々できます

-  緊急メンテ対応 -  リアルタイムログ監視 -  メールレポーティング

Page 154: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

デプロイと監視 ~新機能リリース~

1) Capist ranoでデプロイする

Page 155: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

デプロイと監視 ~新機能リリース~

1) Capist ranoでデプロイする

2) ʕº ºʔo00(バグ混入)

Page 156: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

デプロイと監視 ~新機能リリース~

1) Capist ranoでデプロイする

2) ʕº ºʔo00(バグ混入)

3) PHPのNot iceエラー上昇! 

Page 157: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

デプロイと監視 ~新機能リリース~

1) Capist ranoでデプロイする

2) ʕº ºʔo00(バグ混入)

3) PHPのNot iceエラー上昇! 

4) NewRel icからSlackへ通知

Page 158: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

デプロイと監視 ~新機能リリース~

1) Capist ranoでデプロイする

2) ʕº ºʔo00(バグ混入)

3) PHPのNot iceエラー上昇! 

4) NewRel icからSlackへ通知

5) (通知で iPhoneが振動する)

Page 159: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

デプロイと監視 ~新機能リリース~

1) Capist ranoでデプロイする

2) ʕº ºʔo00(バグ混入)

3) PHPのNot iceエラー上昇! 

4) NewRel icからSlackへ通知

5) (通知で iPhoneが振動する)

6) 起きる(むくり ʕʘʘʔ

Page 160: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

デプロイと監視 ~新キャンペーン~

1) Capist ranoでデプロイする

Page 161: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

デプロイと監視 ~新キャンペーン~

1) Capist ranoでデプロイする

2) ʕº ºʔo00(負荷のかかるキャンペーン開始)

Page 162: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

デプロイと監視 ~新キャンペーン~

1) Capist ranoでデプロイする

2) ʕº ºʔo00(負荷のかかるキャンペーン開始)

3) DBコネクション・ロック待ち上昇 

Page 163: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

デプロイと監視 ~新キャンペーン~

1) Capist ranoでデプロイする

2) ʕº ºʔo00(負荷のかかるキャンペーン開始)

3) DBコネクション・ロック待ち上昇 

4) NewRel icからSlackへ通知

Page 164: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

デプロイと監視 ~新キャンペーン~

1) Capist ranoでデプロイする

2) ʕº ºʔo00(負荷のかかるキャンペーン開始)

3) DBコネクション・ロック待ち上昇 

4) NewRel icからSlackへ通知

5) (通知で iPhoneが振動する)

Page 165: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

デプロイと監視 ~新キャンペーン~

1) Capist ranoでデプロイする

2) ʕº ºʔo00(負荷のかかるキャンペーン開始)

3) DBコネクション・ロック待ち上昇 

4) NewRel icからSlackへ通知

5) (通知で iPhoneが振動する)

6) 起きる(むくり ʕʘʘʔ

Page 166: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

Slack

・チャットツール ・美しさ × IRCの使いやすさ ・API操作

Page 167: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

Slack 監視用チャンネル

Page 168: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

Slack 監視用チャンネル

Page 169: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

Slack 監視用チャンネル

Page 170: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

総評

ʕº ºʔ<「VPC化は早めにやってよかった」 ʕº ºʔ<「ログシステムは少し持て余し気味」 ʕº ºʔ<「NewRel ic抜きでデプロイはもはや怖い」 ʕº ºʔ<「Capis t ranoはたまに失敗してかわいい」 ʕº ºʔ<「Slack便利」

Page 171: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

~ リニューアル ~ 完

第弐話

Page 172: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

~ RDB使えますか~

第参話

Page 173: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

RDB使えますか

「UIリニューアルも終わり、一段落したね」> ʕʘʘʔ

Page 174: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

RDB使えますか

「UIリニューアルも終わり、一段落したね」> ʕʘʘʔ

「あとは私がバイオレンスな気分にならぬよう」> ʕʘʘʔ

Page 175: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

RDB使えますか

「UIリニューアルも終わり、一段落したね」> ʕʘʘʔ

「あとは私がバイオレンスな気分にならぬよう」> ʕʘʘʔ

「DBマスターの負荷を下げるだけですね」> ʕʘʘʔ

Page 176: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

RDB使えますか

「UIリニューアルも終わり、一段落したね」> ʕʘʘʔ

「あとは私がバイオレンスな気分にならぬよう」> ʕʘʘʔ

「DBマスターの負荷を下げるだけですね」> ʕʘʘʔ

ʕº ºʔ<「そ、そうですね . . .」

Page 177: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

RDB使えますか

「私の見立てでは”足あと機能”が怪しいです」> ʕʘʘʔ

Page 178: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

RDB使えますか

「私の見立てでは”足あと機能”が怪しいです」> ʕʘʘʔ

「台風が過ぎ去る前に"カタ"をつけてください」> ʕʘʘʔ

Page 179: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

RDB使えますか

「私の見立てでは”足あと機能”が怪しいです」> ʕʘʘʔ

「台風が過ぎ去る前に"カタ"をつけてください」> ʕʘʘʔ

「さもなくば私が "台風の目"となります」> ʕʘʘʔ

Page 180: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

RDB使えますか

「私の見立てでは”足あと機能”が怪しいです」> ʕʘʘʔ

「台風が過ぎ去る前に"カタ"をつけてください」> ʕʘʘʔ

「さもなくば私が "台風の目"となります」> ʕʘʘʔ

ʕº ºʔ<「そ、そうですか . . .」

Page 181: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

RDB使えますか

「私の見立てでは”足あと機能”が怪しいです」> ʕʘʘʔ

「台風が過ぎ去る前に"カタ"をつけてください」> ʕʘʘʔ

「さもなくば私が "台風の目"となります」> ʕʘʘʔ

ʕº ºʔ<「そ、そうですか . . .」 ʕº ºʔo00(謎…)

Page 182: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

説明しよう!

RDB使えますか

Page 183: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

この時pairsは

RDB使えますか

Page 184: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

DBマスターの 負荷が問題で

RDB使えますか

Page 185: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

非常に困っていた

RDB使えますか

Page 186: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

・単一サーバ /テーブルに負荷がかかる設計 - 初期のDB設計のまま - シャーディングできず

・スレーブに検索クエリを移し終えていた ・マスターは限界までスケールアップ済み ・/ (^o^)\

RDB使えますか

Page 187: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

よろしい、ならば… 非RDBだ!

RDB使えますか

Page 188: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

新たなデータストアを探して

・ファイルに保存 ・R e d i s ・M o n g o D B ・C a s s a n d r a ( + x x x万円給料上げて欲しい )

= > p e r l製の掲示板の時代に逆戻り! = > かわいい。でも今回は様々な要因で除外 = > かわいい。でも運用面倒 = > こわい。

Page 189: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

そこで…

RDB使えますか

Page 190: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

Page 191: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

リニューアル後 (簡略版)

Page 192: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

DynamoDB

RDB使えますか

Page 193: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

・簡単にスケールする書き込み負荷 ・運用の手間なし ・見た目はこわいけど根は優しい (・社内のカップルアプリCoup lesでも利用事例あり)

DynamoDB

Page 194: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

・ちょっとわかりづらい ・JOINするようなデータ集計は難しい ・厳密なトランザクションは難しい ・AWSから離れられなくなるリスク…

DynamoDBのダークサイド

Page 195: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

DynamoDBにした結果…

RDB使えますか

Page 196: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

DynamoDBにした結果…

RDB使えますか 負荷85-95%

負荷75%以下に

Page 197: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

・足あと機能 ・行動ログ ・通知フラグ関連

DynamoDB化の例

Page 198: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

メール・プッシュ管理 / お知らせ / つぶやき / ベストマッチ / 投稿フィルタ / キャンペーン管理 / 写真リクエスト

DynamoDB化の予定

Page 199: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

・単一ユーザーで完結するデータ取得は向いている ・RDBのような集計クエリが使えない

- リアルタイム集計はちょっとN Gプレイ - バッチ処理での解析はできる - ただしプログラムを書く必要あり

DynamoDBをつかってみて

Page 200: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「やはり ”足あと機能 ”でしたね。」> ʕʘʘʔ

DynamoDBをつかってみて

Page 201: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「やはり ”足あと機能 ”でしたね。」> ʕʘʘʔ ʕº ºʔ<「はい。そう思ってました。」

DynamoDBをつかってみて

Page 202: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「やはり ”足あと機能 ”でしたね。」> ʕʘʘʔ ʕº ºʔ<「はい。そう思ってました。」 ʕº ºʔo00(本当にそうだったとは…)

DynamoDBをつかってみて

Page 203: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

~ RDB使えますか~ 完

第参話

Page 204: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

~ FIFO or LIFO ~

第四話

Page 205: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「Dynamoのついでに」> ʕʘʘʔ

F IFO

Page 206: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「Dynamoのついでに」> ʕʘʘʔ

「キュー化もしときましょう」> ʕʘʘʔ

F IFO

Page 207: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「Dynamoのついでに」> ʕʘʘʔ

「キュー化もしときましょう」> ʕʘʘʔ ʕº ºʔ< o00(ついで…?)

F IFO

Page 208: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「Dynamoのついでに」> ʕʘʘʔ

「キュー化もしときましょう」> ʕʘʘʔ ʕº ºʔ< o00(ついで…?) ʕº ºʔ< 「わかりました。何使ってもいいですか?」

F IFO

Page 209: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「SQS使って下さい」> ʕʘʘʔ

FIFO

Page 210: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「SQS使って下さい」> ʕʘʘʔ ʕº ºʔ< 「直接SQSで大丈夫ですかね…?」

FIFO

Page 211: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「SQSを」> ʕʘʘʔ

FIFO

Page 212: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「SQSを」> ʕʘʘʔ

「信じましょう」> ʕʘʘʔ

FIFO

Page 213: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

・AWSのメッセージキューサービス ・MQサーバーの運用をしなくてよい ・要件によっては多少注意が必要

・厳密なFIFOにはならない ・指定件数取りたい場合は要工夫

SQS

Page 214: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

・パフォーマンス / 耐障害性

  - ローカルでキューイングした方が良いのでは?

  - TCP接続のコストって大丈夫?

  - SQSが落ちたらどうしよう

SQSを考える

Page 215: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

わたしは、 ボスSQSを信じました。

SQS

Page 216: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

その結果…

SQS

Page 217: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

余裕で捌きました 6万リクエスト / 1h

SQS

Page 218: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

・半年以上落ちることもなく安定して動いています

・パフォーマンスも安定しており、スループット課金ではないので、コストを気にしないでもOK

・最悪ロストしてよいデータだけ入れる

SQS後

Page 219: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

~ FIFO or LIFO ~ 完

第四話

Page 220: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

1. エウレカについて 2. サービスのスケール~pairs編~ 3. そして伝説へ…

もくじ

Page 221: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「このコードは愛せない」> ʕʘʘʔ

10月頃のある日

Page 222: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「このコードは愛せない」> ʕʘʘʔ

「このスキーマは愛せない」> ʕʘʘʔ

10月頃のある日

Page 223: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「このコードは愛せない」> ʕʘʘʔ

「このスキーマは愛せない」> ʕʘʘʔ

「愛が欲しい」> ʕʘʘʔ

10月頃のある日

Page 224: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「時に、森川さん」> ʕʘʘʔ

10月頃のある日

Page 225: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「時に、森川さん」> ʕʘʘʔ

ʕº ºʔ<「はい、なんでしょうか」

10月頃のある日

Page 226: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「時に、森川さん」> ʕʘʘʔ

ʕº ºʔ<「はい、なんでしょうか」

ʕº ºʔ< o00(やべーな、この人 . . .)

10月頃のある日

Page 227: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「問題です。」> ʕʘʘʔ

10月頃のある日

Page 228: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「問題です。」> ʕʘʘʔ

「次のうち、もっとも愛くるしいのは」> ʕʘʘʔ

10月頃のある日

Page 229: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「問題です。」> ʕʘʘʔ

「次のうち、もっとも愛くるしいのは」> ʕʘʘʔ

「どいつ?」> ʕʘʘʔ

10月頃のある日

Page 230: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「Ruby」> ʕʘʘʔ

10月頃のある日

Page 231: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「Ruby」> ʕʘʘʔ

「scala」> ʕʘʘʔ

10月頃のある日

Page 232: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「Ruby」> ʕʘʘʔ

「scala」> ʕʘʘʔ

「golang」> ʕʘʘʔ

10月頃のある日

Page 233: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「Ruby」> ʕʘʘʔ

「scala」> ʕʘʘʔ

「golang」> ʕʘʘʔ

「er lang」> ʕʘʘʔ

10月頃のある日

Page 234: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

ʕº ºʔ<「それはもちろん」

10月頃のある日

Page 235: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

ʕº ºʔ<「それはもちろん」 ʕº ºʔ<「日本人だったらやっぱり」

10月頃のある日

Page 236: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

ʕº ºʔ<「それはもちろん」 ʕº ºʔ<「日本人だったらやっぱり」 ʕº ºʔ<「JavaScriptですよね。」

10月頃のある日

Page 237: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「(俺嫌いなんだよな . . .)」> ʕʘʘʔ

10月頃のある日

Page 238: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「(俺嫌いなんだよな . . .)」> ʕʘʘʔ

「森川さん」> ʕʘʘʔ

10月頃のある日

Page 239: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「(俺嫌いなんだよな . . .)」> ʕʘʘʔ

「森川さん」> ʕʘʘʔ

「未来を見ましょう」> ʕʘʘʔ

10月頃のある日

Page 240: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

「(俺嫌いなんだよな . . .)」> ʕʘʘʔ

「森川さん」> ʕʘʘʔ

「未来を見ましょう」> ʕʘʘʔ

「今はその時期じゃないでしょう . . .!」> ʕʘʘʔ

10月頃のある日

Page 241: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

ʕº ºʔ<「確かに . . .」

10月頃のある日

Page 242: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

ʕº ºʔ<「確かに . . .」 ʕº ºʔ<「分かりました . . .」

10月頃のある日

Page 243: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

Copyright © 2009-2015 eureka, inc. All rights reserved.

ʕº ºʔ<「確かに . . .」 ʕº ºʔ<「分かりました . . .」 ʕº ºʔ<「じゃあ◯◯で。」

10月頃のある日

Page 244: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
Page 245: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
Page 246: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
Page 247: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
Page 248: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

え?俺?

Page 249: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

鋭意、開発中!!

Page 250: 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版

To be continued…