SlideShare a Scribd company logo
1 of 20
HOME’S高速化への道のり
2017/7/11
株式会社LIFULL
LIFULL HOME’S事業本部 賃貸事業部UXユニット
水野 慎也
自己紹介
水野 慎也
2006年 ベンチャー企業に営業として新卒入社
2007年 エンジニアに転向。
2009年 LIFULL中途入社。
主にLIFULL HOME‘S事業のエンジニアメンバーとして開
発業務に従事。
現在は、賃貸マーケットのUX向上をミッションとした部署
でエンジニアメンバーを統括しています。
趣味:筋トレ、居酒屋めぐり
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。3
やったこと
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。4
サイト高速化
メンバー高速化経験者がおらず、
手探り状態でいろいろ調査・検討
・サーバ強化
・ミドルウェアの導入
・プログラム言語・FWのバージョンアップ
・プロダクトコードの改修
等々・・・
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。5
サイト高速化
調査の結果インフラ・ハード面に関しては既に相
当手が入っており、最終的にはコードの改修など
ソフト面での対応が中心になった。
今回は「すごく泥臭い対応で乗り切った」
と言うお話をします。
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。6
特に改良の余地が見られなかったハード面
・サーバ強化
AWSインスタンスの台数増加・インスタンスタイ
プのグレードアップを検討
→既に高級なタイプが利用された上でチューニン
グされており、以上は費用面から見合わない
・ミドルウェアの導入
APC(オペコードキャッシュ)最適化検討
→開発環境のパフォーマンスが悪く、本番環境に
GUIが無くチューニングのために導入したところ
本番では特に問題は見当たらなかった
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。7
特に改良の余地が見られなかったハード面
・APC
Hit Rate
キャッシュが使わ
れている率
たいてい3桁行くのに1~2桁
前半(個人環境が集まって
おり各個人しかアクセスしな
いキャッシュで占められて
いるからというのはある)
Cache full count
キャッシュが満杯
になりすべて開放
した回数
回数がやけに多い(短い
Uptimeの中で何度もやって
いる)
Hits & Misses キャッシュヒット率 もっとHitは多くできるはず
Shared Memory
APCに割り当てられ
たメモリ量
デフォルトの256。Cache full
countしまくってるのでもっと
大きくしていいのでは
System Cache
Entries
キャッシュできてい
るファイル
参照される頻度の高いphp
が検索しても出てこない
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。8
特に改良の余地が見られなかったハード面
・プログラム言語・FWのバージョンアップ
→工数が膨大なため断念。しかしいずれはやらね
ばならないことのため、導入に関しての準備・工
数調査までを行った。
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。9
サイト高速化
継ぎ足し継ぎ足しで使い続けた秘伝のソース、
「ここは未開の領域のはず」
→プロダクトコードのボトルネックを調査、
改修を中心に対応を進めた。
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。10
プロダクトコードのボトルネック撲滅
キャッシュ最適化 結果:△~○
・データの寿命に合わせた適切な保持期間で
・「キャッシュすれば早くなるだろう」と安易に
実装されていたものなどをヒット率を考慮し改修
通信データを圧縮 結果:○
・API通信のgzip圧縮等でデータ通信を高速化
・CPU負荷は増加するのでバランスを
並列処理化 結果:△~◎
・順番不問の処理はできるだけ並列で同時に
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。11
サイト高速化
無駄なデータのダイエット 結果:○
・使わない情報を丸ごと取ってくる処理に適切な
絞込みを行う。(駅マスタ、APIの返り値等)
遅延読み込み(ajax、lazyload) 結果:△
・初期表示に支障がなければ一つの手
・クローラーには認識されなくなるなどのリスク
踏まえる
不要機能の削除 結果:◎
・表示速度に影響のある機能を思い切って切る
・本当に不要だったか?の検証は必要
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。12
サイト高速化
カテゴリ PJ 効果 備考
不要機能削除 物件詳細「最近見た」を除去 大
並列処理化 indiv並列処理 大 全ページに効果あり
通信データ圧縮 マスタデータgzip圧縮 大
キャッシュ最適化 キャッシュ構成の見直しと使用メモリ削減 中
マスタ系を県・物件種
別単位で適切にキャッ
シュ。メモリ消費の削
減も効果的だった。
キャッシュ最適化
Code/Item code:bukkenInfoFilterOemキャッ
シュ化
中
データダイエット nextraAPI field_set無駄削減 中
遅延読み込み 「他の取扱い物件」「間取ランキング」ajax化 中
キャッシュ最適化 css/js minifileキャッシュバスター 小
データダイエット 画像SVG化ロゴ画像軽量(SVG) 小
並列処理化 list /individual/系並列処 小
元のボトルネックが小
さい
遅延読み込み 画像遅延読み込み 小 3G環境では一部悪化
通信データ圧縮 op→image ほぼ無
ドメインを散らすがう
まくいかず
大:100msec~ 中:50msec程度 小:~数10msec
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。13
使ったツールなど
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。14
サイト高速化
• GoogleAnalytics
母数が最も多く、信頼性の高い情報が得られる
• Dynatrace
サイトに定期アクセスしデータ蓄積(競合比較)
• 自作速度計測ライブラリの埋め込み
各functionごとのボトルネック調査。
• chromeデベロッパーツール
手軽にざっくりパフォーマンス計測
• zipkin
分散トレースシステム。APIのボトルネック調査
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。15
サイト高速化
• GoogleAnalytics
速度指標に利用。
「サーバ平均応答時間」「平均ドキュメント コンテンツ読
み込み時間」「平均読み込み時間」
のウォッチ。ユーザ体験として特に平均ドキュメント コン
テンツ読み込み時間を注視
• Dynatrace
競合比較に利用
自社・競合サイトの同機能ページ
(物件一覧など)に対して
定期アクセスし、速度データを取得。
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。16
サイト高速化
• 自作速度計測ライブラリの埋め込み
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。17
やりたかったこと
(やれなかったこと)
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。18
サイト高速化
やりたかったこと(やれなかったこと)
■HTTP/2化
同時リクエスト数を増やせ、大量に存在する外
部タグの呼び出しなどを効率化
→サイト全体をhttps化する必要があり、網羅的な
改修が必要だったため見送り
■PHPバージョンアップ(5.4→7)
処理速度の向上
→既存コードのライブラリなどが導入の障壁に。
© LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。19
サイト高速化
新技術導入での解決を図っても、
大抵結局は地道な対応が必要に。
腹を決めて取り掛かる。
おわり

