一种应用发布和配置的系统及方法与流程

文档序号:16608441发布日期:2019-01-14 21:21阅读:188来源:国知局
一种应用发布和配置的系统及方法与流程

本发明涉及服务器技术领域,尤其涉及一种应用发布和配置的系统及方法。



背景技术:

当前,大部分app软件开发,都是将开发、运维和测试设为各自分离的部门,开发部门的驱动力通常是“频繁交付新特性”,而运维部门则更关注it服务的可靠性和it成本投入的效率。传统的交付过程一般是,1.开发部门交付了新版本;2.测试在测试环境下测试版本,如果发现错误,则反馈给开发部门,直到最后测试合格,将新版本交付给运维部门;3.运维部门搭建相同的环境,然后部署新版本的应用。在这个过程中,环境的不一致、人工的构建和发布、沟通的不及时或不通畅、开发与运维部门之间目标不一致造成了鸿沟等,都会减慢应用发布和配置的速度。

传统的应用进行更新发布或者配置的时候,需要手动或者是脚本实现来控制应用的上下线,并且每种类型应用都需要调整脚本来兼容。但是这种传统的方式具有较多缺点。

因此,构建一个一体化的应用发布和配置的平台,能够把开发、部署和维护进行很完美的结合。促进软件开发人员和运维技术人员之间的合作和沟通,使构建、测试发布软件更加快捷、频繁和可靠,成为当前的一个研发重点。



技术实现要素:

为了至少解决现有的技术问题。

本发明创造性的提供了一种应用发布和配置的系统能够解决上述技术问题当中的至少一个或多个。

jenkins:是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,提供一个开放易用的软件平台,实现软件的持续集成。

nginx:是一个高性能的http和反向代理服务器.

consul是基础架构中的一款服务发现和配置的工具。其有多个组件,提供了几个关键功能:

1、服务发现:consulclient可以提供服务,例如api或mysql,也可以使用consulclient来发现指定服务的提供者。使用dns或http,应用程序可以轻松找到他们所依赖的服务。

2、健康检查:consulclient可以提供任何数量的健康检查,或者与给定的服务(“web服务器是否返回200ok”),或与本地节点(“内存利用率是否低于90%”)相关联。可以使用此信息来监控集群运行状况,服务发现组件使用此信息将流量从有问题的主机中移除出去。

3、kvstore:应用程序可以使用consul的分层键/值存储,包括动态配置,功能标记,协调,leader选举等等。简单的httpapi使其易于使用。

4、多数据中心:consul支持多个数据中心。这意味着consul的用户不必担心构建额外的抽象层以扩展到多个区域。

一种应用发布和配置的系统,包括devops平台、运维单元、开发单元、仓库单元、jenkins持续集成平台和consul配置单元:

仓库单元包括代码仓库、部署脚本模板仓库和应用配置模板仓库;

devops平台向部署脚本模板仓库提交部署脚本模板并存储;

开发单元向代码仓库提交代码并存储;

开发单元向应用配置文件仓库提交应用配置模板并存储;

运维平台向consul配置单元调用api,控制应用的自动上线和下线;

运维单元从部署脚本模板仓库当中拉取配部署脚本模板;

运维平台向jenkins持续集成平台推送部署脚本模板;

jenkins持续集成平台从代码仓库当中拉取代码文件;

jenkins持续集成平台依据部署脚本模板和代码文件控制应用程序进行重启发布;

应用程序在重启前通过配置中心从应用配置模板仓库当中拉取应用配置模板进行配置。

其有益效果是,通过设置devops平台,开发单元可以直接依附这个devops平台,将相应的代码、部署脚本模板和应用配置模板提交到相应的仓库单元当中并存储起来,运维平台也可以直接依附这个devops平台从仓库单元拉取数据,并利用jenkins持续集成平台进行应用的发布。本发明简化了应用程序发布和配置的流程,允许自动地、安全地、便捷地更新应用程序。通过consul配置单元实现了应用的自动上下线控制,不需要手动或者是脚本实现来控制应用的上下线,同时也不需要去考虑每种类型应用都需要调整脚本的兼容性问题。

在一些实施方式中,还包括jenkins内网持续集成平台,devops平台和开发单元均与jenkins内网持续集成平台通讯连接,开发单元向jenkins内网持续集成平台提出发布测试。其有益效果是,通过设置jenkins内网持续集成平台,从而可以对待发布的应用进行发布测试,如果测试有问题则可以直接进行修改,直到测试无误为止,测试和修改更加的方便。

