把大象搬到云端,腾讯云首次披露自研业务上云历程

  • 时间:
  • 浏览:0

传统行业转型的过程中,腾讯向来扮演的是数字化助手的角色,腾讯云作为帮助企业数字化转型的入口,也以后成为腾讯的“独角兽”业务。

然而伴随着云业务的增长,腾讯外部业务如可上云,对于外界来说时不时是个秘密。近日,腾讯自研上云项目负责人周小军首次披露,腾讯如可把外部海量的自研业务搬上云端的故事。以下是他的分享内容:

亲戚我们都都好,我今天分享的核心内容有几只多 :

1、腾讯自研业务如可从私有云的模式搬迁到公有云;2、如可把那些大体量的业务搬到云端;3、如可拥抱云原生。

腾讯的业务量非常庞大,社交业务包括QQ和空间的体量有近二十万台服务器,分布在全国三地。要把不出庞大体积的业务搬到云上,可不时要称之为“把大象搬到云端”。

今天愿意分3个方面向亲戚我们都都介绍腾讯自研业务上云的故事。第一是腾讯业务为那些要上公有云,第3个是业务上云的价值,第几只多 是如可上云,第3个是以QQ上云的案例分享业务上云的过程。

 

2018年原先 ,腾讯业务的烟囱模式

为那些要上云?

2018年原先 ,腾讯的业务线是类似于烟囱一样的模式,每个业务事业群从逻辑层、数据层到后端的容器或虚机层,前会独立一套技术框架和技术体系。每个事业群之间的框架多数是不通用的,几只多 腾讯的员工从IEG转岗到微信事业群,发现他的开发框架以后前会重新熟悉。几只多 新人来到腾讯原先 ,面临不出多的服务框架,也问你如可选择要花费的框架着手。 

 

甚至在腾讯的外部论坛上,时不时有全都新人发帖问,我该选那些样的工具,我该选那些样的框架,两种 状况就是导致 并有的是困惑。

第几只多 是全都工程师不断抱怨为那些腾讯外部有不出多名词,不同的工具、不同的框架、不同的平台、不同的数据库和不同的存储等等。

第3个是全都部门都开发和使用有些人的一套东西,跟有些部门过低分享和合作协议协议。

第几只多 是开源文化氛围不强。全都部门的代码不开放,以后过低文档。亲戚我们都都知道成为几只多 优秀的组件,组件的文档、支持、社区前会非常重要的,不出那些支持得话,你不出把几只多 组件做到最优,以后在腾讯外部全都组件是缺少文档,支持力度过低,甚至出现全都无人维护的孤儿组件。 

 

两大开放战略并行

基于以上问题报告 ,为了技术体系革新,930调整后,腾讯外部做了大变革,包括成立新的云事业群,公司外部成立“技术委员会”,启动“开源协同”和“自研业务上云”的两大战略方向。

首先,开源协同全都 在腾讯外部,所有的开发团队代码前会开放的,腾讯外部有统一代码库,所有的团队及有些人的代码前会在顶端公开提交、公开发布。团队与团队合作协议协议更好,随时可不时要去创建个分支,以后提交更丰沛 的形态功能,形成公司内的开源代码文化,创建更好的工程师氛围。

其次是“自研业务上云”。基于公有云的研发模式,使用云上丰沛 的组件、丰沛 的服务,把外部的有些优秀的工具和组件上云,对外开放,在云上做服务。在客户的激励驱动下,不断迭代成为行业内的领先水平。

这是腾讯技术领域几只多 很大的变革。

不出,上云的价值是那些?

第一是业务价值,业务的研发速率单位更高,从0到1开发几只多 新产品短短一周就能完成,微服务框架、数据库、容器资源、持续集成、持续交付、统一配置中心等等,云上前会现成的服务,研发团队不时要到处拼装各种组件和工具,可不时要更专注业务研发。

第二是工程师价值,工程师可不时要使用到整个业界最标准化的服务,基于公有云的研发模式,不能选择离开封闭的开发环境和组件,同去工程师还可不时要输出非常优秀的组件到云上成为服务,这也是大多数工程师的梦想。

第三是客户价值,可不时要给行业输出非常多的公有云的经验。

截至2019年初,腾讯正式发布的对外开源项目将近70个,诸如腾讯云T stack、蓝鲸智云BlueKing CMDB、微信开源系列和TARS等,前会腾讯开源的典型案例。 

 

业务上云的几只多 阶段

腾讯自研业务上云也并前会一蹴而就的,全都 有几只多 阶段。

第一阶段是从2017年结束英语 直播类业务的上云。直播业务上云模式是一整套直播业务从自研机房搬迁到公有云机房,在腾讯云上提供服务,完成国内和海外几3个节点的建设,服务于自研的直播业务和外部客户。上云时打通了外部的运营管理系统和监控系统,同去支持跨云的管理。

第3个阶段是沙箱云,两种 阶段是在腾讯云上建立几只多 逻辑隔离的私有网络空间,利用腾讯云的IaaS服务,使用云的虚拟机、云的网络、云的机房来支撑自研业务的服务。不过类似于模式只属于基础平台上云,并前会整体业务体系详细上云。

第三阶段,是在腾讯“930”变革原先 , 2018年6月亲戚我们都都就以后结束英语 拥抱公有云,启动自研的整个业务从私有云迁到公有云,这是把整个业务连根拔起搬迁到云上。

上云原先 ,2017年,亲戚我们都都所有QQ用户还在私有云上,到了2018年年底,就以后把一成半的QQ用户从华南区迁到广州云。到了2019年的6月,以后有三成的QQ用户在云上,每6个QQ用户前会几只多 是在云上。亲戚我们都都计划到2019年年底,QQ实现华南、华东和华北三大区域的所有用户详细都迁到云上,实现详细的QQ公有云上服务。

 

上云有那些流程,如可规避风险?

在上云的过程中,亲戚我们都都可不时要直观的感知到,跟原先 烟囱式的架构不同,上云后像IEG、PCG、WXG等事业群等,都将在公有云上运行个人所有的业务。业务会使用公有云的CLB、接入服务、服务框架,云PaaS服务,包括Redis、MySQL、Kafka、ES、CBS、COS等等,还有像K8S那些公有云上的原生服务。

为了实现两种 点,亲戚我们都都做了有些改造,在每个区域的公有云和私有云机房之间拉了专线,实现了公有云私有网络到私有云机房的互通,保证业务不能来回迁移及访问外部服务能力。

根据业务体量不同,业务采用并有的是措施 上云,有改造后上云,有边改造边上云,有先上云再改造。业务可不时要根据有些人的人力资源和上云计划,选择对应的上云措施 。

上图是整个业务团队在上云的过程中所做的几只流程。

第一是测试,包括公有云上的网络、存储、虚拟机、核心服务,以及单机性能、服务吞吐性能、存储读写性能、业务模块性能等等都经过测试。通过测试原先 ,亲戚我们都都和云团队同去优化了服务性能,对业务也相应做了改造适配。

第二是业务上云方案,包括安全方案、容量评估、服务迁移方案和数据迁移方案等。

第三是业务迁移,迁移包括接入层、逻辑层、数据层及文件存储等的迁移。

第四是混合云共存,业务会逐渐灰度迁移到云上,比如在线用户从5%、10%、20%、30%到30%等,是几只多 灰度迁移过程。在灰度过程中可不时要及早发现各种问题报告 ,逐一防止,防止大规模上量时出现灾难性后果。两种 过程中就位于公有云和私有云的混合部署模式,就要重点关注专线使用容量,做好专线在业务高峰期的预案,以及业务跨混合云访问的服务延迟,及时做好用户在不同云之间调度的策略和措施 。

最后是业务监控。上了云原先 使用立体化的监控体系,度量服务调用质量、用户访问质量和服务可用率等,譬如跟踪用户在私有云和公有云的访问延迟有不出变差,可不让能了变坏,运营质量有不出跟原先 保持一致,甚至变得更好。

从测试、方案、迁移、混合到监控,这是亲戚我们都都上云团队所实施的上云迁移整体流程。

根据腾讯自研业务上云,团队所积累的经验之上,亲戚我们都都抽象出详细的上云方案,也十分符合全都企业上云的实际状况,方案分3个阶段。

第一阶段:规划。规划中要对业务系统化的梳理,包括业务评估、容量评估、业务架构、组织体系。组织体系是指上云后组织架构和职能的变化,包括运维职责的变化:类似于不再有顶端件的运维人员,研发流程的变化;研发、测试和中产环境如可在混合云甚至多云中共存;资源预核算的变化;原先 是购买机架和服务器,现在是先充值再按量计费;故障防止流程的变化等。技术体系的组织前会准备跟着公有云转变。

第二阶段是方案规划和设计。要做好详细的迁移方案,风险预案,回滚预案,混合云预案,多云预案等,譬如上云过程中数据迁移有问题报告 ,出现丢数据,我该如可防止等等。

第三阶段是验证。两种 是非常核心的阶段,上云前,要有预测试、预验证的过程。可不时要把有些核心模块,譬如高并发,或延迟非常敏感的模块,在云上做好充分的压测,并跟云服务团队同去优化防止各种问题报告 。

第四阶段是业务迁移。迁移觉更错综复杂了,包括服务和数据缘何迁、缘何做好备份,迁移过程中对业务有不出影响,亲戚我们都都用云的通用迁移工具,还是亲戚我们都都有些人开发的迁移工具。上云过程中,做好对灰度模块的观察,通过客户端服务质量,服务间调用延迟,全网拨测等监控指标观察业有不出问题报告 。

第五阶段是持续运营。整个服务运营体系都变了,基础运维和公共运维团队变成由公有云的运维团队来支持。外部使用的开源监控工具,以后改造成支持公有云的资源监控,以后使用云上心智成熟的句子的句子图片 图片 是什么 图片 期的监控SaaS服务。CMDB要支持多云管理。运营流程也位于很大的变化,服务SLA要跟公有云服务商同去制定。

当然,上云的过程中,安前会不可或缺且关键的一环,腾讯是几只多 非常注重安全的公司,不为社 是用户数据安全。亲戚我们都都在上云安全这块做了全都安全方案。自研外部、企业外部亲戚我们都都有一整套自研的安全体系。上云后,亲戚我们都都结合云上的有些安全产品,以及原先 自研的安全服务和安全策略,制定混合云的安全通用体系。 

首先在公有云的大网里,亲戚我们都都会划出几只多 独立的私有网络VPC,业务分别去部署。之上有网络防护以及网络安全的产品服务。主机上有主机防护,漏洞扫描等。业务层有应用防护,运维有运维安全,云上有丰沛 的产品可不时要去使用。以后亲戚我们都都也打造了有些外部积累的安全方案,并回馈到云上。形成了公有云安全产品和自研安全产品两者相互匹配融合的上云案例防止方案。

事实上,整个公有云的安全策略和私有云是一样的,不出那些根本性的差别。

在上云过程中,也必然会遭遇到有些比较大的挑战,比如数据的迁移。在私有云到公有云的数据搬迁模式中,亲戚我们都都有并有的是模式给业务选择。

首先是私有组件数据迁移到公有云的模式。腾讯外部有全都自研的数据库,像QQ的Grocery KV存储使用的是外部私有协议,云上不出对应服务。业务时要将数据从私有组件迁移到Redis。

亲戚我们都都采取冷迁移的措施 ,先将数据全备,以后把数据导到云上Redis集群,导原先 结束英语 做新增数据追加。缘何追加呢?亲戚我们都都用数据同步中心来实现。顶端会有同步中心实现的架构。数据同步完原先 ,亲戚我们都都通知业务可不时要切割,留几只多 业务低峰期时间,比如晚上凌晨2点,花1分钟把数据路由服务从自研IDC切到公有云Redis集群上。

第二、并有的是模式可不时要统称为开源组件到公有云。亲戚我们都都外部有有些业务,在开源组件之上做二次开发,譬如基于单机Redis实现自研分布式Redis集群。那些基于自研或开源组件的数据迁移到公有云上对应的数据服务,可通过DTS迁移工具来实现。

两种 非常简单,也是业界非常通用的做法,亲戚我们都都直接用云上的DTS来做自助迁移。两种 工具甚至不时要运维操作,开发团队有些人在DTS窗口上输入几只参数,点个搬迁按纽后就可不时要自助搬迁。搬迁完成后自助切换或自动切换。

第并有的是模式是私有组件直接上云。以后有有些组件云上不出,业务就是出资源将私有组件改造成云的标准服务,两种 原先 业务就将组件集群直接在云上部署一套,数据通过同步中心或主备备等措施 搬迁到公有云上。

比如说我在深圳的自研有一台主两台备,不出我再把备3、备4倒进广州云,数据同去同步到私有云的几只多 备和公有云的几只多 备机模式。所有的主备数据详细同步完成原先 ,亲戚我们都都再把公有云的备变成主,自研云的主变成备,就要花费是做了切换。

 

还有有些非常核心的全都 云管平台。原先 外部的配置系统、监控系统、CMDB等等,前会基于私有云的管理模式。业务上云原先 ,亲戚我们都都全都运营系统要改造成支持混合云,支持多云的管理模式。譬如业务模块会有30个实例在腾讯云上,30个实例在海外亚马逊云上,30个实例在外部私有云里,不出亲戚我们都都的CMDB时要要支持多云的资源管理。从图中可不时要看过,顶端是亲戚我们都都的整个业务线,下面那些帐号体系、预核算、企业安全、监控等等有些的应用工具或平台,前会改造以适应混合云模式。就拿帐号体系来说,外部员工以公有云的帐号登录云官网来购买、使用和运营公有云上的资源。但外部如可把帐号所使用的资源成本核算到对应的业务,员工离职或转岗后资源缘何回收或转移,如可把帐号绑定给企业组织架构,云官网帐号登陆如可与外部OA鉴权等,前会时要要考虑和防止的问题报告 。

如可把QQ的所有用户搬上云?

前面讲了业务上云的思路和措施 ,QQ上云是走了原先 几只多 经历。上图全都 一张全国地图,QQ业务有三大区域的数据中心,有华北自研,2015年这里曾位于了几只多 很大的爆炸事件,当时亲戚我们都都还把天津的用户调回了华南和华东区域。上海有华东自研机房,深圳有华南自研机房,在香港还有有些海外的出口。三大区域各有三成多的QQ在线用户。

根据用户分布状况,QQ上云时,在华东、华南、华北三地,在腾讯云建设的云机房上,亲戚我们都都创建了业务的公有云网络,以后把QQ业务从各地的自研机房往云上迁移。

QQ上云中业务架构图分成了三大区域,分别是华北、华东、华南,而华南分成了广州云和深圳自研机房两大机房。目前是“三云一地”。每个区域前会详细独立的存储和业务逻辑服务。可不时要把华南的整个用户详细都调度到华北和华东区。业务随时将用户无须同的云区域和自研区域来回调度。

亲戚我们都都接着看下业务的MySQL数据搬迁案例,详细见上图,它有主—从的模式。亲戚我们都都不出通过IP和PORT来寻址,全都 通过外部的DNS类名字服务来寻址。先分配业务几只多 实例的名称,以后通过DNS拿到两种 实例的IP端口,再去访问具体的实例。从自研的IDC使用腾讯云DTS迁移工具,把数据导到云的MySQL。数据自动导入完成后,开发团队只时要在云上切换服务就可不时要完成数据实例的迁移。两种 适合有些数据体量不大的业务数据迁移。

还有并有的是是主备备的模式,即在深圳自研有数据库服务器的主和备,在云机房新部署几台备机。通过主备同步的措施 ,把所有数据都同步到云机房。以后将云机房的某台备机切加上主机,将自研的主机降级为备机。原先 就切换为云机房主备,自研机房备的模式。

还有更错综复杂的是数据同步中心。两种 是适合业务量非常大,有全国多地分布的业务。服务模块写数据的原先 ,统一写到各地的接入代理,代理统一写一地,譬如深圳自研的写服务。

写服务的转发存储会将新增记录同去写到各地自研、各地的云机房,实现最终数据一致性。

用户就近读,比如华北的用户,就读华北云的两种 数据存储集群,华南就读华南的数据存储存储。

通过同步中心的措施 完成大规模数据的混合云同步。当要增加几只多 成都云区域,亲戚我们都都只需在当地好一套同步服务,增加路由服务规则,同步服务就会自动把数据同步到成都的云机房。

两种 措施 适合对延迟不敏感的业务,譬如社交业务的点赞、发表得话等。一般从深圳自研同步到上海和天津的原先 延迟达到几十毫秒,延迟非常高,不适合金融行业等延时高敏感业务模式。

这是混合云红包的架构。

从2014年结束英语 ,每年春节腾讯前会春节红包活动,今年春节亲戚我们都都首次在公有云和私有云之间做了红包的两地混合。亲戚我们都都在广州云部署了与自研相同规模的红包服务模块,包括数据集群,在春节前演练及预热阶段,充分对广州云服务做了各种测试和验证,包括跨城专线延迟对业务的影响程度。

红包活动期间,用户在接入的原先 根据用户的ID分片或用户来源,通过路由策略分流到广州云机房和深圳自研机房。春节期间,混合云扛住了整个红包活动的用户流量。验证了跨地域的混合云详细能支持亿级的业务大并发流量。当然亲戚我们都都也做了全都方案,比如万一公有云的红包模块不出扛住,亲戚我们都都缘何办?以后亲戚我们都都发现用户在云上有少许失败,亲戚我们都都就把用户在几分钟以内切回到深圳云,甚至把整个业务从云上切回本地,亲戚我们都都有信心去扛云机房的压力。

在上云过程中,QQ研发自身也对业务进行了优化,积极拥抱变化,做了全都处服务的改造,以不能适应新一代的基础设施。

服务逻辑上,全都个业务直接使用云PaaS服务,如长消息、加群逻辑等用了云Redis存储服务。更多的服务迁移到TKE之上。

