前言:

本文转载自微信公众号OpenStack 文章《用户访谈丨腾讯的OpenStack实践与创新》,来自CSDN专访。

2017年7月24日~25日,2017 OpenStack Days China官方盛典就将在北京国家会议中心盛大召开。在本次盛会召开前夕,CSDN有幸采访到了腾讯技术工程事业群企业IT部总经理刘若潇。刘若潇目前主要负责腾讯内部IT平台环境规划及运营管理,对于腾讯内部IT环境选择、部署和应用OpenStack都如数家珍,较为详细地介绍了腾讯内部TStack的实际部署与运营情况。

为什么是OpenStack?

腾讯在云计算领域的起步较早,可以说是国内云计算领域早期的拓荒者之一。早在2013年,腾讯就已经开始搭建自己的TStack私有云环境,目的是为了向企业内部IT环境提供云计算资源,缩短交付时间,提升交付效率,提高资源利用率。

据刘若潇介绍,目前,腾讯内部TStack采用OpenStack作为底层的基础架构,通过二次开发,深度定制,形成了基础云,监控云和自助云三大产品。目前平台超过了10000 OS,上线4年时间,可用率超过99.99%,部署在4个区域、7个机房、14个集群,承载着腾讯内部的办公系统,认证系统,微信网关等线上业务,以及大部分的开发测试业务。

但实际上,腾讯内部的TStack早期并没有使用OpenStack作为基础云平台,因为那时OpenStack还在发展阶段,成熟度和完善性都有待提高。直到2014年,OpenStack发展迅速,并且形成了良好的生态标准,来自全球十多个国家的几十家领军企业都已经参与到了OpenStack的项目中,OpenStack在全球不断落地上线,无形中,OpenStack已经成为了一个云计算行业事实上的标准。因此,经过腾讯内部运营团队详细的调研和测试,综合评估之后,决定采用OpenStack作为TStack的基础方向。不可否认的是,相比早期自建的云平台,开源的OpenStack在产品功能的完善度,架构设计的优越性,新功能开发的工作量方面,都要比原来的平台更具有优势,这无疑是因为汇聚了社区工作智慧的结果。

腾讯内部基础架构的演进

如上文所述,腾讯并不是一开始就使用OpenStack作为其内部基础架构的。从2009年开始,腾讯主要使用Xen虚拟化技术,为企业内部提供虚拟化的资源交付,提高服务器的资源利用率,由于当时都是基于手工编写配置文件,启动虚拟机,缺乏统一管理,因此,效率低下,容易出错,系统运维也十分困难。

为了解决上述问题,从2013年开始,腾讯就开始着手搭建内部的TStack平台,经过一年多的开发测试,到2014年05月23日,腾讯内部TStack正式上线,包括基础云,监控云,自助云三个组件。早期基于Xen也二次开发了TStack1.0、2.0平台。而到了2014年,腾讯决定采用OpenStack作为TStack的基础方向,同时采用KVM作为虚拟化技术。

从2015开始,腾讯TStack全面转入OpenStack的方向,除了新建的Region,原有存量的Xen机器都需要迁移到新的TStack平台。而在实际的迁移过程中,从Xen云平台切换到TStack平台对腾讯内部来说异常艰巨,原有平台如何纳管到新的TStack平台中,并对原有平台服务完全无中断,这是一个非常棘手的问题,也是一个巨大挑战。 经过团队2个季度的不懈努力,终于将原有平台6000多个OS无缝对接到TStack平台,完成了平台的统一管理,再加上新增量,整个平台纳管了10000+OS。

OpenStack的应用之道

不过,腾讯对开源软件的使用,绝不是拿来就用的,刘若潇表示,腾讯在使用开源软件之前,都会在前期做大量的调研和测试工作,以确保在使用过程中,能够对开源软件做到完全把控。用直白一点的话来说,就是如果出了问题,会知道问题出在哪里,并且有能力解决。腾讯对OpenStack的使用也是如此,因此, 腾讯结合自身内部业务特性,在OpenStack基础上做了大量的优化:

  1. 支持虚拟机、容器和裸机管理。容器管理底层用的是内部自研的飞象系统(K8S+Docker), 并集成Sriov 、Numa技术来为大型应用保驾护航,同时使用Ceph作为镜像、虚拟机、云硬盘的后端存储;

  2. 开发了Nova在线资源限制技术,为保障平台的稳定性,需要对虚拟机进行资源限制, OpenStack原生是利用Flavor来实现,由于和Flavor绑定,无法针对虚拟机来进行限速策略,不符合内部业务需求, 因此腾讯开发了在线虚拟机资源限制技术, 在系统高峰时期启用限速策略,非高峰时期解除,从而使得中间业务不中断,实时生效;

  3. 定制基于业务类型的虚拟机调度策略,根据业务类型,将虚拟机调度的到不同宿主机,实现高可用;

  4. 自动化容灾设计,为了避免业务监控的不准确,采用计算节点分布式心跳,从业务网,管理网,带外网等进行多维度监控,故障出现自动迁移,无需人工干预;

  5. 虚拟机迁移植入动态自适应压缩迁移技术,节省了带宽,迁移时间平均缩短50%;

  6. Ceph底层开启压缩存储,对象存储性能平均提升43%,日志存储性能提升110%,此特性比社区早一年推出,功能更强大;

  7. 网络方面深度定制Neutron,利用自研的SDN控件同时纳管多个厂商的SDN控制器;

  8. 云主机弹性伸缩, 通过应用与数据分离和集群化部署,实现系统快速扩容、处理能力灵活水平线性扩展、故障自动隔离;

  9. 应用部署, 整合蓝鲸平台实现代码发布,线上部署,自动完成。

  10. 无缝对接腾讯公有云,可以同时享受公有云和TStack的优点,达到安全、省钱和灵活的目的,公有云服务的引进也让TStack产品族变得更加完善和成熟。

