【IT168 现场报道】2016年10月27日-29日,2016中国系统架构师大会(SACC 2016)在北京万达索菲特大饭店举行。作为中国规模最大的架构师豪门盛会,本届大会以“架构创新之路”为主题,站在创新的风口上,与大家共同打造一场通过架构创新及各种IT新技术来带动企业转型增效,助力架构师们腾飞的技术盛会。
▲宋慎义:现就职于优酷土豆,开发全民直播流媒体平台和并支持优酷流媒体业务,打造全民直播app来疯。曾在微软中国Mediaroom事业部从事互联网电视机顶盒、流媒体服务器开发。
2016中国系统架构师大会的第三天下午,我们迎来了主题为“直播技术”的专场,今天下午的第一位演讲嘉宾是优酷土豆流媒体架构师宋慎义,他演讲的题目是《为全民直播量身定做流媒体服务》。
全民直播的普及对流媒体技术提出了新的要求,也给了一个新的机会。这个演讲通过优酷来疯、来玩、自频道的业务发展,以及对流媒体的技术需求,向大家介绍一个面向全民直播的流媒体平台的演化历程及经验教训。现有的cdn、音视频产品、SDK是否解决全民直播的问题?一个小团队如何维护一个流媒体应用的各种需求,如何提高交付效率,以及如何在眼花缭乱的流媒体技术中选择合适的技术及供应商?
麻雀虽小,需求不少
2016年直播元年,优酷直播启动的还是比较早的,来疯在2013年开始启动,最早的时候人员也比较稀缺,为了快速迭代,我们为直播量身定做了一套流媒体服务。
流媒体服务
刚开始的服务很简单,那是在2013年, 第一代产品有三个基本特性:1、简单、2可用、3可扩展。总结来说,其实就是从最终端到上传边缘,一层一层往下扒,一些大厂商的主题模式也是这个样子。随着用户的需求不断更近,我们也迎来了新的挑战,主要体现在运维;直播体验和移动端;转码;录制、点播和截图;调度GSLB;连麦和SDK等。宋慎义表示:直播体验其实是一个功夫活,并不会那么轻松,而且从编码器不同,硬编和软编方向看出来,我们现在缺少很普世的,并且被大家使用的一个上传器。而连麦往往需要SDK,宋慎义指出目前在市面所知道的连卖产品,基本都是需要SDK的。
现在直到我们看到我们用户的数据上线之后,才发现调度的重要性,好的调度甚至可以掩盖掉流媒体服务,调度的作用主要分为几点:并发、流量管理;调度监控;SLA;GSLB;调度中心。总的来说在调度层面我们可以去把现有的流量切到流媒体服务器上,最重要的一点就是省钱和提高用户体验。宋慎义分享在2014年时,我们把调度监控作为调度其中一个重点,这样不但可以进行容灾恢复,还能进行服务降级。
衍生业务
“为了让流媒体服务变得专业化,要做好分布式调度中心,这样所有的一切都放在调度中心来做,所有的决策也都在调度中心,有了调度中心我们的很多业务也比较容易横向扩展,如果没有的话,我们目前新的一些业务很难和之前有一个很好吻合,我们的一切配置都在在调度中心获取,所以也发展了很多衍生业务,比如转码、转码清晰度、录制、截图等,”宋慎义这样表示说,在实时通信这方面,由于webrtc适用于点对点,不太适用于移动端,想要同时上传的话比较吃力,所以我们把webrtc换成了自己的一套。
服务化改造
如果没有统一的服务化改造方法,每个人都可能会不知道自己在调度哪一个服务,造成一个复杂局面的后果,所以我们现在在做服务化改造,我们现在具体手法就是再做一些技术上的选型,在这个过程中,目的是我们最终目标是分布式服务发现。然后为什么要去提高服务化质量呢?因为用户反映过来的问题都是非常模糊的,因为我们看不到。其实每一次用户给我们提出的问题都一次难得的提高机会,这个是比在评测室发现的问题还要位置宝贵的。所以我们采用了一些措施来保证服务质量:故障监控、质量评估、数据统计。
反思
小团队如何实现流媒体服务呢?宋慎义表示说:“真正的难题是,需要知道自己什么东西能做和如何去协作,需要知道是让有经验的人去帮你做。”第二个问题,流媒体服务与其他互联网服务的异同,相同的地方在高可用、高并发,需要在各个社会上,各个场景上使用,流媒体服务是一个有状态的服务,把状态提取出来,然后用现有的服务做成无状态,无论是并发和可用都解决掉。
2016年第八届中国系统架构师大会SACC,来自互联网、电子商务、金融、电信、政府、行业协会等20多个领域的150多位技术专家将汇聚一堂,共同探讨云计算和大数据时代下,如何通过架构创新来实现企业的快速转型。更多内容请访问大会官网:http://sacc.it168.com