博主一直相信一件事情:任何互联网底层的创新都是自顶向下的。SDN的兴起不是因为Martin Casado脑洞大开才主张要控制和转发平面分离。而是因为某些来自于互联网顶层的应用需要对网络设备进行集中控制,集中控制最好的方式正好是控制和转发平面分离。在这篇文章里,博主会列举那些在传统网络当中不太容易实现的刚性需求。在日后的文章中,博主会展开分析SDN是如何满足这些刚性需求的。欢迎大家百家争鸣,查漏补缺。
刚性需求一:省钱!省钱!省钱!
传统网络的开销大概分为两部分:购买成本和运营成本。购买成本 = 设备本身 + 售后服务。那些知名大厂的网络设备和售后服务都是明码标价的。问题是,我们买了设备,为啥还要售后服务呢?原因就在于传统的网络设备比较复杂,特别是它上面的软件协议栈。遇到问题怎么办?售后服务来解决。比较具有讽刺意味的是:售后服务的价格竟往往比设备本身昂贵很多,这让博主颇为不解。如果不购买售后服务,那设备本身的价格又如何呢?单纯的硬件已经是白菜价了,值钱的是硬件上面的软件协议栈。分解到这里,我们已经看出了问题:因为这个庞杂的软件协议栈,我们花了更多的钱买硬件设备,也因为这个庞杂的协议栈,我们甚至需要花更多的钱买所谓的售后服务。对于运营商,这个软件协议栈也许还有存在的意义,拓扑多变,邻居关系复杂,需要一些复杂的分布式协议撑撑门面。但对于数据中心,这个协议栈则变得非常鸡肋。最简单的,规划一下vlan,跑二层。稍微复杂一些的,在leaf和spine之间跑路由协议+ECMP。配置都有模版,变变参数就好了。如此简单的要求,根本不需要那个庞杂的协议栈,我们为什么还花那份冤枉钱呢?
再来说说运营传统网络的成本。最大的开销莫过于雇佣运维团队了。在大企业的IT部门中,曾经有一项很重要的衡量企业基础设施自动化程度的参数叫做“管理员/每千台服务器”。博主相信只要在传统交换机上做过运维的朋友都会承认,管理一张传统网络是件非常麻烦的事情:任何来自上层应用的需求都需要旷日持久的重新配置vlan,IP地址,路由协议和ACL,任何网络故障都需要管理员登录每一台交换机检查配置和各种show,还得每天盯着各种监控系统查带宽,看延时。这是一个技术活,不然CCIE们的身价也不会那么高。于是,网络的运营成本因为它的复杂而变得昂贵。
另外还有一些SDN和传统网络都无法绕开的成本,比如电费之类的,博主就在此略过了。拆分完了传统网络的开销,我们看看在理想情况下,SDN是如何帮助客户省钱的:交换机仍然需要,但是交换机上面的协议栈不需要了。从前是n台交换机n个协议栈,而现在是n台交换机1个控制器。售后服务,仍然需要。新技术嘛,总得有人教一教。运帷团队在SDN的世界里可能会大幅缩水,因为只有一个控制器,不需要太多的管理员。看来在理论上,SDN确实能省钱,而且省的都是协议栈和运维这样的大头。
博主目前还没有看到那些声称已经部署SDN的企业公开他们具体省了多少钱。我猜有些企业可能会叫苦:部署SDN之后,我们花了更多的钱!博主把可能的原因归结为1)不纯粹的SDN方案以及2)新增的研发成本,在以后的文章中会详细分析。
刚性需求二:多租户和弹性计算(multi-tenancy & elastic computing)
自从多租户与弹性计算的概念被Amazon EC2实现之后,不管是公有云还是私有云都纷纷希望效仿,使之成为了一个刚性需求。不过,这个需求可难为了传统网络。难点有二,首先是如何实现多租户之间的隔离。在传统的网络中,二层的vlan以及三层的子网是最常见的租户隔离方式。每加入一个新的租户,网络管理员都要手动为其分配vlan,分配IP地址。在传统的网络中,这个过程往往以天为单位。EC2出现之后,人们已经习惯了分分钟之内搞定机器,搞定网络。无奈不是家家都是Amazon,这种平台可不是随随便便就能够搭建起来的。
第二个难点来自于弹性计算,也就是每个租户可以根据负载的情况随时申请,注销和移动虚拟机。这一刚性需求成就了VMWare的一系列产品,以及以OpenStack和CloudStack为代表的orchestration系统。但是这些系统都仅仅在管理服务器,物理网络与它们无关。当一台虚拟机从一台主机迁移到另外一台主机的时候,物理网络有时候必须做出相应得调整(比如重新配置vlan)才能实现虚拟机的无缝迁移。
没有任何人会选择以手动登录每一台交换机的方式来完成以上的配置修改。集中控制网络设备成为了唯一的选择。SDN也正是在这个刚性需求的推动之下,开始全速进入人们的视野的。
刚性需求三:应用的多级部署和网络服务链 (multi-tier application & service chaining)
我把这个刚需称作压死传统网络这只骆驼的最后一根稻草。如今的在线服务已经变得非常复杂了,那种一台web服务器加一个数据库服务器的架构也许只能在demo阶段见到了。一个更现实一些的架构也许是这个样子:最前端是防火墙,之后负载均衡把流量分派到多个web服务器,多个application服务器处理复杂的业务逻辑,多台数据库服务器负责查询和插入记录并且彼此备份,在web服务器和数据库之间又有ACL拒绝二者直接通信。这仅仅是整个业务链条的一半,返回的网络流量可能会经历另外一个完全不同的业务链条。用传统网络来实现以上这个业务链条简直是一场灾难。业务链条每增加一环,服务器每增加一台或者访问控制每增加一项,就意味着网络管理员要非常非常小心的根据各个服务器所处的网络位置来配置相应的网络设备。业务逻辑复杂到这个程度,传统网络的管理方式已经完全不能适应了。而SDN与NFV(网络功能虚拟化)对于解决这样的问题具有很多先天的优势,博主会在以后的文章中详细讨论。
到此,三个加速传统网络颠覆的刚性需求总结完了。值得注意的是,这三个刚需直到移动互联网和大数据如火如荼的今天才开始显得那么迫切。博主还是想强调:SDN的出现完完全全是因为上层应用的需求,是一个自顶向下的过程。这篇文章略去了不少其他的刚性需求,比如安全,快速路由恢复,实时网络监控等等。不是因为它们不重要,而是因为它们并不是促使SDN发展的直接原因。
作者:何妍
来源:51CTO