AICon上海「Agent与多模态解决方案专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

ALive:淘宝双 11 直播,技术同学却可以“偷懒”?(一)

  • 2019-12-17
  • 本文字数:1701 字

    阅读完需:约 6 分钟

ALive:淘宝双11直播,技术同学却可以“偷懒”?(一)

✪ “疯狂的”淘宝直播间 ✪

今年直播又火了!


2019 年双 11 淘宝直播带来近 200 亿 成交,以天猫双 11 交易总额 2684 亿计算,直播已经占总成交额的近 7.45%!


✪ 今年的变化 ✪

除了以往的手淘和猫客,现在 UC 浏览器、新浪微博、支付宝、优酷、闲鱼、飞猪、饿了么、口碑等等一系列阿里系 APP 里也可以观看直播、购买商品了,可以想象一下这些场景:


  • 点了一杯奶茶外卖,在本地生活 APP 里通过直播能够看到小哥哥正在制作谁的订单,我排在第几号了,线下门店的卫生情况、制作过程、客流量、商品咨询都可以在直播间里了解到

  • 在支付宝小程序里,边看直播边抢主播发来的口令红包

  • 在阿里健康的消费医疗直播间里,跟今日特约的医师进行线上咨询

  • 最近在计划一趟旅行,在飞猪 APP 里通过直播看着小姐姐介绍航旅套餐,还有小窗合流的当地风景观光片


除了导购直播、客服直播、医疗直播、手艺直播等等,我们还能看到各种风格类型和互动形式的台网联动直播、秀场直播、晚会直播,以下是今年承接的几场大型互动晚会:



这些直播无论内容和互动有什么样的区别,他们都有一个共同的特征:直播间右上角「淘宝直播」的水印


问个问题,所有这些类型的直播间,都是淘宝直播的开发同学支持的吗?这需要一个多么庞大的技术团队呢?答案是这个团队其实很缺人,所以他们「勤奋」地做了一件「偷懒」的事情:ALive 开放,让阿里经济体里需要直播能力的业务能自主接入、自主开发,于是就有了今年百花齐放的直播生态。

✪ ALive 演进 ✪

ALive 的使命是汇集淘宝直播强大的音视频处理能力,提供直播、互动、营销一体化解决方案,实现「生态开放、直播未来」的愿景。


时移到 2018 年 7 月,当时的淘宝直播还是小作坊模式,所有的业务对接都由淘宝直播技术团队承接,各团队都在超负荷工作。随着对接的外部业务越来越多,各类直播间定制化需求越来越高,技术团队开始构思开放之路,解放一方生产力,赋能二方、三方直播能力。

▶ 分析

直播对于观众来讲其实就是两个诉求:观看直播、参与互动。来看下当时的淘宝直播是如何满足用户这两个诉求的:



整体结构分为两部分:一个是直播能力,一个是互动通信能力。通过直播能力,观众能观看直播流;通过互动通信能力,观众能在直播间里参与实时互动。


  • 直播能力:最简单的模型就是“两端加一服”,即推流端、播放端、流媒体服务器。主播通过推流客户端进行直播推流,我们提供了 PC 端推流工具和淘宝主播 APP 进行 ARTP 低延时推流,流媒体服务经过转码、切片、存储、分发等,供播放端拉流播放。

  • 互动通信能力:主播在中控台创建、管理直播,开播后推送互动,经过业务服务调用和消息下发,端上渲染业务组件。当时的架构,每一个组件都跑在独立的 Weex 容器或 H5 容器里。

▶ 问题

直播能力主要由淘宝直播音视频团队提供,依托阿里云构建了完整的音视频端到端闭环,包括音视频编解码、传输通道、网络调度技术,提供超低延时、超高画质、超大并发访问的音视频服务。二、三方业务只需要接入播放器 SDK ,主播使用我们的推流工具,即可支持直播能力。


互动通信能力主要依赖端侧的技术架构,从上图的架构可以看出两个核心痛点问题:


  • 性能低下:每个组件都是独立的 Weex/H5 页面,内存占用较高,直播间流媒体播放已经占用了较高的内存水位,多个 Weex/H5 叠加后加大了 Crash 风险。同时各组件间相互独立,资源重复加载,加载性能也较差

  • 效能低下:前端组件由客户端挖坑位的方式加载 bundle ,开发、调试环境强依赖客户端,直播环境搭建、消息模拟、数据 Mock 、日志查看、代码调试等链路都非常复杂,开发效率极其低下

▶ 解法

