QCon2016全球软件开发大会随笔(二)

QCon2016全球软件开发大会随笔(一)

今天是QCon2016的第二天。北京的天气依然好得一塌糊涂。除了风大了点。啥也不说了,继续上短袖。

好天气1 好天气2

有了昨天的良好睡眠,今天听课终于是不困了。但无论如何,9个分会场的63场演讲是没办法同时听完的。也正因为有了更清醒的大脑,我采取了一种新的听课方法:10M听课法

10M听课法是一种创新的听课方法,灵活运用10M,可以让学习者使用同样的时间得到超过1.5倍的课程内容!这种方法易学难精,但很容易掌握!

当然了你知道上面是扯淡的。

我其实只是把自己想听的演讲先随便找一个听10分钟,然后再选择听哪个而已。于我而言,10分钟已经足以判断这个演讲是否值得听了。如果无法判断……那就再听5分钟。

所以,我今天一共听了11场演讲。我把里面对我有较大价值的列在下面(按时间排序):

  1. Android超级补丁包技术
  2. 移动互联网的音视频传输挑战
  3. 用WebGL打造HTML5游戏引擎平台
  4. 滴滴运维架构的演化史
  5. 移动端音视频应用优化之道
  6. 互动娱乐时代下的web音视频性能优化

其中,有3个关于移动互联网音视频优化的演讲。我这样选择的原因是:希望在多个不同机构(海外厂商、网易、腾讯)的相同内容分享中,了解他们对音视频技术的不同处理方案,并从演讲风格和侧重点方面进行比较。

事实证明我的选择是非常正确。这三个演讲不但内容侧重点不同,演讲风格也迥然不同。

上面编号为2的演讲是一个在硅谷的公司声网 Agora.io 提供的。讲师的Keynote经过了精心准备,演讲应该也是排练过多次。所有的描述都非常准确且没有废话,Keynote和演讲配合天衣无缝。该演讲述了该公司基于WebRTC进行音视频传输时碰到的问题,并从质量评估,数据统计,虚拟专线,丢包对抗,网络可用,后台稳定这六个方面来阐述问题的解决方案。其中既包含服务器架构,也包含算法的选择和讨论,从内容上和形式上来说都是一场极为精彩的演讲。

编号为5的演讲是网易杭州研究院提供的。郭再荣老师的演讲风格沉稳内联,技术点讲得极透彻。他分享了网易视频云的直播和点播架构,还分推送端和播放端讨论了音视频处理的协议选择,编解码技术和优化方案。如果10年前做基于 RTMP 协议的视频直播的时候能看到这个演讲,或许我也能做到现在了吧……

网易云直播架构

编号为6的演讲是腾讯提供的。讲师小哥有点紧张,但演讲的内容却十分不错。该演讲对腾讯课堂的技术架构进行了讲解。其中不仅包含服务器架构,同时也包含客户端的架构以及如何解决延迟等棘手的问题。腾讯采用的协议和网易云并不相同,使用了一些私有的协议和Flash技术。例如,下面是音视频直播的典型架构:

直播典型架构

但腾讯课堂采用了自己的架构,不但选用了私有的UDP协议,音频部分采用的也不是常用的AAC编码,而是Skype的SILK编码。

直播典型架构

腾讯课堂还使用了 CrossBridge 把C++开发的SDK编译成SWF版本,基于Flash技术实现了自己的专有客户端播放器。

直播典型架构

编号为3的演讲是青瓷HTML5引擎的作者林意炜。青瓷引擎我之前并没有了解过,该引擎完整提供了一个基于浏览器的IDE,的确是让我震撼了。之前我们使用白鹭开发微信游戏时候碰到的iOS掉帧的问题,也在演讲中有所提及。林意炜提到的WebGL已经Ready的观点让人兴奋。联想到最近微信升级到X5 Blink内核全面解决安卓声音问题的新闻,我不禁感慨HTML5的春天真的已经到来了。

编号为4的演讲说的是滴滴出行运维平台的演化史。他们采用Gitlab作为运维平台开发基础的做法非常值得借鉴,至少有下面几点好处:

  1. 文本化方便管理,提交可多级审核
  2. 可以使用hook实现自动脚本功能
  3. 模版的继承
  4. 不需要在界面上多次调用
  5. 原生的版本管理

滴滴出行运维团队说他们是在“开着飞机换引擎”。话说回来,哪个初创公司又不是这样呢?

最开始滴滴运维团队选择了让运维学习研发,而放弃了从纯研发转向运维研发的人才培养方式。现在看来,还是从研发转向运维效率更高。

不早了,明天继续学习,晚安。

QCon2016全球软件开发大会随笔(三)