More Related Content

Similar to LIFULL HOME'S高速化への道のり

【Web系ベンチャーが語るAWS利用事例】社内ソリューションアーキテクトのすすめ
【Web系ベンチャーが語るAWS利用事例】社内ソリューションアーキテクトのすすめ【Web系ベンチャーが語るAWS利用事例】社内ソリューションアーキテクトのすすめ
【Web系ベンチャーが語るAWS利用事例】社内ソリューションアーキテクトのすすめLIFULL Co., Ltd.
 
【Ltech#8】レガシーシステム・プロセス改善史
【Ltech#8】レガシーシステム・プロセス改善史【Ltech#8】レガシーシステム・プロセス改善史
【Ltech#8】レガシーシステム・プロセス改善史LIFULL Co., Ltd.
 
「ABCs2018」LT〝Intro to Google Play Instant〟
「ABCs2018」LT〝Intro to  Google Play Instant〟「ABCs2018」LT〝Intro to  Google Play Instant〟
「ABCs2018」LT〝Intro to Google Play Instant〟LIFULL Co., Ltd.
 
【Ltech#0】RubyKaigi2018報告会
【Ltech#0】RubyKaigi2018報告会【Ltech#0】RubyKaigi2018報告会
【Ltech#0】RubyKaigi2018報告会LIFULL Co., Ltd.
 
【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること
【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること
【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けることLIFULL Co., Ltd.
 
オペレーショナルエクセレンスの実現のためにまずやること
オペレーショナルエクセレンスの実現のためにまずやることオペレーショナルエクセレンスの実現のためにまずやること
オペレーショナルエクセレンスの実現のためにまずやることAtsushi Kojima
 
納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組みMasahiro Nishimi
 
フリーランスはじめました - 【初心者向けデザイン講座】デザインのスキルを身につけてお仕事をする方法!東洋美術学校×クラウドワークス
フリーランスはじめました - 【初心者向けデザイン講座】デザインのスキルを身につけてお仕事をする方法!東洋美術学校×クラウドワークスフリーランスはじめました - 【初心者向けデザイン講座】デザインのスキルを身につけてお仕事をする方法!東洋美術学校×クラウドワークス
フリーランスはじめました - 【初心者向けデザイン講座】デザインのスキルを身につけてお仕事をする方法!東洋美術学校×クラウドワークスYuki Suzuki
 
