美团云的网络架构演进之路

概要:在传统的观念里,美团彷佛一直被认为是家提供吃喝玩乐的团购平台。但其实,从深刻电影、外卖等领域起,美团就早已再也不是一家团购公司了,打开今天的美团APP:电影、外卖、机票、酒店、上门、甚至周边游等多重垂直业务均被囊括其中服务器

2015年年末,美团与大众点评宣布合并,合并后新美大的年活跃用户量达到1.7亿,高速增加的业务压力和巨额交易量的背后,是美团云提供的技术支持,让其保持着平稳运营。网络

做为领先的O2O电商云和大数据解决方案提供商,美团云在2015年入选了“TOP100年度技术创新案例”。 而今天咱们要分享的,则是美团云的网络架构从最初到如今,是如何一路演进而来的,在这个过程当中,又产生了有哪些产品和哪些思考。架构

 

一方面,云的核心技术必定是由规模驱动的,大规模的电商在这方面有更深的积累。由于电商的特色除了流量大,其流量峰值波动也很是大,好比一些特殊的节日,用户访问量的峰值就会很高,因此电商在资源的弹性调度方面有更多的经验。2012年,美团始逐步建立本身的私有云平台,2013年5月正式对外推出公有云服务。2015年更是扩建了新的数据中心,并推出了更多的组件服务。并发

另外一方面,美团拥有的大数据相关实施经验,使得美团云可以对外提供更有针对性的大数据融合解决方案。负载均衡

从技术角度来说,美团网是一家彻底云化的电商平台,规模体量居国内最大。目前美团的交易量仅次于阿里集团,只不过,阿里巴巴的电商业务绝大部分并未彻底跑在阿里云上,而美团网全部的业务和交易,从2013年开始就彻底跑在美团云上。框架

这个过程当中,美团云在虚拟化、运维等方面积累了至关多的技术经验。同时,美团云对外输出的不只是底层IaaS的云服务,更有大数据解决方案。所以,美团作云是一件水到渠成的事,美团云但愿成为美团网技术积累对外输出的窗口,为更多的创业者、中小企业包括正在进行”互联网+”的传统企业提供基础设施云服务,解决你们在技术方面的后顾之忧,而可以专心业务发展。运维

美团网早期架构是从私有云作起的。目标是,资源云化和快速交付。值得一提的是,美团云从一开始就没有彻底选用OpenStack,而是决定自研云平台。缘由在于当时OpenStack并不成熟,只有个别组件好比glance、keystone是合适的,因此在虚拟化、网络层,美团云进行了自主研发。分布式

如今看来,这样作是对的。由于OpenStack偏向私有云,若是当初彻底基于OpenStack,如今作公有云将比较困难。但美团云选择自研云平台,结合自身业务,因此现现在可以平稳地支撑着全部业务。高并发

当处于私有云的阶段时,主要的事情是把资源动态管理起来,对访问控制和资源隔离没有作太多要求。最初,美团云主要经过帐号登录管理、日志进行过后审计。私有云以后,推出的是办公云。办公云主要针对研发、测试人员,进行内部的测试使用。在这个阶段,美团云已经开始为公有云作准备,创建了帐号体系、计费系统等这些功能。工具

办公云的存在,在如今看来有一个很大的好处,就是每个上线公有云的功能都会先在办公云上线,保证每个功能的迭代都是稳定可靠的。也就是说,办公云实际提供了一个真实的线上测试环境。办公云以后,美团云对外推出了公有云服务。

早期的公有云和办公云的架构大致相似,拥有更用户友好、更完善的计费和消息系统、开放API等。其中,公有云最先的底层网络特色有几个,一是网络都是千兆网络,对软件性能要求不高。二是底层采用VLAN大二层,经过OVS控制器对用户进行隔离。因为早期流量不是太大,千兆的流量用OVS来控制尚可,控制器性能不够的状况尚且很少。但随着用户数量的增多,以及使用量的变大,后续开始出现问题。这也偏偏促成了美团云进入全新的网络升级时代。

从微观角度来说,早期的公有云存在一些问题。首先,在稳定性上,内外网都是一根网线单上连一个交换机,一个地方出问题整个网络就会出问题。其次,外网、内网、管理网都是一根网线,这是在没有冗余的状况下,若是要作冗余的话,就要变成六根网线,成本过高昂。其三,千兆网络渐渐开始不能知足用户需求。还有一些隐藏问题,好比当时全部的用户都是在交换机的一个vlan网络下面。

理论上来讲,这样是可行的。但实际上,交换机对VLAN的支持能力限制了网络规模的扩展,用户数量受到限制。再好比软件隔离占用宿主机计算资源,可能会出现响应不了或者抢占用户cpu的状况。同时,在这个网络下想实现用户自定义网络(vpc)就很是困难,灵活性低。 
所以,在通过了不断地改进后,美团新的公有云网络架构在物理链路、主机网络、网关、控制器四个纬度上全面升级,大大提升了总体网络性能。

