双十一丝般顺滑体验背后:阿里云洛神网络虚拟化系统揭秘
摘要: 摘要:2017年12月20日在北京云栖大会上,阿里云高级技术专家梵叶在计算与网络分论坛上做了主题分享《双十一丝般顺滑体验背后:阿里云洛神网络虚拟化系统揭秘》。为大家介绍了洛神系统的发展过程,系统架构,高可用性设计和虚拟交换机等重要组件。
摘要:2017年12月20日在北京云栖大会上,阿里云高级技术专家梵叶在计算与网络分论坛上做了主题分享《双十一丝般顺滑体验背后:阿里云洛神网络虚拟化系统揭秘》。为大家介绍了洛神系统的发展过程,系统架构,高可用性设计和虚拟交换机等重要组件。首次向外界全面揭开洛神网络虚拟化系统的神秘面纱。本文是这次讲演的文字整理。
客观的说,今年双11的体验还是不错的。我自己作为例子,之前几年的双11的0点时候,我自己的购物车的一波提交,一般瞬间进入了排队状态,但今年我的体验明显不同,一波就成功了。双11的底层技术,实际上是建立在网络产品的基础之上的,接下来,我要给大家分享的主题就是,双11的这一切,我们是如何做到的。我会把阿里巴巴双11上云叫做大象在云上跳舞。为啥说是大象呢,因为双11的量是在是太大了,想要完美支持双11真的不是容易的事情,尤其是双11零点的峰值。大家都知道AWS的ELB的预热,面对这样的峰值挑战一定是无力的。
这里有几个数字分享给大家。首先是关于两个结果的,一个是100%的流量比例都是在云上的,一个是32.5万笔每秒的交易峰值。这个交易峰值是什么概念呢,大家知道么,2009年的时候第一次双11,交易峰值是200笔每秒,在这个大量的交易下,云网络稳如泰山。另外三个关于极限性能的值,一个是单一网络的ECS数量,这个是10w台。之前我刚好到深圳拜访一个客户,这个客户是自己在家里用Openstack搭云网络玩的,这个客户刚好给我吐槽,说自己搞了100个计算结点,结果控制器就跪了。另外一个是160G的负载均衡实例的带宽,我相信这个值已经超过了绝大多数的硬件负载均衡器。最后一个是10分钟扩容上千台ECS。这个举个例子,这个弹性的扩容能力在鹿晗曝光恋情的当天发挥了重要的作用。
不是所有的云计算公司都有机会承受双11的洗礼,可能除了阿里云以外的任何一个云计算厂商都没有经历过这样的体验。但尽管阿里巴巴是一个非常极致和奇葩的客户,但除了阿里巴巴之外,阿里云上面还有数以百万计的客户,满足一个客户的需求,服务一个客户也许总是容易的,可以为这个客户完全定制系统,但同时服务百万级的客户,则绝对不是一件容易的事情。
阿里云网络产品是如何满足用户的呢,从表面来看,我们实际上就是靠一套基于API的SDN调度系统,来创建和删除资源来保证的。而这些产品的背后,就是洛神系统。洛神系统来源于中国的古典神话,我们希望我们的网络产品,和河运的槽道一样,能够通畅的连接资源。
当用户越来越依赖于云上,那么用户一定希望,云上的感受不是仅仅是业务的使用,而是不断提升的可视化,可运维性和不断的附加值的产生。
这个就是第三代洛神,智能洛神。
好的,接下来,我们来看下,现在的洛神架构是如何支撑这些丰富的特性的。和传统的SDN的架构一样,洛神的系统架构也做了控制和转发的分离。数据面位于左下角,在洛神的数据面里面包含了常见的计算节点上面的虚拟交换机,这个是数据包在计算结点上面的第一道关卡。除此之外的数据面的重要的角色是网关,网关在洛神中有两个主要功能,一个是承载常见的网络功能虚拟化单元,也就是我们常说的NFV。另外一个连接两张不同平面的网络,例如连接公网和线下的IDC。
整体来看,数据平台,控制平台和运营平台组成了洛神系统。当然,洛神系统也不仅仅只是支撑了阿里云的网络产品,阿里云云产品的底层网络,都是由洛神系统来提供支撑。大家可能比较清楚的是阿里云整体的虚拟化协议栈飞天系统
洛神就是其中的虚拟网络组件。
接下来我来详细给大家分享下洛神系统的主要的关键设计。我们认为,对于公共云服务的底层技术,稳定性和可用性是优先级最高的,因此我先来介绍下洛神系统在可用性方面的设计。
在只有一个云机房的情况下,我们是没有办法做到跨机房的容灾的。但是对于数据面和控制面的关键结点都是集群部署的,单台服务结点的问题不会对用户产生任何的影响,同时vm的宿主机当出现宕机等严重问题的时候,可以在机房范围内进行迁移,迁移本身也不会对vm的网络属性和连通性产生任何的影响。
当第二个云机房,第三个云机房建设起来的时候,每个云机房里面都会部署集群的网关和控制器结点,而且随着机房的增多,会自动在云机房里面形成环形的备份关系。当一个新的机房建设起来,洛神系统部署之后,会自动加入到这个备份链里面。这样,当某一个机房的关键结点由于异常出现问题的时候,都可以自动在秒级切换到备份机房,由备份机房的洛神系统来提供服务。这个就尽可能保证了首先单台设备的故障不会引发影响,而某个机房的所有结点发生问题,也可以在很快的时间内恢复用户的业务。
洛神系统可用性的另外一个重要的设计是在于运营平面,而运营平面本身也是洛神系统智能和数据化的关键设计。大家如果把洛神系统看成一个整体的交换机,那么从特性上来看,洛神系统是一个支持流跟踪的交换机,具有各种丰富的策略。洛神系统的下面是物理网络的设备和交换机,通过洛神系统的流标记的能力和基于policy的策略,可以同时在物理网络和虚拟网络里面具备流的染色,特定报文的镜像,采样,trace等的能力,流量采集的数据等等,这些动作产生的日志,都会通过SLS采集到jstorm做实时计算,如果流量有异常,会产生报警和日志给到管理员,部分报警可以触发故障的自动处理和恢复。还有一部分数据也会离线同步到ODPS,进行更丰富的计算,进而产生数据报表和用户画像给到用户,也可以给到用户一张炫酷的大屏。这个本质上就是数据化的能力。
介绍完了可用性的关键设计,接下来我们看下数据面的虚拟交换机。做过虚拟交换机的同学都知道,虚拟交换机在云网络里面是分布最为广泛的,每台宿主机上面都有一个虚拟交换机,虚拟交换机是vm进出网络的第一道门。在洛神系统里面,虚拟交换机因为其分布式的角色,承担了大部分的复杂业务逻辑。网关作为多租户的设备,复杂业务逻辑的风险一定是更大的,所以这个是虚拟交换机的第一个关键设计。
看完了vswitch我们来看下整体的数据面。洛神系统支撑的网络产品,今年发布了好几个性能的值,包括ECS性能等,都还是满高的,很多友商也紧跟着发布了类型的性能。现在来看洛神系统的数据面,其实最简单的比喻,就是洛神系统的数据面,本身就是一台巨大的交换机。
回到之前的管理10w台物理机的问题上,其实洛神解决这个问题的方案也不复杂。单个网络里面放10W台虚拟机,最大的问题是虚拟机的位置表的规模的问题。很多的SDN解决方案都是将配置直接下发到vswitch的,这种解决方案当vm迁移或者新建,销毁的时候,带来的配置的变化的量是巨大的。
点击查看原文
总结
以上是生活随笔为你收集整理的双十一丝般顺滑体验背后:阿里云洛神网络虚拟化系统揭秘的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 深入Spring Boot:利用Arth
- 下一篇: 基于TableStore/MaxComp