在一些实施方式中,jenkins内网持续集成平台将测试后的发布文件设置成镜像文件存储至镜像仓库,镜像仓库与jenkins持续集成平台通信连接。其有益效果是,测试完成的发布文件可以直接设置成镜像文件,供jenkins持续集成平台拉取,从而方便应用的快速上线

在一些实施方式中,还包括nginx服务器,consul配置单元控制应用在nginx服务器上的自动上线和下线。其有益效果是,通过consul+nginx实现了应用的自动上下线控制。

本发明还提供了一种应用发布和配置的方法,其中,包括如下步骤;

devops平台向部署脚本模板仓库提交部署脚本模板并存储;

开发单元向代码仓库提交代码并存储;

开发单元向应用配置文件仓库提交应用配置模板并存储;

运维平台向consul配置单元调用api,控制应用的自动上线和下线;

运维单元从部署脚本模板仓库当中拉取配部署脚本模板;

运维平台向jenkins持续集成平台推送部署脚本模板;

jenkins持续集成平台从代码仓库当中拉取代码文件;

jenkins持续集成平台依据部署脚本模板和代码文件控制应用程序进行重启发布;

应用程序在重启前通过配置中心从应用配置模板仓库当中拉取应用配置模板进行配置。

其有益效果是,通过devops平台,开发单元可以直接依附这个devops平台,将相应的代码、部署脚本模板和应用配置模板提交到相应的仓库单元当中并存储起来,运维平台也可以直接依附这个devops平台从仓库单元拉取数据,并利用jenkins持续集成平台进行应用的发布。本发明简化了应用程序发布和配置的流程,允许自动地、安全地、便捷地更新应用程序。通过consul配置单元实现了应用的自动上下线控制,不需要手动或者是脚本实现来控制应用的上下线,同时也不需要去考虑每种类型应用都需要调整脚本的兼容性问题。

在一些实施方式中,在发应用发布之前,还包括测试程序:

devops平台和开发单元均与jenkins内网持续集成平台通讯连接,开发单元向jenkins内网持续集成平台提出发布测试:

jenkins内网持续集成平台将测试后的发布文件设置成镜像文件存储至镜像仓库;

镜像仓库与jenkins持续集成平台通信连接。

其有益效果是,通过jenkins内网持续集成平台对待发布的应用进行发布测试,如果测试有问题则可以直接进行修改,直到测试无误为止,测试和修改更加的方便。测试完成的发布文件可以直接设置成镜像文件,供jenkins持续集成平台拉取,从而方便应用的快速上线。

在一些实施方式中,consul配置单元控制待发布和配置的应用在nginx服务器上的自动上线和下线。其有益效果是,通过consul+nginx实现了应用的自动上下线控制。

同时,本发明还提供了一种非易失性计算机存储介质,存储有计算机可执行程序,计算机可执行程序用于执行如上的应用发布和配置的方法,存储介质包括但不限于rom、ram、普通硬盘、u盘或者软盘:

其有益效果是,只需要可以用于存储相应程序即可,通过存储介质将相应的可执行程序存储起来后,可以将方便的将相应的可执行程序安装到相应的服务器当中,从而对应用发布和配置实现控制。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的一种应用发布和配置的系统的原理图;

图2为本发明一实施例提供的一种应用发布和配置的方法的流程图;

图3为本发明一实施例提供的一种应用发布和配置的方法的测试程序的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的一种应用发布和配置的方法能够解决上述技术问题当中的至少一个或多个。

如图1所示为一种应用发布和配置的系统,包括devops平台1、运维单元2、开发单元3、仓库单元4、jenkins持续集成平台5和consul配置单元6:

仓库单元4包括代码仓库7、部署脚本模板仓库8和应用配置模板仓库9;

devops平台1向部署脚本模板仓库8提交部署脚本模板并存储;

开发单元3向代码仓库7提交代码并存储;

开发单元3向应用配置文件仓库提交应用配置模板并存储;

运维平台向consul配置单元6调用api,控制应用的自动上线和下线;

运维单元2从部署脚本模板仓库8当中拉取配部署脚本模板;

运维平台向jenkins持续集成平台5推送部署脚本模板;

jenkins持续集成平台5从代码仓库7当中拉取代码文件;

jenkins持续集成平台5依据部署脚本模板和代码文件控制应用程序进行重启发布;

