SlideShare ist ein Scribd-Unternehmen logo
1 von 250
Downloaden Sie, um offline zu lesen
Copyright © 2009-2015 eureka, inc. All rights reserved.	
会員数180万人のマッチングサービスpairsの
急成長を支える技術基盤
Takuma Morikawa / Eureka, Inc.
Copyright © 2009-2015 eureka, inc. All rights reserved.	
訂正
会員数180万人のマッチングサービスpairsの
急成長を支える技術基盤
Copyright © 2009-2015 eureka, inc. All rights reserved.	
訂正
会員数180万人のマッチングサービスpairsの
急成長を支える技術基盤
↓ + 1 0 0 , 0 0 0
Copyright © 2009-2015 eureka, inc. All rights reserved.	
訂正
会員数180万人のマッチングサービスpairsの
急成長を支える技術基盤
↓ + 1 0 0 , 0 0 0
会員数190万人のマッチングサービスpairsの
急成長を支える技術基盤
Copyright © 2009-2015 eureka, inc. All rights reserved.	
1. エウレカについて
2. サービスのスケール∼pairs編∼
3. そして伝説へ…
もくじ
Copyright © 2009-2015 eureka, inc. All rights reserved.	
1. エウレカについて
2. サービスのスケール∼pairs編∼
3. そして伝説へ…
もくじ
エウレカについて
About eureka
Copyright © 2009-2015 eureka, inc. All rights reserved.	
で、あんた誰?
・pairsのサーバーサイド全般を担当
・エウレカは2014年2月から
・お雑煮が好きです
pairsについて
About pairs
F a c e b o o k の ソ ー シ ャ ル グ ラ フ を 活 用 し た
O n l i n e D a t i n g サ ー ビ ス
【pairsのシステム特性】
現在、月間10億PV・スクリーンビュー超
・多対多のSNSなので、ユーザーの登録数に対して、指数関数的に
負荷が上がる
⇒  今日は余裕でも、明日はそうじゃないかも…
・ゲーム並のキャンペーン展開
=> キャンペーンの種類によって負荷のアップダウンが激しい
・接点0からはじまるコミュニケーションを提供するサービスなの
で、デリケートな配慮が必要
=> 不具合はもちろんちょっとした仕様やUXの配慮の足りなさが、
クリティカルになる
Copyright © 2009-2015 eureka, inc. All rights reserved.	
1. エウレカについて
2. サービスのスケール∼pairs編∼
3. そして伝説へ…
もくじ
サービスのスケール
Scale of service
Copyright © 2009-2015 eureka, inc. All rights reserved.	
私が入ってちょうど一年くらい経ちました。
(2014年2月∼)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
入った頃について、少し昔話をします。
Copyright © 2009-2015 eureka, inc. All rights reserved.	
あのころのわたし
Copyright © 2009-2015 eureka, inc. All rights reserved.	
あのころのわたし
(半年間の FPS 出来事は長いので省略)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
あのころのわたし年表
8月(PHPがイヤで)前の会社を退職
9月 無職を謳歌する
10月 無職を謳歌する
11月 現金資産が目減りを始める
12月 現金資産がそこをついてくる...
1月 give me chocolate
Copyright © 2009-2015 eureka, inc. All rights reserved.	
あのころのわたし年表
8月(PHPがイヤで)前の会社を退職
9月 無職を謳歌する
10月 無職を謳歌する
11月 現金資産が目減りを始める
12月 現金資産がそこをついてくる...
1月 give me chocolate
2月 わけあって、エウレカへJOIN! ←New!
Copyright © 2009-2015 eureka, inc. All rights reserved.	
pairsの事例を用いて、サービスの拡大と
ともに、どのようにシステムをスケールし
ていったか、ざっくりとお話します。
サービスのスケール
Copyright © 2009-2015 eureka, inc. All rights reserved.	
4つのプチストーリー
1) はじめてのリリース編
2) リニューアル編
3) RDB使えますか編
4) FIFO or LIFO編
Copyright © 2009-2015 eureka, inc. All rights reserved.	
∼ はじめてのリリース ∼
第壱話
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース
ʕº̫͡ºʔ(私=森川)        (ボス)ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 入社日(2月)
ʕº̫͡ºʔ< 「よろしくお願いいたします。」
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 入社日(2月)
ʕº̫͡ºʔ< 「よろしくお願いいたします。」
「緊張しないでくださいね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「席はここです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 入社日
ʕº̫͡ºʔ< o00(FPS以外のことをするのは久しぶりだな...)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 入社日
ʕº̫͡ºʔ< o00(FPS以外のことをするのは久しぶりだな...)
ʕº̫͡ºʔ< o00(キーボード無しで人と会話できるだろうか...)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 入社日
「...というわけでこんな感じで修正お願いします」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 入社日
「...というわけでこんな感じで修正お願いします」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ< 「かしこまりました。」
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 入社日
ʕº̫͡ºʔ< o00(...)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 入社日
ʕº̫͡ºʔ< o00(...)
ʕº̫͡ºʔ< o00(またPHPか...)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
ʕº̫͡ºʔ< (カタカタカタ..)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
ʕº̫͡ºʔ< (カタカタカタ..)
ʕº̫͡ºʔ< (git push [enter]  ターン!! ) ←打 音
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
ʕº̫͡ºʔ< (カタカタカタ..)
ʕº̫͡ºʔ< (git push [enter]  ターン!! )
ʕº̫͡ºʔ< (しばしドヤ顔。)
←打 音
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
ʕº̫͡ºʔ< 「修正終わりました」
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
ʕº̫͡ºʔ< 「修正終わりました」
「お、ありがとう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
「では...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
「では...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「今からリリースしちゃいます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
「では...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「今からリリースしちゃいます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ< o00(ええ!さすがC向けサービス。サイクルが早い..)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「軽微なバグも影響が大きいんですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「軽微なバグも影響が大きいんですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「新規の滞在時間低下は売上に影響ありますし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「軽微なバグも影響が大きいんですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「新規の滞在時間低下は売上に影響ありますし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「既存のDAUが下がると...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「軽微なバグも影響が大きいんですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「新規の滞在時間低下は売上に影響ありますし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「既存のDAUが下がると...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ< o00(なんか、わからんけどすごい...)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
「森川さんにはリリースも担当してもらいたいので」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
「森川さんにはリリースも担当してもらいたいので」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「ちゃんと手順見てて下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: 一週間くらいして
「森川さんにはリリースも担当してもらいたいので」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「ちゃんと手順見てて下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ< o00(おお...緊張してきた...)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「まあ、簡単なんで!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「まあ、簡単なんで!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「まずWebサーバーに入ります...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「まあ、簡単なんで!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「まずWebサーバーに入ります...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「$ ssh srv-01」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「まあ、簡単なんで!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「まずWebサーバーに入ります...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「$ ssh srv-01」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ< o00(メモメモ...✍)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「そして公開ディレクトリに移動します」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「そして公開ディレクトリに移動します」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「$ cd /path/to っと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「そして公開ディレクトリに移動します」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「$ cd /path/to っと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ<「ふむふむ…」
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「そこでおもむろに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「そこでおもむろに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「$ git pull」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「そこでおもむろに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「$ git pull」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「ターン!(エンターキーを叩きつける)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「そこでおもむろに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「$ git pull」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「ターン!(エンターキーを叩きつける)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ< o00(えっ)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「remote counting objects...」> bash
「create mode 100644 controller/user.php (100%)」> bash
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「remote counting objects...」> bash
「create mode 100644 controller/user.php (100%)」> bash
ʕº̫͡ºʔ< o00(あ...)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「さて...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「さて...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「これで、リリースは終わりです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「さて...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「これで、リリースは終わりです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
( ิ ω ิ ) o00(ぽかーん)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「あっ! あとはapp.confを編集して...と」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「あっ! あとはapp.confを編集して...と」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「$ vi app.conf」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「あっ! あとはapp.confを編集して...と」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「$ vi app.conf」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
( ิ ω ิ )<「e?」
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「ここと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「ここと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「この部分を書き換えて下さい。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「ここと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「この部分を書き換えて下さい。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「ま、1,2行だけなんで」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「ここと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「この部分を書き換えて下さい。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「ま、1,2行だけなんで」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
( ิ ω ิ )<「」
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「2台目も同様に行います」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「2台目も同様に行います」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「git pull [enter](ターン)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「書き換えを忘れないようにしないとですね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「書き換えを忘れないようにしないとですね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
( ิ ω ิ )<「あ、あの」
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「なんですか?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「なんですか?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
( ิ ω ิ )<「ロールバックはどうするんですか...?」
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
(ちっ…git初心者かよ…)> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
(ちっ…git初心者かよ…)> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
(gitさんのスゴサ、教えてやるか…)> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「git checkout」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「git checkout」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「あるじゃないですかぁ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「git checkout」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「あるじゃないですかぁ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「git reset --hard HEAD^ でもいいですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「ただし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「ただし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「設定ファイルの書き換えは忘れないで下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
「ただし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「設定ファイルの書き換えは忘れないで下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
( ิ ω ิ )<「お、おう...」
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
正直
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: コードデプロイ
しんどい
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: pairs@2014-02
この時のpairsは…
Copyright © 2009-2015 eureka, inc. All rights reserved.	
はじめてのリリース: pairs@2014-02
■ pairsの登録者数
・80万人
■ pairsの売上
・1週間の売上=年収のx倍くらい
Copyright © 2009-2015 eureka, inc. All rights reserved.	
2014年2月頃の開発体制
Copyright © 2009-2015 eureka, inc. All rights reserved.	
2014年2月頃の開発体制
一般的…?
Copyright © 2009-2015 eureka, inc. All rights reserved.	
・AWSを使用したPHP x MySQL
-  非VPCの全てフラットな構成
・デプロイ
-  $ git pull
・ロールバック
-  $ git checkout
2014年2月頃のpairs
Copyright © 2009-2015 eureka, inc. All rights reserved.	
・AWSを使用したPHP x MySQL
-  非VPCの全てフラットな構成
・デプロイ
-  $ git pull
・ロールバック
-  $ git checkout
2014年2月頃のpairs
やっぱしんどい…
Copyright © 2009-2015 eureka, inc. All rights reserved.	
ʕº̫͡ºʔ<「…」
はじめてのリリースを終えて…
Copyright © 2009-2015 eureka, inc. All rights reserved.	
ʕº̫͡ºʔ<「…」
ʕº̫͡ºʔ<「また…」
はじめてのリリースを終えて…
Copyright © 2009-2015 eureka, inc. All rights reserved.	
ʕº̫͡ºʔ<「…」
ʕº̫͡ºʔ<「また…」
ʕº̫͡ºʔ<「PHPか…」
はじめてのリリースを終えて…
Copyright © 2009-2015 eureka, inc. All rights reserved.	
∼ はじめてのリリース ∼
完
第壱話
Copyright © 2009-2015 eureka, inc. All rights reserved.	
∼ リニューアル ∼
第弐話
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル: 入社一ヶ月くらいのある日
「突然ですが」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル: 入社一ヶ月くらいのある日
「突然ですが」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「諸事情により、UIを全部変えます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル: 入社一ヶ月くらいのある日
「突然ですが」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「諸事情により、UIを全部変えます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「なのでPHP、JS、インフラ全てお願いします」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル: 入社一ヶ月くらいのある日
「突然ですが」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「諸事情により、UIを全部変えます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「なのでPHP、JS、インフラ全てお願いします」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ< o00(クレイジー...)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
説明しよう!
リニューアル
Copyright © 2009-2015 eureka, inc. All rights reserved.	
pairsのインフラとは
リニューアル
Copyright © 2009-2015 eureka, inc. All rights reserved.	
AWSのコンポーネントを
フル活用した
リニューアル
Copyright © 2009-2015 eureka, inc. All rights reserved.	
こんな感じである!
リニューアル
Copyright © 2009-2015 eureka, inc. All rights reserved.	
■ Web(App)
 ・EC2 2台