INSPIRE FUTURE GENERATIONS
INSPIRE FUTURE GENERATIONSINSPIRE FUTURE GENERATIONS
INSPIRE FUTURE GENERATIONSKoichi ITO
 
BPStudy#75 スマートWP 裏側のお話からリーンなアプローチまで
BPStudy#75 スマートWP 裏側のお話からリーンなアプローチまでBPStudy#75 スマートWP 裏側のお話からリーンなアプローチまで
BPStudy#75 スマートWP 裏側のお話からリーンなアプローチまでHiro Fukami
 
大きめレガシープロジェクトのフロント行く末
大きめレガシープロジェクトのフロント行く末大きめレガシープロジェクトのフロント行く末
大きめレガシープロジェクトのフロント行く末LIFULL Co., Ltd.
 
Acehome seminar
Acehome seminarAcehome seminar
Acehome seminarloftwork
 
Ansibleの限界を超えてファイアウォールの プロビをした話
Ansibleの限界を超えてファイアウォールのプロビをした話Ansibleの限界を超えてファイアウォールのプロビをした話
Ansibleの限界を超えてファイアウォールの プロビをした話shomahirao
 
WantedlyではどうやってiOSアプリ開発しているのか
WantedlyではどうやってiOSアプリ開発しているのかWantedlyではどうやってiOSアプリ開発しているのか
WantedlyではどうやってiOSアプリ開発しているのかYoshinori Kawasaki
 
UX改善に必須だが「大変で実施しづらい ユーザテストを「本当に1分」で行うには
UX改善に必須だが「大変で実施しづらいユーザテストを「本当に1分」で行うにはUX改善に必須だが「大変で実施しづらいユーザテストを「本当に1分」で行うには
UX改善に必須だが「大変で実施しづらい ユーザテストを「本当に1分」で行うにはUX MILK
 

Similar to LIFULL HOME'S高速化への道のり (16)

【Web系ベンチャーが語るAWS利用事例】社内ソリューションアーキテクトのすすめ
【Web系ベンチャーが語るAWS利用事例】社内ソリューションアーキテクトのすすめ【Web系ベンチャーが語るAWS利用事例】社内ソリューションアーキテクトのすすめ
【Web系ベンチャーが語るAWS利用事例】社内ソリューションアーキテクトのすすめ
 
【Ltech#8】レガシーシステム・プロセス改善史
【Ltech#8】レガシーシステム・プロセス改善史【Ltech#8】レガシーシステム・プロセス改善史
【Ltech#8】レガシーシステム・プロセス改善史
 
「ABCs2018」LT〝Intro to Google Play Instant〟
「ABCs2018」LT〝Intro to  Google Play Instant〟「ABCs2018」LT〝Intro to  Google Play Instant〟
「ABCs2018」LT〝Intro to Google Play Instant〟
 
【Ltech#0】RubyKaigi2018報告会
【Ltech#0】RubyKaigi2018報告会【Ltech#0】RubyKaigi2018報告会
【Ltech#0】RubyKaigi2018報告会
 
【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること
【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること
【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること
 
オペレーショナルエクセレンスの実現のためにまずやること
オペレーショナルエクセレンスの実現のためにまずやることオペレーショナルエクセレンスの実現のためにまずやること
オペレーショナルエクセレンスの実現のためにまずやること
 
納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み
 
フリーランスはじめました - 【初心者向けデザイン講座】デザインのスキルを身につけてお仕事をする方法!東洋美術学校×クラウドワークス
フリーランスはじめました - 【初心者向けデザイン講座】デザインのスキルを身につけてお仕事をする方法!東洋美術学校×クラウドワークスフリーランスはじめました - 【初心者向けデザイン講座】デザインのスキルを身につけてお仕事をする方法!東洋美術学校×クラウドワークス
フリーランスはじめました - 【初心者向けデザイン講座】デザインのスキルを身につけてお仕事をする方法!東洋美術学校×クラウドワークス
 
仕事の進め方について
仕事の進め方について仕事の進め方について
仕事の進め方について
 
