何亚明:Facebook的工具文化和多媒体QoE
本文來自 阿里巴巴 信息平臺資深技術專家 何亞明在LiveVideoStackCon 2018熱身分享,并由LiveVideoStack整理而成。在分享中,何亞明介紹了Facebook工程師團隊的特點與其常用的幾種開發工具,并對其開發流程與實際測試方法進行了總結。
文 / 何亞明
整理 / LiveVideoStack
直播回放:
https://www.baijiayun.com/web/playback/index?classid=18071162649778&token=3IE1w9JXSIJt681rrJ0J_WiYpSJR33rVGBsc9zAjeyfCkyeeAyDcLdSjmEllJrb2CqdH1zJ1Si0?
本次分享主要是想聊聊在Facebook根深蒂固的工具文化,以及越來越被關注的視頻QoE。從音視頻文化上帶給大家一些啟發,在今年10月份還會做一個正式的分享,會更多的從技術層面出發。
Facebook工程師團隊
Facebook大家應該都很熟悉了,雖然它現在在中國沒有市場,實際上在國外一直是一個壟斷的地位,也一直處于一個快速的增長過程之中。Facebook工程師團隊的特點,如下:
1)小團隊,不重復造輪子
首先非常強調小團隊文化,一般是一個團隊負責一個東西,不重復造輪子;
2)沒有測試工程師,沒有產品經理,沒有數據分析師
每個工程師要對自己的代碼要完全負責的,你就是你產品的主人翁,也就是說每個開發工程師同時也是QA,PD,Data Scientist;
3)自驅力,創造力
在Facebook里面非常強調的一個文化,它就是自驅力和創造力;
4)強大的工具支持
在前面說的,每個工程師要自己負責,但通常很多事情并不是靠個人就能做完的,實際上它除了團隊文化,背后是有非常強大的工具體系來支撐的。
質量保證 QoE
由于Facebook的用戶量是特別大的,那么怎么樣才能保證每個工程師寫的代碼能夠有比較正面的影響呢?在Facebook里面強調的是:“Everything must be tested”,就是說任何一行代碼都要必須被測試過,一般從代碼快速上線 ,有一個周期從2個星期到3個小時的演化,然后從Master Train到實時上線。任何的功能都是經過實際的來測試的,如何做到這點呢?分兩個方面:
1)灰度發布
灰度發布在Facebook是用兩個東西來做的,一個叫GK,一個叫QE。 GK是用在Web端和服務器端的,QE是用在Mobile端,就是安卓和IOS上的,它可以非常精確的定點和定向,然后還有逐步灰度,比如說,你想選擇在某個區域里面,手機是IOS5.0以上的版本的用戶能夠進入到你的灰度里面,它也是一個逐步灰度的過程,從1%的用戶到2%,3%,一直到20%,就像是一個逐步放大的過程,這樣能夠確保任何時候,如果你的代碼有不良的影響,可以被非常快的關掉。因為有這樣的機制,它就保證說你的代碼隨時的上線。
2)ABTest
ABTest,指的是在同樣的情況下用戶會分成兩種,例如,當準備上線2%的用戶時,有1%的用戶會經過你的新Code,有1%的用戶是沒有經過你的新Code,在完全相同的情況下,由于Facebook的量很大,即使 1%的用戶也是上百萬乃至上千萬級別的,這樣它可以在很短的時間內收集海量的數據,通過海量的數據分析,能夠定位到代碼是不是真正的有效。
Facebook的工具文化
總結下來,Facebook工具文化的精髓就是用工具提高效率,可能和國內公司不太一樣,他們最優秀的工程師都會在開發內部工具,開發的工具不但是給自己提供方便,給整個公司也提供方便。通過工具解決流程問題,企業文化也可以通過工具來推廣,簡單來講,把這些事情都做到工具里面,讓機器來做就好了。
1、常用工具
下面會給大家介紹一些Facebook的常用工具:
1)代碼開發協同工具 – Phabricator
這是一個開源的代碼協同的工具,它會自動掃描你的代碼,看看在格式和語法上面有沒有不合規的地方需要修改,同時也會自動完成代碼測試到上線的整個流程。
2)Scuba實時數據分析系統
?這是一個實時數據分析的系統,會進行一個海量數據的分析,當你的某個產品上線后,它能快速找出用戶使用的數據來進行分析,還能對比同時期各種數據的指標。
3) Deltoid數據分析工具
?Deltoid數據分析工具是一個自動ABTest分析工具,在海量的數據里面,這個工具能夠準確的、快速的把ABTest數據量化,從統計學的角度排除掉干擾的信息,告訴你哪些數據是有效的,哪些數據是噪音,哪些數據是無效的。通過Deltoid可以很清楚的看到哪些功能是有效的,哪些是無效的。
2、Facebook的開發
?
我個人總結Facebook的開發主要分為五步:
第一步,確定要的功能,完成代碼,進行自測
第二步,設置測試分組流程
第三步,通過內部和外部用戶測試
第四步,分析測試結果
第五步,根據結果決定是發布還是丟棄,再次進行修改
3、數據指導QoE
通過數據來指導的QoE,首先要制定好主要的指標,次要的指標,像跟視頻多媒體相關的,主要指標要注意Messenger – 通話時長(Call Duration),Live – 觀看時長(Watch Duration),次要指標就有很多了。另外,我要強調的是,QoE不是單純的QoS,更是一種服務體驗,比如圖標ICON,Layout和弱網提示等,這些都會影響到用戶的體驗。
Q&A
Q1:推薦幾本多媒體的書?
A:基本上講的比較好的,一本講H.264的,另外還有講RTP的一本書。
《H.264 and MPEG-4 Video Compression》恩·E·理查森
《 RTP: Audio and Video for the Internet 》科林·珀金斯
Q2:Facebook在GitHub上有哪些相關的項目?
A:就說多媒體方向的話,音視頻方向的開源項目并不是特別多,我記得后面我們開源了一個基于Quick來做得那種媒體播放的,然后的話,非常多的是基于這個底層下面的。
Q3:現在有很多Code也是直接就Check到WebRTC主流上面,它的這個多人連麥視頻窗口排列有所不同,這個會影響用戶體驗嗎?
A:這個是有可能會的,從用戶的層面來講,他很多時候感知到的是一種服務,是一種體驗。他只要覺得,他講話的時候,得到了反饋,他知道對方在講話,他看到了這個反饋,也聽到了這個聲音,他就愿意多用你的產品。
總結
以上是生活随笔為你收集整理的何亚明:Facebook的工具文化和多媒体QoE的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LiveVideoStackCon 20
- 下一篇: 王亚楠:基于强化学习的自动码率调节