不敢相信,技術(shù)棧,居然被P站秒了
PornHub的FE,分享了P站前端一些實踐,英文比較晦澀難懂,故翻譯整理了一下,很多同學(xué)對前端技術(shù)不是很熟悉,故加入了簡單解釋,希望對大家理解相關(guān)技術(shù)有幫助。
提問:能分享一下,P站架構(gòu)使用了哪些技術(shù)棧么?
答,除了大數(shù)據(jù)體系,都是比較常用的技術(shù)棧:
(1)核心架構(gòu)采用的是Nginx,PHP,MySQL;
(2)使用Memcached和Reids來做緩存;
(3)使用Varnish來做頁面緩存加速;
(4)使用ES來解決搜索問題;
(5)服務(wù)用的是go;
(6)大數(shù)據(jù)體系用的Vertica;
畫外音:Vertica是一款基于列存儲的,支持PB級別結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。
(7)前端NodeJS也有使用;
提問:一個頁面至少包含一個視頻,一個GIF廣告,一些直播視頻的預(yù)覽,一些視頻的微縮圖,如何監(jiān)控頁面性能,如何找到花時間最長的地方?
答:我們使用第三方RUM(Real User Monitoring)來監(jiān)控頁面性能。

由于我們是國際性的大站,通過RUM監(jiān)控,能夠檢測到哪些地域流暢,哪些地域卡頓,哪些地域流量高,哪些地域沒有流量。
畫外音,頁面性能監(jiān)控,常見的有兩種方式:
(1)模擬性能監(jiān)控
主要通過外部代理,模擬真實用戶行為(登陸,點擊等),執(zhí)行固定監(jiān)控腳本,收集頁面性能數(shù)據(jù)。這是國內(nèi)主流頁面性能監(jiān)控方式。
(2)真實用戶性能監(jiān)控
在用戶真實流量的過程中,加入了一些埋點,收集相關(guān)性能數(shù)據(jù)。這種方式的優(yōu)缺點都很明顯:優(yōu)點,代表最真實的用戶性能體驗;缺點,對用戶體驗有影響。
至于找到頁面性能瓶頸,我們使用最常見的頁面抓包,看執(zhí)行時間“瀑布流”。
提問:前端交互對P站來說尤為重要,你們?nèi)绾慰创岸思夹g(shù)的變化?哪些新的WebAPI最吸引你們?
答:我們在前端技術(shù)棧上做了很多改進。
CSS層面,從最初的純CSS,到LESS,再到現(xiàn)在的Grid,用戶在觀看視頻的場景很多,我們必須適應(yīng)不同的分辨率和屏幕尺寸。
畫外音:
LESS(Leaner Style Sheets),是一門向后兼容的CSS擴展語言,它和CSS非常像,并對CSS增加了一些有用的擴展,例如:變量,混合(Mixins),嵌套,函數(shù),作用域,注釋等等一些特性。
Grid,是目前最強大的CSS網(wǎng)格布局方案,它將網(wǎng)頁劃分成一個個網(wǎng)格,可以任意組合不同的網(wǎng)格,做出不同的布局。對跨終端,多屏幕適配尤為有效。
JS層面,我們逐步淘汰了jQuery和jQuery UI,而使用Vanilla JS這款更加高效的JS框架。
畫外音:Vanilla JS,世界上最輕量級的JS框架,沒有之一。特點是快速、輕量、跨平臺,可以用它快速構(gòu)建JS應(yīng)用程序。其官方網(wǎng)站是:
http://vanilla-js.com/?
別的JS庫都需要顯示引用地址,例如:
A片黄色电影免费观看 | 俺去俺来也www色官网黑人 | 果冻传媒堕落人妻四玛丽莲A - 神秘资源 | 日韩在线中文字幕视频 | 天天性爱网 |
