序
自从我在OpenStack香港峰会做了“深入探索Neutron”的主题分享后,很少看见有从业者如此专心研究Neutron代码并且整理和分享出来。于是我一看到样章便欣然答应审稿,并索要了全文稿件阅读。正值国庆并中秋假期,本是出去游玩的计划也取消了,不但免了外面喧嚣、拥堵之苦,还饱尝了稿内流畅、风趣之美,值!
作者不是简单地罗列Neutron代码,而是从头到尾都有自己的总结和理解。细致的图文解说令人记忆深刻。Neutron Ocata版代码近乎30万行,要想透彻掌握,除了扎实的Python语言知识技能、丰富的网络领域知识,还要有铁杵磨成针的信念和毅力、为公也为己的开源分享精神、踏实不轻浮的从业素质。从本书来看,作者在这些方面都有比较深的造诣,值得本人学习。
虽然此书只讲述了Neutron社区实现版本中基本的二层和三层部分,但是脉络清晰,行文循序渐进。阅读本书,建议读者先安装好OpenStack环境,有了基本的Neutron网络操作体验后,下载好源代码,准备好UML画图工具,从第1章开始一直读到最后。读完之后,如果读者能自己看着源代码把各种功能的UML相关图整理出来,本书的目的就达到一半了。“师傅领进门,修行在个人”,我想获取知识,自我成长的道理都是如此。
学习Neutron的另一个关键是不要有固定模式。Neutron的核心是API以及背后的资源模型,社区实现版本可以作为参考,因为我们在给客户实施部署时,可能要换成其他厂商的实现版本。在深知Neutron的内涵之后,提供出灵活多变,适应客户需求的虚拟网络解决方案才是我们的目的。也只有深知内涵,才能有变化,我想这也是本书“深入理解”几个字的内在含义。所以读完此书,不要停止,继续挖掘Neutron虚拟网络的背后逻辑、问题和可变部分,这样才能达到“应用自如,万变不离其宗”的境界。
Neutron定义了一组云计算中使用的网络模型,其后面实现可以是实在的网络硬件,也可以是虚拟的网络功能(网元)。虚虚实实,实中有虚,虚中有实,能根据客户的现实环境进行虚实结合,然后对Neutron进行定制化的部署甚至实现,是我对我们公司Neutron从业人员的要求。我想这个要求和本书作者对Neutron源码进行深入分析的目的是一致的。
总之,这本《深入理解OpenStack Neutron》既有对Neutron虚拟网络背后的网络原理方面的阐述,也有对Neutron的数据模型、启动过程、消息处理机制和经典API函数处理的源码分析。语言网络化,风趣而又流畅;知识通俗化,深刻又易懂。相信此书能帮助读者进一步掌握Neutron虚拟网络,为以后的实践打下扎实的基础。
九州云CTO龚永生
2017年10月 中秋夜