应用程序在重启前通过配置中心13从应用配置模板仓库9当中拉取应用配置模板进行配置。

通过设置devops平台1,开发单元3可以直接依附这个devops平台1,将相应的代码、部署脚本模板和应用配置模板提交到相应的仓库单元4当中并存储起来,运维平台也可以直接依附这个devops平台1从仓库单元4拉取数据,并利用jenkins持续集成平台5进行应用的发布。本发明简化了应用程序发布和配置的流程,允许自动地、安全地、便捷地更新应用程序。通过consul配置单元实现了应用的自动上下线控制,不需要手动或者是脚本实现来控制应用的上下线,同时也不需要去考虑每种类型应用都需要调整脚本的兼容性问题。

同时,本发明还包括jenkins内网持续集成平台10,devops平台1和开发单元3均与jenkins内网持续集成平台10通讯连接,开发单元3向jenkins内网持续集成平台10提出发布测试。其有益效果是,通过设置jenkins内网持续集成平台10,从而可以对待发布的应用进行发布测试,如果测试有问题则可以直接进行修改,直到测试无误为止,测试和修改更加的方便。

jenkins内网持续集成平台10将测试后的发布文件设置成镜像文件存储至镜像仓库11,镜像仓库11与jenkins持续集成平台5通信连接。其有益效果是,测试完成的发布文件可以直接设置成镜像文件,供jenkins持续集成平台5拉取,从而方便应用的快速上线

本发明,还包括nginx服务器12,consul配置单元6控制应用在nginx服务器12上的自动上线和下线。通过consul+nginx实现了应用的自动上下线控制。。

如图2所示,本发明还提供了一种应用发布和配置的方法,包括如下步骤;

步骤s11:devops平台向部署脚本模板仓库提交部署脚本模板并存储;

步骤s12:开发单元向代码仓库提交代码并存储;

步骤s13:开发单元向应用配置文件仓库提交应用配置模板并存储;

步骤s14:运维平台向consul配置单元调用api,控制应用的自动上线和下线;

步骤s15:运维单元从部署脚本模板仓库当中拉取配部署脚本模板;

步骤s16:运维平台向jenkins持续集成平台推送部署脚本模板;

步骤s17:jenkins持续集成平台从代码仓库当中拉取代码文件;

步骤s18:jenkins持续集成平台依据部署脚本模板和代码文件控制应用程序进行重启发布;

步骤s19:应用程序在重启前通过配置中心从应用配置模板仓库当中拉取应用配置模板进行配置。

通过devops平台,开发单元可以直接依附这个devops平台,将相应的代码、部署脚本模板和应用配置模板提交到相应的仓库单元当中并存储起来,运维平台也可以直接依附这个devops平台从仓库单元拉取数据,并利用jenkins持续集成平台进行应用的发布。本发明简化了应用程序发布和配置的流程,允许自动地、安全地、便捷地更新应用程序。通过consul配置单元实现了应用的自动上下线控制,不需要手动或者是脚本实现来控制应用的上下线,同时也不需要去考虑每种类型应用都需要调整脚本的兼容性问题。

如图3所示,在发应用发布之前,还包括测试程序:包括如下步骤:

步骤s21:devops平台和开发单元均与jenkins内网持续集成平台通讯连接,开发单元向jenkins内网持续集成平台提出发布测试:

步骤s22:jenkins内网持续集成平台将测试后的发布文件设置成镜像文件存储至镜像仓库;

其中,镜像仓库与jenkins持续集成平台通信连接。

本发明通过jenkins内网持续集成平台对待发布的应用进行发布测试,如果测试有问题则可以直接进行修改,直到测试无误为止,测试和修改更加的方便。测试完成的发布文件可以直接设置成镜像文件,供jenkins持续集成平台拉取,从而方便应用的快速上线。

同时,通过consul配置单元控制待发布和配置的应用在nginx服务器上的自动上线和下线。其有益效果是,通过consul+nginx实现了应用的自动上下线控制。

同时,本发明还提供了一种非易失性计算机存储介质,存储有计算机可执行程序,计算机可执行程序用于执行如上的应用发布和配置的方法,存储介质包括但不限于rom、ram、普通硬盘、u盘或者软盘:

其有益效果是,只需要可以用于存储相应程序即可,通过存储介质将相应的可执行程序存储起来后,可以将方便的将相应的可执行程序安装到相应的服务器当中,从而对应用发布和配置实现控制。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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