■ データベース
 ・RDS(MySQL)2台
■ キャッシュ
 ・ElastiCache(Memcache)2台
当時のpairsメインシステム(簡易版)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
じゃん!
リニューアル
Copyright © 2009-2015 eureka, inc. All rights reserved.	
あれ…
リニューアル
Copyright © 2009-2015 eureka, inc. All rights reserved.	
なんだこれ...
全開放...?
MPやん
どこにログ保存してるんだ
ユーザー管理したいんだけど
スケーラビリティが...
Copyright © 2009-2015 eureka, inc. All rights reserved.	
なんだこれ...
全開放...?
MPやん
どこにログ保存してるんだ
ユーザー管理したいんだけど
スケーラビリティが...
しんどい
Copyright © 2009-2015 eureka, inc. All rights reserved.	
でも
リニューアル
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアルでは
ダウンタイムが取れるので
リニューアル
Copyright © 2009-2015 eureka, inc. All rights reserved.	
1から作りなおしました
リニューアル
Copyright © 2009-2015 eureka, inc. All rights reserved.	
システム構成図
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル前
(簡略版)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
堅牢なセキュリティ!
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
堅牢なセキュリティ!
詳細な権限設定!
Copyright © 2009-2015 eureka, inc. All rights reserved.	
VPC(AWS仮想プライベートクラウド)
EC2-Classic	
 VPC内	
サブネット	
 共有	
 専用	
アプリ間接続	
 インターネット経由	
 プライベート	
N/W設計	
 全開放	
 オンプレなみ	
セキュリティ	
 SGのみ	
 SG+Subnetごとの
ACL&private NW
Copyright © 2009-2015 eureka, inc. All rights reserved.	
VPC化@pairs
・EC2-Classicな構成で稼働していた
・VPCに既存のサーバーは追加できない
=> VPCの中にECを新規で作成
※ 最近は移行ツールができている模様…
Copyright © 2009-2015 eureka, inc. All rights reserved.	
VPC化@あたし
・はじめてのVPC(VPC歴 1日)
・AWS歴 20日くらい
・もちろん、かなりはまる
- NetworkACLのレスポンスとか…
Copyright © 2009-2015 eureka, inc. All rights reserved.	
IAM(権限管理)
・アプリケーションに詳細なAWS権限を付与できる
- VPCじゃなくても元々できるやつ
・サーバーに詳細なAWS権限を付与できる
- ステージングか ら本番へのアクセス不可とか
- 擬似本番はR e a d だけ 許可とか
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
柔軟なログ収集!
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
柔軟なログ収集!
そしてデータ可視化!
Copyright © 2009-2015 eureka, inc. All rights reserved.	
導入の経緯
a) アプリケーションの高速化を行いたい
- 担当者が応答速 度を集計するのが手間
- 集計結果もチェ ックしなければならない
b) ログのロストを防ぎたい
- 気軽に Web の作成・追加・削除を実行し たい
- 証跡を残す(事件や犯罪のログになり得 る)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
fluentdによるログ収集
・いい感じにログ収集してくれます
- 再送機能
- パフォーマンス
- 豊富なプラグイン
-> S3への保存も簡単
-> ElasticSearchへの送信も簡単
Copyright © 2009-2015 eureka, inc. All rights reserved.	
ElasticSearch
・全文検索エンジン
・luceneクエリ使える
・REST APIとJSONでいい感じに操作できる
Copyright © 2009-2015 eureka, inc. All rights reserved.	
kibana
・いい感じにグラフ化できるダッシュボード
・ElasticSearchを裏側で利用
Copyright © 2009-2015 eureka, inc. All rights reserved.	
連携図
Copyright © 2009-2015 eureka, inc. All rights reserved.	
導入の結果
a) アプリケーションの高速化を行いたい
 => 応 答速度の可視化
 => 正 社員以外にも集計が可能になった
 => ト ータルで1 秒以上の改善を実行できた
