成立于5年前的Nicira被认为是硅谷最吸引人的初创企业。简单来说Nicira是一家网络虚拟化公司,它的任务是把内核从网络硬件移植到软件中。这家公司的使命是建设只存在于软件之中的网络,使得底层的网络硬件对于网络用户来说不可见。从而让网络的组建、改造、重建都易如反掌,最最终支撑web上最大规模的服务(想想物联网的规模)。
其CTO为Martin Casado,此人聪颖过人,是OpenFlow(参见OpenFlow能否成为网络的Android?)第一份规范草案的拟定者。Martin Casado的愿景是网络可以像计算机一样可编程。
他认为既然谁都可以买一堆计算机然后投入一群软件工程师去做出一些了不起的东西,那么网络也理应如此。理想的网络架构应该具备计算机的灵活性,可适用于任何网络硬件,换句话说,应该有一种通用网络操作系统,在此平台下,硬件只负责收发网络数据包,由软件负责思考。
Nicira的平台用户包括AT&T、eBay、NTT、金融巨头Fidelity以及仅次于Amazon的云服务供应商Rackspace。还有一些虽不具名但绝对是大名鼎鼎的互联网公司。
为什么这些公司愿意跟Nicira合作?因为当今的硬件网络的改造难度已经到了荒谬的地步。Yahoo的前CTO Raymie Stata把复杂的计算机网络比作是15 Puzzle游戏(有点类似华容道,必须在16个格子的正方形中重新安排15个方格块),一旦要对网络做出调整,就得就硬件进行物理性地重新安排。
Nicira的做法就是网络虚拟化,用软件实现网络调整,底层的硬件引擎无需改动。其实就是把交换机和路由器里面的智能部分取出移到软件上,这样交换机就不需要知道太多东西。Nicira自2009年以来就一直跟Rackspace在合作,为后者的一项云服务新的beta版提供帮助。使得网络架构师把云服务的大权让位给了云架构师。
传统网络的问题:有史以来最安全网络的麻烦
Martin Casado曾跟一家不具名的美国情报机构工作过,该机构的网络被他认为是有史以来最安全的计算机网络。但该网络的麻烦是建设这样的网络近乎不可能,而且一旦想要改动网络,同样的问题还会再次出现。
这个事件给Casado的启示是市场的力量缺位,尽管政府有钱却买不到想要的产品—安全和易于管理的网络。他举了个例子,改动一台计算机就得进行8项不同的配置变更,所以基本上这样的网络搭建好之后什么都不能动。
网络设备制造商不允许对硬件进行重新编程,代码都是直接写进交换机或着路由器的。当然,他们这么做也是由原因的,用户买一个东西回来当然希望插上电就能用,另外网络公司也不希望因为用户修改而导致网络瘫痪。但是这种限制会给网络的扩容改造带来大问题。而对于业务规模不断扩大的大型互联网公司来说,这样的情况是常有的事。
Google从2005年开始甚至开始自己造网络硬件,部分原因就是由于它需要对硬件能够有更多的控制。服务器之间需要高带宽的连接,同时网络还需要能够伸缩自如。传统的网络设备供应商做不到这一点,成本过高,系统太封闭,以Google的这种网络规模是其无法管理的。
所以Martin Casado到了斯坦福大学研究生院后就开始着手建设一种灵活的、能够像计算机一样可编程的网络。
通心面式代码之死
Casado的博士论文题目是《一种名为Ethane的网络架构》,该论文得到了Nick McKeown 、Scott Shenker的帮助,2007年,这三人成立了Nicira。而这一年正好是是软件定义网络的元年。
SDN追求的目标是更好地控制网络,即把网络控制模块化,对网络控制平面进行适当的软件抽象,使之可演进。
SDN的第一个突破就是OpenFlow,这是一种远程控制交换机和路由器的标准方式。可以理解为一种通用语言或指令集,有了它就可以编写网络的控制程序而无需为每一台路由器重写代码。OpenFlow的大旗一扯,众人即集结在其鞍前马后,其中不乏业界的大佬,如Google、HP、NEC、爱立信等,众多媒体都把它称为是将网络带出野蛮的中世纪的救主。
不过有一点比较麻烦,如果硬件供应商不把OpenFlow加入自己的设备的协议支持清单,那么OpenFlow就无法在交换机和路由器上使用,就只能叫好不叫座。从结构和标准的角度来看,OpenFlow无疑是重要的,但是从架构的角度而言却并非如此,因为更重要的组件关心的是协调交换机的活动,以便行为能够连贯协调。
OpenFlow的终极目标不是更好地管理网络硬件,而是创建一种无需关心硬件即可组网的软件架构,也就是说实现组建虚拟网络的能力。
所以这家公司决定推出自己的解决方案—网络虚拟化平台。
网络虚拟平台
Nicira经常被用来跟VMware类比,大家都是从斯坦福的研究孕育而出的(这正是硅谷成功的三大秘密之一,参见创新大师Steve Blank访谈);大家做的都是虚拟化,后者是服务器的虚拟化,前者则是网络的虚拟化。虚拟层可以屏蔽底层硬件的复杂性。
VMWare、Xen和KVM等也有虚拟化的努力,也实现了虚拟交换机,不过这些虚拟交换机功能有限,无法将多个虚拟交换机互连起来形成一个复杂的虚拟网络。
而Nicira的做法是在物理硬件之上加载一个虚拟网络平台,这个平台由虚拟交换机Open vSwitch和控制器组成。这个虚拟交换机是开源的,可以对任何人开放使用,虚拟交换机之间的连接由控制器进行管理。
Nicira的解决方案是解耦、独立、控制。
(一)解耦
所谓解耦是指将网络的控制从网络硬件中脱离出来,交给虚拟的网络层处理。这个虚拟网络层加载在物理网络之上,在一个虚拟的空间重建整个网络。有了网络虚拟化,物理网络被泛化为网络能力池,正如服务器虚拟化把服务器设备转化为计算能力池。
网络虚拟化使得IP连接大为简化,对物理网络的要求也大幅降低,二层网络的复杂性不复存在,VLAN变得无关紧要。
(二)独立
加载的这层虚拟层无需现有的框架做出任何改变,原有网络硬件、原有的服务器虚拟化解决方案、原有的云管理系统、原有的IP都不需要改变:
(三)控制
NVP有两类关键组件:
一个是Open vSwitch,这个东西是一种可以远程控制的交换机软件。其部署方式有两种,一种是部署在服务器的管理程序(Hypervisor)内,另一种是NVP网关,这个通常用来集成遗留的物理网络。
其二是控制器集群,运行在服务器上,管理所有的网络组件和连接。
从商业上看,其最大的优势是不需要底层硬件支持OpenFlow,这样不管硬件厂商如何抵触也无法阻止网络虚拟化的脚步。
如果你不能打败敌人,那就加入他们。旧体系的霸主思科似乎也看清了这一点,目前也正在开发类似的技术,服务器虚拟化的巨头VMWare也要染指。不过Nicira坚信自己领跑的优势明显。
虚拟化一切
Nicira的平台对于Rackspace这样的机构尤其合适。Rackspace的定位是基础设施云(IaaS),为全球众多的开发者和企业提供虚拟服务器和存储服务,有了虚拟网络的支持,Rackspace可以把自己的客户限定在不同的虚拟网络中,保证安全。
但是Yahoo前CTO Raymie Stata质疑其对于单租户大网络的客户意义不大。比方说Facebook,虽然其网络很大,但是自身并不需要划分那么多的虚拟网。
Casado不同意这种说法。他说大公司的内部运营很复杂,尽管公司内部的网络资源不需要与外部共享,但是共享还是存在的,那就是内部众多的不同应用。应用不一样,部门不一样,对网络的需求也不一样,但是网络资源必然是共享的。像Google这样的公司,其运作模式跟Racspace和Amazon不会有太大差别,只不过前者是私有云,后者是公有云罢了。云者,其实就是大规模资源不受时间、地点、大小限制的灵活调配,只不过之前的云只有计算和存储的虚拟化能力,但是网络的灵活调配是个短板,现在Nicira出来补缺了。
网络设备商必将日渐式微
现在,许多最大型的互联网公司,包括Google在内,已经开始自造网络(参见随大“流”:Google秘密转向网络技术的下一个浪潮)。他们的做法是向中国和台湾地区的制造商购买一些廉价的网络引擎,从而绕开思科和Juniper这样的耗钱大户,此举导致了网络商品化和芯片批发商的逐渐兴起。而现在,有了网络虚拟化平台的支持,由于底层硬件的无关性,这股趋势只会延续和扩大下去。
思科也在开发自己的网络虚拟化工具,思科跟Nicira一样加入了OpenStack的网络虚拟框架的建设工作。(OpenStack是建设基础设施云的一个开源平台。)
不过Casado不看好传统网络供应商愿意全心投入网络虚拟化。因为这就好像是搬起石头砸自己的脚。看看历史,有哪个占优势地位的公司愿意做一个可以兼容其他厂家任何类型产品的东西呢?他们也许会做做样子,但是具体的实际意义的事情肯定不会干。
Casado相信传统的网络硬件上必将日渐式微。思科和Juniper等,会慢慢变得无足轻重。
最近Casado收到了一封电子邮件,来信者是Nicira过去有过往来的一家大公司的一位主管,此人询问Casado能否跟他碰个面。Casado以为对方想进行公司合作,就答应了。结果此人原来是一位听说了Nicira的普通网络硬件商,约Casado出来就是想知道他会不会在10年之内离开现在的工作。