SlideShare a Scribd company logo
LIFULL HOME’Sにおけるサイト
の高速化と今後の対応
2017/4/12 磯野 圭輔
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。2
About me
• Keisuke Isono
– LIFULL HOME'S事業本部 技術開発部
基盤開発ユニット プラットフォームグループ
• Web Engineer
• Recent Interests
– golang, nodejs
– serverless architectures
– AWS, GCP
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。3
Our Mission
技術力と思考をもっ
て挑戦し
技術基盤を革進さ
せる
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。4
Recent work
• AWSへの移行
– キャッシュサーバーのElastiCache化
– 旧検索エンジンの廃止
• データフローの刷新
– 設計中
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。5
Contents
1. 高速化施策の紹介
2. 高速化に関わる計測
3. 今後について
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。6
高速化施策の紹介
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。7
高速化施策の紹介
1. 体感速度の向上
2. レスポンス速度の向上
3. 反映速度の向上
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。8
体感速度の向上
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。9
ユーザーの体感速度向上:先読み
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。10
ユーザーの体感速度向上:リクエストの分割(分割前)
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。11
ユーザーの体感速度向上:リクエストの分割(分割後)
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。12
レスポンス速度の向上
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。13
レスポンス速度の向上
• キャッシング
– 設定ファイルのパースを削減
• 通信データ圧縮
– APIとの通信もgzip圧縮
– APIの返却するフィールドを絞る
• 検索クエリによる検索エンジンの分散
– 遅いクエリを専用のサーバーに振り分ける
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。14
反映速度の向上
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。15
• 処理の非同期化
– 画像アップロードの非同期化
• AWSへの移行
– ディスク性能の向上による処理速度向上
– 共有データをNFSからS3へ移行することでの読み込み速度向上
サイトへの反映速度の向上
入稿
データ DB 検索
エンジン
Web
サイト
画像データ
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。16
高速化に関わる計測
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。17
高速化に関わる計測
1. ページ単位の計測
2. 分散トレーシング
3. その他
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。18
ページ単位の計測
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。19
レスポンスタイムやリクエスト数の計測
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。20
レスポンスタイムやリクエスト数の計測
• ユーザーのアクセスごとに処理時間
やリクエスト内容を記録
• そのデータを解析してグラフ化
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。21
レスポンスタイムやリクエスト数の計測
!
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。22
レスポンスタイムやリクエスト数の計測
• 気づければ直せる
• ただし、これだけだと、何が原因かは
よくわからない
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。23
分散トレーシング
zipkin
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。24
zipkinについて
Web
サイト
API API
API
DB
DB
• 各サーバーのアクセスログを見ればそれぞれのレ
スポンスタイムは分かる
• それぞれを紐付けて見ようとすると辛い
DB
200ms
API
120ms
60ms 30ms
40ms
60ms 45ms
10ms
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。25
zipkinについて
Web
サイト
API API
API
DB
DB
• 一連のリクエストにユニークなIDを付けそれをまと
めて記録する
• 確認する際はブラウザで参照可能
DB
200ms 120ms
60ms 30ms
40ms
60ms 45ms
10ms
zipkin API
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。26
zipkinについて
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。27
zipkinでの計測
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。28
zipkinでの計測
• 謎の処理時間
• DBアクセスやキャッシュアクセスの計測はしていな
いので、その部分の可能性あり
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。29
zipkinでの計測
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。30
zipkinでの計測
!
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。31
zipkinでの計測
!
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。32
zipkinでの計測
!
• APIが30msで返却しても20回呼べば600ms
• 2回目以降はキャッシュされているので気付きづら
かった
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。33
その他
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。34
その他
• 開発環境でのプロファイル
– 本番でしか再現できないような場合は、切り離した本番サーバー上
で検証する場合もある
• CloudWatchへのカスタムメトリクスの送信
– load avg. , memory utilization, cpu user/sys/idle、disk utilization
など標準では取得できないもの
– CloudWatchへの送信処理を自作して対応
• collectd pluginに差し替えたい
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。35
CloudWatchでのグラフ化
• いいグラフが見つからなかったので高速化関係な
いグラフ
• ある期間の物件数とデータサイズの推移グラフ
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。36
CloudWatchでのグラフ化
• 急に減るような部分は
CloudwatchAlarmで
検知可能
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。37
まとめ
© LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。38
本日のまとめ
• 計測の強化・可視化によりサービスの問題発見・改
善が格段に行いやすくなりました
• アプリケーションやインフラの改善もログやトレース
データの可視化もまだまだやれることはたくさんあ
ります
• 一緒にLIFEをFULLにしていきませんか?