INSPIRE FUTURE GENERATIONS
INSPIRE FUTURE GENERATIONSINSPIRE FUTURE GENERATIONS
INSPIRE FUTURE GENERATIONS
 
BPStudy#75 スマートWP 裏側のお話からリーンなアプローチまで
BPStudy#75 スマートWP 裏側のお話からリーンなアプローチまでBPStudy#75 スマートWP 裏側のお話からリーンなアプローチまで
BPStudy#75 スマートWP 裏側のお話からリーンなアプローチまで
 
大きめレガシープロジェクトのフロント行く末
大きめレガシープロジェクトのフロント行く末大きめレガシープロジェクトのフロント行く末
大きめレガシープロジェクトのフロント行く末
 
Acehome seminar
Acehome seminarAcehome seminar
Acehome seminar
 
Ansibleの限界を超えてファイアウォールの プロビをした話
Ansibleの限界を超えてファイアウォールのプロビをした話Ansibleの限界を超えてファイアウォールのプロビをした話
Ansibleの限界を超えてファイアウォールの プロビをした話
 
WantedlyではどうやってiOSアプリ開発しているのか
WantedlyではどうやってiOSアプリ開発しているのかWantedlyではどうやってiOSアプリ開発しているのか
WantedlyではどうやってiOSアプリ開発しているのか
 
UX改善に必須だが「大変で実施しづらい ユーザテストを「本当に1分」で行うには
UX改善に必須だが「大変で実施しづらいユーザテストを「本当に1分」で行うにはUX改善に必須だが「大変で実施しづらいユーザテストを「本当に1分」で行うには
UX改善に必須だが「大変で実施しづらい ユーザテストを「本当に1分」で行うには
 

More from LIFULL Co., Ltd.

20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと
20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと
20220319_新卒から活躍し続けるエンジニアが大切にしている5つのことLIFULL Co., Ltd.
 
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性LIFULL Co., Ltd.
 
Kubernetesセキュリティの歩き方
Kubernetesセキュリティの歩き方Kubernetesセキュリティの歩き方
Kubernetesセキュリティの歩き方LIFULL Co., Ltd.
 
LIFULLの全社アプリケーション実行基盤 KEEL について
LIFULLの全社アプリケーション実行基盤 KEEL についてLIFULLの全社アプリケーション実行基盤 KEEL について
LIFULLの全社アプリケーション実行基盤 KEEL についてLIFULL Co., Ltd.
 
Kubernetesクラスタバージョンアップを支える技術
Kubernetesクラスタバージョンアップを支える技術Kubernetesクラスタバージョンアップを支える技術
Kubernetesクラスタバージョンアップを支える技術LIFULL Co., Ltd.
 
LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷LIFULL Co., Ltd.
 
LIFULLでは新卒エンジニアに 丸一日のテスト研修を行なっている
LIFULLでは新卒エンジニアに 丸一日のテスト研修を行なっているLIFULLでは新卒エンジニアに 丸一日のテスト研修を行なっている
LIFULLでは新卒エンジニアに 丸一日のテスト研修を行なっているLIFULL Co., Ltd.
 
SaPID を導入するまでとそれから
SaPID を導入するまでとそれからSaPID を導入するまでとそれから
SaPID を導入するまでとそれからLIFULL Co., Ltd.
 
3D間取りを支える技術
3D間取りを支える技術3D間取りを支える技術
3D間取りを支える技術LIFULL Co., Ltd.
 
LIFULL HOME'Sのおとり広告予測モデルの開発
LIFULL HOME'Sのおとり広告予測モデルの開発LIFULL HOME'Sのおとり広告予測モデルの開発
LIFULL HOME'Sのおとり広告予測モデルの開発LIFULL Co., Ltd.
 
大企業でアジャイル開発を推進できる条件とその心構え
大企業でアジャイル開発を推進できる条件とその心構え大企業でアジャイル開発を推進できる条件とその心構え
大企業でアジャイル開発を推進できる条件とその心構えLIFULL Co., Ltd.
 
スクラムを利用したアジャイルオフショア開発のとりくみ
スクラムを利用したアジャイルオフショア開発のとりくみスクラムを利用したアジャイルオフショア開発のとりくみ
スクラムを利用したアジャイルオフショア開発のとりくみLIFULL Co., Ltd.
 
