1. 各位InfoQ的网友大家好,现在我们是在ArchSummit北京的现场,做客我们专访间的是腾讯云基础产品技术总监沙开波先生。第一个问题是这样,在VPC中,VM达到一定量级之后,流量是一个比较大的问题,因为现在80%的流量都是东西向的,目前SDN控制平面性能拓展的设计方案有两种,一种是垂直的一种是水平架构的,腾讯云的架构这几年有哪些变化?
沙开波:腾讯云刚开始的网络的基础架构,就没有往VPC的方向发展。刚开始我们很简单,初衷就是一个大三层,大三层在云里面其实有一些问题,它的IP地址不能跨交换机做迁移。但是在云里面我们最大的优势是主机可以随意的在整个机房里面做迁移。这样的话硬件故障宕机,或者硬件有一些潜在问题,我可以快速的把虚机漂移出去,漂移到另外一台宿主机里面。所以刚开始就是做大三层,后来变成二层,二层可以解决跨交换机迁移的问题。但是大二层里面又带来一些广播的问题,腾讯历史上也出现过一些这样的故障,因为IDC里面的网络广播风暴,把整个IDC的网络打垮了。在这以后我们就下定决心要做一个基于三层网络架构的overlay的网络。那时候我们才考虑通过软件方式实现这么一个IP可迁移的能力。
2. 大概是哪一年?
沙开波:应该是前年年底的时候。你刚才说到当VPC里面规模比较大的时候,东西向流量可能是一个瓶颈,这个在我们刚开始设计overlay网络的时候就考虑到了,我们希望一个VPC里面所有的节点之间的通信都是点对点的,它会经过一些集中式的网络节点,直接找到下一跳,这样解决东西向流量的性能瓶颈问题。
另外一个你刚才也说到控制平面,当我们的VPC规模很大的时候,怎么样把配置快速可靠的下发到每一个宿主机上面,这个像你刚才说的业界有垂直的有水平的,我们其实还是从自己的资源角度设计了一套全分布式的配置下发的框架。这个框架从配置下发的业务特点来看,写量并不多,写量就是里面增加一台虚拟机或者销毁一台虚拟机,或者虚拟机跨机器迁移的时候,这些配置会发生变化需要写到配置中心,真正稳定的情况下对写的要求不高,但是对读的要求很高。所以我们这个分布式集群主要focus在读的性能可扩展性上面。
现在我们每一个宿主机上面有agent程序,可以动态的获取这台机器上面需要哪些配置,它主动的从配置中心里面读取相应的配置,当配置中心数据有变化的时候,也马上能够感知到。一台虚拟机如果宿主机IP变了也能马上感知到。大概是这样样子。
3. 这几年我们看到英特尔正在推DPDK跟OVS这些解决方案,您能评价一下,这种把网络通信协议栈往上一层迁移的做法有哪些利弊吗?
沙开波:好处我觉得是比较明显的,DPDK这个技术它能够解决什么样的一个问题,这个比较明显。但是从我们实际的应用场景来看,我觉得还是要看现在我们业务面临的问题,或者我现在要解决一个什么样的业务场景,去看这个技术是不是放到我们这里是OK的。说简单一点,DPDK解决了一个多核情况下的网络性能转化的问题,这样的技术,它其实在网关类的服务上面是有很好的表现的。所以我们这边一些网关类的服务,比如说VPC网络要和外面的网络进行通信,肯定会需要有一个边界的网关,这个边界的网关用DPDK做比较合适。
4. 基础网络它在水平扩展的时候,一般会有哪些问题?这个问题如果延伸到VPC这个大的集群里面会有什么样的问题?
沙开波:腾讯云的基础网络最大的问题是用户不能在这个基础网络里面自己去规划网段。用户比如说在基础网络里面买一台虚拟机,这个虚拟机它的IP其实是散列的,不是连续的,这样如果你要跟外面的网络去做扩展的话,只能是IP到IP的打通,但是在VPC里面,因为用户可以自己去定义网络,定义网段,而且我们有自定义路由的能力。当这个VPC要和外面的网络打通的时候,很简单,只需要在VPC自定义路由表上面配一条路由,直接就达到网段到网段的打通,这样平行扩展起来是很方便。假如他自己有一个数据中心,现在有一个vpc网络,只需要配一条路由就可以把两个网络打通。
5. 那配这个路由表不会很大吧?
沙开波:因为是网段到网段的打通,如果数据中心只有一个网段的话就只需要配一条路由,就看对端里面数据中心的网段是怎么分布的。
6. 就不存在水平扩展这个问题?
沙开波:对。
7. 腾讯云这边是计算密集型比较重?还是?
沙开波:怎么说呢,腾讯云是一个公有云,上面跑了各种各样的服务,有些用户可能是计算密集型,有些可能是网络密集型,从整体上来看的话,用户一般对机器的负载用的不是很满。整体负载,不管计算还是网络都处于比较低的水平。
8. 业界有很多开源的SDN的解决方案,社区里面也做了DVR和Dragonflow这种分布式的解决方案,您能否从腾讯云的角度谈谈这些开源解决方案在解决东西向流量问题上的表现?腾讯云对开源SDN技术的使用情况如何?
沙开波:首先,腾讯的VPC网络没有采用开源的技术方案,我们一些关键的系统,包括计算、网络、存储都是自己研发的,我们在做自己的方案的时候,会去参考业界或者开源社区里面的一些方案。我们做的VPC网络的技术方案跟刚才你说的DVR方案是比较类似的。
9. 目前腾讯云单个VPC的规模有多大?
沙开波:产品层面的话最大支持一个B段,65535的规模。
10. 对。
沙开波:刚才也有一些提到,南北向控制平面的数据的管理,我们其实是用的一个分布式的集群服务来做的。我们所有跟网络相关的配置,都放到这个集群里面管理。这个集群它有一个特点是读的性能是可以平行扩展的,基本上性能不够了可以加一台机器解决性能问题。所有的宿主机上面的虚拟交换机需要的配置,都是通过拉取的方式去把配置拉下来。我们的读性能是没有瓶颈的,下面的节点规模是可以无穷大的。所以基本上现在我们一个模块,几千台的物理机,几万台的虚拟机这个量级不成问题。
11. 您能简单谈谈大规模部署VPC的时候,南北向接口的这种处理吗?
沙开波:控制平面的?
12. 南向接口主要面对data层,北向接口面向业务逻辑层,北向接口不像南向接口那么成熟,南向接口用openflow就很标准化了,腾讯云这边,因为你们接的公有云,客户肯定很复杂,做什么都有,有游戏的,有各种,北向接口的整体解决方案你们是怎么做的?
沙开波:从产品层面并不复杂,一个vpc的能力无非就是一些对VPC的管理,比如创建VPC,VPC下面划一个子网段,里面创建一台机器,包括宿主机地址的变更,这些能力在产品上面表现出来是不多的,所以你刚才说的北向接口也是比较简单,我们也是结合业务场景和产品需求来设计这套北向接口。
13. 现在一些主流的硬件厂商都在推NFV,甚至还有一个开放联盟,想通过X86的硬件服务平台摆脱对专有硬件的依赖,腾讯云在做NFV方面有没有一些进展?
沙开波:我们有一些服务,比如VPN服务是采用了联合厂商一起做的一个NFV的解决方案,以后我们也是希望有更多的厂商能够把他的NFV的服务放到我们的服务市场里面去,这样的话,跟厂商一起去建设服务市场,通过NFV的解决方案,给到客户一些更多的网络功能。
14. 最后一个问题,想请您谈一下腾讯云未来的发展规划,现在可能做公有云,网络规模以及未来业务的方向,腾讯云的规划。
沙开波:腾讯现在整个产品的框架,最底层是一个最基础的IaaS平台,里面有云主机,负载均衡,VPC的能力,cbd,cmem,一些存储的服务,上面是有很多面向各个垂直行业的解决方案,游戏的、视频的、金融的还有移动的等等。从IaaS平台来看的话,我是觉得这相当于一个个积木,用户来到腾讯云可以通过IaaS平台里面的一个一个积木,一个一个功能,一个一个服务,去构建满足自己业务需求的解决方案,通过我们的积木搭建自己的系统。
15. 腾讯云未来可能更focus在底层?
沙开波:底层,对。但是刚才说了行业也是我们的一个方向,为什么会有移动解决方案?游戏解决方案?这个其实是本身我们腾讯云或者说腾讯公司,它一年来在这个行业里面积累下来的一些能力,把这些能力做成服务,通过公有云这样一个出口开放给用户直接去用。包括以后比如说即时通讯这样的服务,也可以做成一个解决方案给到用户。
16. 现在市场上已经有很多做通讯类的云服务了,你们以后会涉足这方面吗?
沙开波:有可能。
InfoQ:好,谢谢您接受我们的采访。