CN114356351A - 一种基于微服务的应用部署系统及方法 - Google Patents
一种基于微服务的应用部署系统及方法 Download PDFInfo
- Publication number
- CN114356351A CN114356351A CN202111484560.5A CN202111484560A CN114356351A CN 114356351 A CN114356351 A CN 114356351A CN 202111484560 A CN202111484560 A CN 202111484560A CN 114356351 A CN114356351 A CN 114356351A
- Authority
- CN
- China
- Prior art keywords
- application
- module
- micro
- service
- microservice
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明提供一种基于微服务的应用部署系统,该系统将应用从代码到运行的全生命周期按阶段划分为微服务关联模块、微服务管理模块、应用编排模块、应用交付模块以及应用部署模块。对于微服务关联模块和微服务管理模块的操作,可以由具有专业知识的应用系统研发人员来完成;对于后续的应用编排模块、应用交付模块以及应用部署模块,由于这些功能模块的业务逻辑已经较为具体,再结合可视化操作界面,完全可以有应用系统管理人员来操作。本发明降低了后续维护更新的难度,从而降低了应用系统后期维护的人力成本,提高了用户体验和参与度。
Description
技术领域
本发明涉及应用系统部署领域,具体涉及一种基于微服务的应用部署系统及方法。
背景技术
随着应用系统业务的复杂化,微服务架构以其独立性和细粒度等方面的优势,正逐渐被开发团队所采用。
然而,对于这些应用的部署以及维护,对技术门槛的要求会较高,需要操作者对微服务体系技术有较深的了解。比如,对于学校的应用系统而言,需要聘请专业技术人员或者对高校工作人员进行专业培训,才能胜任系统的维护更新等工作,成本较高。另一方面,所有的操作都是从服务这个维度,对校园管理用户来说过于抽象,从使用角度的维度一般都是应用,造成管理上和日常工作有一定脱节,在使用上同样也会增加学习成本。
另外,在交付的过程中,校园对能够上线的应用必须经过严格流程,逐步进行测试审核,才能够最终部署到正式环境,确保生产环境上的每个服务都是稳定安全的。目前产品这块都是较为简单,经使用jenkins进行简单的管理,很难能够达到流程严谨安全的层面。
发明内容
为了至少解决部分上述所提到的问题,本发明提供一种基于微服务的应用部署系统,系统包括:微服务关联模块,用于将属于同一个应用的多个所述微服务关联到同一个组;微服务管理模块,用于至少管理每个所述微服务的权限划分、配置管理、依赖管理和版本管理;应用编排模块,用于将属于同一个应用的所述微服务的代码以及对应的依赖编排并打包成应用部署包;应用交付模块,用于将不同的交付节点封装成组件,若成功完成所述组件的流程,则将所述应用部署包作为镜像推送至镜像仓库;应用部署模块,用于根据属性、配置、运行参数和所述镜像封装成可执行应用,所述可执行应用可在云容器平台上部署运行;所述应用编排模块、应用交付模块和应用部署模块,采用可视化操作界面。
进一步而言,在所述应用编排模块中,所述交付节点包括代码拉取、代码扫描、代码构建、接口自动测试、质量检测确认,并且在不同的所述交付节点之间预设有流转条件。
进一步而言,在所述应用部署模块中,部署时自动对数据库数据进行分析,若为第一次部署所述可执行应用时,则进行数据初始化。
进一步而言,所述云容器平台为Kubernetes集群系统,所述应用编排模块采用Helm将所述微服务的代码以及对应的依赖打包成一个Chart包。
进一步而言,所述应用交付模块采用Jenkins Pipeline来封装所述交付节点。
和上述系统相对应,本发明提供一种基于微服务的应用部署方法,方法包括以下步骤:将属于同一个应用的多个所述微服务设置关联关系;至少对每个所述微服务进行权限划分、配置管理、依赖管理和版本管理;将属于同一个应用的所述微服务的代码以及对应的依赖编排并打包成应用部署包,所述编程操作在可视化界面完成;将不同的交付节点封装成组件,若成功完成所述组件的流程,则将所述应用部署包作为镜像推送至镜像仓库,对于不同所述交付节点的组合操作在可视化界面完成;根据属性、配置、运行参数和所述镜像封装成可执行应用,所述可执行应用可在云容器平台上部署运行,对于所述属性、配置和运行参数的输入操作在可视化界面完成。
进一步而言,所述交付节点包括代码拉取、代码扫描、代码构建、接口自动测试、质量检测确认,并且在不同的所述交付节点之间预设有流转条件。
进一步而言,部署时自动对数据库数据进行分析,若为第一次部署所述可执行应用时,则进行数据初始化。
进一步而言,所述云容器平台为Kubernetes集群系统,对应与所述应用编排操作,后台采用Helm将所述微服务的代码以及对应的依赖打包成一个Chart包。
进一步而言,采用Jenkins Pipeline来封装所述交付节点。
本发明的有益效果:该基于微服务的应用部署系统及方法,将应用系统从代码到运行的全生命周期进行阶段划分,实现应用系统研发人员和应用系统管理人员的业务分离,降低了后续维护更新的难度,从而降低了应用系统后期维护的人力成本,提高了用户体验和参与度。
附图说明
图1为应用部署系统实施例的流程示意图。
图2为应用编排模块实施例的流程示意图。
图3为应用交付模块实施例的流程示意图。
图4为应用部署模块实施例的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,基于微服务的应用部署系统,对应用系统的部署和维护操作等再次封装,以降低这些操作的专业性要求,以面向用户方式,从而更简单易懂的实现日常维护及更新工作。
该实施例中,应用部署系统各个功能模块,按照操作顺序依次为微服务关联模块、微服务管理模块、应用编排模块、应用交付模块以及应用部署模块。需要将组成一个完成应用系统的多个微服务进行关联将其分为同一个组,可以对属于同一个的不同微服务设置相同的标签,对于一些公用的微服务可以同时设置多个标签。针对每个微服务也需要进行单独管理,如代码托管、分支管理、权限划分、配置管理、依赖管理、版本管理等。对于微服务关联模块和微服务管理模块的操作,可以由具有专业知识的应用系统研发人员来完成。
对于后续的应用编排模块、应用交付模块以及应用部署模块,由于这些功能模块的业务逻辑已经较为具体,再结合可视化操作界面,完全可以有应用系统管理人员来操作。该方案将应用系统从代码到运行的全生命周期进行阶段划分,实现应用系统研发人员和应用系统管理人员的业务分离,降低了后续维护更新的难度,从而降低了应用系统后期维护的人力成本,提高了用户体验和参与度。
以下以校园应用系统为应用场景,进行具体说明。校园应用系统部署运行在云容器平台,具体可以为Kubernetes集群系统。其中,微服务关联模块将属于同一个应用的多个微服务关联到同一个组。这些属于同一个组的微服务具有相同的标签或者具有相同的名字空间,比如将学生信息管理系统中的各个功能模块都设置在同一个名字空间中。对于一些可以复用的微服务,可以设置在集群作用域中,以供不同名字空间都可以调用,比如将对于学生信息的操作功能作为一个复用微服务。
其中,微服务管理模块,至少管理每个微服务的权限划分、配置管理、依赖管理和版本管理,当然还可以管理代码托管、分支管理等。对于权限划分管理可以采用RBAC(Role-Based Access Control)鉴权,可以将配置管理、依赖管理和版本管理中的部分参数也由角色进行管理。
具体而言,两个功能关联的微服务的版本号,如用于学生查询自己名下排课信息的学生课程查询服务和用于教师查询报名自己名下课程的学生信息的课程报名查询服务,可以由同一个角色管理,后期版本更新则只需要更新该角色即可,提高更新效率降低差错率。
对于多个微服务都需要调用同一个依赖对象,则可以将该依赖对象封装成一个普通角色或者一个集群角色,比如学生信息,后期资源更新则需要更新该依赖对象,就实现了对多个微服务的更新。同样,可以将不同细粒度的配置,封装在不同角色中,根据微服务的需要绑定对应的角色即可。对于上述的微服务关联模块和微服务管理模块,可以由研发人员在代码层进行功能实现和更新。
其中,应用编排模块将属于同一个应用的微服务的代码以及对应的依赖编排为应用部署包,这里的依赖是指微服务运行所需要的依赖资源。具体而言,应用编排模块采用Helm编排技术将微服务的代码以及对应的依赖打包成一个Chart包即Chart归档,后续应用交付模块中各个交付节点即为对该Chart包的操作。
如图2所示,应用编排模块的具体操作实现,可采用可视化界面,比如为图形化界面。可视化界面中的各个可视化功能模块可以以微服务为单位,各个微服务之间的业务关系需要体现在可视化功能模块上,如果在应用编排过程中不同微服务之间具有冲突则给出提示信息,否则打包成应用部署包。
其中,应用交付模块将不同的交付节点封装成组件。然后确认该组件中,这些组合的交付节点是否可以完成不同交付节点之间的流转。如果成功完成了组件的流程,则将应用部署包作为镜像推送至镜像仓库。应用交付模块可以采用Jenkins Pipeline来封装交付节点,提高交付节点的可视性。具体实现可以将Jenkins Pipeline的功能封装为可视化界面,根据用户在可视化界面的操作后台以Jenkins Pipeline来实现。
具体而言,交付节点包括代码拉取、代码扫描、代码构建、接口自动测试、质量检测确认等,应用系统管理员可以根据需要将不同的交付节点进行灵活定制,封装在一个组件中;并且还可以在不同的交付节点之间预设流转条件,比如设置接口自动测试要求,或者设置性能要求作为质量检测通过条件。
如图3所示,应用交付模块的具体操作实现,可采用可视化界面,比如为图形化界面。可视化界面中的各个可视化功能模块可以以交付节点为单位,各个交付节点之间的业务关系需要体现在可视化功能模块上,如果在应用交付过程中不同交付节点之间具有冲突则给出提示信息,否则封装成组件。比如将接口自动测试设置在代码拉取之前,则给出顺序不合理方面的信息提示,并且拒接该种交付节点组合的封装。对于流程条件的设置,可以给出设置接口,具体可以用选择框设置流程条件以进一步降低操作要求。
其中,应用部署模块根据属性、配置、运行参数和镜像封装成可执行应用,可执行应用可在云容器平台上部署运行。具体而言,属性、配置、运行参数中的部分具体可以设置默认值,或者从实际运行环境中自动获取,还可以结合手动输入。属性、配置、运行参数和镜像文件之间可以具有映射表,根据属性、配置、运行参数来匹配对应的镜像文件,用以降低封装后的可执行应用的差错率。比如输入镜像版本属性、数据库配置信息以及性能运行参数之后,从映射表中自动匹配到符合要求的镜像文件,然后应用部署模块将属性、配置、运行参数和镜像封装成可执行应用。另外,在应用部署模块中,部署时自动对数据库数据进行分析,如果为该可执行应用的第一次部署,则进行数据初始化。数据库数据进行分析,可以为比对部署运行可执行应用和数据库数据的时间信息。
如图4所示,应用部署模块的具体操作实现,可采用可视化界面,比如为图形化界面。可视化界面中的各个可视化功能模块可以以需要确认的信息为单位,比如属性、配置、运行参数,根据获取的信息从镜像仓库匹配对应的镜像文件时,如果匹配失败则给出提示信息,否则封装成可执行应用。
该方案,将采用微服务体系的应用系统的交付过程重新进行业务梳理,交付过程主要通过应用方式进行流转审核,减少管理人员的学习成本,帮助管理人员更好的参与到应用管理的流程中。微服务开发者将服务配置完成后,后续版本变更、集成、部署工作均可以交给平台自动化完成,仅需要应用系统管理人员在关键流程节点进行操作即可,完成微服务体系应用管理。
另一实施例为一种基于微服务的应用部署方法,对应于上述基于微服务的应用部署系统。该方法包括以下步骤:将属于同一个应用的多个微服务设置关联关系;至少对每个微服务进行权限划分、配置管理、依赖管理和版本管理;将属于同一个应用的微服务的代码以及对应的依赖编排并打包成应用部署包,编程操作在可视化界面完成;将不同的交付节点封装成组件,若成功完成组件的流程,则将应用部署包作为镜像推送至镜像仓库,对于不同交付节点的组合操作在可视化界面完成;根据属性、配置、运行参数和所述镜像封装成可执行应用,可执行应用可在云容器平台上部署运行,对于属性、配置和运行参数的输入操作在可视化界面完成。
一种实施例中,交付节点包括代码拉取、代码扫描、代码构建、接口自动测试、质量检测确认,并且在不同的交付节点之间预设有流转条件。
一种实施例中,部署时自动对数据库数据进行分析,若为第一次部署可执行应用时,则进行数据初始化。
一种实施例中,云容器平台为Kubernetes集群系统,对应与应用编排操作,后台采用Helm将所述微服务的代码以及对应的依赖打包成一个Chart包。采用Jenkins Pipeline来封装所述交付节点。
以上所举实施例为本申请的较佳实施方式,仅用来方便说明本申请,并非对本申请作任何形式上的限制,任何所属技术领域中具有通常知识者,若在不脱离本申请所提技术特征的范围内,利用本申请所揭示技术内容所作出局部更动或修饰的等效实施例,并且未脱离本申请的技术特征内容,均仍属于本申请技术特征的范围内。
Claims (10)
1.一种基于微服务的应用部署系统,其特征在于,所述系统包括:
微服务关联模块,用于将属于同一个应用的多个所述微服务关联到同一个组;
微服务管理模块,用于至少管理每个所述微服务的权限划分、配置管理、依赖管理和版本管理;
应用编排模块,用于将属于同一个应用的所述微服务的代码以及对应的依赖编排并打包成应用部署包;
应用交付模块,用于将不同的交付节点封装成组件,若成功完成所述组件的流程,则将所述应用部署包作为镜像推送至镜像仓库;
应用部署模块,用于根据属性、配置、运行参数和所述镜像封装成可执行应用,所述可执行应用可在云容器平台上部署运行;
所述应用编排模块、应用交付模块和应用部署模块,采用可视化操作界面。
2.根据权利要求1所述的基于微服务的应用部署系统,其特征在于,在所述应用编排模块中,所述交付节点包括代码拉取、代码扫描、代码构建、接口自动测试、质量检测确认,并且在不同的所述交付节点之间预设有流转条件。
3.根据权利要求2所述的基于微服务的应用部署系统,其特征在于,在所述应用部署模块中,部署时自动对数据库数据进行分析,若为第一次部署所述可执行应用时,则进行数据初始化。
4.根据权利要求1所述的基于微服务的应用部署系统,其特征在于,所述云容器平台为Kubernetes集群系统,所述应用编排模块采用Helm将所述微服务的代码以及对应的依赖打包成一个Chart包。
5.根据权利要求4所述的基于微服务的应用部署系统,其特征在于,所述应用交付模块采用Jenkins Pipeline来封装所述交付节点。
6.一种基于微服务的应用部署方法,其特征在于,所述方法包括以下步骤:
将属于同一个应用的多个所述微服务设置关联关系;
至少对每个所述微服务进行权限划分、配置管理、依赖管理和版本管理;
将属于同一个应用的所述微服务的代码以及对应的依赖编排并打包成应用部署包,所述编程操作在可视化界面完成;
将不同的交付节点封装成组件,若成功完成所述组件的流程,则将所述应用部署包作为镜像推送至镜像仓库,对于不同所述交付节点的组合操作在可视化界面完成;
根据属性、配置、运行参数和所述镜像封装成可执行应用,所述可执行应用可在云容器平台上部署运行,对于所述属性、配置和运行参数的输入操作在可视化界面完成。
7.根据权利要求6所述的基于微服务的应用部署方法,其特征在于,所述交付节点包括代码拉取、代码扫描、代码构建、接口自动测试、质量检测确认,并且在不同的所述交付节点之间预设有流转条件。
8.根据权利要求7所述的基于微服务的应用部署方法,其特征在于,部署时自动对数据库数据进行分析,若为第一次部署所述可执行应用时,则进行数据初始化。
9.根据权利要求6所述的基于微服务的应用部署方法,其特征在于,所述云容器平台为Kubernetes集群系统,对应与所述应用编排操作,后台采用Helm将所述微服务的代码以及对应的依赖打包成一个Chart包。
10.根据权利要求9所述的基于微服务的应用部署方法,其特征在于,采用JenkinsPipeline来封装所述交付节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111484560.5A CN114356351A (zh) | 2021-12-07 | 2021-12-07 | 一种基于微服务的应用部署系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111484560.5A CN114356351A (zh) | 2021-12-07 | 2021-12-07 | 一种基于微服务的应用部署系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114356351A true CN114356351A (zh) | 2022-04-15 |
Family
ID=81097945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111484560.5A Pending CN114356351A (zh) | 2021-12-07 | 2021-12-07 | 一种基于微服务的应用部署系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114356351A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115495148A (zh) * | 2022-11-17 | 2022-12-20 | 深圳代码兄弟技术有限公司 | 基于低代码程序的部署包的统一构建管理方法及系统 |
CN115514666A (zh) * | 2022-09-26 | 2022-12-23 | 郑州小鸟信息科技有限公司 | 一种可视化部署的方法及系统 |
CN115953507A (zh) * | 2023-03-10 | 2023-04-11 | 成都索贝视频云计算有限公司 | 一种图像化编排容器微服务模板管理系统及模板生成方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762769A (zh) * | 2018-06-04 | 2018-11-06 | 万惠投资管理有限公司 | 微服务应用编排和部署方法、装置及计算机终端 |
CN111274001A (zh) * | 2020-02-13 | 2020-06-12 | 研祥智能科技股份有限公司 | 微服务管理平台 |
CN111831289A (zh) * | 2020-06-30 | 2020-10-27 | 山东大学 | 一种微服务自动化部署管理系统及方法 |
CN113609019A (zh) * | 2021-08-09 | 2021-11-05 | 山东乾云启创信息科技股份有限公司 | 一种容器云应用跨集群部署的流水线方法及装置 |
CN113672240A (zh) * | 2021-08-21 | 2021-11-19 | 焦点科技股份有限公司 | 一种基于容器的多机房批量自动化部署应用的方法及系统 |
-
2021
- 2021-12-07 CN CN202111484560.5A patent/CN114356351A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762769A (zh) * | 2018-06-04 | 2018-11-06 | 万惠投资管理有限公司 | 微服务应用编排和部署方法、装置及计算机终端 |
CN111274001A (zh) * | 2020-02-13 | 2020-06-12 | 研祥智能科技股份有限公司 | 微服务管理平台 |
CN111831289A (zh) * | 2020-06-30 | 2020-10-27 | 山东大学 | 一种微服务自动化部署管理系统及方法 |
CN113609019A (zh) * | 2021-08-09 | 2021-11-05 | 山东乾云启创信息科技股份有限公司 | 一种容器云应用跨集群部署的流水线方法及装置 |
CN113672240A (zh) * | 2021-08-21 | 2021-11-19 | 焦点科技股份有限公司 | 一种基于容器的多机房批量自动化部署应用的方法及系统 |
Non-Patent Citations (1)
Title |
---|
欧嘉敏: "基于微服务架构的高可用物联网平台研究与应用" * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115514666A (zh) * | 2022-09-26 | 2022-12-23 | 郑州小鸟信息科技有限公司 | 一种可视化部署的方法及系统 |
CN115495148A (zh) * | 2022-11-17 | 2022-12-20 | 深圳代码兄弟技术有限公司 | 基于低代码程序的部署包的统一构建管理方法及系统 |
CN115495148B (zh) * | 2022-11-17 | 2023-09-22 | 深圳代码兄弟技术有限公司 | 基于低代码程序的部署包的统一构建管理方法及系统 |
CN115953507A (zh) * | 2023-03-10 | 2023-04-11 | 成都索贝视频云计算有限公司 | 一种图像化编排容器微服务模板管理系统及模板生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114356351A (zh) | 一种基于微服务的应用部署系统及方法 | |
CN106873975B (zh) | 基于Docker的devops持续交付与自动化系统及方法 | |
CN105487864B (zh) | 代码自动生成的方法和装置 | |
US8479255B2 (en) | Managing operational requirements on the objects of a service oriented architecture (SOA) | |
CN112835560A (zh) | Web多终端低代码智能软件开发平台 | |
US20050044531A1 (en) | Methods and systems for deploying computer source code | |
US11226830B2 (en) | System for building, managing, deploying and executing reusable analytical solution modules for industry applications | |
WO2005069942A2 (en) | System and method for generating and deploying a software application | |
KR20170015968A (ko) | 모바일 장치들의 원격 구성을 허용하기 위해 모바일 장치들 상에 설치되는 고속 어플리케이션 | |
CN107463362A (zh) | 基于多个Jenkins的持续部署的方法和系统 | |
US8752030B1 (en) | Process abstraction and tracking, systems and methods | |
Capilla et al. | An enhanced architectural knowledge metamodel linking architectural design decisions to other artifacts in the software engineering lifecycle | |
Gomaa et al. | Automated software product line engineering and product derivation | |
Bartusevics et al. | Models for implementation of software configuration management | |
CN106484452A (zh) | 一种软件平台的统一配置管理方法和装置 | |
Osaiweran et al. | Evaluating the effect of a lightweight formal technique in industry | |
CN114546563A (zh) | 一种多租户页面访问控制方法和系统 | |
KR100994070B1 (ko) | 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치 | |
EP4296861A1 (en) | System and method for cloud infrastructure test automation | |
Fagerström et al. | Verdict machinery: On the need to automatically make sense of test results | |
US20200366743A1 (en) | Megamodel driven process enactment | |
Kulkarni et al. | Towards business application product lines | |
CN113377346B (zh) | 集成环境搭建方法、装置、电子设备及存储介质 | |
US20100064171A1 (en) | Tariff management deployment automation | |
US11934817B2 (en) | Systems and methods for deploying federated infrastructure as code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |