原文在:

2拾1:OpenFlow:Neutron走上歧路的原罪?

zhuanlan.zhihu.com
图标

因为知乎回复有字数限制,很明显我超出了这个限制,就把回复放在这里。

以下是回复

======================================================

很难看见有自己思考的文章,忍不住评论一把。对文中的小观点部分赞同,但是对文章的大观点并不认同。

导致OpenStack Neutron或者说OpenStack走上歧途的,并不是某项技术,而是整个大环境和开源开发体制。


OpenStack是一个失败项目吗?上大学的时候看吴宗宪主持的《我猜》,有一个环节记忆深刻。里面有个艺人说自己天天被狗仔队八卦,不堪其扰。宪哥对他说,你要感到幸运,被八卦证明你红,然后宪哥问了旁边一个不知名的艺人,你有被人八卦过吗?从网上的文章看,OpenStack就是那个被八卦的艺人。

如今整个生态里面,要构建私有云或者SDDC,除了VMware和OpenStack,大部分人都说不上其他的平台软体来。VMware和OpenStack分别是闭源和开源领域的第一选择。在OpenStack风头最胜的时候,VMware股价跌到50美金一股,而如今VMware股价算上前段时间的分红,已经飙到了220美金一股。钱是最聪明的,从这个也能看出来,在VMware和OpenStack的较量下,OpenStack败下来了。


是什么导致OpenStack(包括Neutron)日渐式微呢?缺少「神」级人物的引领和欧美大公司的退出。

每个人能力都是有限的,管理几百几千行代码的项目,普通工程师就可以了。但是OpenStack的代码和它要解决的问题,不是普通工程师可以搞定的。技术和艺术的突破,从微观上来看,就是少数精英决定的。OpenStack从最近几个版本来看,缺少这样的人物,并且大公司的退出,进一步加剧了优秀工程师的流失。不要跟我说中国成为了OpenStack主战场,中国贡献代码最多的公司华为,主要的社区工程师也是来自欧美,核心项目那几个也是IBM,HP退出OpenStack之后跳槽过来的。其他的中国公司贡献OpenStack,不客气的说没有创造什么正面价值,有的时候甚至是搞笑,改个注释,改个英文单词拼写也算个commit,然后也要吹一下贡献排名。

由于缺少「神」级人物的引领,现在的OpenStack社区只是专注于修修补补,没法采纳新的技术以及新的架构,必然导致其落伍。OpenFlow从OpenStack诞生那一刻起,就支持通过流表生成DVR,OVN只是一个控制器,它的作用与openvswitch-agent有些重合,OVN并不是实现OpenFlow级别DVR的必要条件。但是这都9102年了,我们居然还在讨论namespace实现的DVR。整个OpenStack采用的SQL+AMQP的架构,以及如盘丝洞一般的数据模型的关系,我相信每个实际运维的人员都骂过不止一次。我们都知道这些问题,但是我们为什么不改,不让它变的更好?从开源设计的角度来说,这意味著代码重构。这些祖传的代码,一堆TODO,NOTE,REVISIT早已名花无主,现在还有谁能改的动。现有的社区工程师,有话语权的(个人猜测内容)一方面不愿意改,另一方面不敢改。如果OpenStack有一个或者几个神级程序员的存在,例如Linus之于Linux,那这些都不是问题。


至于OpenFlow的问题,那是另一个话题,但是绝不是导致OpenStack Neutron走上歧途的原罪。

SDN王冠上的钻石Openflow并没有如愿成为主流的南向介面,纯种的集中控制看起来也不如物理上分布逻辑上集中的控制模式更有吸引力。再后来,被SDNer们诟病已久的OSPF和BGP,居然杀了个回马枪,渗透进了数据中心网路,成了LANWAN通吃的控制平面。而曾经风光无两的ODL和ONOS,也从参谋长联席会议主席的位置上隐退,稳稳当当地在神坛上被供了起来,靠著三心二意的支持者们心不在焉的香火钱维持存在感。

这段话看著很爽,很有江湖气,但是并没有核心逻辑。为什么OpenFlow没有如愿成为主流南向介面?都9102年了,现在有几台交换机支持OpenFlow能像OpenVSwitch支持的那样彻底?ONF提出OpenFlow标准,期望各大厂商趋之若鹜,结果换来的就是各大厂商心猿意马。或许这么多年了,ONF终于明白了「枪杆子里出政权」这个朴实而又深刻的道理,所以转而提出P4架构,并且开始涉及交换机晶元,你们不陪我玩,我自己来玩好了。至于SDN究竟是集中是的好,还是分散式的好,答案是各有各的好,但是ONF给的定义一开始也说的是Logical centralized controller,并没有说物理上的集中。被SDNer诟病的OSPF和BGP,至始至终也没有离开数据中心网路,要不然underlay都配静态路由不成?

推荐阅读:

相关文章