腾讯对OpenStack的创新

腾讯是一个非常注重创新的公司,因此,在OpenStack使用方面,在保证业务稳定的前提下,腾讯对OpenStack也进行了技术创新,从而达到了提高效率,完善产品的目的。腾讯在OpenStack方面的创新主要集中在以下几个方面:

  1. 异构平台的管理技术,将大量存量Xen虚拟机,完全无中断地纳管到TStack平台。

  2. Nova在线资源限制技术

  3. 根据业务类型定制基于业务类型的虚拟机调度策略

  4. 自动化容灾设计

  5. 虚拟机迁移植入动态自适应压缩迁移技术

  6. Ceph底层开启压缩存储

同时,为了保障服务的高可用性,腾讯也从多个方面对OpenStack进行了设计和考虑。首先,在OpenStack服务上,腾讯社区和其他主流系统采用了高可用方式,使用Keepalived+Haproxy的高可用方案,从而达到了稳定可靠,消除了单点故障;其次,由于云环境网络较为复杂,为了对节点进行精确监控,腾讯开发了计算节点分布式心跳,从业务网,管理网,带外网等进行多维度监控,故障出现能够实现自动迁移,无需人工干预;最后,为了实现虚拟机层面的高可用,采用了高可用调度,避免将项目业务的虚拟机调度在同一宿主机上,实现了业务高可用。

OpenStack应用的未来之路

腾讯对OpenStack的创新为OpenStack的发展贡献了力量,而反过来,OpenStack的应用也为腾讯带来了显而易见的好处,刘若潇表示,首先,依赖于OpenStack的功能的完备性,腾讯在进行架构选型和二次开发时,相比以前减少了很多工作量,因此,可以将更多的精力专注到PaaS和SaaS上。其次,通过TStack统一的管理能力,腾讯将物理机,Xen虚拟机,KVM虚拟机等统一管理了起来,进行资源调度和分配,因此,服务器利用率得到了提升,IT成本也得到了显著的下降,服务器成本节省了30%,运维管理成本下降了55%。

而OpenStack为腾讯带来的诸多益处,也为腾讯继续优化应用OpenStack坚定了信心,铺平了道路,据刘若潇透露,腾讯未来将会在以下几个方面进一步加强对OpenStack的支持:

  1. 腾讯内部TStack除了应对业务增长的需求,还会从今年开始,加大对社区的投入,将腾讯TStack运营的一些经验分享到社区,同时加大对开源的投入,共同促进OpenStack生态的发展。

  2. OpenStack在企业应用过程中的运行维护能力是个普遍的问题,强大的技术平台需要具备同样强大的运维能力才能发挥出更大的作用,所以腾讯未来也会投入更大的精力在建设运维管理平台和工具方面,总结腾讯在TStack运营方面的最佳实践,并将这些经验开放共享,从而让国内更多的企业能够更好的基于OpenStack应用和管理云。

  3. 未来腾讯TStack将会深度整合腾讯云的CMEM、CDB、CDN、消息队列,负载均衡等多种基础服务,客户可以通过简单的API或界面即可访问这些基础服务。

  4. 未来腾讯TStack也将与合作伙伴展开更深度的合作,旨在构建开放、融合的云计算生态,降低用户上云成本。

  5. 腾讯将致力于云计算市场,利用自研强大的公有云、专有云平台,结合基于OpenStack研发的TStack私有云平台,构建完整的混合云服务生态,服务于全球市场,我们希望与OpenStack同发展,共成长,我们将为繁荣OpenStack生态、推动OpenStack的技术发展与海量业务支撑贡献我们的力量。

文章来源于腾讯云开发者社区,点击查看原文