《云数据中心网络与SDN:技术架构与实现》——2.3.6 业务可编程
2.3.6 业务可编程
业务可编程是通常所说的北向接口,控制器把底层的一些接口组合在一起进行适当的封装,然后把高层的业务接口——暴露给开发者。从编程方式上来讲有“命令式编程”和“声明式编程”,命令式编程关注How,即业务的实施细节,而声明式编程关注的是What,即业务的最终目的。不过,哪些是What,哪些是How呢?实际上也并没有一个明确的界定。封装这件事其实只是为了方便人理解而已,机器是不需要什么封装的。对于不同的人,能够理解、愿意理解到的层面是不同的,因此封装是可以分出来很多层次的,这一层的How有可能就是下层的What。
目前圈子内流行的说法叫作“基于Intent的编程”,比如Cisco推的GBP和华为推的NEMO。从名义上来讲,两者都属于声明式编程,但GBP的封装层次要比NEMO更高一些。GBP的描述逻辑侧重于网络中不同应用间的通信策略,而NEMO的描述逻辑仍然要关注于物理网络的拓扑。当然,封装获得友好性是有代价的,封装层次越高,业务可以掌控的东西就越少。到底用什么呢?主要还是看业务场景。如果是云里面的多租户业务,那么网实际上只是辅助应用的,流量能跑通就可以了;如果是运营商的专线业务,那么网就处在核心地位了,自己做路径的规划就非常有必要了。
目前来看,GBP和NEMO都处在较为初级的阶段,技术上不是很成熟,暂时都还谈不上生态。其实业务可编程这块,实际上还是用户自己最了解需求,而无论是GBP还是NEMO都是SDN自己玩出来的,总是有些泛泛不着边际的感觉。相比之下,以场景为驱动的业务接口正在形成事实上的标准,比如云中的OpenStack Neutron、GBP和NEMO也都在积极地对接Neutron。运营商这边ONAP的轮子也已经开动了,未来不知道是否会发展成ISP的OpenStack。
业务可编程领域也有一些专用的建模语言,比如YANG和TOSCA。YANG前面介绍过了,TOSCA是OASIS为NFV推动的一种建模语言,和YANG相比主要多了编排的能力,YANG擅长描述一个网络业务,而TOSCA可以组合起多个业务。OpenStack已经使用了TOSCA,而YANG主要还是在OpenDaylight这块。
- 点赞
- 收藏
- 关注作者
评论(0)