実践 マーケティングテクノロジーエンジニア
実践 マーケティングテクノロジーエンジニア実践 マーケティングテクノロジーエンジニア
実践 マーケティングテクノロジーエンジニアLIFULL Co., Ltd.
 
エンジニア × マーケティングテクノロジー が必要な理由
エンジニア × マーケティングテクノロジー が必要な理由エンジニア × マーケティングテクノロジー が必要な理由
エンジニア × マーケティングテクノロジー が必要な理由LIFULL Co., Ltd.
 
「空飛ぶホームズくん」を実現するVR技術
「空飛ぶホームズくん」を実現するVR技術「空飛ぶホームズくん」を実現するVR技術
「空飛ぶホームズくん」を実現するVR技術LIFULL Co., Ltd.
 
ニオイセンサで思索する街の新たな指標
ニオイセンサで思索する街の新たな指標ニオイセンサで思索する街の新たな指標
ニオイセンサで思索する街の新たな指標LIFULL Co., Ltd.
 
Well-beingを測る「LIFE WILL」開発の舞台裏
Well-beingを測る「LIFE WILL」開発の舞台裏Well-beingを測る「LIFE WILL」開発の舞台裏
Well-beingを測る「LIFE WILL」開発の舞台裏LIFULL Co., Ltd.
 
㊗ LINE新着物件通知 リリース!! PJ進行に沿って話す、 PjM/PdMとして やったこと
㊗ LINE新着物件通知 リリース!! PJ進行に沿って話す、 PjM/PdMとして やったこと㊗ LINE新着物件通知 リリース!! PJ進行に沿って話す、 PjM/PdMとして やったこと
㊗ LINE新着物件通知 リリース!! PJ進行に沿って話す、 PjM/PdMとして やったことLIFULL Co., Ltd.
 
ウェブアクセシビリティ推進活動はじめました
ウェブアクセシビリティ推進活動はじめましたウェブアクセシビリティ推進活動はじめました
ウェブアクセシビリティ推進活動はじめましたLIFULL Co., Ltd.
 
新しい検索体験とデザインシステム
新しい検索体験とデザインシステム新しい検索体験とデザインシステム
新しい検索体験とデザインシステムLIFULL Co., Ltd.
 

More from LIFULL Co., Ltd. (20)

20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと
20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと
20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと
 
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
 
Kubernetesセキュリティの歩き方
Kubernetesセキュリティの歩き方Kubernetesセキュリティの歩き方
Kubernetesセキュリティの歩き方
 
LIFULLの全社アプリケーション実行基盤 KEEL について
LIFULLの全社アプリケーション実行基盤 KEEL についてLIFULLの全社アプリケーション実行基盤 KEEL について
LIFULLの全社アプリケーション実行基盤 KEEL について
 
Kubernetesクラスタバージョンアップを支える技術
Kubernetesクラスタバージョンアップを支える技術Kubernetesクラスタバージョンアップを支える技術
Kubernetesクラスタバージョンアップを支える技術
 
LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷
 
LIFULLでは新卒エンジニアに 丸一日のテスト研修を行なっている
LIFULLでは新卒エンジニアに 丸一日のテスト研修を行なっているLIFULLでは新卒エンジニアに 丸一日のテスト研修を行なっている
LIFULLでは新卒エンジニアに 丸一日のテスト研修を行なっている
 
SaPID を導入するまでとそれから
SaPID を導入するまでとそれからSaPID を導入するまでとそれから
SaPID を導入するまでとそれから
 
3D間取りを支える技術
3D間取りを支える技術3D間取りを支える技術
3D間取りを支える技術
 
LIFULL HOME'Sのおとり広告予測モデルの開発
LIFULL HOME'Sのおとり広告予測モデルの開発LIFULL HOME'Sのおとり広告予測モデルの開発
LIFULL HOME'Sのおとり広告予測モデルの開発
 
大企業でアジャイル開発を推進できる条件とその心構え
大企業でアジャイル開発を推進できる条件とその心構え大企業でアジャイル開発を推進できる条件とその心構え
大企業でアジャイル開発を推進できる条件とその心構え
 
スクラムを利用したアジャイルオフショア開発のとりくみ
スクラムを利用したアジャイルオフショア開発のとりくみスクラムを利用したアジャイルオフショア開発のとりくみ
スクラムを利用したアジャイルオフショア開発のとりくみ
 
