当前位置: 首页 > 编程日记 > 正文

百度发的208亿春晚红包,靠这样的技术送到了你手上 | 解读

2019 年的春晚红包项目对百度而言是一次大考,背后需要强大的技术来支撑。如你所见,百度不负“技术大厂”的标签,春晚红包期间系统稳定运行,没有出现宕机事故。在这样一个庞大而复杂的项目面前,他们是如何去用技术去化解的?

4 月 4 日,以“揭秘春晚红包背后的技术”为主题的第七届百度技术开放日举行,从顶层设计到具体的技术模块,百度公开对外进行了梳理和分享。

会上,百度副总裁侯震宇率先介绍了保障整场春晚项目不宕机的技术“顶层设计”。他指出百度春晚抢红包环节面临的四大挑战是时间短、技术难、场景复杂、要求高,而百度有全系统全链路的优化设计、优良技术积累的护航、以及大规模工程能力的保障。

全系统全链路的优化设计:整体架构设计与优化、统一前端接入优化、极端并发的数据库优化

吴永巍演讲:《春晚极端并发下的架构设计与优化》
春晚极端的并发场景是对技术实力最高级别的检验。春晚直播期间,数亿用户参与互动,每秒钟千万级并发请求,全球观众参与百度春晚红包互动次数达 208 亿。基于此,百度在这次春晚红包项目架构设计中采用的是以大化小、隔离、弹性、智能、动态、自愈,同时高效控制总成本的设计理念。

在架构设计方面,百度架构师及工程师将整体系统拆解成四大业务系统和大量基础设施与服务。为了提升观众参与的质量,百度提出了多项具有针对性的优化方案。在春晚红包环节,观众可以通过摇一摇、信息流、视频、语音、搜索等多样化形式参与。

除了这些基本的架构设计与优化外,还有统一前端接入优化、安全防攻击、资源协调和动态调度能力,全链路压测与攻防以及内测、预案与剧本等关键技术和方案,才保证了春晚摇红包顺畅进行。
 章淼演讲:《春晚中的百度统一前端接入》
百度架构师章淼介绍,BFE(百度统一前端)是百度统一的七层流量转发平台。在春晚红包项目中,BFE 是 IDC 流量的统一入口,提供流量调度、接入转发、限流、应用层防火墙等能力。每日转发请求数接近 1 万亿。基于 BFE 的快速开发能力,可以通过将部分业务逻辑前置到 BFE,降低整体的系统开销。同时基于自研专用流式计算系统,提供实时报表能力,在亿级别流量下可以实时反馈系统状况。
余杰演讲:《极端并发场景下的数据库解决方案》
在春晚红包活动中,数据库服务处于业务链路的最底层,具有相当重要的作业,对其稳定性、可靠性及并发能力提出了更高的要求和需求。

百度 DBA 形成的完整的数据库技术体系和解决方案,从架构上适配春晚项目的业务需求,通过set化等关键技术方案,达到对业务透明且灵活扩展、故障最小化隔离能力;在流量管控上,基于流量画像能力,结合安全检测及拦截能力、多维度多层级流控能力,达到对整体服务的过载保护和安全防护能力,能有效保障整体服务的可用性、数据的安全性,达到数据库千万级 QPS 处理能力;最后结合近百项的剧本及自动监控预案措施,进一步加固了春晚数据库服务保障能力,助力春晚活动顺利进行。

技术积累的护航:服务的混部调度、弹性的资源供给、极速稳定的CDN服务
许霞演讲:《服务混部与弹性供给》

春晚期间,亿级别用户同时启动,上亿的用户同时与百度云服务发起建连。相较于以往简单的摇一摇,这次用户同时访问的业务覆盖搜索、推荐、语音、视频等复杂业务,两周时间内要实现数万级别规模服务器的资源快速筹备与使用方案制定。

技术方案上,重点通过百度云集群内部全混部,利用集群流转支持,满足春晚活动资源需求。混部调度意味着选择合适资源,部署合适任务,并做好安全的隔离与服务保护机制。百度春晚活动服务混部调度采用 BestEffort(BE)模式,弹性使用全百度云的集群资源。

