腾讯会议如何做到8天扩容100万核?

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:腾讯开发者网络

小提示:您能找到这篇{腾讯会议如何做到8天扩容100万核?}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的腾讯会议如何做到8天扩容100万核?内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

< ">疫情期间,腾讯会议作为一款非常便捷的远程协作工具,成为国内众多企业日常会议沟通交流的主要平台。殊不知,这款产品从2019年12月26日才正式推出。如何在这么短的时间内,有效撑起国内数以亿计的用户访问量,保证系统的稳定运行?本文来自腾讯云的技术人员,为你解析8天时间内完成100万核资源的扩容背后的技术,希望对大家有所借鉴。

< ">如果需要交付100万核的计算资源,需要做什么?准备资源,然后按用户需求进行交付。如果在前面加一个定语“快速”呢?可以加班加点完成。但是如果要实现8天内完成100万核的资源交付,换算下来,每天需要交付12.5万核,这就有点苛刻。在云计算的历史上,从未出现过类似的案例。

< ">那么,腾讯会议是如何做到的呢?

< ">< font-size: 18px;">解决思路

< ">首先,分析如此短的时间内,交付这些资源需要做哪些事情,会遇到哪些问题。

< ">实际上,借助于当前成熟的虚拟化技术,可以基于已经制作好的镜像系统文件,快速地部署一套用于提供服务的生产环境,所以,只需要准备好足够的计算资源就能够实现服务的无限扩容,而这个过程大概需要以下四步。

< ">1.准备资源,投放物理机:作为云计算服务提供商,首先资源是第一位的,所以第一步要准备用于提供服务的物理机。这100万核心的资源,相当于约12000台物理机。以防资源不足的问题,需要快速将这些物理机全部上架,同时,保证每台物理机经过验证,并且部署了正确版本的后台组件。

< ">2.资源注册与分配:有了物理机资源,下一步就需要把初始化好的物理机资源投放到现网环境中,确保每一台物理机资源都在CVM后台服务中注册。腾讯云操作系统VStation需要维护数十万级的物理机资源,这无疑对资源调度能力提出了极大的挑战。这一步需要快速将所有计算资源找到对应的物理机承载。

< ">3.资源创建与交付:当后台调度系统选择好承载计算能力的物理机之后,下一步是到物理机上创建虚拟机资源。这一步看似简单但需要做的事情却不少,如生成用户控制数据,与存储、网络系统交互,生成对应的虚拟机配置,启动虚拟机。

< ">4.虚拟机初始化:虚拟机成功创建之后,就已经可以交付使用了。不过可能还需要进行配置,如拉取配置、加入服务集群、启动服务等。

< ">< font-size: 18px;">完整历程解密

< ">图1是腾讯云操作系统VStation架构图,腾讯云操作系统VStation,承担资源调度、请求排队的任务,已经对大批量、高并发的创建请求进行了充分优化。具体来说:

< ">API部分接入用户请求,管理用户角色、CVM机型、用户配额等;

< ">云操作系统VStation,承担资源调度、请求排队,目前虚拟机每分钟吞吐可达到5000台;

< ">Host组件上安装用于生产和配置CVM实例的各种辅助组件。

图1:VStation云操作系统

< ">下面从资源准备、注册与分配、创建与交付、虚拟机初始化四大部分详细介绍下其中的具体过程。

< ">1.准备资源,投放物理机

< ">腾讯云基于定制化腾讯TLinux、自研的虚拟化hypervisor系统,可以实现批量自动部署、自动投放,并且在投放到现网之前进行自动验证,保证软硬件不存在隐患。腾讯云Host组件管控系统,方便管理腾讯云hypervisor上的各种代理组件,易于发布,方便运维。

图2:Host初始化过程

< ">安装系统:运维平台从资产管理平台CMDB拉取对应Host相关机型信息,寻找与该机型对应的TLinux操作系统控制BMC配置从pxe启动,从pxe服务器拉取系统镜像安装系统。

< ">系统初始化:安装完系统后需要配置各种系统参数,调优。

< ">部署Host使用的组件:每种不同机型的CVM使用的Host会使用不同的后台Agent,以及相关配置。通过Host组件管控系统Host使用的插件进行统一管理,下发。

< ">导入集群:已经初始化好的Host,需要导入到VStation集群才能售卖和生产CVM。

图3:Host组件管控系统

< ">Host组件管控系统用于下发Host组件、灰度版本、控制、支持并发下载、灰度发布,同时上报Host上各个组件的信息、组件健康管理、自动拉起组件、异常告警等。

< ">2.资源注册与分配

< ">作为整个系统的核心,腾讯云操作系统VStation需要管理10万级的物理机资源,近千万级的核数,所以需要实现快速和稳定的调度系统。VStation服务类似Google Borg/Omega使用的分布式调度架构,对计算资源进行调度。

图4:VStation调度系统

< ">其中,水平扩展调度器支持横向扩容,每个调度器拥有几乎全部的集群信息,方便掌握全局资源;采取增量同步、定时更新、局部缓存的方式,尽可能多地掌握全局视图,并且维持集群状态信息的准确性。

< ">调度决策方面,将可能过滤掉更多物理机的基础条件放在调度器的靠前位置,过滤掉无法满足基本条件的物理机列表,减少调度过程中物理机集合在不同调度器之间的传递;同时,根据多个维度,如物理机资源使用率、剩余资源等,对满足装箱条件的物理机进行排序,尽可能优先使用优质Host资源,合理调配。此外,避免多个调度器在并发时选中相近的物理机,对经过排序后的物理机进行随机调整,减少大并发时造成的冲突。

