【云驻共创】数通网络开放可编程之Hello World
Dev Run华为云开发者沙龙--数通网络开放可编程之Hello World
直播介绍:
Coding is Cool! 特邀华为数通网络开放可编程专家WeiWei老师,为您打造专场直播-----“数通网络开放可编程之Hello World”。教你快速掌握网络编程基础,只需几行代码就能随心所欲,掌控网络!更有云端在线开发环境,一键直连,再也不用为环境劳神费心!Talk is cheap, show you the code! 本次直播绝对干货满满,不容错过!
目录
1. 数通网络开放可编程(AOC-Agile Open Container )简介
2. 演示-开发数通网络开放可编程(AOC)业务(SSP)包
3. 演示-使用AOC下发业务
一、背景
随着5G时代的来临,网络越来越复杂。因为我创新层次不穷,但设备厂商版本节奏缓慢,传统的运维模式无法适应新业务的敏捷变现。
面对这些挑战,华为数通网络开发可变成帮助您自主开发,快速上线,摆脱设备厂商的羁绊,实现网络运维转型。
AOC开放可编程平台以YANG模型驱动为基础,提供端到端的开放可编程能力:设备驱动可编程、网络业务可编程、同时自动生成丰富的北向API,实现多厂商设备快速适配、新业务快速上线,为网络自动化奠定基础。
直播内容:
简要介绍数通网络开放可编程(AOC)的平台架构,演示数通网络开放可编程(AOC) 业务(SSP)包开发过程,演示使用AOC下发业务。通过介绍网络编程的基础先知识:YANG、python和linja模板,并在AOC社区的"在线开发"环境上,通过一个实例完成hello world的编写和运行。
开发流程从左到右,首先是需求分析和HLD设计,然后是设备驱动开发,再然后是业务模型开发,这个里面又分为四个小部分,分别是南向模板开发、业务YANG定义、mapping代码开发以及调试验证,直到最后的发布。
这个需求分析和HLD设计是属于前期需要做的工作,设备驱动开发这一部分是各个设备厂商提供的。根据业务场景进行需求分析、HLD设计,输出待下发的配置和涉及的设备。比如说如果我们最终操作的设备是华为的设备。SND包对应于我们AOC环境上的一个SND包,也是专门针对于华为设备的SND网元驱动包(Specific NE Driver Pkg)。根据待下发的配置和涉及的设备,开发网元驱动包。
当我们编写SSP包的时候,主要就是这四个步骤:南向模板开发、业务YANG定义、mapping代码开发以及调试验证。
二、数通网络开放可编程(AOC-Agile Open Container )简介
数通网络可开放编程平台介绍
面对网络运维的严峻挑战,开放可编程系统以YANG模型驱动为基础,提供了端到端的开放可编程能力:设备驱动可编程、网络业务可编程、开放设备和业务北向接口,并且提供了安全可靠的保障机制。
数通网络可开放编程平台叫AOC,是Asia Open Container敏捷开放容器的一个缩写。他的下方对接网络设备,通过三种协议来对网络设备进行管控。上方对接iOS系统。
主要能力:
• 设备能力开放
设备能力开放,是指基于NCE产品,用户可以通过定制和加载设备YANG模型开发网元层的功能,新纳管设备,或定制设备功能,使能设备能力的开放。
设备功能当前仅支持华为工程师开发,未来会发布到第三方镜像中,支持第三方开发。
• 业务能力开放
业务能力开放,是指基于NCE产品,用户通过定制和加载业务YANG模型、业务逻辑,自定义网络业务功能应用(APP),比如L3VPN Service Model(IETF定义的业务北向模型)等。跨多个设备进行网络业务编排的业务,业务配置会被并行部署到多台设备。
业务应用可以由第三方开发、或者华为工程师开发。
• 北向能力开放
北向能力开放,是指系统的设备或者业务YANG模型自动生成北向RESTCONF、CLI和Web UI接口,快速对接北向人机和机机接口。
数通网络开放可编程的平台的架构
核心能力:
模型驱动:AOC可以根据Yang模型自动生成Web UI和RestConf。Yang模型在配置下方的时候可以存储备份和同步设备上的配置。Yang同时起到了屏蔽南向协议的作用,例如NetConf和STelnet。
SSP包:业务包(Specific Service Plugin Pkg),定义了完成一套网络级业务配置对应的数据模型。该数据模型通常包含一个Jinja2模板文件、一个Python映射脚本和业务YANG模型。通过定义业务YANG模型和业务逻辑使能。
SND包含设备的YANG,AOC屏蔽了南向协议的差异,最终在AOC上都是基于模型的操作实现设备能力的开放。以YANG模型方式抽象设备能力,屏蔽差异,实现设备能力开放。
SSP包包含业务的样模型,业务的一样模型与设备模型无关,与厂商无关。业务包开发者可聚焦于业务本身,自主定义业务模型。通过映射逻辑可以屏蔽各设备的模型差异,可以跨设备跨厂商支撑业务自动化部署。
映射机制:AOC的映射机制将SSP的网元模型映射为AOC中data store的网元模型进行自动比较,形成一些列操作,对开发者非常的友好。AOC提供的映射机制可以极大的减少SSP包编码逻辑的复杂度,也就是mapping 代码,因为AOC提供的映射机制,可以自动生成create,delete等操作,无需用户去显示的指定具体的哪些操作,去进行编写代码,极大的便利了用户的操作。
事务机制:针对于复杂业务,可能有多个设备,也可能一个设备多条配置,事物机制在实时监控配置下发过程,如果出现异常进行回滚。
传统的命令行配置方式缺少事物,一致性,回滚等关键能力,在配置出错的情况下,需要人工检查配置日志,手动恢复业务,这个会非常麻烦。
面对这一难题,AOC提供的事务机制实时监控配置下发的过程。如果在配置下发过程中出现异常,AOC 会自动进行业务配置回滚,恢复网络影响,将系统的影响性降低。
配置预览:基于AOC任何下发的配置,在页面上可以看到预览信息,可以看到下发的报文什么样子的。AOC 提供了转让能力,支持配置审核工程师对配置脚本进行审核。
历史记录:AOC提供的北向配置历史记录和南向配置历史的记录。因为工程师可以按需检查AOC对设备的配置审计以及业务回滚。
AOC还提供了差异发现、同步对账、业务还原、冲突检测等一系列的高级能力。
三、演示-开发数通网络开放可编程(AOC)业务(SSP)包
制作“Hello world”业务包
复杂的网络业务都是由一个个配置组成,制子接口SSP作为首个业务包所要完成的工作,承载向指定设备下发接口或者子接口并配置接口描述的能力。
我们看右边图,就是用户通过那个北向或者web UI指定设备设备,接口名以及接口描述。然后这个数据流从北向走到SSP 的一样,然后再走到NE YANG,然后再走到SND,最终走向设备,就是这样一个流程。
制作这个SSP包的步骤大体分为五步:
1、 准备“子接口”网元YANG模型配置XML。
2、 创建“子接口”工程,开发环境上加载工程。
3、 开发“子接口”网络业务YANG模型。
4、 开发网络层到网元层的映射逻辑。
5、 业务包打包并加载到AOC中,验证。
准备网元YANG模型
图片显示的是一个子接口在华为一款设备上的,左边这幅图是YONG模型,右边这幅图是
子接口配的一个接口描述,以及那个MTU属性的xmlns格式的呈现。
不同的设备,会有不同的配置,但相同的配置,有可能它的量模型也是不一样的。SDN是针对于设备的,假如说开发的SSP包是涵盖了这款设备,那么它最终分解的网元层的配置,它一定是跟这款设备的YANG模型最终的xmlns格式是一致的。
进入数通网络开放可编程,然后点击这个在线开发:
https://devzone.huawei.com/cn/enterprise/aoc/sumOnlineDevelop.html
左边有个小红框进入CloudIDE。
1.“在线开发”是一个集华为云CloudIDE、AOC mini和AOC moni为一体的在线环境,方便您随时随地开发调试业务包,轻松实现网络业务的构建和管理。
2.如果要使用“在线开发”环境,需要注册有华为账号,并通过实名认证。
3.您可以直接单击“进入CloudIDE”,系统将会引导您进行操作。
CloudIDE是一个由华为云提供的在线代码开发环境,可以支持代码的开发与测试。同时CloudIDE集成了AOC mini与AOC moni插件,可以通过调试功能跟踪AOC下发命令的执行情况,完成代码调试。
通过CloudIDE与AOC集成环境,您可以完成SSP业务包的开发与调试,实现网络业务的定制与下发。
1. 点击窗口右侧浮动按钮“进入CloudIDE”
2. 登录华为云账号
3. 打开AOC mini创建并导出SSP包模板
4. 使用CloudIDE开发SSP包
5. 执行单元测试,验证SSP包
6. 下载SSP包,导入AOC mini
7. 创建业务实例,试运行查看配置结果
华为提供了资源下载 ,这里面有AOC mini 软件,但是这个软件当前还是需要额外的途径才能获取到的。YANG文件校验工具,在开发SSP包需要中间有几个步骤是开发service YANG,service YANG开发的过程中肯定是有可能会出错的,这个时候我们可以通过工具来进行校验。但是这个工具需要一个java 运行环境。
下面这个SSP包、SND包,SDK 这个提供了一个python 的open-api,我们可以先下载好。
https://devzone.huawei.com/community/flowchart/resource/downloadDocFile?type=downloadDocFile&id=16
打开并解压,会有一个这样的WHL文件,这是一个python 的API,然后我们再回到CloudIDE。
默认进入AOC CloudIDE,它是一个这样的界面。可以看到左边是一个文件夹的目录层级,
上面按钮是终端。
在右边有一个AOC的小图标,可以在进入到AOC mini,还有专门为AOC mini 提供配套的模拟工具。我们先把命令打开,然后回到CloudIDE界面,然后将刚刚下载的这个WHL文件拖到目录下。
在控制台上查看这个文件,然后使用pip install 命令安装,这个安装好之后,就可以基于这个进行开发,但是后面我们还会遇到样校验工具。
资源下载页面的校验工具需要java 安装环境,这里也可以选择安装开源的pip install pyang工具,这个工具也可以校验YANG模型是否编写正确。
回到AOC mini 界面,我们的目的是查看网元层的接口配置,选择设备配置这个界面,然后首次登录的小伙伴就可以看到在环境AOC mini环境上已经预加载了一台设备,叫NE1。
它的设备型号、硬件版本号、软件版本号以及一些其他的相关信息,我们可以点击编辑按钮,
进入SND包YANG模型生成的WEB UI 界面,就是下面这些特性都是由SND 包里面的YANG模型生成的,我们找到华为IFM,找到interface。
创建一个叫name 2的接口,修改一下它的描述信息,写入hello AOC, 然后试运行一下。
可以看到这是发给南向设备的报文,把它保存起来,新建文本文档将这个报文保存起来。
最终通过我们编写的SSP包专用,它生成的报文也要跟这个一模一样才行。否则的话就是哪个地方编写出错。
创建并加载工程
网元层的模型已经准备好了,就是刚刚那个样子,有差别不怕,因为不同的设备它们的差别可能会更大。第二步就是创建并加载工程。
回到AOC界面,将配置先重置掉,进入包仓库和包管理。
1、 单击网络管理APP,在主菜单中选择业务>业务视图>开放课编程。然后单击工程管理并选择软件包管理。
2、 单击界面右侧的添加,并在弹出的添加对话框中设备待建软件包的相关属性。
3、 单击确定后,在弹出的提示添加成功的对话框中再次单击确定,即可以软件包列表中看到新添加的软件包。
4、 单击这条软件包记录操作栏中的下载按钮并解压该软件包,在本地加载。
首先进来的时候,只有上面两个默认的预制的包,进入包管理界面,看到的都是一样的状态。我们增加一个包,然后选择包仓库,选择一个名称,比如起一个subinterface 的一个包。
版本号为1.0.0,提供商是huawei,描述先写null,包类型我们选择SSP包。应试类型选择python + template,服务名称我们也写成subinterface。因为服务名称一旦选好了代码后里面它会自动生成相应的代码,输好后点击确定。
我们把这个包下载到我们本地,进行导出,将包解压,然后可以看到文件夹里面有python、resources,template、test、young的目录以及pkj.jason,这个pkg.jason 的话是一个jason文件,它里面承载的是包的相关信息,可以它加载到我们的CloudIDE上。
回到CloudIDE界面,我们将这个目录拖进来,可以看到这里面已经生成了,就是刚刚在那个包管理界面定义的一些相关信息。比如这个描述信息以及版本号相关内容。当我们需要修改pythons 代码的这个层级结构的时候,才需要修改这个文件。
这个python 代码主要承载的是这个mapping 这个逻辑。当前的话它的逻辑是直接将业务层的YANG模型直接作为我们模板的输入去映射的逻辑。
resource 目录下存放了一些配置文件。有一个日志级别的配置文件,然后这个文件目录是放的是ne YANG,这里面初始化了一些代码,并采用了一个python 模板引擎,一个精湛的python模板引擎,里面的语法比较简单,就是像这种两个花括号,它表示引用一个变量。我们在渲染的时候传入的那个input,然后使用两个括号,它就能够引用。但是这个地方因为是生成的代码,会因为特性最终生成一个ifm相关的内容。
test 目录是用来做本地测试用的,这里面分为一个class test,还有一个main函数,这个xml这个变量是作为test 的一个输入。到时候编写好YANG文件之后,我们通过service YANG生成输入,写入然后再执行test。
开发网络层到网元层的映射逻辑
yang目录就是service young。可以看到这个里面有subinterface 是我们定义好的名字。这里面有一个list user 从这个地方开始,后面的内容需要进行修改。回到网元层的模型数据生成,把这个数据写到模板的servicepoint j2。
开发网络业务YANG模型
这幅图是一个开发网络业务YANG模型,是一个子接口的业务YANG模型。
Line1:定义一个subinterface模块。
Line2:指定该模块的命名空间为“http://example.com/subinterface”
Line3:指定该模块的前缀。
Line4-6:导入huawei-ac-applincations模块。
Line7:该模块的描述。
Line8-10:定义该模块的版本。
Line12-28定义了一个名字为subinterface类型为list的YANG节点,并且添加到applications节点下。
Line14:使用了扩展声明app:application-definition"subinterface"。
Line15:定义了subinterface list的key节点为“device ifName”复合key。
Line16~19:定义leaf节点device表示设备。
Line20~22:定义leaf节点ifName表示子接口名。
Line24~26:定义leaf节点description表示接口描述。
比如说子接口的service 包要承载的数据就三个,第一个是设备device,第二个接口名ifname,第三个接口描述是这三个是我们业务包需要承载的关键信息。假如说我们的业务比较复杂的时候,或者说涉及到多个设备的话,这个层级结构可能大不一样。
调试就是批量工具,我们可以校验一下YANG,YANG里面包含了AOC 的根路径。这个根路径的YANG模型,我们并没有提供给大家。将来的话有可能会在资源下载的页面上可以进行下载。把它拷贝到tmp目录下,并把根路径剔除,验证我们自己编写的逻辑。YANG模型就是纯粹的是我们编写逻辑。
pyang命令,因为它的参数比较多,我们可以把help 给打出来并找到相关校验参数,它有两个校验参数,但是这里面我们选择print error baseline,这个会打印相关错误信息。
如果小伙伴们不太熟悉的话,中间会遇到错误使用这个命令,它就会把那个错误打出来,并告诉你具体是哪一行。随后我们使用这个工具,把这个样模型生成xml格式。
将空的NETCONF填充打桩的字段作为test_subinterface_service.py的输入运行测试脚本。
pyang -f sample-xml-skeleton --sample-xml-skeleton-annotations subinterface.yang
命令可以把我们编写的业务YANG,把它转化成xml格式作为我们测试的输入。查看输出是否符合网元YANG模型配置,如果不符合则修改jinja,yang等重复上述步骤直至符合。
随后我们回到那个模板,这个设备名(device name) 对应我们刚刚模型里面指定的device 设备名来访问这个设备(device),然后用两个花括号表示引用这个device。这里面用了一 个filter 过滤器,这是AOC API提供的一个方法,根据这个设备名找到它相关的neid。
开发网络层到网元层的映射逻辑
写入一个ifname,三个表示就是直接引用service YANG里面的三个字段。
python interest 逻辑里面没有对这些字段进行处理,所以我们可以直接把输入作为模板的映射输入。下图这一行代码直接把它作为模板的映射输入来执行的。所以说到到现在为止,就是我们的测试的输入以及映射逻辑。当编写完成后,我们进行下一步执行。
使用python test_subinterface_service.py 执行一下,我们可以看到这边已经执行出结果了。
四、演示-使用AOC下发业务
1. 打包、上传AOC、激活。
随后我们把这个包下载到本地,下载是tar的格式。因为我们AOC mini只支持zip 包形式,所以我们先解压后以zip格式重新压缩一下。
最后我们这个SSB包就已经执行并制作结束了。我们回到AOC mini界面,并这个包上传。
点击上传,上传成功,然后点击激活并部署。
等待它的状态变成激活状态。这时候我们这个AOC service 包已经加载到AOC mini环境上了。我们进入业务管理界面,可以看到我们编写的service YANG,它已经生成了web UI这个subject interface,也就是刚刚编写的service YANG生成的。
2. 业务管理配置并提交。
可以看到里面有三个节点,分别是device,ifname和ifdescr,然后我们点增加,可以看到名字前面有个小钥匙,这个代表key 的意思,因为我们在业务YANG里面指定了device 和ifName作为符合key。
WEB UI与YANG的生成关系是一个比较复杂的业务逻辑。如果是复杂的业务模型是可以看到它的层级可以嵌套很深。
真实的物理环境中,子接口是不能随意创建的,但是当前的环境是专门为我们开发者准备的模拟环境,以及AOC mini 环境,都是可以自由创建的。比如这个地方可以创建一个named。然后点击创建,因为我们的整个AOC命令里面的事物还没有提交,这些数据当前只存在于我们AOC的CDB中。需要最终需要提交才可以生效并持久化,在我们的CDB当中才可以下发到模拟设备上去。
3.登录设备确认确认配置。
假如说是面向北向的一些服务,或者说还有另外一个微服务。我们是可以通过AOC提供的YANG模型生成的北向接口,直接调用AOC的北向接口来进行发配置,就达到我们在WEB UI编辑的同样的效果。
点击试运行,查看一下最终生成的报文和我们在设备配置里面生成的报文是不是一样的。与之前生成的报文进行一下对比,并点击一下提交配置,到这一步为止,我们的配置就已经下发到设备上去了。
AOC关键能力呈现:
模型驱动
业务模型和设备模型都是基于YANG模型开发的。
业务模型和设备模型会自动生成北向接口,北向接口包括CLI、RESTCONF、WEB UI。
设备模型可以自动生成南向协议报文,包括NETCONF协议报文。
支持模型驱动的数据库,YANG模型自动生成数据库表项。
动态加载软件包
通过编写和加载软件包,实现新设备的快速纳管和新业务的快速构建。
系统提供的软件包包括:
• SND包:网元驱动包(Specific NE Driver Pkg),为开放可编程系统提供与网元交互的数据模型。该数据模型通常包含一个.py文件和若干特性的数据模型(YANG),前者用于定义网元的相关信息,如设备类型、厂商、连接信息等,后者描述了网元相关特性的数据结构。系统通过加载网元驱动包,可以和设备建立连接,进行数据查询和配置下发,实现设备纳管。支持的SND包类型包括:NETCONF SND、CLI SND、NETCONF&CLI双协议SND、RESTCONF SND和Customized SND(提供YANG到其它协议的通用驱动)。
• SSP包:业务包(Specific Service Plugin Pkg),定义了完成一套网络级业务配置对应的数据模型。该数据模型通常包含一个Jinja2模板文件、一个Python映射脚本和业务YANG模型。其中:
• Jinja2模板描述了业务的数据结构,并使用Jinja2语法完成了诸如插值、条件判断、循环等操作。
Python映射脚本描述了如何将用户提交的数据填充到模板,并映射到网元数据结构中。
业务YANG模型描述了业务的相关参数,按照业务输入,构建业务YANG模型。
系统通过加载业务包,可以进行业务配置下发,实现新业务的快速构建。
事务机制
系统提供了事务机制,配置变化支持在一个原子事务里提交,保证开放可编程系统中的数据和转发器的数据一致性。同一个事务里的数据会并发下发到多台设备,要么全部成功,要么全部回退,没有部分数据成功。
数据一致性
开放可编程系统保存了下发到设备数据的副本,能够采集设备数据,发现设备数据和开放可编程系统上数据的差异并在界面呈现,可以以开放可编程系统为准或者以设备为准进行数据同步。
用户开放编程
• 支持RESTCONF等北向接口,支持基于Python脚本在开放可编程系统上开发新的能力。
• 支持模型驱动的编程接口。用户在编写SSP包(业务包)时,使用系统提供的EasyMap算法,只需要写创建流程,更新和删除都由算法比较计算得出,简化用户编程,降低开发难度。
• 支持YANG模型自动生成南向报文,提升驱动开发效率。
支持配置预览
对于配置到开放可编程系统上的数据,在下发到设备前,用户可以进行配置预览,查看将要下发到设备上的报文以及新旧配置数据的差异信息。
支持配置校验
用户配置到开放可编程系统上的数据可以基于YANG模型以及YANG模型提供的检查语法,进行相关的配置校验检查。
应用场景
1. 多厂商设备快速适配
运营商和企业网络普遍存在多厂商设备共存的场景(如:多厂商5G加站自动上线、多厂商CPE配置等),缺乏统一管控。新设备集成慢,自动化程度低,开通周期长,成为端到端业务交付的瓶颈。开放可编程系统通过YANG接口自动识别读取设备YANG模型文件,生成网元驱动包并加载到系统中,1天即可完成一款新设备适配纳管,适配效率提升90%。
2. 新业务快速上线
新业务上线依赖OSS系统和厂商控制器版本更新,面临API接口集成不足、定制费用高等问题困扰,导致上线周期长,难以满足业务场景灵活变化的需要。开放可编程系统支持自定义业务YANG模型和业务逻辑,自动生成北向API接口实现与OSS系统快速集成,完成对设备和网络业务的增删改查等操作。开发时间由6~9个月版本发布缩短至1个月敏捷按需发布,业务上线周期缩短80%。
3. 网络变更可靠
存量网络运维存在大量业务迁移变更的诉求,基本依赖人工操作或命令行脚本,出错率高。海量脚本维护困难,网络变更风险高,正确率难以保证。开放可编程系统提供Dryrun、回滚、事务、并发等安全可靠机制保障,网络变更正确率提升到99.9%。
4. 管控析全栈可编程
面对5G网络切片与智能运维的场景,基于用户自定义网络业务模型,除了实现业务发放可编程外,开放可编程系统还提供控制算路与智能分析可编程能力,最大程度支持运营商业务面向未来网络演进。
AOC社区简介
AOC社区为大家提供了关于数通网络开放可编程一站式学习、体验、认证、交流的平台。以视频为载体构建了在线学习AOC的整个学习、认证体系。另外还提供了SDK、demo样例、以及API手册、开发指导等文档的下载;方便大家进行新项目的开发验证。
·社区首页网址: https://developer.huaweic loud.com/techfield/network/aoc.html
专家答疑
1、cli与netconf 的区别?
传统的设备厂商提供的都是cli,全称是command line interface。其实就是命令行,我们需要通过telnet 或者ssh协议登录到我们设备。然后通过程序员或者是运维人员在客户端,使用telnet 客户端或者ssh客户端,敲击命令来配置设备上的一些参数,这个就是cli。cli属于是人机操作,因为它的面向对象是人,但是这样效率会比较低。假如说配错了,需要回滚,又得重新敲一条回滚的命令。所以针对于这个困难点,随着网络数通技术的发展,我们衍生出的netconf 协议。
netconf协议,它面向的是一个机机接口。可以通过设备的北向接口,进行批量的配置,还有着事务保障能力,可以提供两阶段的保障能力,从而减少运维人员的工作量。假如说配错了,使用netconf协议的话,我就发一个discard 消息给netconf 协议就行了。这是cli跟netconf 的主要的差别,就是面向对象不太一样,效率也不一样。
2、 netconf 与yang的关系是什么呢?
netconf 是机机接口,机器接口的netconf 它是有标准的rfc协议决定的,rfc协议netconf分为四层。
最底下是安全传输层,目前常用的有ssh,安全传输层上面有消息层,比如说net conf协议当前有三种消息类型:hello 报文,有rpc和rpc-reply 报文,还有notification 报文。然后在消息层上面有操作层。关于这个操作层的话就比较复杂。因为它有好几个操作层,在这个操作层,比如说我们知道的查询报文,它有get、get-config、编辑报文有edit-config,还有一些删除delete-config、lock、unlock、 close-session、kill-session 等这些操作。
在这个操作层上面,还有一层叫做内容层。这个内容层是netconf协议的精髓所在。其开放体现在netconf协议本身没有对内容层的数据结构做任何的限定。而其规范则体现在其内容层需要使用Yang语言对其数据进行建模。因为假如说这个内容层没有一个模型协议来就是决定的话,那各个厂商实现的这个内容层可以说是千差万别。他想怎么实现就怎么实现,这肯定是不行的。所以说就有了一个叫YANG协议。来实现了我们netconf 的内容层。这样的话把netconf 当做成一种传输协议来看待。用户关注业务的话,他可以不关注这个netcongf协议。他只需要关注YANG协议就可以了。
3、YANG与AOC的关系是什么呢?
我们在之前SSP包制作的过程中,反复提到的就是SSP、SND。然后我们可以看到SSP包中有YANG,SND包中也有YANG。
这些YANG都代表的是模型。这个YANG 里面有各种数据结构,比如说container、list、grouping、choice、leaf等。这些里面的每一个字段都代表着一个数据含义。这也是建模语言的本质,目的就是为了建模定义出来的。AOC就是基于这整个核心YANG,SND里面的YANG模型可以直接生成北向接口以及web UI。
SSP是根据这个service YANG生成的北向接口以及外部UI,还有在AOC的内部整个数据存储,它也是基于YANG。另外我们的核心mapping 算法,也是基于YANG的比较算法。所以可以这样说AOC就是YANG,YANG就是AOC。YANG在AOC中间的作用是非常非常重要的关系。
总结:
当我们需要业务的快速上线时,但是传统的方式的话呢很难以去快速达到,但数通网络开放可编程平台的话能够提供一种可行的解决方案。
对于集成商来说,当需要把某个厂商的控制器或者设备集成到客户的OSS系统,会面临着非常多的接口对接工作。在数通网络平台,可以帮助集成商减少开发时间和成本。
对于设备商品来说,当把某设备推入到一个已存在的网络,需要和这个设计和这个网络已有运维系统对接。会涉及到去适配企业的一些标准接口的一些问题。数通网络提供一种快速的开发模式,可以使我们的设备尽快的和企业标准相对齐。
对于高校来说,高校经常会有一些维护网络诉求。或者一些课题的研究,技术创新等。AOC是一个技术创建的理想平台。数通网络开放可编程平台可以提供一个可操作实验平台,在应对一些项目的时候,会有更多的选择,有更多的机遇。
参考文档
数通可开放编程快速入门
https://devzone.huawei.com/cn/enterprise/aoc/quickStart.html
数通可开放编程文档中心
https://devzone.huawei.com/cn/enterprise/aoc/apiDoc.html
注:本文整理自华为云社区内容共创活动之数通网络开放可编程之Hello World
查看活动详情:https://bbs.huaweicloud.com/blogs/308924
- 点赞
- 收藏
- 关注作者
评论(0)