何亚明: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讲师热身分享 ( 三 ) —— Facebook的工具文化与多媒体QoE
LiveVideoStackCon 2018音视频技术大会是每年的多媒体技术人的盛宴,为了让参会者与大会讲师更多互动交流,我们推出了LiveVideoStackCon讲师热身分享第一季,在每周四晚19 ...
- facebook注册工具_如何打开Facebook的数据保护工具
facebook注册工具 If you spend a lot of time on Facebook, you can burn through your mobile data pretty qu ...
- 终极版Facebook广告管理工具新手教程!赶紧收藏!(上篇)
广告管理工具是一款用于创建和管理Facebook广告的工具.用户可以查看和修改所有Facebook广告系列.广告组和广告,以及查看相关结果. Facebook是很多跨境人不会错过的海外社媒营销平台,所 ...
- Google、Facebook的工程师文化到底是什么?
" 近日,技术圈996事件.月饼事件让无数技术人感叹中国没有像Google.Facebook 那样行之有效的工程师文化.那么,究竟什么样的文化才是我们所追求的工程师文化呢?一起来看看左耳朵耗 ...
- 继WhatsApp后 Facebook聊天工具Messenger用户也突破十亿人
PC互联网时代的社交网络霸主Facebook,正在成为移动互联网时代的移动聊天霸主.继WhatsApp用户已经超过十亿人之后,其另外一款聊天工具Facebook Messenger用户规模也超过了十亿 ...
- LinkedIn:用数据提高视频性能
LinkedIn通过在视频播放过程中收集的大量数据,对多种视频指标进行实验以提高视频性能,改善用户体验.本文来自LinkedIn工程博客,LiveVideoStack对文章进行了翻译. 文 / Eva ...
- 音视频技术开发周刊 61期
『音视频技术开发周刊』由LiveVideoStack团队出品,专注在音视频技术领域,纵览相关技术领域的干货和新闻投稿,每周一期.点击『阅读原文』,浏览第61期内容,祝您阅读愉快. 架构 马思伟:视频领 ...
- Sean Lynch谈Facebook Claspin监控工具的由来
InfoQ中文站曾经报道过Facebook的工具文化,Claspin就是该文化的产物,形象来说,Claspin就是Cache的健康热图.该工具的创始人Sean Lynch在一篇博客中分析了它的由来. ...
- Linus Torvalds的安全性,Facebook的AI工具等
在本周的开源新闻综述中,我们将看看开放数据还不是那么开放,Facebook将更多工具作为开源发布,以及更多! 开源新闻让您阅读愉快. 2015年1月17日至1月23日 万维网基金会发布第二份开放数据晴 ...
最新文章
- 今天开始记录自己苹果开发博客旅程!~
- 2008年5月网络管理员考试上午试卷参考答案
- ENTER键指定事件
- 虚函数实现多态---C++
- PHP警告:socket_bind():无法绑定地址
- 酒桌上,领导将酒泼到你脸上......
- 玩游戏提示计算机性能过低,如果玩游戏的fps低怎么办?八个问题和九个解决方案...
- sqlserver2008R2下载安装教程
- Cobbler-自动化部署神器01
- spring源码学习(1)- bean
- PPC手机QQ2008 最新版下载
- 小菜编程成长记(十一 无熟人难办事?——聊设计模式迪米特法则)
- wampserver大红色橘色变成绿色
- 牛牛牛!正则阿拉伯数字变中国大写
- 如何让PHP性能问题不再饱受诟病
- 菊花是哪个城市的市花1_2.html,花中四君子——秋菊知多少?
- 关于汉字的部件部首和独体字
- LintCode 141. 对x开根 JavaScript算法
- 处理autocad 2010闪退
- phpspreadsheet excel导入导出
热门文章
- iOS:quartz2D绘图 (动画)
- ICC_lab总结——ICC_lab2:设计规划
- 利用 NGINX 最大化 Python 性能,第二部分:负载均衡和监控
- 如何成为优秀的前端工程师
- 2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)- 占座位(最小割)
- CH - 6901 骑士放置(二分图最大独立集-二分图最大匹配+奇偶拆点)
- HDU - 3486 Interviewe(RMQ-st表+暴力)
- 共享单车数据集_共享单车数据可视化报告
- 对校招生培养工作的建议_如何提升人才培养质量?西华的老师们正面临一场大考...
- mysql的explain的用途,利用Explain来分析和优化你的mysql