腾讯云的SDN:打造高可用的虚拟化网络平台

个人简介 刘颖,腾讯云架构师,先后从事过Sdn网络,外网统一接入网关,流量实时监控和在线回放系统,CDN,高性能防火墙,虚拟化调度管理平台,云应用引擎(CEE),分布式网络块设备的设计和研发,以及Linux TCP/IP协议栈和内存管理优化。致力于建设高性能、高可用、安全灵活的云平台基础设施。

   

1. 大家好,我是InfoQ的主持人,今天很高兴能邀请到腾讯云架构师刘颖来接受我们的采访。那么首先请刘颖做一下自我介绍。

刘颖:大家好,我叫刘颖,目前在腾讯云做一些底层的基础设施的工作,包括SDN、虚拟化、云的资源调度管理,网络块存储。07年毕业后最早做网络的负载均衡设备、CDN网络、网络安全,以及一些Linux Kernel的优化工作,从事基础设施的研发大概有七年的时间。

   

2. 我看您的履历基本上是做很多网络的工作,那么今天主要话题就是SDN这一块。首先想了解一下,腾讯云在网络这块有多少工程师在做?

刘颖:腾讯在网络这一块,我觉得可以分成这么几大块:第一个是数据中心网络基础设施的建设,数据中心的路由器、交换机的网络架构的设计,这个团队可能有二三十人左右的团队;第二块是一些关键网络设备的研发的工作,比如外网接入网关,负载均衡设备,和一些安全清洗防护设备,CDN,这些涉及到的人比较多,大概有四五十人;还有一个就是SDN的网络,大概有七八个工程师。

   

3. 腾讯云做SDN大概是从什么时候开始?

刘颖:腾讯开始做腾讯云以后,在SDN这方面产生了一些比较强的一些需求,开始关注是在一年左右,真正开始做大概是一个季度之前,到现在已经做了三个月吧,预计在四月份上线。

   

4. 主要是基于OpenFlow的协议来做吗?

刘颖:我们是借鉴了OpenFlow一些思想,但没有采用OpenFlow,因为我们以前在腾讯的网络基础设施里面已经有部分的网络节点采用SDN的思想,比如说我们在公网流量的调度、转发上面采用了SDN的一些思想,但是在内网并没有采用SDN的思想。现在对腾讯云所有的网络流量,从外网到内网,业务网络和存储网络都全面的采用SDN。

   

5. 对腾讯云来说,SDN有哪些好处?

刘颖:SDN给我们带来的好处大概有这么几个方面:第一个方面就是给我们的运维带来了一些便利。在一个传统的网络里面,比如说三层网络里面,一个IP地址是不能随意的存在的,一个IP地址要属于某一个交换机下面。在SDN的网络里面,IP地址可以存在于任何一个接入层交换机下面,这意味着一个虚拟机可以存在于所有的物理的服务器上,所以有了SDN以后,虚拟机在整个数据中心里面去做迁移才有可能性。传统也大二层的网络方案,完全是一个扁平的网络,在我们看来,二层网络存在一些缺点,比如说,物理网络设备的一些表项,尤其它的Mac表项不是足够大,很难做大范围的迁移,只能在局限一个比较小的范围里去做迁移;并且二层网络相对三层网络来说稳定性和可控性也会有一些问题,腾讯传统是三层的网络,用的很多,在这个方面运维经验、故障定位的经验都很丰富,所以我们更倾向于在一个更稳定的三层网络里面,基于SDN去解决虚拟机迁移、运维的问题,这是一个最大的诉求。

有了这种迁移的能力以后,我们接下来还会去向用户提供一些自定义网段,自定义安全规则,自定义ACL规则的能力,让用户能够把私有云和腾讯云打通,无缝对接。

还有一个好处,就是SDN能够对网络能够更可控,在网络的安全容灾,以及QoS方面都能起到很关键的作用。我想主要是这三个方面的好处。

   

6. 所以说你们最终目标是做到AWS的VPC一类的特性,现在还是属于前期研发的阶段。

刘颖:目前腾讯云里面逐步有了一些企业的用户,比如金融类的,像招商银行或者是南方航空,视频类的,比如CNTV,怎样去跟他们的私有网络对接,怎么样去保证安全性,这都是实实在在的需求和挑战,所以这是SDN虚拟化网络接下来需要去解决的问题。

   

7. 你们现在主要是软件吗,还是说也有一些硬件的定制?

刘颖:我们目前主要是采用软件的方案,硬件的方案对于我们来说不是一种完全可控的方案。软件的方案虽然会在CPU等资源上面有一些消耗,但是我们觉得通过一些调优是能够把这个消耗降到比较低的程度。在我们的平台上,软件的方案是一种更灵活可控、也是性价比更高的一种方案。

   

8. 网络是属于比较基础的一个服务,这方面的代码提交、集成,包括测试的一个过程是怎样做的?

刘颖:举SDN这个例子来说。SDN相对是一个比较大的项目,涉及到的代码量,技术难度都是比较高的,所以怎么样把事情做简单,是从研发阶段我们首要考虑的问题。

需求量很多,我们首先是把它拆成一期一期来做,第一期先做最核心的东西。在做核心的东西的同时,怎么以一种更简单的方式去做,尽可能去应用Linux kernel或者open source以及公司内部一些成熟的框架,在已有需求量确定的情况下,怎么样去把事情做的更简单合理,我想这是对我们研发架构设计的一个考验。

做简单以后,在线上怎么样去逐步的应用起来,在腾讯里面有一个很重要的一个理念,就是灰度的概念,就是说这些产品不是一下子全部让所有的用户来用,而是逐步的推广,先让一小部分来实验,觉得好用以后,然后再慢慢的逐步推广。因为有了灰度的概念,能保证你的平台不出大的问题。

在腾讯倡导的另一个理念叫做边运营、边重构,每时每刻去关注你的产品在实际应用中的表现,哪些地方是符合预期的,哪些地方是需要改进的,很快的做一些迭代和快速开发,尽量的把一些改动做得用户无缝无感知,我想这是我们从研发到运营阶段需要去注意到的几个问题。

总结成关健词,大概就这么几个,第一个简单——怎么样把事情做简单,第二个灰度——在运营阶段怎么样去做到灰度的上线,最后是边运营边重构——不停的去运营你的系统,去做一些适度的优化或者重构。

   

9. 你们对OpenStack项目是怎么看的?

刘颖:我想OpenStack目前得到了业界国内外同行很多的认可,甚至有很多中小型的公司,都已经把OpenStack作为一个很重要的解决方案,尤其是在私有云里面。

腾讯云是一个很大的平台,几十万个物理节点,这是一个很大的规模,整个平台的安全性可靠性都有很高的要求。我们为什么不去用OpenStack呢?也是基于我们自身的情况来出发的。

OpenStack如果拿过来直接用的话,我想首先要把它弄的很清楚,才敢的去用。在一个很大规模的网络里面,它是否足够的稳定,也要有时间的考验。

在以前的建设和运营过程中,不管是网络,虚拟化,还是存储,都有一些积累。我们也有很好的团队。基于已有的一些积累,在上面去做一些改进,做一些迭代,是一种更稳妥、更快的做法。

基于此,我们做出的选择是自研,但是也借鉴了OpenStack思想和一种做法,是一种融合的思想,而不是说完全去采用OpenStack或者基于它去做开发。

   

10. 那十分感谢刘颖接受我们的采访。

刘颖:谢谢大家。

你可能感兴趣的:(腾讯云的SDN:打造高可用的虚拟化网络平台)