BE 模式对原正常业务实现了无侵入使用,满足了春晚服务提前进场与快速便捷退场的需求,顺利通过了活动的多轮压测工作与最终线上的效率与质量考验。同时围绕潜在问题场景,设计了秒级弹性伸缩的方案,为潜在的未知春晚力量做足万全准备。
连林江演讲:《春晚的媒体云平台解决方案》
百度云的媒体云平台是一个涵盖了视频/图片类数据的采集、生产、上传、存储、处理、分发、播放的一体基础设施云平台,具备国内最大的万亿文件千 P 数据的存储、每天千万级媒资处理、数百节点 50T+带宽的分发网络和一站式智能视频解决方案。

大规模工程能力的保障:高效的工程能力、自动化、自助化压测平台、全要素链路压测与攻防

王一男演讲:《春晚红包背后的研发效率 》
春晚红包项目涉及数十个产品和平台,110+种场景,280+个预案,百余团队参与,上千人协同,平均每天新增需求和任务千余个,自动化测试上万次。百度资深产品设计师王一男称,在如此大规模协同开发的挑战下,春晚红包项目能够高效、高质量交付,离不开百度长期积累的技术文化和工程能力、集团统一的工程标准和研发规范、可靠高效的开发工具和协作平台。
曹轩演讲:《春晚蓝军的压测与攻防》
再好的架构设计,也需要上战场真实规模演练,春晚蓝军就负责为春晚系统制造各种麻烦。首当其冲的就是全要素全链路压测,用来模拟真实用户行为,构造大于春晚极限并发的压力洪峰,验证从供电、网络等基础设施,到上层软件架构的服务能力。

百度架构师曹轩表示,压测的核心是要摒弃正向思维模式,强调机械的覆盖与验证,不放过任何一个“绝对不会出问题”的环节。与此同时,为了验证春晚系统应对异常的能力,百度主动构造随机异常。基于对高可用架构的丰富经验,百度架构师专门选取系统的“七寸”发起主动攻击,来验证系统的架构容灾能力和应急指挥机制。

总体而言,能够在不宕机的情况下抗住春晚 200 余亿元红包的交互,是百度调度多方面技术资源的结果,同时也表明百度的技术实力并非浪得虚名。

相关文章:

一步一步学Silverlight 2系列(10):使用用户控件

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlig…

何恺明的GN之后,权重标准化新方法能超越GN、BN吗? | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」,购票请扫码咨询 ↑↑↑作者 | Siyuan Qiao、Huiyu Wang、Chenxi Liu、Wei Shen、Alan Yuille(Johns Hopkins University,约翰霍普金斯大学)译者 | 刘畅编辑 | Jane出品 | AI科…

【AI】CelebA数据介绍、下载及说明

1、简介 CeleA是香港中文大学的开放数据,包含10177个名人的202599张图片 官网:http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html 下载地址(百度网盘,官方的):http://pan.baidu.com/s/1eSNpdRG 【python】…

Zend Framework Mail通过网易免费邮箱发送邮件

2019独角兽企业重金招聘Python工程师标准>>> 做为一个苦逼的个人站长,做一个小网站,本来愿意来看的人就不多,再弄一个不能找回密码的会员系统?基本上被判死刑了 。阿里云的短信也要钱啊,而且只支持PHP 5.5以…

将shp导入SDE中出现“表或视图不存在”问题

