基于开源组件的电力行业云平台工具链及云平台运维方法与流程

文档序号:19878332发布日期:2020-02-08 06:41阅读:180来源:国知局
基于开源组件的电力行业云平台工具链及云平台运维方法与流程

本发明属于云平台实施运维工具技术领域,具体涉及一种对云平台的自动化部署、扩容、缩容以及流程化定义、持续集成持续部署的基于开源组件的电力行业云平台工具链及其应用。



背景技术:

目前,云计算在广大行业内正在被广泛应用,其底层无非虚拟机和容器两大类,对应流行的云平台为openstack和kubernetes。对于生产环境云平台环境而言,须要适应频繁的部署、扩容、升级、回滚,以及故障处理和稳定性优化,因此带有上述功能或脚本的openstack、kubernetes平台才能够成为承载行业内业务系统的合格云计算平台。

图1为mirantis公司发布的mcp1.0平台架构,其核心是中间云系统,包含了openstack和kubernetes两大平台,底层分布式存储统一采用ceph,openstack网络模块采用opencontrail、kubernetes网络模块采用calico。图中,drivetrain实现了云系统的快速部署和变更(扩容、缩容等),也集成了ci/cd持续集成发布流程,stacklight实现了平台的日志、监控和告警。

在mcp1.0架构中,实现了平台的快速部署、扩容等功能,但无法直接应用于电力行业。电力行业系统绝大多数部署于内网,包括云计算平台,因此,须要解决平台离线部署和升级的问题,另外,电力行业业务系统具有时间跨度大的特点,某些系统改造难度大,只能平台反向适应业务系统,因此,须要对平台及其组件不断进行升级、回滚和修正操作,与业务系统的升级类似,故也要具备ci/cd快速发布功能。



技术实现要素:

为实现云平台快速部署变更和解决平台及其组件完全内网部署及组件自身的快速集成发布功能,本发明提出了一种基于开源组件的电力行业云平台工具链及其应用。

本发明所采用的技术方案是:一种基于开源组件的电力行业云平台工具链,所述工具链由持续集成部署工具、本地代码仓库和本地源仓库构成;

所述本地代码仓库,用于存储实现云平台功能所需的脚本;

所述本地源仓库,用于存放实现云平台功能所需的镜像文件;

所述持续集成部署工具,用于根据云平台实际需求定义和存放需实现的云平台功能的配置任务,根据配置任务,分别从本地代码仓库中拉取相应的脚本和从本地源仓库中拉取相应的镜像文件,对该镜像文件执行该脚本实现配置任务。

进一步的,所述配置任务包括用于实现云平台部署的配置任务、云平台扩容的配置任务、云平台版本升级的配置任务、云平台版本回滚的配置任务和云平台节点故障修复的配置任务。

进一步的,所述本地代码仓库采用gitlab工具,所述集成部署工具采用jenkins工具,所述本地源仓库采用nexus工具。

本发明还公开了一种云平台运维方法,包括以下步骤:

步骤1:持续集成部署工具从本地代码仓库中拉取云平台运维所需的脚本,并对拉取的脚本进行脚本配置修改,得到可执行脚本,该配置修改包括修改与云平台运维相关的云平台节点ip地址群;

步骤2:持续集成部署工具从本地源仓库中拉取云平台运维所需的镜像文件;

步骤3:持续集成部署工具对拉取到的镜像文件执行步骤3中的可执行脚本,执行完成后,得到实现云平台运维的相关云平台节点。

进一步的,在执行步骤1之前还包括:

在持续集成部署工具中定义、存放云平台运维任务流程;

在本地代码仓库中存储云平台运维所需的脚本,在本地源仓库中存放云平台运维所需的镜像文件;

进一步的,本发明的云平台运维包括云平台自动化部署,该云平台自动化部署具体包括以下步骤:

在本地代码仓库中存储云平台自动化部署所需的脚本,在本地源仓库中存放云平台自动化部署所需的镜像文件;

在持续集成部署工具中定义、存放云平台自动化部署配置任务流程;

持续集成部署工具从本地代码仓库中拉取实现云平台部署所需的脚本;

持续集成部署工具对拉取的脚本进行配置修改,该配置修改包括待部署的云平台节点ip地址群,得到可执行脚本;

持续集成部署工具从本地源仓库中拉取云平台部署所需的镜像文件;

持续集成部署工具对拉取到的镜像文件执行可执行脚本,执行完成后,得到相关云平台节点。

进一步的,本发明的云平台运维包括云平台版本变更,所述云平台版本变更包括版本升级和版本回滚,包括以下步骤:

在持续集成部署工具中定义、存放版本变更任务;

在本地代码仓库中存储云平台所需变更版本的脚本,在本地源仓库中存放云平台所需变更版本的镜像文件;

持续集成部署工具从本地代码仓库中拉取云平台所需变更版本的脚本,持续集成部署工具从本地源仓库中拉取云平台所需变更版本的镜像文件;

持续集成部署工具对脚本进行脚本配置修改,得到可执行脚本,该脚本配置修改包括修改待变更的节点ip地址群;

持续集成部署工具对拉取到的镜像文件执行可执行脚本,执行完成后,云平台相关节点的版本均变为变更后的版本。

进一步的,本发明的云平台运维包括云平台检修,所述云平台检修为在云平台运行过程中,云平台节点的某一组件服务故障时,对相关节点进行修复,具体包括以下步骤:

在持续集成部署工具中定义、存储组件服务故障修复任务流程;

在本地代码仓库中存储故障修复任务所需的脚本;