前端的技术工作大部分都在解决两个「能」的问题:性能 和 效能。针对上述痛点,技术侧需要做两件事情:一是构建一个 灵活、高效的直播容器,解决性能问题;二是提供一套 直播间组件开发的工程体系,解决效能问题。在性能和效能都得到提升后,将这些能力通过 ALive 开放平台开放给二、三方业务接入,基于这些思考,我们升级了直播架构:



直播容器的核心区别,是由原来每个组件独立为一个 Weex/H5 容器,变成只保留一个 Weex 容器,通过这个直播容器来动态加载组件。


本文转载自淘系技术公众号。


原文链接:https://mp.weixin.qq.com/s/L5lggzXju1ajAjUfaaDGLw


2019-12-17 14:121161

评论

发布
暂无评论
发现更多内容

全栈开发实战|​人事管理系统的设计与实现(Spring Boot + Vue 3 + MyBatis)

TiAmo

Spring Boot mybatis Vue 3 全栈开发 三周年连更

直播预告 | 时序数据处理的云端利器:TDengine Cloud 详解与演示

TDengine

tdengine 时序数据库 云服务

求你看完再去面试!涨薪必备分布式事务小抄,狂怼面试官

程序知音

Java 分布式 后端 java架构 Java进阶

右键助手:MouseBoost PRO mac激活版

真大的脸盆

Mac Mac 软件 鼠标增强工具 鼠标辅助软件

Android事件分发-基础原理和场景分析

京东科技开发者

android Activity View 企业号 4 月 PK 榜 ViewGroup

跨平台应用开发进阶(五十二):安全合规之Android APP完整性校验机制探究

No Silver Bullet

android 安全合规 跨平台应用开发 三周年连更 APP完整性

容易忽视的细节:Log4j 配置导致的零点接口严重超时

vivo互联网技术

问题排查 接口超时 线程block

从原理聊JVM(一):染色标记和垃圾回收算法

小小怪下士

Java 程序员 后端 JVM

Spring Boot过滤器实现项目内接口过滤

Java你猿哥

Java Spring Boot SSM框架

华为云数据灾备方案,做好企业数据的坚硬后盾

YG科技

技术探讨 | YMatrix 如何将 TPC-H 性能提升 10 倍?

YMatrix 超融合数据库

数据库 开源数据库 性能提升 超融合数据库

【数据中台商业化】数据中台微前端实践

京东科技开发者

数据中台 微前端 iframe 微前端框架

[杂谈]谷歌浏览器 XSwitch 插件 - 解决本地请求转发

alexgaoyh

浏览器 插件 请求转发 本地请求 xswitch

《一文带你看懂:如何进行一次高质量CR》

后台技术汇

代码评审 三周年连更

行业分析| 新的学习方式——在线自习室

anyRTC开发者

音视频 在线教育 视频直播 直播连麦 在线自习室

从原理聊JVM(一):染色标记和垃圾回收算法

京东科技开发者

Java JVM 三色标记 垃圾回收器 企业号 4 月 PK 榜

Qz学算法-数据结构篇(稀疏数组、队列)

浅辄

数据结构 队列 稀疏矩阵 三周年连更

薪资结构重铸: Zebec将业务范围扩大到Web2薪资管理领域

西柚子

有没有那么一瞬间,你也曾有过“失业焦虑”呢?| 社区征文

架构精进之路

技术创新 职业发展 三周年征文 三周年连更

J2EE,Java EE,Jakarta EE 命名之间的恩恩怨怨

HoneyMoose

音视频开发_获取媒体文件的详细信息

DS小龙哥

三周年连更

华为云 OpenTiny 跨端、跨框架企业级开源组件库项目落地实践直播即将开启!

Kagol

开源 前端 Vue 3 UI组件库

什么是 API 接口测试

AREX 中文社区

测试 自动化测试 接口测试 回归测试

什么是前端开发领域的 Cumulative Layout Shift 问题

汪子熙

typescript 前端开发 angular web socket 三周年连更

某程序员:被裁了要求公司足额补缴全部公积金,一次补二十多万!

Java你猿哥

Java 程序员 SSM框架

Java 依赖注入(DI)

HoneyMoose

Unity常用生命周期函数解析 - 超级详细,不服来辩

陈言必行

Unity 三周年连更

组件必知必会|那些年我们使用过的轮子—Filter和Proxy

浅羽技术

javaWeb Proxy 过滤器 组件 三周年连更

华为云数据灾备,满足企业数据安全及业务连续性需求

YG科技

企业微信接入系列-上传附件资源

六月的雨在InfoQ

企业微信 三周年连更 企业微信接入 企微上传附件

华为云数据灾备解决方案,助力企业守好安全防线

YG科技

ALive:淘宝双11直播,技术同学却可以“偷懒”?(一)_文化 & 方法_淘系技术_InfoQ精选文章