酒泉QQ是如何加速上云的?企业上云有什么好处?

2020-07-08 16:23:28

  在QQ上云过程的细节里,有很多方法可以选择,也离不开一些技术工具和平台的支持。这里从“数据库的迁移模式”、“MySQL数据搬迁”、“数据中心同步”、“云管平台”、“云原生”、“TKE引擎”这几个方面来进行简单介绍。

  1.数据库的迁移模式

  在私有云到公有云的数据搬迁模式中,QQ有三种模式可以选择。

  (1)私有组件数据迁移到公有云

  腾讯内部有很多自研的数据库,像QQ的Grocery KV存储使用的是内部私有协议,云上没有对应服务。业务需要将数据从私有组件迁移到Redis。

  QQ采取了冷迁移的方式,先将数据全备,然后把数据导到云上Redis集群,导完后再做新增数据追加(用数据同步中心来实现),数据同步完之后进行业务切割:留一个业务低峰期时间,比如晚上凌晨2点,花1分钟把数据路由服务从自研IDC切到公有云Redis集群上。

  (2)开源组件到公有云

  腾讯内部有一些业务是在开源组件之上做的二次开发(如基于单机Redis实现自研分布式Redis集群)。这些基于自研或开源组件的数据迁移到公有云上对应的数据服务,可通过DTS迁移工具来实现。

  腾讯云上的DTS也可以来做自助迁移。这个工具甚至不需要运维操作,开发团队自己在DTS窗口上输入几个参数,点个搬迁按纽后即可自助搬迁。搬迁完成后还可自动切换。

  (3)私有组件直接上云

  有时云上暂无一些特定组件,业务也没有资源改造私有组件为云的标准服务,此时可将组件集群直接在云上部署一套,数据通过同步中心或主备备等方式搬迁到公有云上。

u=3634340218,2505771942&fm=26&gp=0.jpg

  2.MySQL数据搬迁

  QQ的MySQL数据搬迁分“主—从”和“主—备”两种模式。

  主—从的模式

  它通过内部的DNS类名字服务而非IP和PORT来寻址:先分配业务一个实例的名称,然后通过DNS拿到这个实例的IP端口,再去访问具体的实例。然后,从自研的IDC使用腾讯云DTS迁移工具,把数据导到云的MySQL。数据自动导入完成后,开发团队只需要在云上切换服务就可以完成数据实例的迁移。这种方式适合一些数据体量不大的业务数据迁移。

  主—备的模式

  即在深圳自研有数据库服务器的主和备,在云机房新部署几台备机。通过主备同步的方式,把所有数据都同步到云机房。然后将云机房的某台备机切换成主机,将自研的主机降级为备机。这样就切换为云机房主备,自研机房备的模式。

  3.数据同步中心

  更复杂的是数据同步中心。它适合业务量大,有全国多地分布且对延迟不敏感的业务,譬如QQ空间的点赞、发表说说等。它有如下特性:

  服务模块写数据时,统一写到各地的接入代理,代理再统一写入一地;

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

  用户就近读,比如华北的用户,就读华北云的这个数据存储集群,华南就读华南的数据存储集群;

  通过同步中心的方式完成大规模数据的混合云同步。当要增加一个成都云区域,只需在当地增加一套同步服务。增加路由服务规则后,同步服务就会自动把数据同步到成都的云机房。

  一般从深圳自研同步到上海和天津时延迟达几十毫秒,不适合金融行业等延时高敏感业务模式。

  4.云管平台

  之前腾讯内部的配置系统、监控系统、CMDB等都是基于私有云的管理模式。业务上云之后,它们要改造成支持混合云、多云的管理模式。譬如业务模块会有50个实例在腾讯云上,30个实例在海外云上,30个实例在内部私有云里,那么CMDB必须要支持多云的资源管理。

  图中可以看到,帐号体系、预核算、企业安全、监控等应用工具或平台,都要改造以适应混合云模式。以帐号体系为例,QQ的开发者们以公有云的帐号登录云官网来购买、使用和运营公有云上的资源。但如何把帐号所使用的资源成本核算到对应的业务,员工离职或转岗后资源怎么回收或转移,帐号如何绑定给企业组织架构,云官网帐号登陆如何与内部OA鉴权等,都是必须提前解决的问题。

微信截图_20200708154804.png

  5.云原生

  在开发方法、业务交付、云原生服务等方面,腾讯内部的TAPD研发管理工具、工蜂代码仓库、蓝盾、橘子CI、QCI、coding已集成为工具链,在云上打造了一个持续集成、持续部署的DevOps流水线闭环,QQ上云也收益于此。QQ以前是包交付,现已大量使用容器交付方式。

  在微服务这块(如SF2、SPP、TAF等),QQ使用了大量的微服务框架,这些微服务框架还将进行迭代升级。

  6.TKE引擎

  K8S平台上,QQ用了腾讯的TKE引擎,这是一个跟K8S完全兼容的引擎。一个用户在腾讯云上买了K8S服务,自己内部也部署了K8S集群。他们的容器可以随时、同时交付到腾讯云和他们本身的K8S集群,而不用做任何改动。通过容器交付,可以不用考虑环境依赖等问题。

  通过将TKE跟QQ的业务特性适配,腾讯做出了一些更能满足业务场景的K8S应用功能:

  (1)跨地域

  QQ是三地分布,上云后又增加了自研和云的机房属性。原生K8S不支持跨地域的,因此腾讯的TKE引擎增加了跨地域的特性。

  (2)弹性伸缩能力

  TKE有基于CPU负载等基础容量的弹性伸缩能力。在TKE优秀的伸缩能力之上,腾讯还做了功能叠加。根据业务长期的趋势和业务突发活动,通过算法来预估容量在什么时间窗会达到多少水位,以准备相应的容器资源来提前几小时扩容,应对突发流量。

  (3)权限限制

  某些业务对权限是基于IP鉴权的。比如内部的业务模块访问MySQL时,要授权MySQL给这些IP放行。容器是很难去做这种基于IP的权限管理,QQ的做法是将容器固定IP,交付时注册到CMDB上,完成鉴权等自动化交付流程。

  (4)开发工具

  腾讯内部有很多CI/CD的优秀工具,开发团队可以在镜像仓库选到自己适合的工具,在CI、CD、CO都能保持自己的习惯。

  (5)海量业务

  在管理体系、安全、审计、服务监控、日志、告警等功能特性上,腾讯增加和优化了近百个特性,满足TKE与海量业务的结合。

  从腾讯自研业务上云以及一些合作伙伴的案例,可以得出上云的五大趋势:

  (1)全面拥抱DevOps,研发效率更高效;

  (2)内部的优秀工具上云,让云能提供更好的服务;

  (3)彻底拥抱云原生,用云来满足业务快速迭代,资源弹性伸缩的需求;

  (4)开发团队心态更加开放,主动与开源社区协同,贡献更多的功能特性;

  (5)在QQ全量上云的过程中,很多问题边上云边解决。整个公有云的基础设施和服务已经被锤炼得更加成熟。


联系人:罗先生

582059487 15026612550
立即咨询

QQ

QQ:582059487 点击复制添加QQ好友

电话

15026612550
7*24小时服务热线

微信

二维码扫一扫添加微信
TOP
微信咨询 获取代理价(更低折扣)
更低报价 更低折扣 代金券申请
咨询热线:15026612550