Linux基金会下的OPNFV项目是通过集成,部署和测试促进各种开源生态系统网络功能虚拟化(NFV)组件的开发和演进的开源项目,该项目目前宣布了其跨社区持续集成(XCI)方案,意图通过增加OPNFV社区和上游社区之间的协作来实现创新。
通过XCI,OPNFV能够定期整合来自选定的上游社区项目的每个支持的分支的最新信息,缩短实施新功能的时间和解决问题的时间。OPNFV项目通过构建复杂的持续集成(CI)来支持DevOps开发模式,目前已经整合了OpenStack、OpenDaylight、FD.io等上游项目的主要版本,这些项目的主要版本更新周期可能会很长,延迟了OPNFV成员对上游项目的应用,同时也延迟了上游社区从OPNFV测试中获得有价值的反馈的速度。XCI计划通过定期集成和测试多个上游项目的最新软件版本来解决这个问题。
Orange NFV架构师Morgan Richomme表示:“开源社区需要XCI来解决OPNFV中复杂的测试挑战,从压力、稳健性、弹性、VNF和端到端测试入手,XCI已经成为OPNFV DNA的一部分,使OPNFV的成员能够尽快地从上游进行测试,以提供真实的电信级的反馈和编排。”
面临的挑战
最新的针对通信服务提供商(CSP)的调查显示,80%的受访者认为DevOps软件开发模式对NFV的成功至关重要。DevOps最主要的实现方式是评估DevOps工具链、自动化和测试基础设施。
从OPNFV的角度看,DevOps意味着通过应用CI/CD原则、自动化和实践来开发、测试、部署和监控软件系统,开发和运维团队协同工作,从而实现文化和思维方式的转变。持续集成和持续部署(CI/CD)作为DevOps的重要组成部分,是OPNFV项目成立以来一直在努力的方向。OPNFV的CI管道使得社区从DevOps方式中受益,用户可以快速访问新功能,开发人员能够快速收到反馈,整个软件堆栈以渐进式的方式得到改进。
目前OPNFV CI渠道可以概括如下:
下图总结了这三个流程:
现有的途径虽然相对先进,但总是可以改进的,现有方法的主要挑战是上游项目的代码不是最新的,下图显示上游项目融入OPNFV的方式。
下面将介绍目前的方式存在的缺陷:
很明显,这么长的整合周期不利于社区的快速整合、验证并实现验证目标,XCI的目标是改变这种状况。
XCI方案简介
XCI计划定期集成来自所有支持的上游社区的最新版本,而不是等待主要的发布版本。该举措将从OpenStack、OpenDaylight控制器和FD.io虚拟交换机的定期集成开始。下图显示了XCI的工作机制:
XCI涉及到两个主要的集成和测试任务:
这有效解决了上述提到的关键问题,能够快速利用上游项目的变化,可以迅速提供反馈,功能开发或错误修复将会缩短到几天时间内完成。
XCI利用RelEng和Pharos项目中的大部分当前工具。此外,XCI使用两种OpenStack基础设施工具:Bifrost和OpenStack-Ansible(OSA),用于配置节点,并安装由最新支持的OpenStack,ODL和FD.io分支构建的不同方案:
借助上述工具,XCI将支持三种基本的操作系统:Ubuntu 16.04,CentOS 7和OpenSUSE 42.2。XCI计划还有其他复杂性:因为Bifrost和OSA实际上是OpenStack项目,所以它们也必须定期固定和测试,因为旧版本可能无法部署最新的代码。因此,用户可能需要安装CI软件和CI工具。
XCI开发者沙箱
除了上述自动化流程之外,开发人员还能够根据最新版本的上游项目进行本地开发和测试,XCI沙箱环境使得开发人员使用最新的上游代码或他们本地开发的代码来实施方案。而且XCI沙箱环境还能够让开发人员在单个节点,甚至在笔记本电脑上实现这些功能,而不需要完整的Pharos POD。其功能包括:
目前来看,沙箱环境有四种选择(xci-aio,xci-mini,xci-noha,xci-ha),随着硬件需求的增加,这些不同的沙箱环境消耗1-6个虚拟机。例如,xci-ha的风格是最耗资源的,每个虚拟机需要8个vCPU,16GB RAM和80GB磁盘,安装需要2个小时10分钟。
总之,XCI计划将CI管道的连续性延伸到上游项目。 而最初的上游项目XCI将整合在一起OpenStack,ODL和FD.io,未来还将努力扩展到其他上游项目,如ONAP。