持续集成部署工具从本地代码仓库中拉取故障修复任务所需的脚本,并对该脚本中的节点ip地址修改为待故障修复节点的ip地址,得到故障修复后的脚本;

持续集成部署工具拉取并执行故障修复后的脚本,执行完成后,节点修复成功。

有益效果:采用本发明工具链的平台架构下实现的电力云平台,由于将部署扩容等脚本均置于工具链中,能够灵活快速地实现平台部署扩容、升级回滚,以适应不同要求的应用系统,故应用层面能够将应用系统部署周期由数天缩短至分钟级,平台自身层面能够实现分钟级的快速检修,对外服务对检修操作无感。

附图说明:

图1为mirantis公司发布的mcp1.0平台架构;

图2为本发明的架构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合具体实施方式,进一步阐明本发明。

实施例1:

本实施例的底层云平台采用openstack和kubernetes,工具链部分由本地代码仓库、持续集成部署工具和本地源仓库三部分组成。

本地代码仓库主要存放应用系统的源代码,在本实施例的架构中也可以存放用于实现平台功能的组件源码和脚本;持续集成部署工具主要由ci/cd组件及各类脚本构成,负责监视代码仓库中提交的代码变更,并发起集成测试和发布迭代;本地源仓库主要存放各类部署包和依赖库,用于平台及业务系统离线部署。

与mcp1.0平台不同的是,本实施例中用于平台部署和变更的组件源码、脚本等也与业务系统代码一视同仁,可以由开发人员提交变更并触发集成测试和发布,方便随时升级/回滚平台功能以适配不同版本的平台组件,让业务系统最小化改动而稳定运行在云平台上。

从整体架构上看,本实施例描述的与mcp1.0或是业内主流的平台已经发生了本质上的变化,从平台为主体变成了以工具链为主体。业务系统也好,云平台也好,都是由工具链三个部分联动演化产生,日后如果云平台技术路线发生变化,整体的架构变化不会很大。

如图2所示,主体为本地代码仓库、持续集成部署、本地源仓库构成的工具链;平台功能依赖于开源社区提供的各类安装包、脚本、源代码以及面向电力业务应用特征的定制化功能脚本进行实现,包含了平台的自动化部署迭代、运维和监控三方面的功能;具体的:平台的自动化部署迭代功能包括虚拟机管理平台部署迭代、容器管理平台部署迭代、云环境服务验证、容器自动化发布和节点基础环境配置;平台运维包括平台故障恢复、基础环境部署脚本维护、平台稳定性优化和平台部署脚本维护;平台监控包括时序数据采集分析、日志数据采集分析和时序数据监控展现。这些功能中,虚拟机管理平台部署迭代、容器管理平台部署迭代、容器自动化发布是现有技术已经实现的;平台监控的核心技术是已有技术已经实现的,本发明是对其进行适应性调整与应用;其余功能是研发人员自主开发脚本存储于本地代码仓库中,通过持续集成部署工具ci/cd流程实现的。

云平台层是依赖平台的自动部署迭代功能实现的对业务应用提供云服务的平台实体,具体表现为虚拟机实例和容器pod。

具体实现时,本地代码仓库可以选用gitlab工具,持续集成部署可以选用jenkins工具,本地源仓库选用nexus工具,在jenkins工具中安装gitlab插件和nexus插件,即可监视代码仓库中的变更操作和拉取本地源仓库中的镜像。

实施例2:

本实施例以openstack平台自动部署为例,先在本地源仓库中存入openstack镜像,在持续集成部署工具中编写构建配置,可以选用kolla开源项目作为openstack平台自动化部署脚本,存入本地代码仓库后,触发持续集成部署工具拉取本地代码仓库中的openstack平台自动化部署脚本和拉取本地源仓库中对应的镜像,对该镜像执行openstack平台自动化部署脚本,即可按照事先的配置部署相关的openstack平台节点。当须要扩容云平台节点时,修改kolla项目配置文件,将触发持续集成部署工具重新构建并拉取镜像执行操作。

实施例3:

在本地源仓库nexus中存储了kubernetes1.11和kubernetes1.13两个版本的镜像,在本地代码仓库中存储了k8s-1.11和k8s-1.13两个yml脚本,在集成部署工具jenkins中存储了“升级到1.13”和“回滚到1.11”两个任务,现有云平台环境a中部署了kubernetes1.11版本,云平台环境b中部署了kubernetes1.13版本,由于业务原因,a、b两个环境中的业务应用均已迁走,现须要在a环境中部署应用1,b环境中部署应用2,根据应用要求,须要分别对a、b两个环境执行升级和回滚操作,此时,在集成部署工具jenkins中配置“升级到1.13”任务,将涉及的节点ip修改为a环境节点ip,然后执行,数分钟后a环境中所有节点kubernetes版本均为1.13,在集成部署工具jenkins中配置“回滚到1.11”任务,将涉及的节点ip修改b环境节点ip,然后执行,数分钟后b环境中所有节点kubernetes版本均为1.11。

实施例4:

在本地代码仓库中存储有“nova服务重启”的脚本,在集成部署工具jenkins中存储有“nova服务重启”任务,云平台环境a部署了openstack,在运行过程中,平台监控模块发出告警,指明控制节点1的nova服务故障,由于平台至少有3个控制节点,故控制节点2或3暂时接管控制节点1的nova服务请求,运维人员于是配置集成部署工具jenkins中“nova服务重启”任务,将控制节点2或3的ip地址修改为控制节点1的ip地址,然后执行,在几十秒后,控制节点1nova重启成功,服务恢复正常。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1