许昌许继软件技术有限公司的研究人员王少鹏、杨迎春、丁博、贾亚楠、梁鹏威,在年第9期《电气技术》杂志上撰文,阐述了一种云计算服务技术在电力监控系统持续集成方案中的应用。结合云计算技术的强大功能性及冗余容错能力,为配电网应用系统的不同规模交付场景提供更加高效、安全的开发及运维支撑。
目前配电网信息系统在技术组件以及技术实现框架方面已经日趋成熟。随着产品开发及实施任务量的增加和定制业务的需求增多,既有配电系统在每次工程应用前都需要经过一系列复杂的持续性交付过程,依赖密集且复杂的持续性编译、大量的系统测试、繁杂的部署任务,导致工程应用周期增长,测试任务量巨大,耗时耗材耗力。
随着企业业务容量的拓展,服务器数量急剧增加的压力,出现了现有的Jenkins(持续集成工具,基于Java语言开发)整合Ansible(自动化运维工具,基于Python语言开发)的方式进行系统的整体集成。但由于配网监控平台的不断发展,供应企业要同时面对多个不同规模的交付场景,Jenkins整合Ansible的方式由于硬件资源的固定限制,已经较难适应不同规模的交付业务。
基于OpenStack(云计算软件)的持续集成设计方式,在Jenkins整合Ansible提供集成服务的基础上,不但可以实现开发的可视化、智能化的全流程管控,而且可以依托于云平台的资源动态分配的特点,适应任何规模交付场景的一比一自动化测试交付任务,保障配电网监控平台安全有效的持续性交付。
1理论基础研究
云平台技术常规应用有两个方向:①以数据存储为主要服务功能的存储型云平台;②以数据处理为主要服务的计算型平台。
本项目依赖于OpenStack的部分开源组件,提供了基于系统层面以及应用层面的资源智能化分配以及释放,相比于原有的固定硬件设备资源,完全能够适应各种不同大小规模的配网监控平台的持续化集成交付任务。同时结合使用OpenStack的分布式云存储(Swift)技术,保证测试流程的安全及稳定,增加容错能力,保证在某一硬件设备故障的情况下,仍能完成持续集成交付任务。
云平台技术的中间层、基础设施层提供了如下技术功能,可以任意分配及释放现有的硬件设备资源:
1)虚拟化(Nova)。有了虚拟化技术,可以在一个云平台集群中生成多个全面隔离的虚拟机资源或者服务资源,资源可以随时分配和释放。
2)分布式云存储技术(Swift)。能够解决集群中单个实体硬件节点故障影响整体服务的问题,保证部署、测试、交付动作连贯不受干扰。
3)负载均衡。能够更好地支配整体云平台的硬件资源(硬盘、内存、网络),实现有限资源的高度利用。
交互后台服务是整套方案的核心,采用通用的Restful基于超文本传送协议(hypertexttransferprotocol,HTTP)的设计风格应用程序接口(appli-cationprograminterface,API),能够完成OpenStack和Ansible、Jenkins的整合,打通一个完整而又灵活的持续性交付系统,用来满足节点数从1到N的不同规模监控平台持续集成及交付工作。
自定义虚拟化资源管理核心接口如下:
interfacebooleancreate_Os(
StringtargetMechine,StringosName,StringosConfig
);
interfacebooleandrop_Os(
StringtargetMechine,StringosName
);
interfacebooleancreate_application(
StringtargetMechine,StringappName
);
interfacebooleandrop_application(
StringtargetMechine,StringappName
);
自定义持续交付job管理接口如下:
interfacebooleanexecuteJob(
StringjobName
);
interfacebooleancreateJob(
StringjobName,StringjobTemplateXml
);
interfacebooleandropJob(
StringjobName
);
使用回调函数接口的方式,交互后台服务监听Jenkins的版本变化信号,触发后续自动部署及测试工作:
interfacevoidcallback(){
…
return(jenkinssvnstate);
}
2采用云计算技术的配网监控系统持续集成系统架构及模块
持续化集成原有的方案只需要使用Jenkins界面配置即可做到固定模式、固定数量节点的智能配网监控平台的持续化集成及测试工作。但整合OpenStack技术之后,不仅需要一个核心的后台服务系统,也要有一套能够灵活配置的交互界面。
采用云平台技术中的Nova组件作为配电网的运行载体、Swift组件保障整套集成测试环境的冗余容错能力,Jenkins及Ansible搭建的持续集成Server端控制集成方向及内容、SVN(subversion,开放源代码的版本控制系统)作为版本库,实现灵活的配网持续集成整体结构,如图1所示。
1)交付后台服务。交付后台服务是一整套持续集成交付体系,除了包含Ansible及Jenkins整合而成的持续交付服务之外,还包括为用户操作界面提供服务逻辑以及控制OpenStack云平台的Web后台服务,其中Ansible的剧本代码也是由SVN统一进行代码版本管理的,方便持续集成系统本身的不断更新迭代。
除OpenClient(本项目自主开发模块,作为客户端连接Jenkins与OpenStack)之外,其他所有的对外控制接口为SSH(SecureShell,应用层基础安全协议)。交付后台内部,WebServer通过RestfulAPI接口与Jenkins服务进行交互。
2)可视化客户端以及