実践 マーケティングテクノロジーエンジニア
実践 マーケティングテクノロジーエンジニア実践 マーケティングテクノロジーエンジニア
実践 マーケティングテクノロジーエンジニア
 
エンジニア × マーケティングテクノロジー が必要な理由
エンジニア × マーケティングテクノロジー が必要な理由エンジニア × マーケティングテクノロジー が必要な理由
エンジニア × マーケティングテクノロジー が必要な理由
 
「空飛ぶホームズくん」を実現するVR技術
「空飛ぶホームズくん」を実現するVR技術「空飛ぶホームズくん」を実現するVR技術
「空飛ぶホームズくん」を実現するVR技術
 
ニオイセンサで思索する街の新たな指標
ニオイセンサで思索する街の新たな指標ニオイセンサで思索する街の新たな指標
ニオイセンサで思索する街の新たな指標
 
Well-beingを測る「LIFE WILL」開発の舞台裏
Well-beingを測る「LIFE WILL」開発の舞台裏Well-beingを測る「LIFE WILL」開発の舞台裏
Well-beingを測る「LIFE WILL」開発の舞台裏
 
㊗ LINE新着物件通知 リリース!! PJ進行に沿って話す、 PjM/PdMとして やったこと
㊗ LINE新着物件通知 リリース!! PJ進行に沿って話す、 PjM/PdMとして やったこと㊗ LINE新着物件通知 リリース!! PJ進行に沿って話す、 PjM/PdMとして やったこと
㊗ LINE新着物件通知 リリース!! PJ進行に沿って話す、 PjM/PdMとして やったこと
 
ウェブアクセシビリティ推進活動はじめました
ウェブアクセシビリティ推進活動はじめましたウェブアクセシビリティ推進活動はじめました
ウェブアクセシビリティ推進活動はじめました
 
新しい検索体験とデザインシステム
新しい検索体験とデザインシステム新しい検索体験とデザインシステム
新しい検索体験とデザインシステム
 

Recently uploaded

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (11)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