< ">3.资源创建与交付

< ">解决资源调度问题后,需要在选中的物理机上创建虚拟机资源,其中有一些耗时的硬性阶段无法解决,VStation对此结合资源创建过程的的特点,做出了令人满意的优化,把单台虚拟机创建时间基本控制在3-5秒。

< ">前面提到,资源创建需要与诸如用户控制数据、网络服务、存储服务、镜像服务、密钥、安全组服务等进行交互,完成用户与所创建的虚拟机资源之间的映射。VStation平台设计之初就考虑到高并发,批量创建的场景,对周边系统的交互实现了并行化通信。同时,为支持高并发,提高服务的网站建设免费吞吐量,每种与其他服务交互的工作进程通过高可用消息队列通信,都是无状态和可扩容的。真正实现了高可用、高并发、自动容灾。图5是VStation内部系统的核心架构。



图5:VStation后台架构

< ">VStation通过高可用的消息队列,控制数据与周边系统交互的工作进程间通信,同时对创建过程中的关键任务按照依赖关系实现并行化,最大限度的压缩创建总耗时。针对高并发请求,为减少对系统自身的影响,系统具备以下特性:

< ">1 控制信息载荷自动压缩

< ">控制消息携带了CVM实例的各种控制信息:计算、存储、网络以及各种元数据信息。随着系统功能增加,控制层面数据也有所增长,控制信息载荷增大。使用压缩算法在投递消息前进行压缩并在接受消息后解压缩,能够大大降低消息占用消息总线,提高消息吞吐率。目前VStation使用开源LZ4-Extremely fast compression压缩和解压缩算法,压缩速率可达到780 MB/s,解压缩速率在4970 MB/s,压缩率在2倍左右。



< ">2 负载平衡

< ">分布式系统中会使用多个实例以增加系统请求响应吞吐率,控制模块负载平衡可以保证请求均匀地被各个worker处理。负载平衡需要后台处理请求的worker均匀分配到不同处理实例上,降低等待队伍长度,并发执行任务。同时需要将虚拟机实例尽量均匀地分配在不同Host。

< ">将并发请求尽可能均匀地分在不同物理机,有利于加快办法创建速度。生产虚拟机较为耗时的任务有创建虚拟机磁盘、下载虚拟机镜像、申请网卡、配置网络等。如果多台虚拟机串行地在同一台物理机上创建,必然是系统瓶颈,创建耗时延长。VStation Scheduler在装箱时,每个Scheduler实例有近乎全局的资源视图,对同一批次的创建任务,可以在虚拟机并发装箱时保证虚拟机尽量不落在同一台物理机。

< ">3 流控系统

< ">当请求数超过系统承载能力时,如果不加控制,会对周边系统造成危害,导致系统过载,内部组件异常(如DB慢查询、不响应、消息队列丢消息),破坏性较大,严重时会造成服务不响应,甚至用户数据不一致。VStation增加排队机制,降级服务,而不是返回系统内部错误,以提升用户体验。流控系统由以下几个方面组成:

< ">关键请求频次控制:在API请求频次上对用户做限制,防止恶意用户频发请求系统,如恶意购买,刷单等。

< ">用户配额限制:限制用户随意申请资源,尤其是按量资源,限制配额。



< ">后台请求排队与流速控制:任何系统都有能承载的处理容量,当VStation正在处理的请求超过一定阈值时,对新加入的请求不做拒绝处理,而是放入等待队列中待正在处理的任务完成后继续执行。

图6:VStation流控系统

< ">4 任务编排优化

< ">一个完整的创建任务涉及到的各种子任务较多,单纯串行执行虽然逻辑清楚且维护简单,但不利于充分发挥系统能力,高并发创建场景中耗时较长。通过分析虚拟机实例创建过程中的各种依赖关系,将不耦合的任务并行执行,把简单的单项图转换成有向无环图(DAG),进一步提升任务的并行度。

图7:创建流程任务优化

< ">调整后,单台CVM实例创建任务可以控制在5秒以内。

< ">4.虚拟机初始化

< ">提到云主机的初预警系统始化,CVM支持使用云原生的cloud-init服务,支持云计算主机镜像初始化协议,用户通过传入自定义的脚本程序,实现云主机创建后自动执行预定义配置。同时,腾讯云提供实例metadata服务。用户在自定义脚本程序中可以访问实例metadata服务获取与实例有关的信息,如IP地址、实例名称等,来实现每个实例的特殊化配置。

图8:CVM元数据

< ">CVM实例相关元数据信息包括镜像、用户数据、vendor数据、元数据几部分组成。其中镜像信息和用户数据信息可以让用户自行配置,vendor数据和实例元数据(如IP信息、地域信息等)可以通过内网访问腾讯云元数据服务获取,从而实现快速自动化配置CVM实例。

< ">总结

< ">8天内完成为腾讯会议扩容100万核的任务,在此一役,腾讯云CVM后台服务有效地支持了高并发请求,通过优化调度算法、优化内部架构、降低创建耗时,完美经受住了此次考验。未来,将更有信心迎接其它更艰巨的挑战。

腾讯会议如何做到8天扩容100万核?

上一篇:Wish引流工具ProductBoost经费宝典
下一篇:Wish:ProductBoost引流大法 站内推广快人一步


版权声明:以上主题为“腾讯会议如何做到8天扩容100万核?"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    腾讯会议如何做到8天扩容100万核?
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“腾讯会议如何做到8天扩容100万核?”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通腾讯会议如何做到8天扩容100万核?的相关事宜。

关键词:腾讯会议如何做到8天扩容

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号