ʕº̫͡ºʔo00(アプリのテキストログの集計もしたい…)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
ブログ記事
http://eure.jp/blog/fluentd_elasticsearch_kibana/
kibanaとElasticSearchによる可視化
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
内部から死活監視!
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
外部からパフォーマンス監視!
内部から死活監視!
Copyright © 2009-2015 eureka, inc. All rights reserved.	
監視システム Zabbix
・様々なデータを監視できる
-  分間アクセス数・ロック数・登録者数
・しきい値を超えたらアラート
-  メール・チャット・電話 etc...
・しきい値を超えたらアクション実行
-  Apache再起動・DBクエリ抽出
Copyright © 2009-2015 eureka, inc. All rights reserved.	
監視システム NewRelic
・手軽
・一般的なサーバーの監視
・アプリケーションの監視
-  様々な言語に対応
-  応答速度の内訳を可視化できる
・DB/キャッシュ/アプリ/レンダリング
-  アプリエラー率も補足可能
Copyright © 2009-2015 eureka, inc. All rights reserved.	
監視システム NewRelic
・手軽
・一般的なサーバーの監視
・アプリケーションの監視
-  様々な言語に対応
-  応答速度の内訳を可視化できる
・DB/キャッシュ/アプリ/レンダリング
-  アプリエラー率も補足可能
Copyright © 2009-2015 eureka, inc. All rights reserved.	
監視システム NewRelic
・サーバー監視サービスのインストール
=> 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
Copyright © 2009-2015 eureka, inc. All rights reserved.	
監視システム NewRelic
・アプリ監視サービスのインストール
=> 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
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
そして一貫したデプロイ!
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
そして一貫したデプロイ!
Forever Git Pull!
Copyright © 2009-2015 eureka, inc. All rights reserved.	
Capistranoによるデプロイ
・デプロイ&ロールバック!
・全て/特定 のサーバーに対して同一作業
・意外に色々できます
-  緊 急 メ ン テ 対 応
-  リ ア ル タ イ ム ロ グ 監 視
-  メ ー ル レ ポ ー テ ィ ン グ
Copyright © 2009-2015 eureka, inc. All rights reserved.	
デプロイと監視 ∼新機能リリース∼
1) Capistranoでデプロイする
Copyright © 2009-2015 eureka, inc. All rights reserved.	
デプロイと監視 ∼新機能リリース∼
1) Capistranoでデプロイする
2) ʕº̫͡ºʔo00(バグ混入)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
デプロイと監視 ∼新機能リリース∼
1) Capistranoでデプロイする
2) ʕº̫͡ºʔo00(バグ混入)
3) PHPのNoticeエラー上昇! 
Copyright © 2009-2015 eureka, inc. All rights reserved.	
デプロイと監視 ∼新機能リリース∼
1) Capistranoでデプロイする
2) ʕº̫͡ºʔo00(バグ混入)
3) PHPのNoticeエラー上昇! 
4) NewRelicからSlackへ通知
Copyright © 2009-2015 eureka, inc. All rights reserved.	
デプロイと監視 ∼新機能リリース∼
1) Capistranoでデプロイする
2) ʕº̫͡ºʔo00(バグ混入)
3) PHPのNoticeエラー上昇! 
4) NewRelicからSlackへ通知
5) (通知でiPhoneが振動する)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
デプロイと監視 ∼新機能リリース∼
1) Capistranoでデプロイする
2) ʕº̫͡ºʔo00(バグ混入)
3) PHPのNoticeエラー上昇! 
4) NewRelicからSlackへ通知
5) (通知でiPhoneが振動する)
6) 起きる(むくり ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
デプロイと監視 ∼新キャンペーン∼
1) Capistranoでデプロイする
Copyright © 2009-2015 eureka, inc. All rights reserved.	
デプロイと監視 ∼新キャンペーン∼
1) Capistranoでデプロイする
2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
デプロイと監視 ∼新キャンペーン∼
1) Capistranoでデプロイする
2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始)
3) DBコネクション・ロック待ち上昇 
Copyright © 2009-2015 eureka, inc. All rights reserved.	
デプロイと監視 ∼新キャンペーン∼
1) Capistranoでデプロイする
2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始)
3) DBコネクション・ロック待ち上昇 
4) NewRelicからSlackへ通知
Copyright © 2009-2015 eureka, inc. All rights reserved.	
デプロイと監視 ∼新キャンペーン∼
1) Capistranoでデプロイする
2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始)
3) DBコネクション・ロック待ち上昇 
4) NewRelicからSlackへ通知
5) (通知でiPhoneが振動する)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
デプロイと監視 ∼新キャンペーン∼
1) Capistranoでデプロイする
2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始)
3) DBコネクション・ロック待ち上昇 
4) NewRelicからSlackへ通知
5) (通知でiPhoneが振動する)
6) 起きる(むくり ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
Slack
・チャットツール
・美しさ × IRCの使いやすさ
・API操作
Copyright © 2009-2015 eureka, inc. All rights reserved.	
Slack 監視用チャンネル
Copyright © 2009-2015 eureka, inc. All rights reserved.	
Slack 監視用チャンネル
Copyright © 2009-2015 eureka, inc. All rights reserved.	
Slack 監視用チャンネル
Copyright © 2009-2015 eureka, inc. All rights reserved.	
総評
ʕº̫͡ºʔ<「VPC化は早めにやってよかった」
ʕº̫͡ºʔ<「ログシステムは少し持て余し気味」
ʕº̫͡ºʔ<「NewRelic抜きでデプロイはもはや怖い」
ʕº̫͡ºʔ<「Capistranoはたまに失敗してかわいい」
ʕº̫͡ºʔ<「Slack便利」
Copyright © 2009-2015 eureka, inc. All rights reserved.	
∼ リニューアル ∼
完
第弐話
Copyright © 2009-2015 eureka, inc. All rights reserved.	
∼ RDB使えますか∼
第参話
Copyright © 2009-2015 eureka, inc. All rights reserved.	
RDB使えますか
「UIリニューアルも終わり、一段落したね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
RDB使えますか
「UIリニューアルも終わり、一段落したね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「あとは私がバイオレンスな気分にならぬよう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
RDB使えますか
「UIリニューアルも終わり、一段落したね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「あとは私がバイオレンスな気分にならぬよう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「DBマスターの負荷を下げるだけですね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
RDB使えますか
「UIリニューアルも終わり、一段落したね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「あとは私がバイオレンスな気分にならぬよう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「DBマスターの負荷を下げるだけですね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ<「そ、そうですね...」
Copyright © 2009-2015 eureka, inc. All rights reserved.	
RDB使えますか
「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
RDB使えますか
「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「台風が過ぎ去る前に"カタ"をつけてください」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
RDB使えますか
「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「台風が過ぎ去る前に"カタ"をつけてください」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「さもなくば私が"台風の目"となります」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
Copyright © 2009-2015 eureka, inc. All rights reserved.	
RDB使えますか
「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「台風が過ぎ去る前に"カタ"をつけてください」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「さもなくば私が"台風の目"となります」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ<「そ、そうですか...」
Copyright © 2009-2015 eureka, inc. All rights reserved.	
RDB使えますか
「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「台風が過ぎ去る前に"カタ"をつけてください」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「さもなくば私が"台風の目"となります」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ<「そ、そうですか...」
ʕº̫͡ºʔo00( …)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
説明しよう!
RDB使えますか
Copyright © 2009-2015 eureka, inc. All rights reserved.	
この時pairsは
RDB使えますか
Copyright © 2009-2015 eureka, inc. All rights reserved.	
DBマスターの
負荷が問題で
RDB使えますか
Copyright © 2009-2015 eureka, inc. All rights reserved.	
非常に困っていた
RDB使えますか
Copyright © 2009-2015 eureka, inc. All rights reserved.	
・単一サーバ/テーブルに負荷がかかる設計
- 初期のDB設計のまま
- シャーディングできず
・スレーブに検索クエリを移し終えていた
・マスターは限界までスケールアップ済み
・/(^o^)\
RDB使えますか
Copyright © 2009-2015 eureka, inc. All rights reserved.	
よろしい、ならば…
非RDBだ!
RDB使えますか
Copyright © 2009-2015 eureka, inc. All rights reserved.	
新たなデータストアを探して
・ファイルに保存
・R e d i s
・MongoDB
・C a s s a n d r a (+ xxx万円給料上げて欲しい )
=> p e r l製の掲示板の時代に逆戻り!
=> かわいい。でも今回は様々な要因で除外
=> かわいい。でも運用面倒
=> こわい。
Copyright © 2009-2015 eureka, inc. All rights reserved.	
そこで…
RDB使えますか
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
リニューアル後
(簡略版)
Copyright © 2009-2015 eureka, inc. All rights reserved.	
DynamoDB
RDB使えますか
Copyright © 2009-2015 eureka, inc. All rights reserved.	
・簡単にスケールする書き込み負荷
・運用の手間なし
・見た目はこわいけど根は優しい
(・社内のカップルアプリCouplesでも利用事例あり)
DynamoDB
Copyright © 2009-2015 eureka, inc. All rights reserved.	
・ちょっとわかりづらい
・JOINするようなデータ集計は難しい
・厳密なトランザクションは難しい
・AWSから離れられなくなるリスク…
DynamoDBのダークサイド
Copyright © 2009-2015 eureka, inc. All rights reserved.	
DynamoDBにした結果…
RDB使えますか
Copyright © 2009-2015 eureka, inc. All rights reserved.	
DynamoDBにした結果…
RDB使えますか
負荷85-95%
負荷75%以下に
Copyright © 2009-2015 eureka, inc. All rights reserved.	
・足あと機能
・行動ログ
・通知フラグ関連
DynamoDB化の例
Copyright © 2009-2015 eureka, inc. All rights reserved.	
メール・プッシュ管理 / お知らせ /
つぶやき / ベストマッチ / 投稿フィルタ
/ キャンペーン管理 / 写真リクエスト
DynamoDB化の予定
Copyright © 2009-2015 eureka, inc. All rights reserved.	
・単一ユーザーで完結するデータ取得は向いている
・RDBのような集計クエリが使えない
- リアルタイム集計はちょっとN Gプレイ
- バッチ処理での解析はできる
- ただしプログラムを書く必要あり
DynamoDBをつかってみて
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「やはり”足あと機能”でしたね。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
DynamoDBをつかってみて
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「やはり”足あと機能”でしたね。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ<「はい。そう思ってました。」
DynamoDBをつかってみて
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「やはり”足あと機能”でしたね。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ<「はい。そう思ってました。」
ʕº̫͡ºʔo00(本当にそうだったとは…)
DynamoDBをつかってみて
Copyright © 2009-2015 eureka, inc. All rights reserved.	
∼ RDB使えますか∼
完
第参話
Copyright © 2009-2015 eureka, inc. All rights reserved.	
∼ FIFO or LIFO ∼
第四話
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「Dynamoのついでに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
FIFO
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「Dynamoのついでに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「キュー化もしときましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
FIFO
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「Dynamoのついでに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「キュー化もしときましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ< o00(ついで…?)
FIFO
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「Dynamoのついでに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「キュー化もしときましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ< o00(ついで…?)
ʕº̫͡ºʔ< 「わかりました。何使ってもいいですか?」
FIFO
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「SQS使って下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
FIFO
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「SQS使って下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ< 「直接SQSで大丈夫ですかね…?」
FIFO
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「SQSを」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
FIFO
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「SQSを」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「信じましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
FIFO
Copyright © 2009-2015 eureka, inc. All rights reserved.	
・AWSのメッセージキューサービス
・MQサーバーの運用をしなくてよい
・要件によっては多少注意が必要
・厳密なFIFOにはならない
・指定件数取りたい場合は要工夫
SQS
Copyright © 2009-2015 eureka, inc. All rights reserved.	
・パフォーマンス / 耐障害性
 - ローカルでキューイングした方が良いのでは?
 - TCP接続のコストって大丈夫?
 - SQSが落ちたらどうしよう
SQSを考える
Copyright © 2009-2015 eureka, inc. All rights reserved.	
わたしは、
ボスSQSを信じました。
SQS
Copyright © 2009-2015 eureka, inc. All rights reserved.	
その結果…
SQS
Copyright © 2009-2015 eureka, inc. All rights reserved.	
余裕で捌きました
6万リクエスト / 1h
SQS
Copyright © 2009-2015 eureka, inc. All rights reserved.	
・半年以上落ちることもなく安定して動いています
・パフォーマンスも安定しており、スループット課
金ではないので、コストを気にしないでもOK
・最悪ロストしてよいデータだけ入れる
SQS後
Copyright © 2009-2015 eureka, inc. All rights reserved.	
∼ FIFO or LIFO ∼
完
第四話
Copyright © 2009-2015 eureka, inc. All rights reserved.	
1. エウレカについて
2. サービスのスケール∼pairs編∼
3. そして伝説へ…
もくじ
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「このコードは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「このコードは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「このスキーマは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「このコードは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「このスキーマは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「愛が欲しい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「時に、森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「時に、森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ<「はい、なんでしょうか」
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「時に、森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
ʕº̫͡ºʔ<「はい、なんでしょうか」
ʕº̫͡ºʔ< o00(やべーな、この人...)
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「問題です。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「問題です。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「次のうち、もっとも愛くるしいのは」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「問題です。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「次のうち、もっとも愛くるしいのは」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「どいつ?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「Ruby」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「Ruby」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「scala」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「Ruby」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「scala」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「golang」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「Ruby」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「scala」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「golang」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「erlang」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
ʕº̫͡ºʔ<「それはもちろん」
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
ʕº̫͡ºʔ<「それはもちろん」
ʕº̫͡ºʔ<「日本人だったらやっぱり」
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
ʕº̫͡ºʔ<「それはもちろん」
ʕº̫͡ºʔ<「日本人だったらやっぱり」
ʕº̫͡ºʔ<「JavaScriptですよね。」
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「(俺嫌いなんだよな...)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「(俺嫌いなんだよな...)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「(俺嫌いなんだよな...)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「未来を見ましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
「(俺嫌いなんだよな...)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「未来を見ましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
「今はその時期じゃないでしょう...!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
ʕº̫͡ºʔ<「確かに...」
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
ʕº̫͡ºʔ<「確かに...」
ʕº̫͡ºʔ<「分かりました...」
10月頃のある日
Copyright © 2009-2015 eureka, inc. All rights reserved.	
ʕº̫͡ºʔ<「確かに...」
ʕº̫͡ºʔ<「分かりました...」
ʕº̫͡ºʔ<「じゃあ⃝⃝で。」
10月頃のある日
え?俺?
鋭意、開発中!!
To be continued…

Weitere ähnliche Inhalte

Andere mochten auch

SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法
SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法
SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法Hideyuki Takeuchi
 
mixiスマートフォン戦略
mixiスマートフォン戦略mixiスマートフォン戦略
mixiスマートフォン戦略mixiPR
 
Gitとローカル環境
Gitとローカル環境Gitとローカル環境
Gitとローカル環境Atsushi Ito
 
Designer Meetup #1 | @Goodpatch
Designer Meetup #1 | @GoodpatchDesigner Meetup #1 | @Goodpatch
Designer Meetup #1 | @GoodpatchSho Kameya
 
Couplesを10ヶ月で200万ダウンロードに導いたデザインとは
Couplesを10ヶ月で200万ダウンロードに導いたデザインとはCouplesを10ヶ月で200万ダウンロードに導いたデザインとは
Couplesを10ヶ月で200万ダウンロードに導いたデザインとはSho Kameya
 
20150207 dots ラクスルの開発体制
20150207 dots ラクスルの開発体制20150207 dots ラクスルの開発体制
20150207 dots ラクスルの開発体制Raksul Inc.
 
分かりやすいグラフを作れるようになる講座の紹介
分かりやすいグラフを作れるようになる講座の紹介分かりやすいグラフを作れるようになる講座の紹介
分かりやすいグラフを作れるようになる講座の紹介Shoe-g Ueyama
 
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのかKatsunori Kanda
 
Treasure Data and OSS
Treasure Data and OSSTreasure Data and OSS
Treasure Data and OSSN Masahiro
 
Gradleでビルドするandroid NDKアプリ
Gradleでビルドするandroid NDKアプリGradleでビルドするandroid NDKアプリ
Gradleでビルドするandroid NDKアプリHideyuki Kikuma
 
500 StartupsのBatch17登壇企業42社をまとめてご紹介! DEMO DAY THE MOVIE 3rd Season
500 StartupsのBatch17登壇企業42社をまとめてご紹介! DEMO DAY THE MOVIE 3rd Season500 StartupsのBatch17登壇企業42社をまとめてご紹介! DEMO DAY THE MOVIE 3rd Season
500 StartupsのBatch17登壇企業42社をまとめてご紹介! DEMO DAY THE MOVIE 3rd Season500 Startups Japan
 
(自分流)Gitの運用ルール
(自分流)Gitの運用ルール(自分流)Gitの運用ルール
(自分流)Gitの運用ルールErina Takei
 
DECOPICにおけるものづくりの考え方
DECOPICにおけるものづくりの考え方DECOPICにおけるものづくりの考え方
DECOPICにおけるものづくりの考え方Ryosuke Matsumoto
 
Retty流 ユーザーHappyのつくりかた
Retty流 ユーザーHappyのつくりかたRetty流 ユーザーHappyのつくりかた
Retty流 ユーザーHappyのつくりかたYusuke Kondo
 
SchooUX授業1/2_松本_mercari
SchooUX授業1/2_松本_mercariSchooUX授業1/2_松本_mercari
SchooUX授業1/2_松本_mercariRyosuke Matsumoto
 

Andere mochten auch (20)

SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法
SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法
SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法
 
golintを使おう
golintを使おうgolintを使おう
golintを使おう
 
git ~start PullRequest~
git ~start PullRequest~git ~start PullRequest~
git ~start PullRequest~
 
mixiスマートフォン戦略
mixiスマートフォン戦略mixiスマートフォン戦略
mixiスマートフォン戦略
 
Gitとローカル環境
Gitとローカル環境Gitとローカル環境
Gitとローカル環境
 
Designer Meetup #1 | @Goodpatch
Designer Meetup #1 | @GoodpatchDesigner Meetup #1 | @Goodpatch
Designer Meetup #1 | @Goodpatch
 
Couplesを10ヶ月で200万ダウンロードに導いたデザインとは
Couplesを10ヶ月で200万ダウンロードに導いたデザインとはCouplesを10ヶ月で200万ダウンロードに導いたデザインとは
Couplesを10ヶ月で200万ダウンロードに導いたデザインとは
 
20150207 dots ラクスルの開発体制
20150207 dots ラクスルの開発体制20150207 dots ラクスルの開発体制
20150207 dots ラクスルの開発体制
 
分かりやすいグラフを作れるようになる講座の紹介
分かりやすいグラフを作れるようになる講座の紹介分かりやすいグラフを作れるようになる講座の紹介
分かりやすいグラフを作れるようになる講座の紹介
 
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか
 
Treasure Data and OSS
Treasure Data and OSSTreasure Data and OSS
Treasure Data and OSS
 
Gradleでビルドするandroid NDKアプリ
Gradleでビルドするandroid NDKアプリGradleでビルドするandroid NDKアプリ
Gradleでビルドするandroid NDKアプリ
 
500 StartupsのBatch17登壇企業42社をまとめてご紹介! DEMO DAY THE MOVIE 3rd Season
500 StartupsのBatch17登壇企業42社をまとめてご紹介! DEMO DAY THE MOVIE 3rd Season500 StartupsのBatch17登壇企業42社をまとめてご紹介! DEMO DAY THE MOVIE 3rd Season
500 StartupsのBatch17登壇企業42社をまとめてご紹介! DEMO DAY THE MOVIE 3rd Season
 
(自分流)Gitの運用ルール
(自分流)Gitの運用ルール(自分流)Gitの運用ルール
(自分流)Gitの運用ルール
 
STEPPER
STEPPERSTEPPER
STEPPER
 
DECOPICにおけるものづくりの考え方
DECOPICにおけるものづくりの考え方DECOPICにおけるものづくりの考え方
DECOPICにおけるものづくりの考え方
 
Retty流 ユーザーHappyのつくりかた
Retty流 ユーザーHappyのつくりかたRetty流 ユーザーHappyのつくりかた
Retty流 ユーザーHappyのつくりかた
 
SchooUX授業1/2_松本_mercari
SchooUX授業1/2_松本_mercariSchooUX授業1/2_松本_mercari
SchooUX授業1/2_松本_mercari
 
市場予測から見るアプリマーケティングの未来
市場予測から見るアプリマーケティングの未来市場予測から見るアプリマーケティングの未来
市場予測から見るアプリマーケティングの未来
 
まいにちUX
まいにちUXまいにちUX
まいにちUX
 

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

2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」aitc_jp
 
NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野livedoor
 
2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptx
2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptx2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptx
2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptxhiroomasumi
 
2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptx
2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptx2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptx
2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptxhiroomasumi
 
ソフトウェア開発の見える化
ソフトウェア開発の見える化ソフトウェア開発の見える化
ソフトウェア開発の見える化Takashi Makino
 
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る虎の穴 開発室
 
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記心 谷本
 
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦Sho Yoshida
 
Pythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターPythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターRansui Iso
 
RUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践SmalltalkRUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践SmalltalkSho Yoshida
 
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03Yahoo!デベロッパーネットワーク
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsGo Sueyoshi (a.k.a sue445)
 
「eureka x mackerel」Mackerel meetup#6
「eureka x mackerel」Mackerel meetup#6「eureka x mackerel」Mackerel meetup#6
「eureka x mackerel」Mackerel meetup#6Kento Yamashita
 
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular SessionsSpring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular SessionsTakuya Iwatsuka
 
First server to_buid_trusted_sites
First server to_buid_trusted_sitesFirst server to_buid_trusted_sites
First server to_buid_trusted_siteskrf_ueki
 
【LT「超」募集中!】リモートワークTips 超LT会 - vol.3 スタンディングデスクと、 雑談のススメ
【LT「超」募集中!】リモートワークTips 超LT会 - vol.3 スタンディングデスクと、 雑談のススメ【LT「超」募集中!】リモートワークTips 超LT会 - vol.3 スタンディングデスクと、 雑談のススメ
【LT「超」募集中!】リモートワークTips 超LT会 - vol.3 スタンディングデスクと、 雑談のススメ虎の穴 開発室
 
おうちハック発表会20160207
おうちハック発表会20160207おうちハック発表会20160207
おうちハック発表会20160207Daisuke Kimura
 
ゆるドラ運営記
ゆるドラ運営記ゆるドラ運営記
ゆるドラ運営記亮太 松本
 

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

2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
2015年5月期 AITCオープンラボ 「第二回 デジタルガジェット祭り!」
 
NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野
 
2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptx
2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptx2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptx
2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptx
 
2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptx
2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptx2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptx
2015リテールテック資料「O2O、オムニチャネルで失敗しない重要ポイント」.pptx
 
Yahoo! JAPAN の Ambari 活用事例 #yjdsnight
Yahoo! JAPAN の Ambari 活用事例 #yjdsnightYahoo! JAPAN の Ambari 活用事例 #yjdsnight
Yahoo! JAPAN の Ambari 活用事例 #yjdsnight
 
ソフトウェア開発の見える化
ソフトウェア開発の見える化ソフトウェア開発の見える化
ソフトウェア開発の見える化
 
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
 
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
 
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
 
Pythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターPythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクター
 
RUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践SmalltalkRUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践Smalltalk
 
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkins
 
「eureka x mackerel」Mackerel meetup#6
「eureka x mackerel」Mackerel meetup#6「eureka x mackerel」Mackerel meetup#6
「eureka x mackerel」Mackerel meetup#6
 
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular SessionsSpring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
 
First server to_buid_trusted_sites
First server to_buid_trusted_sitesFirst server to_buid_trusted_sites
First server to_buid_trusted_sites
 
【LT「超」募集中!】リモートワークTips 超LT会 - vol.3 スタンディングデスクと、 雑談のススメ
【LT「超」募集中!】リモートワークTips 超LT会 - vol.3 スタンディングデスクと、 雑談のススメ【LT「超」募集中!】リモートワークTips 超LT会 - vol.3 スタンディングデスクと、 雑談のススメ
【LT「超」募集中!】リモートワークTips 超LT会 - vol.3 スタンディングデスクと、 雑談のススメ
 
おうちハック発表会20160207
おうちハック発表会20160207おうちハック発表会20160207
おうちハック発表会20160207
 
React.js + Flux入門 #scripty02
React.js + Flux入門 #scripty02React.js + Flux入門 #scripty02
React.js + Flux入門 #scripty02
 
ゆるドラ運営記
ゆるドラ運営記ゆるドラ運営記
ゆるドラ運営記
 

Kürzlich hochgeladen

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Kürzlich hochgeladen (9)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

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

  • 1. Copyright © 2009-2015 eureka, inc. All rights reserved. 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 Takuma Morikawa / Eureka, Inc.
  • 2. Copyright © 2009-2015 eureka, inc. All rights reserved. 訂正 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤
  • 3. Copyright © 2009-2015 eureka, inc. All rights reserved. 訂正 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ↓ + 1 0 0 , 0 0 0
  • 4. Copyright © 2009-2015 eureka, inc. All rights reserved. 訂正 会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ↓ + 1 0 0 , 0 0 0 会員数190万人のマッチングサービスpairsの 急成長を支える技術基盤
  • 5. Copyright © 2009-2015 eureka, inc. All rights reserved. 1. エウレカについて 2. サービスのスケール∼pairs編∼ 3. そして伝説へ… もくじ
  • 6. Copyright © 2009-2015 eureka, inc. All rights reserved. 1. エウレカについて 2. サービスのスケール∼pairs編∼ 3. そして伝説へ… もくじ
  • 8.
  • 9.
  • 10.
  • 11. Copyright © 2009-2015 eureka, inc. All rights reserved. で、あんた誰? ・pairsのサーバーサイド全般を担当 ・エウレカは2014年2月から ・お雑煮が好きです
  • 13. F a c e b o o k の ソ ー シ ャ ル グ ラ フ を 活 用 し た O n l i n e D a t i n g サ ー ビ ス
  • 15. Copyright © 2009-2015 eureka, inc. All rights reserved. 1. エウレカについて 2. サービスのスケール∼pairs編∼ 3. そして伝説へ… もくじ
  • 17. Copyright © 2009-2015 eureka, inc. All rights reserved. 私が入ってちょうど一年くらい経ちました。 (2014年2月∼)
  • 18. Copyright © 2009-2015 eureka, inc. All rights reserved. 入った頃について、少し昔話をします。
  • 19. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたし
  • 20. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたし (半年間の FPS 出来事は長いので省略)
  • 21. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたし年表 8月(PHPがイヤで)前の会社を退職 9月 無職を謳歌する 10月 無職を謳歌する 11月 現金資産が目減りを始める 12月 現金資産がそこをついてくる... 1月 give me chocolate
  • 22. Copyright © 2009-2015 eureka, inc. All rights reserved. あのころのわたし年表 8月(PHPがイヤで)前の会社を退職 9月 無職を謳歌する 10月 無職を謳歌する 11月 現金資産が目減りを始める 12月 現金資産がそこをついてくる... 1月 give me chocolate 2月 わけあって、エウレカへJOIN! ←New!
  • 23. Copyright © 2009-2015 eureka, inc. All rights reserved. pairsの事例を用いて、サービスの拡大と ともに、どのようにシステムをスケールし ていったか、ざっくりとお話します。 サービスのスケール
  • 24. Copyright © 2009-2015 eureka, inc. All rights reserved. 4つのプチストーリー 1) はじめてのリリース編 2) リニューアル編 3) RDB使えますか編 4) FIFO or LIFO編
  • 25. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ はじめてのリリース ∼ 第壱話
  • 26. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース ʕº̫͡ºʔ(私=森川)        (ボス)ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 27. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日(2月) ʕº̫͡ºʔ< 「よろしくお願いいたします。」
  • 28. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日(2月) ʕº̫͡ºʔ< 「よろしくお願いいたします。」 「緊張しないでくださいね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「席はここです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 29. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日 ʕº̫͡ºʔ< o00(FPS以外のことをするのは久しぶりだな...)
  • 30. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日 ʕº̫͡ºʔ< o00(FPS以外のことをするのは久しぶりだな...) ʕº̫͡ºʔ< o00(キーボード無しで人と会話できるだろうか...)
  • 31. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日 「...というわけでこんな感じで修正お願いします」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 32. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日 「...というわけでこんな感じで修正お願いします」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< 「かしこまりました。」
  • 33. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日 ʕº̫͡ºʔ< o00(...)
  • 34. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 入社日 ʕº̫͡ºʔ< o00(...) ʕº̫͡ºʔ< o00(またPHPか...)
  • 35. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして ʕº̫͡ºʔ< (カタカタカタ..)
  • 36. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして ʕº̫͡ºʔ< (カタカタカタ..) ʕº̫͡ºʔ< (git push [enter]  ターン!! ) ←打 音
  • 37. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして ʕº̫͡ºʔ< (カタカタカタ..) ʕº̫͡ºʔ< (git push [enter]  ターン!! ) ʕº̫͡ºʔ< (しばしドヤ顔。) ←打 音
  • 38. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして ʕº̫͡ºʔ< 「修正終わりました」
  • 39. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして ʕº̫͡ºʔ< 「修正終わりました」 「お、ありがとう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 40. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「では...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 41. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「では...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「今からリリースしちゃいます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 42. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「では...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「今からリリースしちゃいます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(ええ!さすがC向けサービス。サイクルが早い..)
  • 43. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 44. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 45. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「軽微なバグも影響が大きいんですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 46. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「軽微なバグも影響が大きいんですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「新規の滞在時間低下は売上に影響ありますし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 47. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「軽微なバグも影響が大きいんですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「新規の滞在時間低下は売上に影響ありますし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「既存のDAUが下がると...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 48. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「80万人が使っているサービスですからね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「一日の売上もX万円ありますから」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「軽微なバグも影響が大きいんですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「新規の滞在時間低下は売上に影響ありますし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「既存のDAUが下がると...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(なんか、わからんけどすごい...)
  • 49. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「森川さんにはリリースも担当してもらいたいので」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 50. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「森川さんにはリリースも担当してもらいたいので」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「ちゃんと手順見てて下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 51. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: 一週間くらいして 「森川さんにはリリースも担当してもらいたいので」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「ちゃんと手順見てて下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(おお...緊張してきた...)
  • 52. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「まあ、簡単なんで!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 53. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「まあ、簡単なんで!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「まずWebサーバーに入ります...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 54. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「まあ、簡単なんで!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「まずWebサーバーに入ります...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ ssh srv-01」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 55. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「まあ、簡単なんで!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「まずWebサーバーに入ります...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ ssh srv-01」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(メモメモ...✍)
  • 56. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「そして公開ディレクトリに移動します」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 57. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「そして公開ディレクトリに移動します」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ cd /path/to っと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 58. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「そして公開ディレクトリに移動します」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ cd /path/to っと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「ふむふむ…」
  • 59. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「そこでおもむろに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 60. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「そこでおもむろに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ git pull」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 61. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「そこでおもむろに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ git pull」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「ターン!(エンターキーを叩きつける)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 62. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「そこでおもむろに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ git pull」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「ターン!(エンターキーを叩きつける)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(えっ)
  • 63. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「remote counting objects...」> bash 「create mode 100644 controller/user.php (100%)」> bash
  • 64. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「remote counting objects...」> bash 「create mode 100644 controller/user.php (100%)」> bash ʕº̫͡ºʔ< o00(あ...)
  • 65. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「さて...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 66. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「さて...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「これで、リリースは終わりです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 67. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「さて...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「これで、リリースは終わりです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ( ิ ω ิ ) o00(ぽかーん)
  • 68. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「あっ! あとはapp.confを編集して...と」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 69. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「あっ! あとはapp.confを編集して...と」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ vi app.conf」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 70. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「あっ! あとはapp.confを編集して...と」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「$ vi app.conf」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ( ิ ω ิ )<「e?」
  • 71. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「ここと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 72. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「ここと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「この部分を書き換えて下さい。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 73. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「ここと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「この部分を書き換えて下さい。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「ま、1,2行だけなんで」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 74. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「ここと...」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「この部分を書き換えて下さい。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「ま、1,2行だけなんで」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ( ิ ω ิ )<「」
  • 75. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「2台目も同様に行います」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 76. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「2台目も同様に行います」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「git pull [enter](ターン)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 77. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「書き換えを忘れないようにしないとですね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 78. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「書き換えを忘れないようにしないとですね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ( ิ ω ิ )<「あ、あの」
  • 79. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「なんですか?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 80. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「なんですか?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ( ิ ω ิ )<「ロールバックはどうするんですか...?」
  • 81. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 82. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ (ちっ…git初心者かよ…)> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 83. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ (ちっ…git初心者かよ…)> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ (gitさんのスゴサ、教えてやるか…)> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 84. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「git checkout」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 85. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「git checkout」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「あるじゃないですかぁ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 86. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「git checkout」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「あるじゃないですかぁ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「git reset --hard HEAD^ でもいいですよ」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 87. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「ただし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 88. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「ただし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「設定ファイルの書き換えは忘れないで下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 89. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 「ただし」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「設定ファイルの書き換えは忘れないで下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ( ิ ω ิ )<「お、おう...」
  • 90. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ 正直
  • 91. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: コードデプロイ しんどい
  • 92. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: pairs@2014-02 この時のpairsは…
  • 93. Copyright © 2009-2015 eureka, inc. All rights reserved. はじめてのリリース: pairs@2014-02 ■ pairsの登録者数 ・80万人 ■ pairsの売上 ・1週間の売上=年収のx倍くらい
  • 94. Copyright © 2009-2015 eureka, inc. All rights reserved. 2014年2月頃の開発体制
  • 95. Copyright © 2009-2015 eureka, inc. All rights reserved. 2014年2月頃の開発体制 一般的…?
  • 96. Copyright © 2009-2015 eureka, inc. All rights reserved. ・AWSを使用したPHP x MySQL -  非VPCの全てフラットな構成 ・デプロイ -  $ git pull ・ロールバック -  $ git checkout 2014年2月頃のpairs
  • 97. Copyright © 2009-2015 eureka, inc. All rights reserved. ・AWSを使用したPHP x MySQL -  非VPCの全てフラットな構成 ・デプロイ -  $ git pull ・ロールバック -  $ git checkout 2014年2月頃のpairs やっぱしんどい…
  • 98. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「…」 はじめてのリリースを終えて…
  • 99. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「…」 ʕº̫͡ºʔ<「また…」 はじめてのリリースを終えて…
  • 100. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「…」 ʕº̫͡ºʔ<「また…」 ʕº̫͡ºʔ<「PHPか…」 はじめてのリリースを終えて…
  • 101. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ はじめてのリリース ∼ 完 第壱話
  • 102. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ リニューアル ∼ 第弐話
  • 103. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル: 入社一ヶ月くらいのある日 「突然ですが」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 104. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル: 入社一ヶ月くらいのある日 「突然ですが」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「諸事情により、UIを全部変えます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 105. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル: 入社一ヶ月くらいのある日 「突然ですが」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「諸事情により、UIを全部変えます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「なのでPHP、JS、インフラ全てお願いします」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 106. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル: 入社一ヶ月くらいのある日 「突然ですが」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「諸事情により、UIを全部変えます」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「なのでPHP、JS、インフラ全てお願いします」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(クレイジー...)
  • 107. Copyright © 2009-2015 eureka, inc. All rights reserved. 説明しよう! リニューアル
  • 108. Copyright © 2009-2015 eureka, inc. All rights reserved. pairsのインフラとは リニューアル
  • 109. Copyright © 2009-2015 eureka, inc. All rights reserved. AWSのコンポーネントを フル活用した リニューアル
  • 110. Copyright © 2009-2015 eureka, inc. All rights reserved. こんな感じである! リニューアル
  • 111. Copyright © 2009-2015 eureka, inc. All rights reserved. ■ Web(App)  ・EC2 2台 ■ データベース  ・RDS(MySQL)2台 ■ キャッシュ  ・ElastiCache(Memcache)2台 当時のpairsメインシステム(簡易版)
  • 112. Copyright © 2009-2015 eureka, inc. All rights reserved. じゃん! リニューアル
  • 113. Copyright © 2009-2015 eureka, inc. All rights reserved. あれ… リニューアル
  • 114. Copyright © 2009-2015 eureka, inc. All rights reserved. なんだこれ... 全開放...? MPやん どこにログ保存してるんだ ユーザー管理したいんだけど スケーラビリティが...
  • 115. Copyright © 2009-2015 eureka, inc. All rights reserved. なんだこれ... 全開放...? MPやん どこにログ保存してるんだ ユーザー管理したいんだけど スケーラビリティが... しんどい
  • 116. Copyright © 2009-2015 eureka, inc. All rights reserved. でも リニューアル
  • 117. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアルでは ダウンタイムが取れるので リニューアル
  • 118. Copyright © 2009-2015 eureka, inc. All rights reserved. 1から作りなおしました リニューアル
  • 119. Copyright © 2009-2015 eureka, inc. All rights reserved. システム構成図
  • 120. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル前 (簡略版)
  • 121. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  • 122. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  • 123. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  • 124. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) 堅牢なセキュリティ!
  • 125. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) 堅牢なセキュリティ! 詳細な権限設定!
  • 126. Copyright © 2009-2015 eureka, inc. All rights reserved. VPC(AWS仮想プライベートクラウド) EC2-Classic VPC内 サブネット 共有 専用 アプリ間接続 インターネット経由 プライベート N/W設計 全開放 オンプレなみ セキュリティ SGのみ SG+Subnetごとの ACL&private NW
  • 127. Copyright © 2009-2015 eureka, inc. All rights reserved. VPC化@pairs ・EC2-Classicな構成で稼働していた ・VPCに既存のサーバーは追加できない => VPCの中にECを新規で作成 ※ 最近は移行ツールができている模様…
  • 128. Copyright © 2009-2015 eureka, inc. All rights reserved. VPC化@あたし ・はじめてのVPC(VPC歴 1日) ・AWS歴 20日くらい ・もちろん、かなりはまる - NetworkACLのレスポンスとか…
  • 129. Copyright © 2009-2015 eureka, inc. All rights reserved. IAM(権限管理) ・アプリケーションに詳細なAWS権限を付与できる - VPCじゃなくても元々できるやつ ・サーバーに詳細なAWS権限を付与できる - ステージングか ら本番へのアクセス不可とか - 擬似本番はR e a d だけ 許可とか
  • 130. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  • 131. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) 柔軟なログ収集!
  • 132. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) 柔軟なログ収集! そしてデータ可視化!
  • 133. Copyright © 2009-2015 eureka, inc. All rights reserved. 導入の経緯 a) アプリケーションの高速化を行いたい - 担当者が応答速 度を集計するのが手間 - 集計結果もチェ ックしなければならない b) ログのロストを防ぎたい - 気軽に Web の作成・追加・削除を実行し たい - 証跡を残す(事件や犯罪のログになり得 る)
  • 134. Copyright © 2009-2015 eureka, inc. All rights reserved. fluentdによるログ収集 ・いい感じにログ収集してくれます - 再送機能 - パフォーマンス - 豊富なプラグイン -> S3への保存も簡単 -> ElasticSearchへの送信も簡単
  • 135. Copyright © 2009-2015 eureka, inc. All rights reserved. ElasticSearch ・全文検索エンジン ・luceneクエリ使える ・REST APIとJSONでいい感じに操作できる
  • 136. Copyright © 2009-2015 eureka, inc. All rights reserved. kibana ・いい感じにグラフ化できるダッシュボード ・ElasticSearchを裏側で利用
  • 137. Copyright © 2009-2015 eureka, inc. All rights reserved. 連携図
  • 138. Copyright © 2009-2015 eureka, inc. All rights reserved. 導入の結果 a) アプリケーションの高速化を行いたい  => 応 答速度の可視化  => 正 社員以外にも集計が可能になった  => ト ータルで1 秒以上の改善を実行できた ʕº̫͡ºʔo00(アプリのテキストログの集計もしたい…)
  • 139. Copyright © 2009-2015 eureka, inc. All rights reserved. ブログ記事 http://eure.jp/blog/fluentd_elasticsearch_kibana/ kibanaとElasticSearchによる可視化
  • 140. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  • 141. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  • 142. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) 内部から死活監視!
  • 143. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) 外部からパフォーマンス監視! 内部から死活監視!
  • 144. Copyright © 2009-2015 eureka, inc. All rights reserved. 監視システム Zabbix ・様々なデータを監視できる -  分間アクセス数・ロック数・登録者数 ・しきい値を超えたらアラート -  メール・チャット・電話 etc... ・しきい値を超えたらアクション実行 -  Apache再起動・DBクエリ抽出
  • 145. Copyright © 2009-2015 eureka, inc. All rights reserved. 監視システム NewRelic ・手軽 ・一般的なサーバーの監視 ・アプリケーションの監視 -  様々な言語に対応 -  応答速度の内訳を可視化できる ・DB/キャッシュ/アプリ/レンダリング -  アプリエラー率も補足可能
  • 146. Copyright © 2009-2015 eureka, inc. All rights reserved. 監視システム NewRelic ・手軽 ・一般的なサーバーの監視 ・アプリケーションの監視 -  様々な言語に対応 -  応答速度の内訳を可視化できる ・DB/キャッシュ/アプリ/レンダリング -  アプリエラー率も補足可能
  • 147. Copyright © 2009-2015 eureka, inc. All rights reserved. 監視システム NewRelic ・サーバー監視サービスのインストール => 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
  • 148. Copyright © 2009-2015 eureka, inc. All rights reserved. 監視システム NewRelic ・アプリ監視サービスのインストール => 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
  • 149. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  • 150. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  • 151. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) そして一貫したデプロイ!
  • 152. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版) そして一貫したデプロイ! Forever Git Pull!
  • 153. Copyright © 2009-2015 eureka, inc. All rights reserved. Capistranoによるデプロイ ・デプロイ&ロールバック! ・全て/特定 のサーバーに対して同一作業 ・意外に色々できます -  緊 急 メ ン テ 対 応 -  リ ア ル タ イ ム ロ グ 監 視 -  メ ー ル レ ポ ー テ ィ ン グ
  • 154. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新機能リリース∼ 1) Capistranoでデプロイする
  • 155. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新機能リリース∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(バグ混入)
  • 156. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新機能リリース∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(バグ混入) 3) PHPのNoticeエラー上昇! 
  • 157. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新機能リリース∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(バグ混入) 3) PHPのNoticeエラー上昇!  4) NewRelicからSlackへ通知
  • 158. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新機能リリース∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(バグ混入) 3) PHPのNoticeエラー上昇!  4) NewRelicからSlackへ通知 5) (通知でiPhoneが振動する)
  • 159. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新機能リリース∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(バグ混入) 3) PHPのNoticeエラー上昇!  4) NewRelicからSlackへ通知 5) (通知でiPhoneが振動する) 6) 起きる(むくり ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 160. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新キャンペーン∼ 1) Capistranoでデプロイする
  • 161. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新キャンペーン∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始)
  • 162. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新キャンペーン∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始) 3) DBコネクション・ロック待ち上昇 
  • 163. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新キャンペーン∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始) 3) DBコネクション・ロック待ち上昇  4) NewRelicからSlackへ通知
  • 164. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新キャンペーン∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始) 3) DBコネクション・ロック待ち上昇  4) NewRelicからSlackへ通知 5) (通知でiPhoneが振動する)
  • 165. Copyright © 2009-2015 eureka, inc. All rights reserved. デプロイと監視 ∼新キャンペーン∼ 1) Capistranoでデプロイする 2) ʕº̫͡ºʔo00(負荷のかかるキャンペーン開始) 3) DBコネクション・ロック待ち上昇  4) NewRelicからSlackへ通知 5) (通知でiPhoneが振動する) 6) 起きる(むくり ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 166. Copyright © 2009-2015 eureka, inc. All rights reserved. Slack ・チャットツール ・美しさ × IRCの使いやすさ ・API操作
  • 167. Copyright © 2009-2015 eureka, inc. All rights reserved. Slack 監視用チャンネル
  • 168. Copyright © 2009-2015 eureka, inc. All rights reserved. Slack 監視用チャンネル
  • 169. Copyright © 2009-2015 eureka, inc. All rights reserved. Slack 監視用チャンネル
  • 170. Copyright © 2009-2015 eureka, inc. All rights reserved. 総評 ʕº̫͡ºʔ<「VPC化は早めにやってよかった」 ʕº̫͡ºʔ<「ログシステムは少し持て余し気味」 ʕº̫͡ºʔ<「NewRelic抜きでデプロイはもはや怖い」 ʕº̫͡ºʔ<「Capistranoはたまに失敗してかわいい」 ʕº̫͡ºʔ<「Slack便利」
  • 171. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ リニューアル ∼ 完 第弐話
  • 172. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ RDB使えますか∼ 第参話
  • 173. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「UIリニューアルも終わり、一段落したね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 174. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「UIリニューアルも終わり、一段落したね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「あとは私がバイオレンスな気分にならぬよう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 175. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「UIリニューアルも終わり、一段落したね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「あとは私がバイオレンスな気分にならぬよう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「DBマスターの負荷を下げるだけですね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 176. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「UIリニューアルも終わり、一段落したね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「あとは私がバイオレンスな気分にならぬよう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「DBマスターの負荷を下げるだけですね」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「そ、そうですね...」
  • 177. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 178. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「台風が過ぎ去る前に"カタ"をつけてください」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 179. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「台風が過ぎ去る前に"カタ"をつけてください」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「さもなくば私が"台風の目"となります」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢
  • 180. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「台風が過ぎ去る前に"カタ"をつけてください」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「さもなくば私が"台風の目"となります」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「そ、そうですか...」
  • 181. Copyright © 2009-2015 eureka, inc. All rights reserved. RDB使えますか 「私の見立てでは”足あと機能”が怪しいです」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「台風が過ぎ去る前に"カタ"をつけてください」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「さもなくば私が"台風の目"となります」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「そ、そうですか...」 ʕº̫͡ºʔo00( …)
  • 182. Copyright © 2009-2015 eureka, inc. All rights reserved. 説明しよう! RDB使えますか
  • 183. Copyright © 2009-2015 eureka, inc. All rights reserved. この時pairsは RDB使えますか
  • 184. Copyright © 2009-2015 eureka, inc. All rights reserved. DBマスターの 負荷が問題で RDB使えますか
  • 185. Copyright © 2009-2015 eureka, inc. All rights reserved. 非常に困っていた RDB使えますか
  • 186. Copyright © 2009-2015 eureka, inc. All rights reserved. ・単一サーバ/テーブルに負荷がかかる設計 - 初期のDB設計のまま - シャーディングできず ・スレーブに検索クエリを移し終えていた ・マスターは限界までスケールアップ済み ・/(^o^)\ RDB使えますか
  • 187. Copyright © 2009-2015 eureka, inc. All rights reserved. よろしい、ならば… 非RDBだ! RDB使えますか
  • 188. Copyright © 2009-2015 eureka, inc. All rights reserved. 新たなデータストアを探して ・ファイルに保存 ・R e d i s ・MongoDB ・C a s s a n d r a (+ xxx万円給料上げて欲しい ) => p e r l製の掲示板の時代に逆戻り! => かわいい。でも今回は様々な要因で除外 => かわいい。でも運用面倒 => こわい。
  • 189. Copyright © 2009-2015 eureka, inc. All rights reserved. そこで… RDB使えますか
  • 190. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  • 191. Copyright © 2009-2015 eureka, inc. All rights reserved. リニューアル後 (簡略版)
  • 192. Copyright © 2009-2015 eureka, inc. All rights reserved. DynamoDB RDB使えますか
  • 193. Copyright © 2009-2015 eureka, inc. All rights reserved. ・簡単にスケールする書き込み負荷 ・運用の手間なし ・見た目はこわいけど根は優しい (・社内のカップルアプリCouplesでも利用事例あり) DynamoDB
  • 194. Copyright © 2009-2015 eureka, inc. All rights reserved. ・ちょっとわかりづらい ・JOINするようなデータ集計は難しい ・厳密なトランザクションは難しい ・AWSから離れられなくなるリスク… DynamoDBのダークサイド
  • 195. Copyright © 2009-2015 eureka, inc. All rights reserved. DynamoDBにした結果… RDB使えますか
  • 196. Copyright © 2009-2015 eureka, inc. All rights reserved. DynamoDBにした結果… RDB使えますか 負荷85-95% 負荷75%以下に
  • 197. Copyright © 2009-2015 eureka, inc. All rights reserved. ・足あと機能 ・行動ログ ・通知フラグ関連 DynamoDB化の例
  • 198. Copyright © 2009-2015 eureka, inc. All rights reserved. メール・プッシュ管理 / お知らせ / つぶやき / ベストマッチ / 投稿フィルタ / キャンペーン管理 / 写真リクエスト DynamoDB化の予定
  • 199. Copyright © 2009-2015 eureka, inc. All rights reserved. ・単一ユーザーで完結するデータ取得は向いている ・RDBのような集計クエリが使えない - リアルタイム集計はちょっとN Gプレイ - バッチ処理での解析はできる - ただしプログラムを書く必要あり DynamoDBをつかってみて
  • 200. Copyright © 2009-2015 eureka, inc. All rights reserved. 「やはり”足あと機能”でしたね。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ DynamoDBをつかってみて
  • 201. Copyright © 2009-2015 eureka, inc. All rights reserved. 「やはり”足あと機能”でしたね。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「はい。そう思ってました。」 DynamoDBをつかってみて
  • 202. Copyright © 2009-2015 eureka, inc. All rights reserved. 「やはり”足あと機能”でしたね。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「はい。そう思ってました。」 ʕº̫͡ºʔo00(本当にそうだったとは…) DynamoDBをつかってみて
  • 203. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ RDB使えますか∼ 完 第参話
  • 204. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ FIFO or LIFO ∼ 第四話
  • 205. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Dynamoのついでに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ FIFO
  • 206. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Dynamoのついでに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「キュー化もしときましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ FIFO
  • 207. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Dynamoのついでに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「キュー化もしときましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(ついで…?) FIFO
  • 208. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Dynamoのついでに」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「キュー化もしときましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< o00(ついで…?) ʕº̫͡ºʔ< 「わかりました。何使ってもいいですか?」 FIFO
  • 209. Copyright © 2009-2015 eureka, inc. All rights reserved. 「SQS使って下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ FIFO
  • 210. Copyright © 2009-2015 eureka, inc. All rights reserved. 「SQS使って下さい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ< 「直接SQSで大丈夫ですかね…?」 FIFO
  • 211. Copyright © 2009-2015 eureka, inc. All rights reserved. 「SQSを」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ FIFO
  • 212. Copyright © 2009-2015 eureka, inc. All rights reserved. 「SQSを」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「信じましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ FIFO
  • 213. Copyright © 2009-2015 eureka, inc. All rights reserved. ・AWSのメッセージキューサービス ・MQサーバーの運用をしなくてよい ・要件によっては多少注意が必要 ・厳密なFIFOにはならない ・指定件数取りたい場合は要工夫 SQS
  • 214. Copyright © 2009-2015 eureka, inc. All rights reserved. ・パフォーマンス / 耐障害性  - ローカルでキューイングした方が良いのでは?  - TCP接続のコストって大丈夫?  - SQSが落ちたらどうしよう SQSを考える
  • 215. Copyright © 2009-2015 eureka, inc. All rights reserved. わたしは、 ボスSQSを信じました。 SQS
  • 216. Copyright © 2009-2015 eureka, inc. All rights reserved. その結果… SQS
  • 217. Copyright © 2009-2015 eureka, inc. All rights reserved. 余裕で捌きました 6万リクエスト / 1h SQS
  • 218. Copyright © 2009-2015 eureka, inc. All rights reserved. ・半年以上落ちることもなく安定して動いています ・パフォーマンスも安定しており、スループット課 金ではないので、コストを気にしないでもOK ・最悪ロストしてよいデータだけ入れる SQS後
  • 219. Copyright © 2009-2015 eureka, inc. All rights reserved. ∼ FIFO or LIFO ∼ 完 第四話
  • 220. Copyright © 2009-2015 eureka, inc. All rights reserved. 1. エウレカについて 2. サービスのスケール∼pairs編∼ 3. そして伝説へ… もくじ
  • 221. Copyright © 2009-2015 eureka, inc. All rights reserved. 「このコードは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 222. Copyright © 2009-2015 eureka, inc. All rights reserved. 「このコードは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「このスキーマは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 223. Copyright © 2009-2015 eureka, inc. All rights reserved. 「このコードは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「このスキーマは愛せない」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「愛が欲しい」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 224. Copyright © 2009-2015 eureka, inc. All rights reserved. 「時に、森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 225. Copyright © 2009-2015 eureka, inc. All rights reserved. 「時に、森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「はい、なんでしょうか」 10月頃のある日
  • 226. Copyright © 2009-2015 eureka, inc. All rights reserved. 「時に、森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ ʕº̫͡ºʔ<「はい、なんでしょうか」 ʕº̫͡ºʔ< o00(やべーな、この人...) 10月頃のある日
  • 227. Copyright © 2009-2015 eureka, inc. All rights reserved. 「問題です。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 228. Copyright © 2009-2015 eureka, inc. All rights reserved. 「問題です。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「次のうち、もっとも愛くるしいのは」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 229. Copyright © 2009-2015 eureka, inc. All rights reserved. 「問題です。」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「次のうち、もっとも愛くるしいのは」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「どいつ?」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 230. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Ruby」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 231. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Ruby」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「scala」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 232. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Ruby」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「scala」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「golang」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 233. Copyright © 2009-2015 eureka, inc. All rights reserved. 「Ruby」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「scala」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「golang」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「erlang」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 234. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「それはもちろん」 10月頃のある日
  • 235. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「それはもちろん」 ʕº̫͡ºʔ<「日本人だったらやっぱり」 10月頃のある日
  • 236. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「それはもちろん」 ʕº̫͡ºʔ<「日本人だったらやっぱり」 ʕº̫͡ºʔ<「JavaScriptですよね。」 10月頃のある日
  • 237. Copyright © 2009-2015 eureka, inc. All rights reserved. 「(俺嫌いなんだよな...)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 238. Copyright © 2009-2015 eureka, inc. All rights reserved. 「(俺嫌いなんだよな...)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 239. Copyright © 2009-2015 eureka, inc. All rights reserved. 「(俺嫌いなんだよな...)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「未来を見ましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 240. Copyright © 2009-2015 eureka, inc. All rights reserved. 「(俺嫌いなんだよな...)」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「森川さん」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「未来を見ましょう」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 「今はその時期じゃないでしょう...!」> ʕ̡̢̡ʘ̅͟͜͡ʘ̲̅ʔ̢̡̢ 10月頃のある日
  • 241. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「確かに...」 10月頃のある日
  • 242. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「確かに...」 ʕº̫͡ºʔ<「分かりました...」 10月頃のある日
  • 243. Copyright © 2009-2015 eureka, inc. All rights reserved. ʕº̫͡ºʔ<「確かに...」 ʕº̫͡ºʔ<「分かりました...」 ʕº̫͡ºʔ<「じゃあ⃝⃝で。」 10月頃のある日
  • 244.
  • 245.
  • 246.
  • 247.