More Related Content

What's hot

IaaSクラウド比較
IaaSクラウド比較IaaSクラウド比較
IaaSクラウド比較
Kazunori Inaba
 
IaaSクラウド比較'14
IaaSクラウド比較'14IaaSクラウド比較'14
IaaSクラウド比較'14
Kazunori Inaba
 

What's hot (19)

EC-CUBEによるECサイトの負荷対策
EC-CUBEによるECサイトの負荷対策EC-CUBEによるECサイトの負荷対策
EC-CUBEによるECサイトの負荷対策
 
CloudGarageのベンチマークテスト
CloudGarageのベンチマークテストCloudGarageのベンチマークテスト
CloudGarageのベンチマークテスト
 
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
 
#reco_tech AWSへ全面移行した今を話ます。
#reco_tech   AWSへ全面移行した今を話ます。#reco_tech   AWSへ全面移行した今を話ます。
#reco_tech AWSへ全面移行した今を話ます。
 
これからのインフラエンジニアについて考えていること
これからのインフラエンジニアについて考えていることこれからのインフラエンジニアについて考えていること
これからのインフラエンジニアについて考えていること
 
勉強会のフィードバックから得られた自動化への壁
勉強会のフィードバックから得られた自動化への壁勉強会のフィードバックから得られた自動化への壁
勉強会のフィードバックから得られた自動化への壁
 
アメーバブログを支えるデータセンターとインフラ技術
アメーバブログを支えるデータセンターとインフラ技術 アメーバブログを支えるデータセンターとインフラ技術
アメーバブログを支えるデータセンターとインフラ技術
 
Mackerel x Twilio ~レコチョクの場合~
Mackerel x Twilio ~レコチョクの場合~Mackerel x Twilio ~レコチョクの場合~
Mackerel x Twilio ~レコチョクの場合~
 
#reco_tech OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
#reco_tech   OracleからAuroraへ feat. 開発しかやってこなかったエンジニア#reco_tech   OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
#reco_tech OracleからAuroraへ feat. 開発しかやってこなかったエンジニア
 
Windows Server + VPNのAWS移行事例
Windows Server + VPNのAWS移行事例Windows Server + VPNのAWS移行事例
Windows Server + VPNのAWS移行事例
 
AmplifyShaderEditorを使ったLWRP対応について
AmplifyShaderEditorを使ったLWRP対応についてAmplifyShaderEditorを使ったLWRP対応について
AmplifyShaderEditorを使ったLWRP対応について
 
IaaSクラウド比較
IaaSクラウド比較IaaSクラウド比較
IaaSクラウド比較
 
jaws-ug kansai-special_aurora_20150207
jaws-ug kansai-special_aurora_20150207jaws-ug kansai-special_aurora_20150207
jaws-ug kansai-special_aurora_20150207
 
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
 
IaaSクラウド比較'14
IaaSクラウド比較'14IaaSクラウド比較'14
IaaSクラウド比較'14
 
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
 
ネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったことネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったこと
 
最近Preview公開されたAzure テストサービスを試してみた
最近Preview公開されたAzure テストサービスを試してみた最近Preview公開されたAzure テストサービスを試してみた
最近Preview公開されたAzure テストサービスを試してみた
 
Alexaスキルを作ろう
Alexaスキルを作ろうAlexaスキルを作ろう
Alexaスキルを作ろう
 