有些内存存储服务,譬如资料、关系链等数据存储层做了链接数、数据副本扩展、混合云单元分布等架构层级的优化改造。

上云前后,上云团队对业务质量非常关注,不断对比3个云之间的可用率、客户访问质量、服务间调用延迟等质量数据。上云前后, 经过各个架构层的优化,业务质量数据最终保持私有云和公有云一致,保证了用户访问体验。

上云不仅是为了上云,亲戚我们都都更多要拥抱业界开源生态。要用云上优秀心智成熟的句子的句子图片 图片 是什么 图片 期的产品和服务。在开发措施 、业务交付、云原生服务等方面,业务上云前后以后是累积甚至详细拥抱云原生的体系。亲戚我们都都以后把TAPD研发管理工具、工蜂代码仓库,还有蓝盾、西瓜 CI、QCI、coding等集成为工具链,在云上打造了几只多 持续集成、持续部署的DevOps流水线闭环。

目前在云上的交付,业务每周前会几百次的交付是通过容器来完成的,从原先 的包交付变成容器交付。

在微服务这块,像SF2、SPP、TAF等,亲戚我们都都外部不同业务以后使用了全都微服务框架,并计划在公司内迭代升级更优秀的微服务框架。

K8S平台上,亲戚我们都都用了腾讯的TKE引擎,这是几只多 跟K8S详细兼容的引擎。我几天前跟几只多 业界公司聊,亲戚我们都都在腾讯云、阿里云上买了K8S服务,有些人外部也部署了K8S集群。亲戚我们都都的容器可不时要随时、同去交付到腾讯云、阿里云和亲戚我们都都并有的是的K8S集群,而不让做任何改动。通过容器交付,业务可不时要不让考虑环境依赖等问题报告 ,交付变得更敏捷和轻松。

亲戚我们都都基于TKE之上做了功能定制和优化。TKE有基于CPU负载等基础容量的弹性伸缩能力。在TKE优秀的伸缩能力之上,亲戚我们都都还做了功能叠加,包括业务画像,全都 根据业务长期的趋势和业务突发活动,去做趋势预测和活动预测,通过算法来预估容量在那些时间窗会达到几只水位,以准备相应的容器资源来提前几小时扩容,应对突发流量。

上云团队、业务研发跟云的TKE团队合作协议协议,亲戚我们都都把业务形态跟TKE相融合,来做出几只多 形态更加丰沛 、满足业务场景的K8S应用功能。譬如QQ是三地分布,不为社 是上云后又增加了自研和云的机房属性。原生K8S不支持跨地域的,以后亲戚我们都都做了跨地域的形态。

除此之外还有权限限制,业务对权限要求非常严格,是基于IP鉴权的。比如外部的业务模块访问MySQL时,要授权MySQL要给那些IP放行。容器是不出去做两种 基于IP的权限管理,亲戚我们都都的容器前会用了固定IP,每个容器前会有些人的IP,交付时注册到CMDB上,并完成鉴权等自动化交付流程。

外部的CI/CD,亲戚我们都都有全都的优秀工具,让业务自行去选择使用,开发团队喜欢那些样的工具,从镜像仓库、到CI、CD、CO都能保持业务有些人的习惯。

还有包括管理体系、安全、审计、服务监控、日志、告警等功能形态,亲戚我们都都增加和优化了近百个形态,满足TKE与海量业务结合。 

于是,亲戚我们都都总结了八类的TKE业务应用适配,从业务管理、网络、路由与服务发现、分批发布、权限控制、镜像仓库、网络存储到远程日志。

这是蓝盾支持云上DevOps的范例,不能实现计划、需求管理、设计、研发、构建、测试、部署、搭建、监控到运营等一整套工具闭环。

全都,从腾讯自研业务上云,再到有些合作协议协议伙伴的案例,对于上云的的趋势,亲戚我们都都总结了五点经验:

第一,彻底拥抱云原生,用云来满足业务快速迭代,资源弹性伸缩的需求。

第二,全面拥抱DevOps,研发速率单位更高效。

第三,外部的优秀工具上云,给云提供更好的服务。

第四,整个开发团队心态更加开放、更加开源,主动与开源社区协同,贡献更多的功能形态。

第五,公有云经受了QQ海量流量的锤炼,亲戚我们都都在上云过程中,经历全都的经验教训,边上云边防止问题报告 ,边上云边优化,将整个公有云的基础设施和服务锤炼成更加心智成熟的句子的句子图片 图片 是什么 图片 期。