CN111352653B - 基于PaaS云平台服务器的系统开发方法及服务器 - Google Patents
基于PaaS云平台服务器的系统开发方法及服务器 Download PDFInfo
- Publication number
- CN111352653B CN111352653B CN202010150544.1A CN202010150544A CN111352653B CN 111352653 B CN111352653 B CN 111352653B CN 202010150544 A CN202010150544 A CN 202010150544A CN 111352653 B CN111352653 B CN 111352653B
- Authority
- CN
- China
- Prior art keywords
- information
- grouping
- program
- development
- version
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000033772 system development Effects 0.000 title claims abstract description 50
- 230000018109 developmental process Effects 0.000 claims abstract description 144
- 238000011161 development Methods 0.000 claims abstract description 143
- 238000013439 planning Methods 0.000 claims abstract description 18
- 238000012827 research and development Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 13
- 239000011148 porous material Substances 0.000 claims description 10
- 230000008878 coupling Effects 0.000 abstract description 20
- 238000010168 coupling process Methods 0.000 abstract description 20
- 238000005859 coupling reaction Methods 0.000 abstract description 20
- 230000006870 function Effects 0.000 description 33
- 238000004891 communication Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 16
- 238000007726 management method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000004519 manufacturing process Methods 0.000 description 11
- 238000012423 maintenance Methods 0.000 description 6
- 238000005096 rolling process Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000002955 isolation Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000011990 functional testing Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- PMHURSZHKKJGBM-UHFFFAOYSA-N isoxaben Chemical compound O1N=C(C(C)(CC)CC)C=C1NC(=O)C1=C(OC)C=CC=C1OC PMHURSZHKKJGBM-UHFFFAOYSA-N 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供的基于PaaS云平台服务器的系统开发方法及服务器,基于PaaS云平台服务器,根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像,各个开发部门可以维护各自的源代码仓库(对代码仓库类型可以不做要求,比如GIT、SVN等),避免跨部门源代码操作,不会出现代码依赖,冲突等问题,从而彻底实现开发解耦,本方案不涉及各部门源代码归拢后再编译,而是各个部门开发团队自行编译后发布MAVEN组件,研发平台再对组件进行逻辑组合,消除各部门编译时间的冲突,解决了版本编译耦合问题。
Description
技术领域
本发明涉及云服务器技术领域,具体涉及基于PaaS云平台服务器的系统开发方法及服务器。
背景技术
系统平台化开发是IT系统研发过程中一种软件研发组织模式,贯穿需求、设计、开发、运行维护等各个软件工程阶段。在一些具备相当规模的企业中,会针对不同的业务领域研发不同的系统,以此提供相应的技术服务。其中一些热点系统会具备如下特色:1)对接的业务条线需求旺盛,需求变化多2)有大量其它系统依赖该热点系统,系统间耦合高。综上原因,项目推进过程中会遇到如下问题:1、研发人力资源跟不上;2、跨系统研发过程中,协调沟通及业务知识学习成本高;3、业务很难做到端到端、一站式的研发服务。
为了减少研发成本,最大化研发效率,从而解决这些问题,在具体研发实践中,产生了一种新的研发模式——系统平台化开发,即基于统一的技术标准和开发规范,在为多个系统的功能实现提供渠道接入、服务集成、决策支持等配套功能的系统内部,由多个开发部门共同协作承担同一系统开发工作的一种研发组织模式,相应的系统简称平台化系统。
采用平台化开发的系统,按各软件产品在系统运行态的部署方式的不同,可分为共享和集成两种模式。共享模式指所有软件产品均部署在同一类应用服务器上。集成模式指各软件产品部份各自独立部署运行在彼此独立的软硬件环境中,通过不同的业务群组合理分工组成整个系统的完整功能对外服务。
在实际的系统平台化开发实践过程中,因涉及多个部门,多个开发团队协同在同一系统内进行功能开发,从而又遇到了一些新的挑战:
1、开发解耦挑战。传统代码提交模式下,代码库访问权限需要精确管理,平台化系统开发团队需要针对跨部门迭代开发、延期交付、生产补丁等各个分支流进行复杂的合并操作,容易出现分支混乱,代码冲突等问题。
2、版本解耦挑战。版本在传统部署环境进行部署时,因开发部门团队之间,各个测试环境及生产环境中版本发布及编译构建容易发生时间冲突,停机冲突,需要相当多的沟通、协同成本。
3、运行解耦挑战。传统环境部署时,平台化系统团队需要统一收集各个其它开发团队所开发的程序,然后进行合并或者分离部署。
4、合并部署时,存在运行时耦合,如果其中一个部门团队开发的程序发生异常,会产生整个系统不可用风险。
5、分离部署时,需要关注底层软硬件资源并需要制定分组策略,针对不同群组进行资源规划;特定软件产品需要发布至特定群组,对持续集成能力要求高。软件产品与群组之间的关系只能通过版本策略进行软控制。
6、公共构件及服务缺乏统一管理。平台化系统需要提供其私有数据、服务来支撑其他部门团队进行特色业务功能的研发,而针对这些公共的构件及服务缺乏统一的管理。
由此可知,现有技术中的平台化开发的系统存在诸多不足。
发明内容
为解决上述技术问题,本发明提供以下技术方案:
第一方面,一种基于PaaS云平台服务器的系统开发方法,包括:
接收组件仓库服务器中的功能组件、系统研发平台服务器中开发产品组件的版本计划信息以及代码仓库服务器中所有功能组件的预设分组配置信息;所述功能组件包括基础组件和根据基础组件开发得到的开发产品组件;
根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像;
将所有所述程序镜像和分组信息发送到PaaS云平台服务器,以使所述PaaS云平台服务器根据所述分组信息将每个分组程序镜像放置于对应分组的容器中运行。
在优选实施例中,所述根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,包括:
根据所述版本计划信息和所述功能组件确定当前所述开发产品组件的版本信息;
根据所述预设分组配置信息对所有功能组件进行分组,得到多个功能组件分组;
对每个功能组件分组进行组合编译,得到对应每个分组的程序镜像。
在优选实施例中,还包括:
接收所述系统研发平台服务器中开发产品组件的分层参数信息;
根据所述分层参数信息对所述功能组件进行分层处理。
在优选实施例中,还包括:
所述预设分组配置信息通过pom文件被记载,每个分组的所述pom文件是按照设定策略将所述开发产品组件对应的开发人员所属部门、开发产品组件的坐标信息以及参数配置信息进行分组合并得到。
第二方面,一种基于PaaS云平台服务器的系统运行方法,包括:
响应于用户的程序调用请求,根据用户信息确定对应的分组信息;
根据确定的所述分组信息运行对应容器分组中的程序镜像;
向所述用户发送程序镜像运行结果;其中,
所述程序镜像和对应的分组信息各自是根据预设分组配置信息、版本计划信息,对所有功能组件进行编译得到多个分组信息和多个程序镜像中的一个;所述功能组件包括基础组件和根据基础组件开发得到的开发产品组件。
在优选实施例中,还包括:
当接收到更新版本的程序镜像后,执行迭代操作,使所述更新版本的程序镜像运行在一个容器中,并关联对应的旧版本的程序镜像,停机其中一个旧版本程序镜像运行的容器,用当前更新版本的程序镜像运行的容器替代停机的容器,并将其划入所述程序镜像对应的容器分组中,直至当前容器分组中的所有容器运行所述更新版本的程序镜像。
第三方面,一种基于PaaS云平台服务器的编译服务器,包括:
接收模块,接收组件仓库服务器中的功能组件、系统研发平台服务器中开发产品组件的版本计划信息以及代码仓库服务器中所有功能组件的预设分组配置信息;所述功能组件包括基础组件和根据基础组件开发得到的开发产品组件;
编译模块,根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像;
云平台服务器发送模块,将所有所述程序镜像和分组信息发送到PaaS云平台服务器,以使所述PaaS云平台服务器根据所述分组信息将每个分组程序镜像放置于对应分组的容器中运行。
在优选实施例中,所述编译模块,包括:
版本信息确定单元,根据所述版本计划信息和所述功能组件确定当前所述开发产品组件的版本信息;
分组单元,根据所述预设分组配置信息对所有功能组件进行分组,得到多个功能组件分组;
组合编译单元,对每个功能组件分组进行组合编译,得到对应每个分组的程序镜像。
在优选实施例中,还包括:
分层参数信息接收模块,接收所述系统研发平台服务器中开发产品组件的分层参数信息;
分层处理模块,根据所述分层参数信息对所述功能组件进行分层处理。
在优选实施例中,还包括:
所述预设分组配置信息通过pom文件被记载,每个分组的所述pom文件是按照设定策略将所述开发产品组件对应的开发人员所属部门、开发产品组件的坐标信息以及参数配置信息进行分组合并得到。
第四方面,一种PaaS云平台服务器,包括:
分组信息确定模块,响应于用户的程序调用请求,根据用户信息确定对应的分组信息;
程序镜像运行模块,根据确定的所述分组信息运行对应容器分组中的程序镜像;
运行结果发送模块,向所述用户发送程序镜像运行结果;其中,
所述程序镜像和对应的分组信息各自是根据预设分组配置信息、版本计划信息,对所有功能组件进行编译得到多个分组信息和多个程序镜像中的一个;所述功能组件包括基础组件和根据基础组件开发得到的开发产品组件。
在优选实施例中,还包括:
迭代更新模块,当接收到更新版本的程序镜像后,执行迭代操作,使所述更新版本的程序镜像运行在一个容器中,并关联对应的旧版本的程序镜像,停机其中一个旧版本程序镜像运行的容器,用当前更新版本的程序镜像运行的容器替代停机的容器,并将其划入所述程序镜像对应的容器分组中,直至当前容器分组中的所有容器运行所述更新版本的程序镜像。
第五方面,一种基于PaaS云平台的系统开发系统,包括:
组件仓库服务器,包括功能组件,所述功能组件包括基础组件和开发人员上传的开发产品组件;
系统研发平台服务器,根据开发人员上传的开发产品组件的配置信息生成预设分组配置信息;所述配置信息包括组件坐标和版本计划信息;
代码仓库服务器,接收系统研发平台服务器发送的所有功能组件的预设分组配置信息;
编译服务器,根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像;
镜像仓库服务器,接收所述编译服务器发送的每个分组的程序镜像;
分组信息仓库服务器,接收所述编译服务器发送的分组信息;
PaaS云平台服务器,根据所述分组信息将每个分组程序镜像放置于对应分组的容器中运行。
第六方面,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
第七方面,一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法。
由上述技术方案可知,本发明提供的基于PaaS云平台服务器的系统开发方法及服务器,基于PaaS云平台服务器,根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像,各个开发部门可以维护各自的源代码仓库(对代码仓库类型可以不做要求,比如GIT、SVN等),避免跨部门源代码操作,不会出现代码依赖,冲突等问题,从而彻底实现开发解耦,本方案不涉及各部门源代码归拢后再编译,而是各个部门开发团队自行编译后发布MAVEN组件,M03研发平台再对组件进行逻辑组合,消除各部门编译时间的冲突,解决了版本编译耦合问题。能够优化解决系统平台化开发过程遇到的开发、版本及运行耦合问题,提高研发效率,降低研发成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明实施例中开发系统的结构示意图。
图2示出本发明实施例中基于PaaS云平台服务器的系统开发方法的流程图。
图3示出本发明实施例中基于PaaS云平台服务器的系统运行方法的流程图。
图4示出本发明实施例中一开发场景的流程示意图。
图5示出本发明实施例中编译服务器的结构示意图。
图6示出本发明实施例中PaaS云平台服务器的结构示意图。
图7为本发明实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到目前平台化开发系统的因涉及多个部门,多个开发团队协同在同一系统内进行功能开发,从而又遇到了一些新的挑战:开发解耦挑战,传统代码提交模式下,代码库访问权限需要精确管理,平台化系统开发团队需要针对跨部门迭代开发、延期交付、生产补丁等各个分支流进行复杂的合并操作,容易出现分支混乱,代码冲突等问题;版本解耦挑战,版本在传统部署环境进行部署时,因开发部门团队之间,各个测试环境及生产环境中版本发布及编译构建容易发生时间冲突,停机冲突,需要相当多的沟通、协同成本;运行解耦挑战,传统环境部署时,平台化系统团队需要统一收集各个其它开发团队所开发的程序,然后进行合并或者分离部署;合并部署时,存在运行时耦合,如果其中一个部门团队开发的程序发生异常,会产生整个系统不可用风险;分离部署时,需要关注底层软硬件资源并需要制定分组策略,针对不同群组进行资源规划;特定软件产品需要发布至特定群组,对持续集成能力要求高。软件产品与群组之间的关系只能通过版本策略进行软控制;公共构件及服务缺乏统一管理。平台化系统需要提供其私有数据、服务来支撑其他部门团队进行特色业务功能的研发,而针对这些公共的构件及服务缺乏统一的管理。
本发明对现有技术进行了改进,具体的,首先根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像;然后将所有所述程序镜像和分组信息发送到PaaS云平台服务器,以使所述PaaS云平台服务器根据所述分组信息将每个分组程序镜像放置于对应分组的容器中运行。这样基于PaaS云平台服务器,根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像,各个开发部门可以维护各自的源代码仓库(对代码仓库类型可以不做要求,比如GIT、SVN等),避免跨部门源代码操作,不会出现代码依赖,冲突等问题,从而彻底实现开发解耦,本方案不涉及各部门源代码归拢后再编译,而是各个部门开发团队自行编译后发布MAVEN组件,M03研发平台再对组件进行逻辑组合,消除各部门编译时间的冲突,解决了版本编译耦合问题。能够优化解决系统平台化开发过程遇到的开发、版本及运行耦合问题,提高研发效率,降低研发成本。
图1示出了本发明实施例中一种基于PaaS云平台的系统开发系统,包括:
组件仓库服务器M02,包括功能组件,所述功能组件包括基础组件和开发人员上传的开发产品组件。
在一些实施例中,组件仓库服务器可以是MAVEN组件仓库,其提供如下功能:1)平台化系统提供的公共服务都可以封装在MAVEN组件中,并通过MAVEN组件仓库M02统一发布管理。2)各部门开发团队可以从MAVEN组件仓库M02拉取所需的平台化系统公共基础组件,基于这些组件开发自身产品功能后,将自己的功能程序组件发布在MAVEN组件仓库M02。
系统研发平台服务器M03,根据开发人员上传的开发产品组件的配置信息生成预设分组配置信息;所述配置信息包括组件坐标和版本计划信息。
在一些实施例中,平台化系统研发平台M03提供了如下功能:1)各部门开发团队可以登录该系统查询平台化系统的公共组件、数据资源、基础服务、开发示例等信息。2)各部门开发团队可以提交自己开发的特色功能组件的MAVEN坐标信息、版本信息、参数配置等。3)该平台可以针对各研发团队提交的产品功能组件MAVEN坐标信息、版本信息、参数配置等信息进行自动分组合并,并将合并后的程序配置(pom文件等)推送至GIT代码仓库M05,并将版本信息提交至编译构建系统M04,并触发编译构建。
在一些实施例中,平台化系统研发平台根据分组策略等信息,自动组装各部门开发团队提交的MAVEN坐标并合并为不同分组的POM文件,不同分组的配置文件,不同的分组分层参数等,并将合并后的资源文件提交至平台化系统所在的代码仓库服务器。
本发明通过M03研发平台,可以实现对所有需要运行的MAVEN组件分组合并到不同的几个POM文件中,M04编译构建系统编译时,针对不同分组的POM文件最终编译为不同的程序镜像。也就意味着M08PaaS平台最终运行不同分组的Docker容器对应着不同分组的MAVEN组件。在这种部署模式下,如果某个部门研发的程序出了问题,仅仅影响该程序组件所在分组对应的Docker容器,不影响其他容器的正常运行(Docker容器间资源隔离的特性),不会产生整个系统不可用风险,极大缓和运行耦合问题。
代码仓库服务器M05,接收系统研发平台服务器发送的所有功能组件的预设分组配置信息。
在一些实施例中,代码仓库服务器M05为GIT仓库,负责存储POM文件。
编译服务器M04,根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像。
具体的,编译服务器进行程序镜像构建,从GIT代码仓库拉取代码,从MAVEN组建仓库拉取公共组件及产品功能组件,编译输出Docker镜像、PaaS分组策略及PaaS分层参数,分别推送至Docker镜像仓库及PaaS构建仓库。
镜像仓库服务器M06,接收所述编译服务器发送的每个分组的程序镜像。
具体的,镜像仓库服务器,即Docker镜像仓库,提供Docker镜像发布管理功能。不同研发阶段有不同的Docker镜像仓库:功能测试镜像仓库、用户体验测试镜像仓库及生产镜像仓库等。不同研发阶段的镜像通过仓库间单向推送进行流转。
分组信息仓库服务器M07,接收所述编译服务器发送的分组信息。
分组信息仓库服务器M07即PaaS构件仓库,提供PaaS构件发布管理功能。不同研发阶段有不同的PaaS构件仓库:功能测试PaaS构件仓库、用户体验测试PaaS构件仓库及生产PaaS构件仓库等。不同研发阶段的PaaS构件通过仓库间单向推送进行流转。
PaaS云平台服务器M08,根据所述分组信息将每个分组程序镜像放置于对应分组的容器中运行。
PaaS云平台服务器M08用于统一管理Docker运行的云平台,PaaS平台基于Docker虚拟化技术及Kubernetes编排管理,屏蔽了底层复杂的硬件、网络资源,更容易实现软件产品分组运行。
可以理解,本发明提供的开发系统,基于PaaS云平台服务器,根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像,各个开发部门可以维护各自的源代码仓库(对代码仓库类型可以不做要求,比如GIT、SVN等),避免跨部门源代码操作,不会出现代码依赖,冲突等问题,从而彻底实现开发解耦,本方案不涉及各部门源代码归拢后再编译,而是各个部门开发团队自行编译后发布MAVEN组件,M03研发平台再对组件进行逻辑组合,消除各部门编译时间的冲突,解决了版本编译耦合问题。能够优化解决系统平台化开发过程遇到的开发、版本及运行耦合问题,提高研发效率,降低研发成本。
图2示出了本发明实施例中一种基于PaaS云平台服务器的系统开发方法,期由编译服务器执行,包括:
S100:接收组件仓库服务器中的功能组件、系统研发平台服务器中开发产品组件的版本计划信息以及代码仓库服务器中所有功能组件的预设分组配置信息;所述功能组件包括基础组件和根据基础组件开发得到的开发产品组件。
具体如上所述,组件仓库在一些实施例中是MAVEN组件仓库,功能组件中的开发产品组件是由部门的开发人员上传得到的,此外,代码仓库服务器中的预设分组配合信息是系统研发平台服务器根据开发人员上传的开发产品组件的配置信息生成,在此不做赘述。
在一些实施例中,所述预设分组配置信息通过pom文件被记载,每个分组的所述pom文件是按照设定策略将所述开发产品组件对应的开发人员所属部门、开发产品组件的坐标信息以及参数配置信息进行分组合并得到。
S200:根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像。
在一些实施例中,步骤S200具体包括:
S201:根据所述版本计划信息和所述功能组件确定当前所述开发产品组件的版本信息;
S202:根据所述预设分组配置信息对所有功能组件进行分组,得到多个功能组件分组;
对每个功能组件分组进行组合编译,得到对应每个分组的程序镜像。
具体的,从版本计划信息中确定当前的功能组件的版本,然后从GIT代码仓库M05拉取对应版本的GIT代码,进而进行编译得到程序镜像,由于GIT代码是按照分组进行配置(pom文件),进而编译形成的程序镜像与每个分组一一对应。
S300:将所有所述程序镜像和分组信息发送到PaaS云平台服务器,以使所述PaaS云平台服务器根据所述分组信息将每个分组程序镜像放置于对应分组的容器中运行。
PaaS云平台服务器是基于Docker虚拟化技术及Kubernetes编排管理版本发布时,借助M08PaaS平台对Docker的启停管理能力,可以实现“一键滚动升级”功能,即:系统版本升级时,假设旧版本镜像有N个Docker容器运行,“滚动升级”时,先运行1个新版本镜像,这时共有N+1个Docker容器运行(N个旧镜像,1个新镜像),再优雅停机1个旧Docker容器,这时共有N个Docker(N-1个旧镜像,1个新镜像)。依次类推,逐个将运行旧镜像的Docker容器替换为运行新镜像的Docker容器。最终N个Docker容器运行的都是新版本的镜像,在这期间总有Docker容器运行并提供服务,这样就解决了版本停机发布冲突问题。
进一步的,在优选的实施例中,上述系统开发方法还包括:
S400:接收所述系统研发平台服务器中开发产品组件的分层参数信息;
S500:根据所述分层参数信息对所述功能组件进行分层处理。
分层处理的好处在于:减少参数冗余,便于统一管理。在传统的开发方式中,每个容器分组都维护了镜像程序所需全量的参数。假设PaaS平台有N个容器分组运行,基础组件中有个公用参数PARAM1,那么在传统部署模式下PARAM1必须在N个容器分组都要进行维护一遍,即同一个PARAM1参数维护了N次。如果想修改该参数,则需要修改N次。参数分层之后PARAM1仅仅存在于基础组件层,且仅仅维护一次。
从上述描述可以理解,本发明提供的基于PaaS云平台服务器的系统开发方法,基于PaaS云平台服务器,根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像,各个开发部门可以维护各自的源代码仓库(对代码仓库类型可以不做要求,比如GIT、SVN等),避免跨部门源代码操作,不会出现代码依赖,冲突等问题,从而彻底实现开发解耦,本方案不涉及各部门源代码归拢后再编译,而是各个部门开发团队自行编译后发布MAVEN组件,M03研发平台再对组件进行逻辑组合,消除各部门编译时间的冲突,解决了版本编译耦合问题。能够优化解决系统平台化开发过程遇到的开发、版本及运行耦合问题,提高研发效率,降低研发成本。
图3示出了本发明实施例中一种由PaaS云平台服务器执行的系统运行方法,具体如下:
S110:响应于用户的程序调用请求,根据用户信息确定对应的分组信息;
S120:根据确定的所述分组信息运行对应容器分组中的程序镜像;
S130:向所述用户发送程序镜像运行结果;其中,
所述程序镜像和对应的分组信息各自是根据预设分组配置信息、版本计划信息,对所有功能组件进行编译得到多个分组信息和多个程序镜像中的一个;所述功能组件包括基础组件和根据基础组件开发得到的开发产品组件。
用户需要调用程序运行时,首先登陆PaaS云平台服务器,进入对应的容器,运行该容器分组内的程序镜像,PaaS云平台服务器根据用户信息确定对应的分组信息,然后确定用户对应调用的程序镜像,当程序运行完毕后,向客户发送并展示运行结果。
进一步的,当需要进行程序更新时,本方法还包括:
S140:当接收到更新版本的程序镜像后,执行迭代操作,使所述更新版本的程序镜像运行在一个容器中,并关联对应的旧版本的程序镜像,停机其中一个旧版本程序镜像运行的容器,用当前更新版本的程序镜像运行的容器替代停机的容器,并将其划入所述程序镜像对应的容器分组中,直至当前容器分组中的所有容器运行所述更新版本的程序镜像。
具体的,版本发布或者版本更新时,借助M08PaaS平台对Docker的启停管理能力,可以实现“一键滚动升级”功能,即:系统版本升级时,假设旧版本镜像有N个Docker容器运行,“滚动升级”时,先运行1个新版本镜像,这时共有N+1个Docker容器运行(N个旧镜像,1个新镜像),再优雅停机1个旧Docker容器,这时共有N个Docker(N-1个旧镜像,1个新镜像)。依次类推,逐个将运行旧镜像的Docker容器替换为运行新镜像的Docker容器。最终N个Docker容器运行的都是新版本的镜像,在这期间总有Docker容器运行并提供服务,这样就解决了版本停机发布冲突问题。
可以理解,本发明提供的系统运行方法,通过PaaS云平台服务器的权限设置,实现完备的账户权限管理体系,支持父账户下创建子账户,不同子账户可以做到权限隔离,针对不同子账号开通不同的Docker容器分组、参数配置等资源访问权限,从而隔离生产运维人员的误操作风险。
下面示出部分具体使用场景。
图4是基于PaaS云的新型系统平台化开发流程示意图,各部门可自行搭建基于MAVEN的JAVA开发环境,并启动系统平台化开发流程,最终各部门对应的生产运维人员在生产PaaS平台启动运行功能程序。如图4所示,具体开发流程包括如下步骤:
步骤S101:各部门团队搭建基于MAVEN的JAVA开发环境,从MAVEN仓库拉取平台化系统公共基础组件。
步骤S102:各部门团队开发自己的特色产品功能,编译打包成MAVEN组件发布至MAVEN仓库(不需要包含基础组件)。
步骤S103:各部门团队将发布的MAVEN组件坐标、版本计划等信息提交至平台化系统研发平台,并触发构建。
步骤S104:平台化系统研发平台根据分组策略等信息,自动组装各部门开发团队提交的MAVEN坐标并合并为不同分组的POM文件,不同分组的配置文件,不同的分组分层参数等,并将合并后的资源文件提交至平台化系统所在GIT仓库。
步骤S105:编译构建系统进行构建,从GIT代码仓库拉取代码,从MAVEN组建仓库拉取公共组件及产品功能组件,编译输出Docker镜像、PaaS分组策略及PaaS分层参数,分别推送至Docker镜像仓库及PaaS构建仓库。
步骤S106:各部门开发团队对应的运维支持人员使用分配的PaaS子账号在自身权限范围内启动运行产品程序(超出权限的版本程序将不可见,也不可维护)。
综上,本方案从如下几个方面优化解决系统平台化开发过程遇到的开发、版本及运行耦合问题:
开发耦合问题:传统系统平台化开发方法,需要各个开发部门同时在同一个平台化系统的代码仓库上对代码进行拉取,提交,合并,同步不同版本分支流等复杂、危险的操作。而本方案【步骤S101】、【步骤S102】中,各个开发部门可以维护各自的源代码仓库(对代码仓库类型可以不做要求,比如GIT、SVN等),避免跨部门源代码操作,不会出现代码依赖,冲突等问题,从而彻底实现开发解耦。各部门开发过程中及开发完毕后,采用jar包形式,借助MAVEN仓库,通过SNAPSHOT及RELEASE两种类型发布,为后续M03平台进行组件组合奠定基础。
版本耦合问题:1)纵观【步骤S101】、【步骤S102】、【步骤S103】、【步骤S104】、【步骤S105】、【步骤S106】整个版本发布流程,可以发现各个部门团队之间不需要相互依赖,不需要明显的沟通成本。相比传统流程,本方案不涉及各部门源代码归拢后再编译,而是各个部门开发团队自行编译后发布MAVEN组件,M03研发平台再对组件进行逻辑组合,消除各部门编译时间的冲突,解决了版本编译耦合问题。2)版本发布时,借助M08PaaS平台对Docker的启停管理能力,可以实现“一键滚动升级”功能,即:系统版本升级时,假设旧版本镜像有N个Docker容器运行,“滚动升级”时,先运行1个新版本镜像,这时共有N+1个Docker容器运行(N个旧镜像,1个新镜像),再优雅停机1个旧Docker容器,这时共有N个Docker(N-1个旧镜像,1个新镜像)。依次类推,逐个将运行旧镜像的Docker容器替换为运行新镜像的Docker容器。最终N个Docker容器运行的都是新版本的镜像,在这期间总有Docker容器运行并提供服务,这样就解决了版本停机发布冲突问题。
运行耦合问题:1)M08PaaS云平台研发实现完备的账户权限管理体系,支持父账户下创建子账户,不同子账户可以做到权限隔离,针对不同子账号开通不同的Docker容器分组、参数配置等资源访问权限,从而隔离生产运维人员的误操作风险;2)借助Docker容器的虚拟化技术以及Kubernetes容器编排能力,屏蔽了底层存储设备、网络资源等硬件资源管理复杂度,降低程序对底层硬件资源依赖耦合3)通过M03研发平台,可以实现对所有需要运行的MAVEN组件分组合并到不同的几个POM文件中,M04编译构建系统编译时,针对不同分组的POM文件最终编译为不同的程序镜像。也就意味着M08PaaS平台最终运行不同分组的Docker容器对应着不同分组的MAVEN组件。在这种部署模式下,如果某个部门研发的程序出了问题,仅仅影响该程序组件所在分组对应的Docker容器,不影响其他容器的正常运行(Docker容器间资源隔离的特性),不会产生整个系统不可用风险,极大缓和运行耦合问题。
基于相同的发明构思,如图5所示,本发明实施例还提供一种基于PaaS云平台服务器的编译服务器,包括:
接收模块11,接收组件仓库服务器中的功能组件、系统研发平台服务器中开发产品组件的版本计划信息以及代码仓库服务器中所有功能组件的预设分组配置信息;所述功能组件包括基础组件和根据基础组件开发得到的开发产品组件;
编译模块12,根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像;
云平台服务器发送模块13,将所有所述程序镜像和分组信息发送到PaaS云平台服务器,以使所述PaaS云平台服务器根据所述分组信息将每个分组程序镜像放置于对应分组的容器中运行。
在优选实施例中,所述编译模块,包括:
版本信息确定单元,根据所述版本计划信息和所述功能组件确定当前所述开发产品组件的版本信息;
分组单元,根据所述预设分组配置信息对所有功能组件进行分组,得到多个功能组件分组;
组合编译单元,对每个功能组件分组进行组合编译,得到对应每个分组的程序镜像。
在优选实施例中,还包括:
分层参数信息接收模块,接收所述系统研发平台服务器中开发产品组件的分层参数信息;
分层处理模块,根据所述分层参数信息对所述功能组件进行分层处理。
在优选实施例中,还包括:
所述预设分组配置信息通过pom文件被记载,每个分组的所述pom文件是按照设定策略将所述开发产品组件对应的开发人员所属部门、开发产品组件的坐标信息以及参数配置信息进行分组合并得到。
基于相同的发明构思,本发明实施例还提供一种PaaS云平台服务器,如图6所示,包括:
分组信息确定模块21,响应于用户的程序调用请求,根据用户信息确定对应的分组信息;
程序镜像运行模块22,根据确定的所述分组信息运行对应容器分组中的程序镜像;
运行结果发送模块23,向所述用户发送程序镜像运行结果;其中,
所述程序镜像和对应的分组信息各自是根据预设分组配置信息、版本计划信息,对所有功能组件进行编译得到多个分组信息和多个程序镜像中的一个;所述功能组件包括基础组件和根据基础组件开发得到的开发产品组件。
在优选实施例中,还包括:
迭代更新模块,当接收到更新版本的程序镜像后,执行迭代操作,使所述更新版本的程序镜像运行在一个容器中,并关联对应的旧版本的程序镜像,停机其中一个旧版本程序镜像运行的容器,用当前更新版本的程序镜像运行的容器替代停机的容器,并将其划入所述程序镜像对应的容器分组中,直至当前容器分组中的所有容器运行所述更新版本的程序镜像。
可以理解,本发明提供的基于PaaS云平台服务器以及编译服务器,基于PaaS云平台服务器,根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像,各个开发部门可以维护各自的源代码仓库(对代码仓库类型可以不做要求,比如GIT、SVN等),避免跨部门源代码操作,不会出现代码依赖,冲突等问题,从而彻底实现开发解耦,本方案不涉及各部门源代码归拢后再编译,而是各个部门开发团队自行编译后发布MAVEN组件,M03研发平台再对组件进行逻辑组合,消除各部门编译时间的冲突,解决了版本编译耦合问题。能够优化解决系统平台化开发过程遇到的开发、版本及运行耦合问题,提高研发效率,降低研发成本。
从硬件层面来说,为了解决合约容器间缓存数据的一致性问题,本发明提供一种用于实现所述系统开发/运行方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现服务器、装置、分布式消息中间件集群装置、各类数据库以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例中的系统开发/运行方法的实施例,以及,系统开发/运行装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图7为本发明实施例的电子设备9600的系统构成的示意框图。如图7所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图7是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,系统开发/运行功能可以被集成到中央处理器9100中。例如,中央处理器9100可以被配置为进行如下控制:
S100:接收组件仓库服务器中的功能组件、系统研发平台服务器中开发产品组件的版本计划信息以及代码仓库服务器中所有功能组件的预设分组配置信息;所述功能组件包括基础组件和根据基础组件开发得到的开发产品组件。
S200:根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像。
S300:将所有所述程序镜像和分组信息发送到PaaS云平台服务器,以使所述PaaS云平台服务器根据所述分组信息将每个分组程序镜像放置于对应分组的容器中运行。
从上述描述可知,本发明的实施例提供的电子设备,根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像,各个开发部门可以维护各自的源代码仓库(对代码仓库类型可以不做要求,比如GIT、SVN等),避免跨部门源代码操作,不会出现代码依赖,冲突等问题,从而彻底实现开发解耦,本方案不涉及各部门源代码归拢后再编译,而是各个部门开发团队自行编译后发布MAVEN组件,M03研发平台再对组件进行逻辑组合,消除各部门编译时间的冲突,解决了版本编译耦合问题。能够优化解决系统平台化开发过程遇到的开发、版本及运行耦合问题,提高研发效率,降低研发成本。
在另一个实施方式中,各服务器装置可以与中央处理器9100分开配置,例如可以将各服务器装置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现系统开发/运行功能。
如图7所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图7中所示的所有部件;此外,电子设备9600还可以包括图7中没有示出的部件,可以参考现有技术。
如图7所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本发明的实施例还提供能够实现上述实施例中的系统开发/运行方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中系统开发/运行方法的全部步骤。
从上述描述可知,本发明的实施例提供的计算机可读存储介质,根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像,各个开发部门可以维护各自的源代码仓库(对代码仓库类型可以不做要求,比如GIT、SVN等),避免跨部门源代码操作,不会出现代码依赖,冲突等问题,从而彻底实现开发解耦,本方案不涉及各部门源代码归拢后再编译,而是各个部门开发团队自行编译后发布MAVEN组件,M03研发平台再对组件进行逻辑组合,消除各部门编译时间的冲突,解决了版本编译耦合问题。能够优化解决系统平台化开发过程遇到的开发、版本及运行耦合问题,提高研发效率,降低研发成本。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种基于PaaS云平台服务器的系统开发方法,其特征在于,包括:
接收组件仓库服务器中的功能组件、系统研发平台服务器中开发产品组件的版本计划信息以及代码仓库服务器中所有功能组件的预设分组配置信息;所述功能组件包括基础组件和根据基础组件开发得到的开发产品组件;
根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像;
将所有所述程序镜像和分组信息发送到PaaS云平台服务器,以使所述PaaS云平台服务器根据所述分组信息将每个分组程序镜像放置于对应分组的容器中运行。
2.根据权利要求1所述的系统开发方法,其特征在于,所述根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,包括:
根据所述版本计划信息和所述功能组件确定当前所述开发产品组件的版本信息;
根据所述预设分组配置信息对所有功能组件进行分组,得到多个功能组件分组;
对每个功能组件分组进行组合编译,得到对应每个分组的程序镜像。
3.根据权利要求1所述的系统开发方法,其特征在于,还包括:
接收所述系统研发平台服务器中开发产品组件的分层参数信息;
根据所述分层参数信息对所述功能组件进行分层处理。
4.根据权利要求1所述的系统开发方法,其特征在于,还包括:
所述预设分组配置信息通过pom文件被记载,每个分组的所述pom文件是按照设定策略将所述开发产品组件对应的开发人员所属部门、开发产品组件的坐标信息以及参数配置信息进行分组合并得到。
5.一种基于PaaS云平台服务器的系统运行方法,其特征在于,包括:
响应于用户的程序调用请求,根据用户信息确定对应的分组信息;
根据确定的所述分组信息运行对应容器分组中的程序镜像;
向所述用户发送程序镜像运行结果;其中,
所述程序镜像和对应的分组信息各自是根据预设分组配置信息、版本计划信息,对所有功能组件进行编译得到多个分组信息和多个程序镜像中的一个;所述功能组件包括基础组件和根据基础组件开发得到的开发产品组件。
6.根据权利要求5所述的系统运行方法,其特征在于,还包括:
当接收到更新版本的程序镜像后,执行迭代操作,使所述更新版本的程序镜像运行在一个容器中,并关联对应的旧版本的程序镜像,停机其中一个旧版本程序镜像运行的容器,用当前更新版本的程序镜像运行的容器替代停机的容器,并将其划入所述程序镜像对应的容器分组中,直至当前容器分组中的所有容器运行所述更新版本的程序镜像。
7.一种基于PaaS云平台服务器的编译服务器,其特征在于,包括:
接收模块,接收组件仓库服务器中的功能组件、系统研发平台服务器中开发产品组件的版本计划信息以及代码仓库服务器中所有功能组件的预设分组配置信息;所述功能组件包括基础组件和根据基础组件开发得到的开发产品组件;
编译模块,根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像;
云平台服务器发送模块,将所有所述程序镜像和分组信息发送到PaaS云平台服务器,以使所述PaaS云平台服务器根据所述分组信息将每个分组程序镜像放置于对应分组的容器中运行。
8.根据权利要求7所述的编译服务器,其特征在于,所述编译模块,包括:
版本信息确定单元,根据所述版本计划信息和所述功能组件确定当前所述开发产品组件的版本信息;
分组单元,根据所述预设分组配置信息对所有功能组件进行分组,得到多个功能组件分组;
组合编译单元,对每个功能组件分组进行组合编译,得到对应每个分组的程序镜像。
9.根据权利要求7所述的编译服务器,其特征在于,还包括:
分层参数信息接收模块,接收所述系统研发平台服务器中开发产品组件的分层参数信息;
分层处理模块,根据所述分层参数信息对所述功能组件进行分层处理。
10.根据权利要求7所述的编译服务器,其特征在于,还包括:
所述预设分组配置信息通过pom文件被记载,每个分组的所述pom文件是按照设定策略将所述开发产品组件对应的开发人员所属部门、开发产品组件的坐标信息以及参数配置信息进行分组合并得到。
11.一种PaaS云平台服务器,其特征在于,包括:
分组信息确定模块,响应于用户的程序调用请求,根据用户信息确定对应的分组信息;
程序镜像运行模块,根据确定的所述分组信息运行对应容器分组中的程序镜像;
运行结果发送模块,向所述用户发送程序镜像运行结果;其中,
所述程序镜像和对应的分组信息各自是根据预设分组配置信息、版本计划信息,对所有功能组件进行编译得到多个分组信息和多个程序镜像中的一个;所述功能组件包括基础组件和根据基础组件开发得到的开发产品组件。
12.根据权利要求11所述的PaaS云平台服务器,其特征在于,还包括:
迭代更新模块,当接收到更新版本的程序镜像后,执行迭代操作,使所述更新版本的程序镜像运行在一个容器中,并关联对应的旧版本的程序镜像,停机其中一个旧版本程序镜像运行的容器,用当前更新版本的程序镜像运行的容器替代停机的容器,并将其划入所述程序镜像对应的容器分组中,直至当前容器分组中的所有容器运行所述更新版本的程序镜像。
13.一种基于PaaS云平台的系统开发系统,其特征在于,包括:
组件仓库服务器,包括功能组件,所述功能组件包括基础组件和开发人员上传的开发产品组件;
系统研发平台服务器,根据开发人员上传的开发产品组件的配置信息生成预设分组配置信息;所述配置信息包括组件坐标和版本计划信息;
代码仓库服务器,接收系统研发平台服务器发送的所有功能组件的预设分组配置信息;
编译服务器,根据所述预设分组配置信息、版本计划信息以及所述功能组件,对所有功能组件进行编译,得到分组信息和对应每个分组的程序镜像;
镜像仓库服务器,接收所述编译服务器发送的每个分组的程序镜像;
分组信息仓库服务器,接收所述编译服务器发送的分组信息;
PaaS云平台服务器,根据所述分组信息将每个分组程序镜像放置于对应分组的容器中运行。
14.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4任一项所述的基于PaaS云平台服务器的系统开发方法,或者权利要求5-6任一项所述的系统运行方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至4任一项所述的基于PaaS云平台服务器的系统开发方法,或者权利要求5-6任一项所述的系统运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010150544.1A CN111352653B (zh) | 2020-03-06 | 2020-03-06 | 基于PaaS云平台服务器的系统开发方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010150544.1A CN111352653B (zh) | 2020-03-06 | 2020-03-06 | 基于PaaS云平台服务器的系统开发方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352653A CN111352653A (zh) | 2020-06-30 |
CN111352653B true CN111352653B (zh) | 2023-07-14 |
Family
ID=71197442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010150544.1A Active CN111352653B (zh) | 2020-03-06 | 2020-03-06 | 基于PaaS云平台服务器的系统开发方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111352653B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597133A (zh) * | 2020-12-29 | 2021-04-02 | 深圳复临科技有限公司 | 一种百人研发团队项目管理场景的数据应用管理系统 |
CN112925609B (zh) * | 2021-03-01 | 2022-03-15 | 浪潮云信息技术股份公司 | OpenStack云平台升级方法及装置 |
CN112965785B (zh) * | 2021-03-05 | 2023-06-13 | 食亨(上海)科技服务有限公司 | 基于容器的微服务应用开发方法及开发平台 |
CN113127846B (zh) * | 2021-05-17 | 2022-12-09 | 济南博观智能科技有限公司 | 一种软件授权方法、装置、设备及存储介质 |
CN115268929B (zh) * | 2022-07-26 | 2023-04-28 | 成都智元汇信息技术股份有限公司 | 一种支持轻交付部署的极简运维方法 |
CN115390719B (zh) * | 2022-09-07 | 2023-09-19 | 中移互联网有限公司 | 聊天机器人消息页面菜单管理方法及电子设备、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942051A (zh) * | 2014-04-15 | 2014-07-23 | 新浪网技术(中国)有限公司 | 基于paas平台的应用部署方法和装置 |
CN107220100A (zh) * | 2016-03-22 | 2017-09-29 | 中国移动(深圳)有限公司 | 一种开发运维方法、装置及云计算PaaS平台 |
CN108196843A (zh) * | 2018-01-09 | 2018-06-22 | 成都睿码科技有限责任公司 | 可视化Docker容器自动编译部署的运维方法 |
CN110347395A (zh) * | 2018-04-03 | 2019-10-18 | 中移信息技术有限公司 | 基于云计算平台的软件发布方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9690547B1 (en) * | 2015-12-18 | 2017-06-27 | International Business Machines Corporation | Dynamic setup of development environments |
-
2020
- 2020-03-06 CN CN202010150544.1A patent/CN111352653B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942051A (zh) * | 2014-04-15 | 2014-07-23 | 新浪网技术(中国)有限公司 | 基于paas平台的应用部署方法和装置 |
CN107220100A (zh) * | 2016-03-22 | 2017-09-29 | 中国移动(深圳)有限公司 | 一种开发运维方法、装置及云计算PaaS平台 |
CN108196843A (zh) * | 2018-01-09 | 2018-06-22 | 成都睿码科技有限责任公司 | 可视化Docker容器自动编译部署的运维方法 |
CN110347395A (zh) * | 2018-04-03 | 2019-10-18 | 中移信息技术有限公司 | 基于云计算平台的软件发布方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111352653A (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111352653B (zh) | 基于PaaS云平台服务器的系统开发方法及服务器 | |
CN109739523B (zh) | 应用程序打包方法、装置、存储介质及终端 | |
EP2003854B1 (en) | Server for communicating with multi-mode devices using multi-mode applications | |
CN112199105A (zh) | 功能组合式软件开发的方法、系统、介质及电子设备 | |
US20080313594A1 (en) | System and method for creating multi-mode applications | |
US20080311886A1 (en) | Server for communicating with multi-mode devices using multi-mode applications | |
CN101248416A (zh) | 组件架构 | |
CN113626002A (zh) | 一种服务执行方法及装置 | |
CN113296742A (zh) | App数据处理方法、装置及移动终端 | |
CN117112122A (zh) | 一种集群部署方法和装置 | |
CN107896242B (zh) | 一种服务共享方法及装置 | |
CA2635172C (en) | Device for communicating in multiple modes using multi-mode applications | |
CN113254825A (zh) | 页面生成的方法、装置、电子设备和存储介质 | |
CN111683005A (zh) | 一种物联网智能网关设备及其构建方法 | |
US9425988B2 (en) | Device for communicating in multiple modes using multi-mode applications | |
CN101414260B (zh) | 用于创建多模式应用的系统和方法 | |
KR20080022934A (ko) | 유비쿼터스 환경에서 애플리케이션의 분산 및 이동성을위한 애플리케이션 프레임워크 시스템 | |
US12039473B2 (en) | Software development project infrastructure builder tool | |
CN113268272B (zh) | 基于私有云的应用交付方法、装置及系统 | |
CN111414232B (zh) | 虚拟机模板数据处理方法及装置 | |
CN113835827A (zh) | 基于容器Docker的应用部署方法、装置及电子设备 | |
CN112799813A (zh) | 分布式作业服务调度方法、分布式服务器及业务终端 | |
CN112463212B (zh) | 一种支持跨系统平台的环境搭建方法及装置 | |
CN118170426A (zh) | 基于微前端单仓架构的业务处理方法、装置以及架构 | |
CN117076007B (zh) | 降低中台架构代码侵入的方法、装置及中台系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |