2008年4月,斯坦福大学Nick McKeown教授在ACM Communications Review上发表了论文《OpenFlow: enabling innovation in campus networks》,首次论述了OpenFlow的原理, 奠定了SDN的技术和理论基础。2011年3月,由AT&T和Google等公司发起的SDN标准组织Open Networking Foundation在美国成立。2013年起,AT&T、中国移动、沃达丰等全球领先运营商纷纷启动SDN商用项目。SDN的时代已经到来,越来越多的人开始期待SDN能够带来更加简化的网络,提供更加敏捷的业务。
SDN的本质是软件定义网络。那么SDN是如何通过“软件定义”,使网络更加简化,业务更加敏捷呢?接下来,我们就通过软件发展的历史,来深入的了解下。
1946年2月,世界上第一台计算机ENIC在美国诞生。随后一年,冯·诺依曼提出二进制方案、多级存储结构和并行计算原理,确立了现代计算机的架构,软件的历史也从此开始。早期的计算机软件是二进制的机器语言,程序员需要根据当前的硬件编写对应的指令来操作计算机,“0和1”的排列组合就是计算机程序,软件只能在编写自己的计算机上运行。由于编程太过专业和复杂,当时计算机仅限于为国防和科研服务。
1958年IBM公司发明了第一个高级语言FORTRAN,它在编程语言中设计了编译器,把人能看懂的高级语言转化为机器能理解的0和1,软件就可以通过编译器在不同的机器上运行了。20世纪七十年代初,面向过程的结构化语言Pascal和C语言出现,一个程序被划分为不同的部分,软件开发开始分工协作,软件工程理论也随之诞生,从而带动了软件开发的大发展。1995年,面向对象的Java语言诞生,高度的抽象化和模块化的能力,使得它和C#等面向对象的编程语言一起,推动了互联网和相关应用的飞速发展。近几年来,基于面向对象开发演进而来的模型驱动开发,成为软件开发的主流模式之一,SDN的发展也受益于模型驱动开发。
所谓模型,就是针对指定业务或网络配置来抽象和定义一组处理规则,这种规则既包含业务的类型、以及依赖的数据之间的关系,还包含业务的执行动作和执行逻辑。上层系统只需按照下层组件对业务定义的模型,填入相应的参数,即可完成对业务的控制和发放。基于模型驱动的开发,能够极大的简化业务操作和网络实现的复杂度,同时通过模型中包含的执行动作和执行逻辑,有效对业务和网络之间进行解耦,降低业务和网络的复杂程度。
从软件发展的历史来看,软硬件解耦,软件不同模块之间解耦、抽象化、模块化、可复用一直都是行业发展的趋势。SDN并非另辟蹊径,而是遵循了这一客观规律并将其应用到了电信行业。SDN通过软硬件解耦实现控制和转发分离,达到简化网络的目标;通过模型驱动开发以及先进的DevOps(Development 和 Operations并行)开发模式,提高系统对接和业务部署的效率,实现敏捷业务的目标。
2013年,华为正式向全球发布了SDN协同器NetMatrix。NetMatrix采用Scale-Out的分布式架构,为用户提供了基于模型来配置和定义新业务的能力,用户配置的模型能够在NetMatrix中根据业务、网络以及设备的对应关系进行实例化,自动生成对应的代码和接口,从而极大地提升了开发效率,降低开发人力和成本。NetMatrix支持业界主流的YANG、NetConf、Restful、RestConf等接口和协议,与OSS系统及第三方应用实现无缝对接。基于模型驱动的南北向接口定义,能够让开发者聚焦业务本身,减少对具体代码实现的关注,从而大幅提升对接效率,实现业务生产系统快速上线。同时,华为通过收购并整合爱尔兰Amartus公司SDN解决方案能力,快速积累了多家业界主流厂商的设备对接经验,可以基于模型定义和开发,快速完成第三方设备管理和配置的能力。通过模型驱动开发能力,NetMatrix能够快速完成与OSS系统、第三方控制器、第三方设备的对接和集成,快速打通业务生产系统,实时在线完成租户级业务自开通和自调整,为用户提供互联网式的业务使用体验和速度。
2015年10月19日,英国伦敦IP Gala举办期间,华为正式对外展示了NetMatrix模型驱动开发能力,同一天在中国深圳举行的华为首届开发者大会上,华为对外发布了NetMatrix的API和供开发者进行开发和验证的在线SDN环境,截至12月份,NetMatrix模型驱动开发的能力已经在全球10多个运营商的现网中商用部署和完成测试,华为NetMatrix正在和运营商一起努力,为全球用户提供更快更好的网络业务服务。