Similar to LIFULL HOME'Sにおけるサイトの高速化と今後の対応

Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
Masakazu Muraoka
 

Similar to LIFULL HOME'Sにおけるサイトの高速化と今後の対応 (20)

Tsdg meetup#12 summer16 lightning_experience
Tsdg meetup#12 summer16 lightning_experienceTsdg meetup#12 summer16 lightning_experience
Tsdg meetup#12 summer16 lightning_experience
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
 
Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話
 
20190410 cnjp rancher-flexvolume
20190410 cnjp rancher-flexvolume20190410 cnjp rancher-flexvolume
20190410 cnjp rancher-flexvolume
 
Dokkuの活用と内部構造
Dokkuの活用と内部構造Dokkuの活用と内部構造
Dokkuの活用と内部構造
 
DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)
 
アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3)
アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3)アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3)
アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3)
 
serverless openstack 101
serverless openstack 101serverless openstack 101
serverless openstack 101
 
DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2
 
第六回Jenkins勉強会
第六回Jenkins勉強会第六回Jenkins勉強会
第六回Jenkins勉強会
 
Jaws days 2019_pipeline_is_god
Jaws days 2019_pipeline_is_godJaws days 2019_pipeline_is_god
Jaws days 2019_pipeline_is_god
 
Introduce couchbase server
Introduce couchbase serverIntroduce couchbase server
Introduce couchbase server
 
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
 
KubeFlowでどこまでいける?
KubeFlowでどこまでいける?KubeFlowでどこまでいける?
KubeFlowでどこまでいける?
 
2018 07-23
2018 07-232018 07-23
2018 07-23
 
LIFULLの全社アプリケーション実行基盤 KEEL について
LIFULLの全社アプリケーション実行基盤 KEEL についてLIFULLの全社アプリケーション実行基盤 KEEL について
LIFULLの全社アプリケーション実行基盤 KEEL について
 
AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介
AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介
AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介
 
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
 
shibuya.apk vol21
shibuya.apk vol21shibuya.apk vol21
shibuya.apk vol21
 

More from LIFULL Co., Ltd.

趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
LIFULL Co., Ltd.
 
㊗ LINE新着物件通知 リリース!! PJ進行に沿って話す、 PjM/PdMとして やったこと
㊗ LINE新着物件通知 リリース!! PJ進行に沿って話す、 PjM/PdMとして やったこと㊗ LINE新着物件通知 リリース!! PJ進行に沿って話す、 PjM/PdMとして やったこと
㊗ LINE新着物件通知 リリース!! PJ進行に沿って話す、 PjM/PdMとして やったこと
LIFULL Co., Ltd.
 

More from LIFULL Co., Ltd. (20)

20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと
20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと
20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと
 
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
 
Kubernetesセキュリティの歩き方
Kubernetesセキュリティの歩き方Kubernetesセキュリティの歩き方
Kubernetesセキュリティの歩き方
 
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

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 

Recently uploaded (11)

【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 