其原因是权限不够,下边代码可以用来检查权限是否够。 private void ESRILicense() { IAoInitialize mAoInitialize new AoInitializeClass(); esriLicenseStatus licenseStatus (esriLicenseStatus)mAoInitialize.IsProductCodeAvai…

【python】使用python脚本将CelebA中同一人的图片捡到对应单独的文件夹中

1、目的 CelebA的所有的照片都在一个文件夹中,为了能在dlib训练人脸识别时,方便使用,将CelebA中同一人的图片捡到对应单独的文件夹中。 【AI】CelebA数据介绍、下载及说明 2、方法 首先创建10178个目录,然后解析Anno/identity_…

仅用语音,AI就能“脑补”你的脸! | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」,购票请扫码咨询 ↑↑↑作者 | Wav2pix 研究团队译者 | 刘畅编辑 | Jane出品 | AI科技大本营(公众号id:rgznai100)【导语】之前我们为大家介绍过一项非常酸爽的研究“Talking…

如何在SAP云平台上使用MongoDB服务

首先按照我这篇文章在SAP云平台上给您的账号分配MongboDB服务:如何在SAP云平台的Cloud Foundry环境下添加新的Service 然后从这个链接下载SAP提供的例子程序。 1. 使用命令行 cf marketplace查看当前SAP云平台的MongoDB的版本号:在我使用的SAP云平台上是…

C#中将dll汇入exe,并加壳

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 1、合并file1.dll、file2.dll到destination.dll ILmerge /ndebug /target:dll /out:C:\destination.dll /log C:\file1.dll C:\file2.dll 2、合并file1.dll、file2.dll以及myApp.exe…

【AI】dlib中图像标注工具 imglab 详细说明

一、基本用法 imglab是一个在图像上标注矩形的工具。基本方法 1> 获取图片列表&#xff1a;./imglab -c mydataset.xml /tmp/images&#xff0c;/tmp/images为保存图像的文件夹 2> 标注每个图片&#xff1a;./imglab mydataset.xml&#xff0c;使用shift鼠标左键拖动来选…

最萌算法学习来啦,看不懂才怪!| 码书

普通程序员&#xff0c;不学算法&#xff0c;也可以成为大神吗&#xff1f;对不起&#xff0c;这个&#xff0c;绝对不可以。可是算法好难啊~~看两页书就想睡觉……所以就不学了吗&#xff1f;就一直当普通程序员吗&#xff1f;如果有一本算法书&#xff0c;看着很轻松……又有…

Redis 缓存设计原则

基本原则 只应将热数据放到缓存中 所有缓存信息都应设置过期时间 缓存过期时间应当分散以避免集中过期 缓存key应具备可读性 应避免不同业务出现同名缓存key 可对key进行适当的缩写以节省内存空间 选择合适的数据结构 确保写入缓存中的数据是完整且正确的 避免使用耗时…

最强大,最简洁的【禁止输入中文】

方法一&#xff1a;禁止中文输入法 <input type"text" style"ime-mode:disabled">方法二&#xff1a;禁止黏贴&#xff0c;禁止拖拽&#xff0c;禁止中文输入法&#xff01;这种方法是最强的禁止 中文输入 <input type"text" οnpaste…

无监督机器学习中,最常见4类聚类算法总结 | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑编译 | 安然、狄思云来源 | 读芯术&#xff08;ID&#xff1a;AI_Discovery&#xff09;在机器学习过程中&#xff0c;很多数据都具有特定值的目标变量&#xff0c;我们可以用它们来训练模…

自动红眼移除算法 附c++完整代码

说起红眼算法&#xff0c;这个话题非常古老了。 百度百科上的描述&#xff1a; “红眼”一般是指在人物摄影时&#xff0c;当闪光灯照射到人眼的时候&#xff0c;瞳孔放大而产生的视网膜泛红现象。 由于红眼现象的程度是根据拍摄对象色素的深浅决定的&#xff0c;如果拍摄对象的…

【Dlib】在GPU环境中运行dlib中的例子dnn_mmod_ex报错...dlib::cuda_error...Error while calling cudaMalloc...

1、问题描述 在GPU环境下运行dlib中的例子dnn_mmod_ex时&#xff0c;报错&#xff1a; terminate called after throwing an instance of dlib::cuda_errorwhat(): Error while calling cudaMalloc(&data, new_size*sizeof(float)) in file /home/laoer/tools/dlib/dlib…

Exchange 2010正式发布了

2009年11月9号&#xff0c;Exchange 2010正式发布了&#xff0c;下载地址&#xff1a;http://www.microsoft.com/downloa ... 0-879f-d74208d6171d简体中文64位120天试用版转载于:https://blog.51cto.com/287416363/657202

【python】使用python脚本将CelebA中图片按照 list_attr_celeba.txt 中属性处理(删除、复制、移动)

1、目的 CelebA中的照片有四十种属性&#xff0c;参见&#xff1a; 【AI】CelebA数据介绍、下载及说明 根据需求从celebA中获取我们想要的图片&#xff0c;方法是将CelebA中图片按照 list_attr_celeba.txt 中属性执行删除、复制或移动操作。 命令格式&#xff1a; python3 C…

firefly 编译opencv3.3.1, CMake报错

更换gcc编译器可以解决 -D CMAKE_C_COMPILER/usr/bin/gcc-4.8转载于:https://www.cnblogs.com/gabrialrx/p/9001554.html

AI时代,为何机器人公司无法盈利只能走向倒闭?

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑作者 | Bram Vanderborght译者 | 弯月责编 | 屠敏出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;导语&#xff1a;机器人专家需要公开诚实地讨论我们的成功&#xff0c;而不…

Google Objective-C Style Guide

看题目就知道了&#xff5e;哪天有空翻译成中文的&#xff5e;不多说了&#xff5e;上链接&#xff5e;Google Objective-C Style Guide转载于:https://blog.51cto.com/lulala/659124

ICPC 2019国际大学生程序设计竞赛,中国高校未能夺冠

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑整理 | 琥珀出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;一年一度的国际大学生程序设计竞赛&#xff08;International Collegiate Programming Contest&#xff0c;ICPC&am…

完爆Facebook/GraphQL,APIJSON全方位对比解析(一)-基础功能

相关阅读&#xff1a; 完爆Facebook/GraphQL&#xff0c;APIJSON全方位对比解析(二)-权限控制 完爆Facebook/GraphQL&#xff0c;APIJSON全方位对比解析(三)-表关联查询 自APIJSON发布以来&#xff0c;不断有网友拿来和Facebook的GraphQL对比&#xff0c; 甚至有不少人声称“完…

【AI】吴恩达斯坦福机器学习中文笔记汇总

1、吴恩达机器学习和深度学习课程的字幕翻译以及笔记整理参见&#xff1a; 以黄海广博士为首的一群机器学习爱好者发起的公益性质项目&#xff08;http://www.ai-start.com&#xff09;。 2、黄海广博士公益项目介绍 https://www.jianshu.com/p/16a749e332db 3、吴恩达 斯坦…

【C++】C++命名空间重定向

参见博客&#xff1a; namespace使用总结 命名空间的重定向的格式&#xff1a; namespace newName oldName; 在caffe源码走读时&#xff0c;遇到namespace的重定向用法&#xff0c;以前没有用过&#xff0c;源码如下&#xff0c;其中 GFLAGS_GFLAGS_H_是为了检测gflags的版…

宝宝都能看懂的机器学习世界

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑作者 | 武博士、宋知达、袁雪瑶、聂文韬来源 | 大鱼AI&#xff08;ID&#xff1a;DayuAI-Founder&#xff09;人类需要经过各式各样的学习才有办法认识这个世界。 当小朋友第一次看到猫后…

iOS LLDB调试命令(Low Lever Debug)

断点 设置断点 $breakpoint set -n XXX set 是子命令 -n 是选项 是--name 的缩写!查看断点列表 $breakpoint list删除 $breakpoint delete 组号禁用/启用 $breakpoint disable 禁用 $breakpoint enable 启用遍历整个项目中满足Game:这个字符的所有方法 $breakpoint set -r Game…

TCP通信速率与延时关系

刚刚研究了链路延时对TCP速率的影响&#xff0c;占位&#xff0c;有空会写一下。转载于:https://blog.51cto.com/csnas/659983

十三、序列化和反序列化(部分转载)

json和pickle序列化和反序列化json是用来实现不同程序之间的文件交互&#xff0c;由于不同程序之间需要进行文件信息交互&#xff0c;由于用python写的代码可能要与其他语言写的代码进行数据传输&#xff0c;json支持所有程序之间的交互&#xff0c;json将取代XML&#xff0c;由…

【C++】google gflags详解

参考博客&#xff1b;https://blog.csdn.net/lezardfu/article/details/23753741 0、简介 gflags是google的一个开源的处理命令行参数的库&#xff0c;使用c开发&#xff0c;具备python接口&#xff0c;可以替代getopt。gflags使用起来比getopt方便&#xff0c;但是不支持参数…