LIFULL HOME'S高速化への道のり

  • 2. 自己紹介 水野 慎也 2006年 ベンチャー企業に営業として新卒入社 2007年 エンジニアに転向。 2009年 LIFULL中途入社。 主にLIFULL HOME‘S事業のエンジニアメンバーとして開 発業務に従事。 現在は、賃貸マーケットのUX向上をミッションとした部署 でエンジニアメンバーを統括しています。 趣味:筋トレ、居酒屋めぐり
  • 3. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。3 やったこと
  • 4. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。4 サイト高速化 メンバー高速化経験者がおらず、 手探り状態でいろいろ調査・検討 ・サーバ強化 ・ミドルウェアの導入 ・プログラム言語・FWのバージョンアップ ・プロダクトコードの改修 等々・・・
  • 5. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。5 サイト高速化 調査の結果インフラ・ハード面に関しては既に相 当手が入っており、最終的にはコードの改修など ソフト面での対応が中心になった。 今回は「すごく泥臭い対応で乗り切った」 と言うお話をします。
  • 6. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。6 特に改良の余地が見られなかったハード面 ・サーバ強化 AWSインスタンスの台数増加・インスタンスタイ プのグレードアップを検討 →既に高級なタイプが利用された上でチューニン グされており、以上は費用面から見合わない ・ミドルウェアの導入 APC(オペコードキャッシュ)最適化検討 →開発環境のパフォーマンスが悪く、本番環境に GUIが無くチューニングのために導入したところ 本番では特に問題は見当たらなかった
  • 7. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。7 特に改良の余地が見られなかったハード面 ・APC Hit Rate キャッシュが使わ れている率 たいてい3桁行くのに1~2桁 前半(個人環境が集まって おり各個人しかアクセスしな いキャッシュで占められて いるからというのはある) Cache full count キャッシュが満杯 になりすべて開放 した回数 回数がやけに多い(短い Uptimeの中で何度もやって いる) Hits & Misses キャッシュヒット率 もっとHitは多くできるはず Shared Memory APCに割り当てられ たメモリ量 デフォルトの256。Cache full countしまくってるのでもっと 大きくしていいのでは System Cache Entries キャッシュできてい るファイル 参照される頻度の高いphp が検索しても出てこない
  • 8. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。8 特に改良の余地が見られなかったハード面 ・プログラム言語・FWのバージョンアップ →工数が膨大なため断念。しかしいずれはやらね ばならないことのため、導入に関しての準備・工 数調査までを行った。
  • 9. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。9 サイト高速化 継ぎ足し継ぎ足しで使い続けた秘伝のソース、 「ここは未開の領域のはず」 →プロダクトコードのボトルネックを調査、 改修を中心に対応を進めた。
  • 10. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。10 プロダクトコードのボトルネック撲滅 キャッシュ最適化 結果:△~○ ・データの寿命に合わせた適切な保持期間で ・「キャッシュすれば早くなるだろう」と安易に 実装されていたものなどをヒット率を考慮し改修 通信データを圧縮 結果:○ ・API通信のgzip圧縮等でデータ通信を高速化 ・CPU負荷は増加するのでバランスを 並列処理化 結果:△~◎ ・順番不問の処理はできるだけ並列で同時に
  • 11. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。11 サイト高速化 無駄なデータのダイエット 結果:○ ・使わない情報を丸ごと取ってくる処理に適切な 絞込みを行う。(駅マスタ、APIの返り値等) 遅延読み込み(ajax、lazyload) 結果:△ ・初期表示に支障がなければ一つの手 ・クローラーには認識されなくなるなどのリスク 踏まえる 不要機能の削除 結果:◎ ・表示速度に影響のある機能を思い切って切る ・本当に不要だったか?の検証は必要
  • 12. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。12 サイト高速化 カテゴリ PJ 効果 備考 不要機能削除 物件詳細「最近見た」を除去 大 並列処理化 indiv並列処理 大 全ページに効果あり 通信データ圧縮 マスタデータgzip圧縮 大 キャッシュ最適化 キャッシュ構成の見直しと使用メモリ削減 中 マスタ系を県・物件種 別単位で適切にキャッ シュ。メモリ消費の削 減も効果的だった。 キャッシュ最適化 Code/Item code:bukkenInfoFilterOemキャッ シュ化 中 データダイエット nextraAPI field_set無駄削減 中 遅延読み込み 「他の取扱い物件」「間取ランキング」ajax化 中 キャッシュ最適化 css/js minifileキャッシュバスター 小 データダイエット 画像SVG化ロゴ画像軽量(SVG) 小 並列処理化 list /individual/系並列処 小 元のボトルネックが小 さい 遅延読み込み 画像遅延読み込み 小 3G環境では一部悪化 通信データ圧縮 op→image ほぼ無 ドメインを散らすがう まくいかず 大:100msec~ 中:50msec程度 小:~数10msec
  • 13. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。13 使ったツールなど
  • 14. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。14 サイト高速化 • GoogleAnalytics 母数が最も多く、信頼性の高い情報が得られる • Dynatrace サイトに定期アクセスしデータ蓄積(競合比較) • 自作速度計測ライブラリの埋め込み 各functionごとのボトルネック調査。 • chromeデベロッパーツール 手軽にざっくりパフォーマンス計測 • zipkin 分散トレースシステム。APIのボトルネック調査
  • 15. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。15 サイト高速化 • GoogleAnalytics 速度指標に利用。 「サーバ平均応答時間」「平均ドキュメント コンテンツ読 み込み時間」「平均読み込み時間」 のウォッチ。ユーザ体験として特に平均ドキュメント コン テンツ読み込み時間を注視 • Dynatrace 競合比較に利用 自社・競合サイトの同機能ページ (物件一覧など)に対して 定期アクセスし、速度データを取得。
  • 16. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。16 サイト高速化 • 自作速度計測ライブラリの埋め込み
  • 17. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。17 やりたかったこと (やれなかったこと)
  • 18. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。18 サイト高速化 やりたかったこと(やれなかったこと) ■HTTP/2化 同時リクエスト数を増やせ、大量に存在する外 部タグの呼び出しなどを効率化 →サイト全体をhttps化する必要があり、網羅的な 改修が必要だったため見送り ■PHPバージョンアップ(5.4→7) 処理速度の向上 →既存コードのライブラリなどが導入の障壁に。
  • 19. © LIFULL Co.,Ltd. 本書の無断転載、複製を固く禁じます。19 サイト高速化 新技術導入での解決を図っても、 大抵結局は地道な対応が必要に。 腹を決めて取り掛かる。