LIFULL HOME'Sにおけるサイトの高速化と今後の対応

  • 2. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。2 About me • Keisuke Isono – LIFULL HOME'S事業本部 技術開発部 基盤開発ユニット プラットフォームグループ • Web Engineer • Recent Interests – golang, nodejs – serverless architectures – AWS, GCP
  • 3. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。3 Our Mission 技術力と思考をもっ て挑戦し 技術基盤を革進さ せる
  • 4. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。4 Recent work • AWSへの移行 – キャッシュサーバーのElastiCache化 – 旧検索エンジンの廃止 • データフローの刷新 – 設計中
  • 5. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。5 Contents 1. 高速化施策の紹介 2. 高速化に関わる計測 3. 今後について
  • 6. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。6 高速化施策の紹介
  • 7. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。7 高速化施策の紹介 1. 体感速度の向上 2. レスポンス速度の向上 3. 反映速度の向上
  • 8. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。8 体感速度の向上
  • 9. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。9 ユーザーの体感速度向上:先読み
  • 10. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。10 ユーザーの体感速度向上:リクエストの分割(分割前)
  • 11. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。11 ユーザーの体感速度向上:リクエストの分割(分割後)
  • 12. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。12 レスポンス速度の向上
  • 13. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。13 レスポンス速度の向上 • キャッシング – 設定ファイルのパースを削減 • 通信データ圧縮 – APIとの通信もgzip圧縮 – APIの返却するフィールドを絞る • 検索クエリによる検索エンジンの分散 – 遅いクエリを専用のサーバーに振り分ける
  • 14. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。14 反映速度の向上
  • 15. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。15 • 処理の非同期化 – 画像アップロードの非同期化 • AWSへの移行 – ディスク性能の向上による処理速度向上 – 共有データをNFSからS3へ移行することでの読み込み速度向上 サイトへの反映速度の向上 入稿 データ DB 検索 エンジン Web サイト 画像データ
  • 16. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。16 高速化に関わる計測
  • 17. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。17 高速化に関わる計測 1. ページ単位の計測 2. 分散トレーシング 3. その他
  • 18. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。18 ページ単位の計測
  • 19. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。19 レスポンスタイムやリクエスト数の計測
  • 20. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。20 レスポンスタイムやリクエスト数の計測 • ユーザーのアクセスごとに処理時間 やリクエスト内容を記録 • そのデータを解析してグラフ化
  • 21. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。21 レスポンスタイムやリクエスト数の計測 !
  • 22. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。22 レスポンスタイムやリクエスト数の計測 • 気づければ直せる • ただし、これだけだと、何が原因かは よくわからない
  • 23. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。23 分散トレーシング zipkin
  • 24. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。24 zipkinについて Web サイト API API API DB DB • 各サーバーのアクセスログを見ればそれぞれのレ スポンスタイムは分かる • それぞれを紐付けて見ようとすると辛い DB 200ms API 120ms 60ms 30ms 40ms 60ms 45ms 10ms
  • 25. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。25 zipkinについて Web サイト API API API DB DB • 一連のリクエストにユニークなIDを付けそれをまと めて記録する • 確認する際はブラウザで参照可能 DB 200ms 120ms 60ms 30ms 40ms 60ms 45ms 10ms zipkin API
  • 26. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。26 zipkinについて
  • 27. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。27 zipkinでの計測
  • 28. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。28 zipkinでの計測 • 謎の処理時間 • DBアクセスやキャッシュアクセスの計測はしていな いので、その部分の可能性あり
  • 29. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。29 zipkinでの計測
  • 30. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。30 zipkinでの計測 !
  • 31. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。31 zipkinでの計測 !
  • 32. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。32 zipkinでの計測 ! • APIが30msで返却しても20回呼べば600ms • 2回目以降はキャッシュされているので気付きづら かった
  • 33. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。33 その他
  • 34. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。34 その他 • 開発環境でのプロファイル – 本番でしか再現できないような場合は、切り離した本番サーバー上 で検証する場合もある • CloudWatchへのカスタムメトリクスの送信 – load avg. , memory utilization, cpu user/sys/idle、disk utilization など標準では取得できないもの – CloudWatchへの送信処理を自作して対応 • collectd pluginに差し替えたい
  • 35. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。35 CloudWatchでのグラフ化 • いいグラフが見つからなかったので高速化関係な いグラフ • ある期間の物件数とデータサイズの推移グラフ
  • 36. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。36 CloudWatchでのグラフ化 • 急に減るような部分は CloudwatchAlarmで 検知可能
  • 37. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。37 まとめ
  • 38. © LIFULL Co.,Ltd.  本書の無断転載、複製を固く禁じます。38 本日のまとめ • 計測の強化・可視化によりサービスの問題発見・改 善が格段に行いやすくなりました • アプリケーションやインフラの改善もログやトレース データの可視化もまだまだやれることはたくさんあ ります • 一緒にLIFEをFULLにしていきませんか?