免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

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:121009

评论

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

【网络安全】浅谈数据库攻击复现及相关安全优化

sidiot

MySQL 网络安全

让你彻底掌握Less的基础,介绍得清晰易懂!

Apifox

程序员 前端 开发 less

低代码工具浅析

互联网工科生

软件开发 低代码 JNPF

中企出海之营销最佳实践——新加坡SK集团

用友BIP

中企出海

传统全面预算管理体系暴露的问题

用友BIP

全面预算

软件测试 | 性能测试管理障碍

测吧(北京)科技有限公司

测试

自动驾驶优缺点都有什么

来自四九城儿

不错的IT项目管理系统有哪些?对比2023年最受欢迎的8款项目管理工具

爱吃小舅的鱼

PingCode 项目管理软件

从辅助驾驶到自动驾驶道路还很远

来自四九城儿

一种很新的交互式智能标注技术

澳鹏Appen

人工智能 交互 数据标注 智能标注 交互式标注

【Netty】「优化进阶」(二)浅谈 LengthFieldBasedFrameDecoder:如何实现可靠的消息分割?

sidiot

Java 后端 Netty 6 月 优质更文活动

企业如何提高全面提升预算管理效率?

用友BIP

全面预算

低代码平台的实现原理

互联网工科生

软件开发 低代码 JNPF

【Netty】「优化进阶」(三)Netty 通信协议设计:从 Redis、HTTP 和自定义协议看起

sidiot

Java 后端 Netty 6 月 优质更文活动

不学血亏!手把手教会你推特视频如何下载到手机相册~

frank

软件测试 | 性能调整基础

测吧(北京)科技有限公司

测试

低代码开发将彻底颠覆编程行业!你还需要学习编程吗?

不在线第一只蜗牛

低代码 数字化 低代码开发

Spring事务优化解析:实现高效率、高并发、低失效的全新策略

xfgg

spring 事务 6 月 优质更文活动

软件测试/测试开发丨用户端Web自动化测试学习笔记

测试人

Python 程序员 软件测试 学习笔记 web自动化

数字化转型与架构|开篇

数字随行

架构 数字化转型

关于AI我们唯一确定知道的是…

FN0

AIGC

软件测试 | 性能测试实施流程

测吧(北京)科技有限公司

测试

Flyway:简化数据迁移以适应敏捷开发

inBuilder低代码平台

音视频开发进阶|第七讲:分辨率与帧率·下篇

ZEGO即构

直播 分辨率 视频 RTC 帧率

机器视觉在自动驾驶应用有什么

来自四九城儿

提升网站速度的秘密武器:国外主机的优势解析!

一只扑棱蛾子

国外主机

让AI来帮你看看,五行缺啥

FN0

AIGC

数学学渣能掌握大语言模型技术吗?

FN0

AIGC

Hibernate5 动态模型

alexgaoyh

hibernate jpa 动态模型 运行时 sessionfactory

从两个案例看Apache Flink如何提升企业实时数据处理效率

xfgg

Java flink 6 月 优质更文活动

程序员这种巫师职业即将消失

FN0

AIGC

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