首先,从物理链路来看,性能方面,美团云实现了万兆互联;其次,在核心上实现了双机冗余,不会由于某个物理环节问题,致使网络不能启动;第三,采用了TOR交换机堆叠,双40G上联,随着往后网络流量的增长,能够再扩展。此外,在网线的选择上,美团云还采用了10G Base-T的电口万兆网络,这个技术比较新,不少交换机厂商都尚未这样的设备。可是它的成本较低,运维起来也会更方便。另外,在机房建设的过程当中,美团云还使用了一些目前业界领先的技术,好比核心机柜封闭冷通道、预端接,对成本的节省都是百万级的。

机房出口挖断了怎么办?同城多个互联网数据中心(IDC)之间,经过边界网关协议(BGP)来进行备份和冗余。当有一个机房的网络断掉的时候,会经过边界网关协议的流量自动转移到另外一个机房。

可是底层的物理链路是万兆,不表明上层能把万兆利用起来。咱们花了更多的精力,解决如何把万兆网络利用起来的问题。一部分是网关,就是整个网络出口的部分,好比DPDK技术。DPDK技术目前是被主流使用的技术方案,对释放网络性能有较大帮助。另外一种,预留1-2个处理器(core)接受数据,一个处理器根据本身的逻辑负责处理控制信息,1-2个处理器负责收包,其他处理业务,本身处理数据分发。

在实际使用中,美团云根据两种模型的优点,分别都有选择。在浮动IP网关、负载均衡网关、 DDoS清洗设备三个部分,实现了全面的DPDK化,同时在四层网络上,可以并发1000w链接状况下新建链接100w/s。

当网关不是瓶颈的时候,流量就可以自由通到主机上,因此接下来就是经过主机网络释放性能。美团云最先使用的OVS V1.1版本,在千兆网络下可行,但万兆网络下性能远远不够。升级到V2.3后平台后,Megaflow对高并发状况下性能有数量级的提高,建立可以知足要求。

但另外一个问题出现了,在单流的状况下,对万兆网卡的利用率仅为50%。随后在升级到V2.4,支持DPDK版本后,美团云进一步提高了单流转发性能。在新版本的OVS下,只要10%的计算资源就能够提供万兆的网络能力,网络数据处理不影响用户计算资源。这样一来,就解决了宿主机的物理网络瓶颈。

而在控制层面,有两个选择,一个是传统工具eptables/iptables,二是OVS的方案。所谓OVS的控制方式,是配置流表,交由控制器处理。控制器决定是否放行,动态地下发对应流表,在OVS控制器对数据包进行过滤和处理过程当中,美团云开发了软件层面的解决方案。针对单播,经过对SYN包检查,下发流表,并对每一个不匹配的UDP包进行检查。

须要注意的是,因为发送端较难控制,而接收端对每一个包处理,容易形成控制器队列积压。所以,美团云采用下发临时流表的方式解决积压问题,或者经过设置限流阈值,进行快速恢复。

可是软件层面的解决方案没法根本解决积压的问题,所以下一阶段的迭代就是在硬件层面进行隔离,经过VXLAN对用户进行隔离。说到选择VXLAN,就要提到对SDN方案选用的一些思考:在底层的万兆物理链路之上,美团云选用了Overlay的网络架构。

简单来讲,Overlay的架构弹性灵活,业务与物理连接和端口分离,这就意味着网络再也不受限于物理上的链接和端口数量,能够按照资源池的概念来分配网络资源。而Underlay做为整个SDN框架的基础,充分吸收和延续了过去长期积累的物理网络优点,稳定可扩展。一方面ARP/OSFP/BGP 仍然值得信任,另外一方面相关领域的运维专业人才相对储备也较多。在参考了业界最新的实践经验后,美团云选用了VXLAN的解决方案。

上述是在物理链路、主机网络、网关、控制器方面释放性能上,美团云所作的尝试。再上层就是让用户能够灵活地自定义本身的网络。为了应对灵活性的挑战,美团进行了相应的处理,好比分布式的 DNS。 
在传统网络下,通常使用默认的DNS服务器地址,并经过源IP区分用户。可是在用户定义网络(vpc)的状况下,用户的地址是能够重复的。因此用户识别方面,须要将VXLANID的用户信息嵌入DNS数据包。另外在用户网络中,DNS服务器的地址也是自定义的,因此实际的DNS服务须要使用Underlay地址,这里面就须要作地址的转换和映射。

整体而言,新公有云的网络结构全面升级为万兆网络层面,管理网作Bonding,用户的内网外网overlay在管理网。VPC层面,经过VXLAN隔离用户,并实现自定义的网络。最后对外提供丰富的产品功能,好比浮动IP/负载均衡,对象存储/块存储,RDS/Redis等。

将来,运维自动化的程度会进一步提升。经过openflow或者netconf等通讯手段提取到控制器上,进一步整理和分析后,可以造成可视化的网络路径图,实现更高效的网络运维管理。

这些就是美团云网络架构一路演进的过程,在这个过程当中,美团云的团队成员始终秉承着“以最小代价解决最大问题”的思路,将软件和硬件相结合,经过开源与自研,高效地实现了网络架构的迭代,成为了行业标杆,并为千万用户提供更稳定、可靠的基础设施云服务。

相关文章
相关标签/搜索