大促下的智能运维挑战:阿里如何抗住“双11猫晚”?
作者 | 阿里文娱技术专家子霖
出品 | AI科技大本营(ID:rgznai100)
2019 双 11 猫晚在全球近 190 个国家和地区播出,海外重保是首要任务,如何提升海外用户观看猫晚的体验?本文将详解双 11 猫晚国际化的技术挑战和技术策略。
播前成功率改进
1. 海外主站链路优化
计算猫晚海外 CDN 带宽用量,明确海外直播 CDN 资源分布及其调度回源链路,结合现有 直播赛事,分析海外各地域国家直播卡顿率,重点分析卡顿率高的地域。对比访问主站各地域国家 TCP 建连时间,调整主站 TCP 建连时间。
2. 直播服务单元化
1)为什么要做单元化
用户体验及资源瓶颈:随着业务体量和服务用户群体的增长,用户需要更优的访问速度,
单机房无法支持长期的服务的持续扩容;
服务异地容灾:异地容灾已经成为核心服务的标配,有些服务虽然进行了多地多机房部署, 但数据还是只在中心机房。要实现真正意义上的异地多活,就需要对服务进行单元化改造;
全球化战略:全球化战略带来的不只是用户增长,同时数据也会快速增长,全球数据都集 中部署在少数几个机房显然不太现实,基于地理区域划分、数据维度驱动的单元化架构是未来 全球化战略的一个技术方案储备。
2)单元化收益
一是容灾:多地域容灾。任何一个城市异常,核心交易下单行为能够在秒级内全部恢复, 非核心行为在 2 小时内恢复;中心有全量的数据,单元的数据写入后会同步到中心;若单元故 障,单元提供的交易流量会切换到中心;如果是中心故障,中心会切换到中心备份环境;
二是扩展性:单元化后,系统扩展不受机房的部署和资源限制,可在不同地域选址横向扩
展来满足系统日益增长的需求;在多地部署应用后,按照就近接入原则:用户请求落到离它最
近的站点,提升用户体验;
三是稳定性:单元快速部署和验证,可在一个空的单元引流来验证功能,降低系统风险; 可以对一个空站点做全链路压测,能快速得到站点容量;
四是成本:减少系统对机房部署的强依赖,提供更大的灵活性;能够将单元的规模,所需 的资源信息确定下来,用环境的标准化快速部署来节省成本。
3. 部署压测兜底演练
在直播单元压测完成,扩容完成后,进入直播链路专项压测阶段。在这个阶段,对存在性 能风险的场景和链路进行放大流量的集群层面的压力探测,对集群层面的指标 CPU(avg/max)、Load(avg/max)、RT(avg/max)等进行监控,并对直播入口首页播放页兜底压测,力求发现系统潜 在风险。2019 年优酷 Java 应用测试团队梳理出多个存在性能风险的链路和场景,进行了专项压 测保证。单链路专项压测的压测方式不尽相同,这一部分是最灵活和最有效的性能与稳定性筛 查。
4. 成功率验证
多场次直播拉取数据对比验证各场次播前成功率是否符合预期,分析不符合预期的国家进 行相应的回源调度调整。双 11 当天整体表现稳定,接入层和各上云应用 OPS、成功率、RT 均 符合预期。
卡顿率改进
1. 开启智能档
今年的双 11 天猫晚会,优酷 APP 上清晰度列表中有了智能清晰度。智能清晰度是什么, 简单来讲,就是自动调整实际播放的清晰度,而调整的依据就是用户当前的 IP,网络状态等信 息,结合用户所处网络环境为用户选择合适的清晰度,减少卡顿,并提升播放体验。智能档, 也就是码率自适应,优酷在点播场景下已经用了起来且相对较成熟,而今年的双 11,我们将其 应用在直播的场景下,进一步提升用户的播放体验。猫晚海外各端默认全开智能档。目前优酷 的码率自适应实现,基于主流的 HLS 协议,进行分片级别的切档。
2. 直播链路优化
优化了协议栈,客户端播放使用 HLS 协议,开启 TS 预热。CDN 边缘节点调度优化,边缘节点回源按地域国家统一调度到指定的二级回源节点。
3. L2 节点优化
L2 节点回源站,优先走高速通道。高速通道故障后,切到备用链路。其中东南亚国家 L2回源链路由公网回源切到了香港 L2 高速通道回源。保障了直播回源链路的稳定。
4. 卡顿率验证
通过开启智能档,调整边缘节点的调度以及 L2 回直播源站的链路。通过多场次直播验证, 整个播放卡顿率比预期得到极大的改善。
资源成本效能
通过建站平台完成海外直播单元一键建站,单机压测平台输出单机能力,从而评估出应用 扩容所需资源。将所有扩容应用输入平台,一键完成应用扩容。切流平台保障单元间容灾时平 滑切换。这么复杂的直播链路,通过智能业务链路,对上千个接口进行自动监测、梳理以及容 量的自动评估。其节点部署及交付是小时级别,从成本、用户体验上领跑行业,让海外播放页 面及互动游戏体验和国内一致。
有了上述对关键点的梳理,那么一套服务于大促资源全生命周期保障的平台系统 就应运而 生。确定目标如下:
1)资源需求:需求收集-单机能力评估-历史活动数据对比-工单生成-批量扩容执行-压测调 整-结束资源回收,全链路 100%平台化流程化;
2)单机压测:单机压测能力覆盖所有大促应用,实时提供最精准的能力数据;3)业务巡检:资源健康度巡检,低水位低利用率低 OPS 应用数据输出,自动资源回收,提升资源利用率。
1. 一键扩缩容
非核心应用资源动态支援能力,10 分钟 1000 台回收交付能力; 整体能力分为两个大类:资源需求线和资源保障线。
2. 总体流程
明确需求收集范围->改进需求收集方法->实现单机能力自动获取->实现历史容量数据自动 获取->应用上下游依赖链路自动获取-> [业务目标->技术目标转换]->完成资源需求评估。实现需 求上报渠道能力,单机实时压测能力,目标转化能力,上下游链路及流量平衡自动评估能力。
3. 资源保障总体流程
建设整体资源容量盘点能力->建设应用级别线上水位巡检能力->优化资源快速交付/调整能 力->建设非核心应用应急容量挪用能力 ->快速回收资源 ->完成闭环的生命周期,实现高效交 付,强化资源盘点及 buffer 保障的能力。
重保预案及措施
1. 主站重报预案及措施接入层水位高:水位达到预定阀值执行自动扩容。不需要人工干涉; 用户超预期:降低码率,执行限流; 单机房出口故障:平台自动执行切流,切到正常的机房; 单元公网出口故障:切流平台执行切流,切到正常单元。
2. CDN 重保预案及措施预案执行演练、兜底策略执行演练、大盘实时监控、快速故障处理应急小组。
项目总结
每次参加双 11 战役,都收获颇丰。精准的计算资源用量、技术方案评审到落地,都要经过多次反复验证,通过每年的双 11 技术沉淀到平台,大大减轻了人力成本。
单机压测平台提供单机的能力从而计算出集群的水位,建站平台提供主站及单元部署的一键建站;扩容平台提供大 促一键扩容及一键缩容能力,切流平台提供机房容灾切换能力,运维机器人提供各监控项的快速查看;资源成本平台提供大促成本能力。后面平台优化的地方还很多,从主站到 CDN 实现全链路无缝对接,借助双 11 充分发挥平台优势。
【END】
今日福利
遇见陆奇
同样作为“百万人学 AI”的重要组成部分,2020 AIProCon 开发者万人大会将于 7 月 3 日至 4 日通过线上直播形式,让开发者们一站式学习了解当下 AI 的前沿技术研究、核心技术与应用以及企业案例的实践经验,同时还可以在线参加精彩多样的开发者沙龙与编程项目。参与前瞻系列活动、在线直播互动,不仅可以与上万名开发者们一起交流,还有机会赢取直播专属好礼,与技术大咖连麦。
门票限量大放送!今日起点击阅读原文报名「2020 AI开发者万人大会」,使用优惠码“AIP211”,即可免费获得价值299元的大会在线直播门票一张。限量100张,先到先得!快来动动手指,免费获取入会资格吧!
点击阅读原文,直达大会官网。
你点的每个“在看”,我都认真当成了AI
相关文章:

这次真的是下定决心了
这次我想是真的,真的。 上上周买了一本书 数据结构 c版 看到这本书的重点 线性表第三节,看不下去了,由于我模板学的不怎么样,数据结构c版大部分涉及了c 的模板,而且我觉得这本书上的代码有些漏洞。上上周买书的第三天…

子弹实例化的代码
using UnityEngine; using System.Collections;public class fire : MonoBehaviour {public float rate 0.2f;public GameObject bullet;private void Start(){OnFire();}//实例化子弹public void Fire(){GameObject.Instantiate(bullet, transform.position, Quaternion.iden…
Shiro源码学习之一
一.最基本的使用 1.Maven依赖 <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</artifactId><version>1.2.4</version></dependency><dependency> <groupId>org.slf4j</groupId> …

传百度要与阿里、腾讯争夺在线办公市场?“百度Hi”开放520人同时在线音视频会议
在线办公市场持续火热。4月20日,百度旗下在线办公平台“百度Hi”再升级,正式发布业内大规模的520人音视频会议,并支持多入口快速入会,加码在线办公。另有消息称,4月底,百度在线办公平台将发布重磅升级&…

SQL 2008 安装资料及下载地址
SQL Server 2008 序列号: Developer: PTTFM-X467G-P7RH2-3Q6CG-4DMYB Enterprise: JD8Y6-HQG69-P9H84-XDTPG-34MBB 服务器设置SQL Server 代理 NT AUTHORITY\SYSTEMSQL Server Database Engine NT AUTHORITY\NETWORK SERVICE SQL Server Browser 默认 SQL Ser…

Objective-C非正式协议与正式协议
为什么80%的码农都做不了架构师?>>> 类别与类扩展的区别: ①类别中只能增加方法; ②是的,你没看错,类扩展不仅可以增加方法,还可以增加实例变量(或者合成属性)ÿ…
Shiro源码学习之二
接上一篇 Shiro源码学习之一 3.subject.login 进入login public void login(AuthenticationToken token) throws AuthenticationException {clearRunAsIdentitiesInternal();Subject subject securityManager.login(this, token);PrincipalCollection principals;String hos…

Widgets 整理
1.滑动条 http://www.newnaw.com/pub/sl/031.html <--!grid中的内容--> <Grid x:Name"slidergrid" HorizontalAlignment"Left" VerticalAlignment"Center" Background"Azure" Margin"20"> <StackPane…
黑客用上机器学习你慌不慌?这 7 种窃取数据的新手段快来认识一下!
作者 | IrrfanAk译者 | 天道酬勤、Carol 责编 | Carol出品 | AI科技大本营(ID:rgznai100)机器学习以分析大型数据集和模式识别的能力而闻名。它基本上属于人工智能的一个子集。而机器学习使用的算法,是利用了先前的数据集和统计分析来做出假设…

ServletResponse-中文名的下载
2019独角兽企业重金招聘Python工程师标准>>> package com.httpServletResponse; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; import javax.servlet.ServletException; import javax.se…
Linux环境编译安装OpenJDK
Centos6.5 AMD64位机器 Java的源码是C,C和Java实现的,所以还需要有一个安装好的java建议选OracleJDK参考文末 安装OracleJDK Linux环境安装卸载JDK以及安装Tomcat和发布Java的web程序 安装依赖 | Install dependence # yum -y install gcc gcc-c alsa-lib alsa-…
最快69秒逆向DRAM地址映射,百度设计的这款逆向工具如何做到快速可靠?
来源 | 百度安全实验室出品 | AI科技大本营(ID:rgznai100)导读:近日,国际顶级设计自动化大会DAC大会公布DAC 2020会议议程和论文名单,由百度安全发表的《DRAMDig: AKnowledge-assisted Tool to Uncover DRAM Address M…

国外厂商在行业客户上输单的原因
这两天听一个朋友聊天发泄,他在一家总代J公司工作,代理业内排行第一的国外厂商C公司的产品,他负责D行业在南方某几个省的销售业务,工作中需要与C公司的销售紧密配合。经过接近一年的工作,他拿到一些项目,但…

[android] 从gallery获取图片
效果就是点击按钮,打开系统图库应用,可以选择一张里面的图片展示出来 设置隐式意图 获取Intent对象,通过new出来 调用Intent对象的setAction()方法,设置动作,参数:Intent.ACTION_PICK 调用Intent对象的setT…
调试JDK源码-HashSet实现原理
调试JDK源码-一步一步看HashMap怎么Hash和扩容 调试JDK源码-ConcurrentHashMap实现原理 调试JDK源码-HashSet实现原理 调试JDK源码-调试JDK源码-Hashtable实现原理以及线程安全的原因 代码 Set<String> snew HashSet<String>();s.add("http://blog.csdn.ne…
Python 炫技操作:海象运算符的三种用法
作者 | 明哥来源 | Python编程时光(ID:Cool-Python)Python 版本发展非常快,如今最新的版本已经是 Pyhton 3.9,即便如此,有很多人甚至还停留在 3.6 或者 3.7,连 3.8 还没用上。很多 Python 3.8 的特性还没来…

2010.10.30 OA 项目组一周工作报告
本周基本上实现了上周的目标,但和计划相比有落后。 进度:55 本周提交了3.0任务评估的第一个版本,一共为1003小时,客户收到该评估后,对3.0任务进行了调整,将部分任务移到2011.2版本中,同时添加了…

继承log4.net的类
using System; using System.Diagnostics;[assembly: log4net.Config.XmlConfigurator(Watch true)] namespace Hbl.Core {public static class Log{/// <summary>/// 一般错误/// </summary>/// <param name"message">消息</param>public …
调试JDK源码-Hashtable实现原理以及线程安全的原因
调试JDK源码-一步一步看HashMap怎么Hash和扩容 调试JDK源码-ConcurrentHashMap实现原理 调试JDK源码-HashSet实现原理 调试JDK源码-调试JDK源码-Hashtable实现原理以及线程安全的原因 Hashtable是线程安全的,我们从源码来分析 代码很简单 Hashtable<String, …

源代码查看工具 Source Navigator 使用心得
在ubuntu 10.04下试用了Source Navigator,有条件还是装Source insight吧,不是一个级别的,非常不方便。 Source Navigator 是Red Hat出品的一款查看源代码的工具,非常好用,与Windows下的Source Insight有一敌。但是它的…
那个分分钟处理10亿节点图计算的Plato,现在怎么样了?
受访者 | 于东海记者 | 夕颜出品 | CSDN(ID:CSDNnews)「AI 技术生态论」 人物访谈栏目是 CSDN 发起的百万人学 AI 倡议下的重要组成部分。通过对 AI 生态顶级大咖、创业者、行业 KOL 的访谈,反映其对于行业的思考、未来趋势的判断、技术的实践…

android TextView里边实现图文混配效果
做的游戏攻略中的图文载入已经用TextView实现。但看到网易新闻里的内容。点击图片能够调到一个新的Activity ,感觉也像Textview 实现的,但不知道怎么弄,想想能够通过动态载入Textview和ImageView 布局实现,但当量大的时候回事很复…
《异步处理在分布式系统中的优化作用》学习笔记
原文地址:http://www.infoq.com/cn/presentations/optimization-of-asynchronous-processing-in-distributed-systems 视频地址:http://v.qq.com/boke/page/l/0/6/l0196plsvp6.html 主讲人:赵海平 Facebook hiphop HHVM 阿里巴巴技术保障部…

CISCO设备上DHCP实例
Cisco设备上设置DHCP实例 -------------------------------------------------------------------------------- 一位客户想把DHCP SERVER迁移到6509交换机的MSFC上,要求还挺复杂: 1.同时为多个VLAN的客户机分配地址 2.VLAN内有部分地址采用手工分配的…

360金融翟政:科技成就金融场景零容错
翟政,拥有超过20年的互联网经验,我国第三方支付第一批从业者,是多个知名第三方支付公司产品研发团队的组建者,核心系统的主设计师,管理层核心成员。设计搭建的支付系统过去这十年来一直在服务着各行各业的在线支付需求…

OSSIM平台安全事件关联分析实践
OSSIM平台安全事件关联分析实践在《开源安全运维平台OSSIM最佳实践》一书中叙述到,事件关联是整个OSSIM关联分析的核心,对于OSSIM的事件关联需要海量处理能力,主要便于现在需要及时存储从设备采集到的日志,并能关联匹配和输出&…
《Apache Kafka》学习笔记
1.什么是Kafka Kafka是一个高通过率的分布式消息系统 2.消息队列(Message Queue)MQ的模型 消息队列的简单架构图 3个核心概念: Sender Application:消息队列的发送者,也叫生产者producer Message Queue Receiver Application…
4 月 24 日开播!基于神经网络建模的信息传播预测
信息传播在我们的日常生活中无处不在,例如谣言的扩散、产品的推广以及新思想和新技术的普及等等,其建模和预测已经在多个重要领域内得到了广泛的研究。近年来,很多研究者利用以循环神经网络为主的深度学习模型对信息传播过程进行建模…

并行计算圆周率
看到这个题目,俗了,大家都在计算圆周率。不过咱们的目的是看一下并行计算的基本流程。 书上计算PI用的是精确的数值计算方法,我这里再给出一种概率计算方法。 OpenMP和MPI将同时亮相。 计算PI的方法 1.tan(PI/4)1 > PI4arctan1。知…

kafka-manager 的编译和使用(附安装包)
2019独角兽企业重金招聘Python工程师标准>>> kafka-manager是一个非常好用的kafka web管理工具,yahoo开源。 地址:github.com/yahoo/kafka-manager 1、编译过程比较简单,重点是能翻墙,如果网络环境不允许,可…