CN111367534B - 一种基于应用环境的服务编排方法及系统 - Google Patents
一种基于应用环境的服务编排方法及系统 Download PDFInfo
- Publication number
- CN111367534B CN111367534B CN202010195229.0A CN202010195229A CN111367534B CN 111367534 B CN111367534 B CN 111367534B CN 202010195229 A CN202010195229 A CN 202010195229A CN 111367534 B CN111367534 B CN 111367534B
- Authority
- CN
- China
- Prior art keywords
- service
- application
- deployment
- micro
- machine
- 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 43
- 238000004458 analytical method Methods 0.000 claims abstract description 17
- 230000001419 dependent effect Effects 0.000 claims description 30
- 238000013459 approach Methods 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 10
- 238000012544 monitoring process Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 101150013335 img1 gene Proteins 0.000 description 1
- 101150071665 img2 gene Proteins 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 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/60—Software deployment
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于应用环境的服务编排方法及系统,属于微服务应用运维技术领域,解决了现有部署微服务应用需要重复设置基础参数、无法实现多种部署方式兼容切换等问题。方法步骤如下:初始化部署系统的一个或多个应用环境和基础服务,获取环境编码和服务编码;在部署系统中新增各应用环境下能够运行待部署微服务应用的机器的机器信息;在部署系统中新增待部署微服务应用,获取微服务应用的应用编码;基于服务编码和应用编码得到服务编排文件;利用服务编排解析引擎解析服务编排文件,确定所部署的应用环境和目标部署机器,获取服务部署引擎;利用服务部署引擎进行服务部署;服务部署成功后,产生微服务应用实例,运行在目标部署机器上。
Description
技术领域
本发明涉及微服务应用运维技术领域,尤其涉及一种基于应用环境的服务编排方法及系统。
背景技术
随着信息技术的发展,微服务已经成为软件架构领域最流行的热词之一。微服务是为适应当前互联网快速发展,互联网应用快速迭代、快速部署而产生的技术架构,微服务强调的是在共享硬件资源的基础上隔离,系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。
部署微服务应用数量多,监控进程多,管理的机器多,应用的配置多,部署的环境多等等,让运维复杂度陡增。如果每套应用环境的基础服务都需要开发人员去部署,则部署每个微服务应用都需要设置重复的基础参数;同时,针对物理机,虚拟机或容器的部署都无法很好的兼容切换,那么势必会造成开发效率的大大降低,并容易造成部署的出错。
发明内容
鉴于上述的分析,本发明旨在提供一种基于应用环境的服务编排方法及系统,用以解决现有技术的上述至少一个缺陷。
本发明的目的主要是通过以下技术方案实现的:
一方面,提供了一种基于应用环境的服务编排方法,用于在部署系统中部署微服务应用;所述方法包括以下步骤:
初始化所述部署系统的一个或多个应用环境和基础服务,获取所述应用环境的环境编码和所述基础服务的服务编码;
在部署系统中新增各应用环境下能够运行待部署微服务应用的机器的一个或多个机器信息;
在部署系统中新增所述待部署微服务应用,并获取所述微服务应用的应用编码;
基于所述服务编码和所述应用编码,得到服务编排文件;
利用服务编排解析引擎对所述服务编排文件进行解析,确定所部署的应用环境和目标部署机器,并获取服务部署引擎;以及,利用所述服务部署引擎进行服务部署;若无法通过解析所述服务编排文件确定所部署的环境和目标部署机器,则通过选择环境编码确定所部署的应用环境和目标部署机器;
所述服务部署成功后,产生微服务应用实例,运行在所述目标部署机器上。
在上述方案的基础上,还进行了如下改进:
进一步,所述初始化应用环境,包括:
执行部署系统后台的数据库初始化应用环境脚本,该数据库初始化应用环境脚本中至少包括环境名和环境编码;或者,获取输入的应用环境的环境名和环境编码,在部署系统的界面上直接新增所述应用环境。
进一步,所述初始化部署系统的基础服务,包括:
通过执行部署系统后台的数据库初始化基础服务脚本,实现初始化部署系统的基础服务;其中,数据库初始化基础服务脚本中至少包括以下信息:服务名称,服务编码,服务类型,服务版本,服务路径,默认运行配置,服务文件签名。
进一步,所述机器为物理机、虚拟机或容器宿主机器;所述机器信息至少包括:机器名称、帐号、密码、IP、连接端口。
进一步,服务编排文件包括以下内容:
服务编排名称,服务编排版本,实例数量,镜像名称,镜像,内存限制,依赖服务,运行参数配置,运行端口,元数据信息;
其中,
所述镜像,用于指向所述应用编码;
所述依赖服务,指当前微服务应用依赖的基础服务或当前服务编排文件上的其它微服务应用;所述基础服务依赖填入方式为:-T+服务编码;其它微服务应用依赖填入方式为:-D+当前服务编排文件上其它微服务应用的应用编码;
所述运行参数配置,包括部署到特定机器、指定服务部署引擎。
进一步,所述服务编排解析引擎通过执行以下操作对所述服务编排文件进行解析:
若所述运行参数配置信息配置了部署到特定机器,则将所述特定机器作为目标部署机器,将匹配于所述目标部署机器的应用环境作为所部署的应用环境;
若所述依赖服务中指示了当前微服务应用依赖的基础服务,则获取服务编排文件上的微服务应用所依赖的基础服务,并将该基础服务实例的信息引用到当前微服务应用上;若所述依赖服务中指示了当前服务编排文件上的其它微服务应用,则将所述其它微服务应用实例的信息引用到当前微服务应用上;
获取服务部署引擎。
进一步,通过以下方式获取服务部署引擎:
若所述运行参数配置信息配置了指定服务部署引擎,则基于所述运行参数配置信息,获取服务部署引擎;否则,执行以下操作:
所述服务编排引擎检测所述目标部署机器是否符合容器部署条件,若符合,则将服务编排文件中的镜像指向的应用编码转换成dockerfile文件,构建成容器镜像,并采用容器部署引擎进行部署;否则,采用原生部署引擎进行部署。
进一步,所述原生部署引擎通过执行以下操作实现服务部署:
对目标部署机器进行运行环境检测,确定是否符合部署微服务应用;若不符合,则进行运行环境的安装;
检测所述服务编排文件上该微服务应用的运行端口在所述目标部署机器上是否可用;若所述运行端口被占用,则以端口递增方式申请,直到获取到可用的端口;
检测目标部署机器中是否存在当前微服务应用部署目录,若不存在,则进行创建;
对需要部署的微服务应用进行配置的更新;
将更新后的微服务应用,复制到目标部署机器;
根据服务编排文件上运行参数配置节点上的信息,生成运行参数;
启动微服务应用,并基于所述运行参数在后台运行。
另一方面,还提供了一种基于应用环境的服务编排系统,用于在部署系统中部署微服务应用;所述系统包括:
应用环境模块,用于初始化所述部署系统的一个或多个应用环境,获取所述应用环境的环境编码;
基础服务模块,用于初始化所述部署系统的基础服务,获取所述基础服务的服务编码;
机器信息存储模块,用于在部署系统中新增各应用环境下能够运行待部署微服务应用的机器的一个或多个机器信息;
微服务应用模块,用于在部署系统中新增所述待部署微服务应用,并获取所述微服务应用的应用编码;
服务编排文件生成模块,用于基于所述服务编码和所述应用编码,得到服务编排文件;
服务解析和部署模块,用于利用服务编排解析引擎对所述服务编排文件进行解析,确定所部署的应用环境和目标部署机器,并获取服务部署引擎;以及,利用所述服务部署引擎进行服务部署;若无法通过解析所述服务编排文件确定所部署的环境和目标部署机器,则通过选择环境编码确定所部署的应用环境和目标部署机器;
微服务应用实例生成模块,用于所述服务部署成功后,产生微服务应用实例,运行在所述目标部署机器上。
在上述方案的基础上,还进行了如下改进:
所述服务编排文件生成模块得到的服务编排文件包括以下内容:
服务编排名称,服务编排版本,实例数量,镜像名称,镜像,内存限制,依赖服务,运行参数配置,运行端口,元数据信息;
其中,
所述镜像,用于指向所述应用编码;
所述依赖服务,指当前微服务应用依赖的基础服务或当前服务编排文件上的其它微服务应用;所述基础服务依赖填入方式为:-T+服务编码;其它微服务应用依赖填入方式为:-D+当前服务编排文件上其它微服务应用的应用编码;
所述运行参数配置,包括部署到特定机器、指定服务部署引擎;
在所述服务解析和部署模块中,服务编排解析引擎通过执行以下操作对所述服务编排文件进行解析:
若所述运行参数配置信息配置了部署到特定机器,则将所述特定机器作为目标部署机器,将匹配于所述目标部署机器的应用环境作为所部署的应用环境;
若所述依赖服务中指示了当前微服务应用依赖的基础服务,则获取服务编排文件上的微服务应用所依赖的基础服务,并将该基础服务实例的信息引用到当前微服务应用上;若所述依赖服务中指示了当前服务编排文件上的其它微服务应用,则将所述其它微服务应用实例的信息引用到当前微服务应用上;
获取服务部署引擎。
本发明的有益效果如下:
本发明提供的基于应用环境的服务编排方法,能将任何微服务应用部署到任何应用环境上,仅通过一套服务编排文件,即可灵活切换微服务应用在物理机、虚拟机或容器的编排部署,弥补了现有服务编排文件仅能实现容器部署的缺陷;同时,该方法中提出了基础服务的概念,将基础服务独立出来,实现了基础服务自动部署;基础应用服务无须反复创建和部署,微服务应用无须关心基础服务的创建;此外,该方法有效解决了微服务实例零散化现象,提供完善统计、监控、运维功能,减少运维成本和误操作,提高机器的利用率,提供灵活的伸缩性,提供方便的API接入。
本发明提供的基于应用环境的服务编排系统,与上述方法基于同样的原理实现,具备相同的技术效果。
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书、权利要求书以及附图中所特别指出的内容中来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本发明实施例1中基于应用环境的服务编排方法流程图;
图2为本发明实施例2中基于应用环境的服务编排系统的结构示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
首先,对本实施例中用到的相关术语作如下描述:
基础服务,指能够重复使用、并且能稳定运行的应用或中间件,如配置中心,用户中心,注册中心,缓存,数据库,消息队列等。
微服务应用,指基于SpingCloud或Dubbo等微服务框架开发出来的应用。
物理机,指相对于虚拟机而言的对实体计算机的称呼。物理机提供给虚拟机以硬件环境,有时也称为“寄主”或“宿主”。
虚拟机(VirtualMachine),指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,如vmware。
容器,指有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求,如docker。
实例,指基础服务或微服务应用在物理机、虚拟机或容器上运行起来后的状态,通俗来说,即微服务应用的一个进程即一个实例。
实施例1
本发明的一个具体实施例,公开了一种基于应用环境的服务编排方法,用于在部署系统中部署微服务应用;流程图如图1所示,包括以下步骤:
步骤S1:初始化所述部署系统的一个或多个应用环境和基础服务,获取所述应用环境的环境编码和所述基础服务的服务编码;其中,
步骤S11:初始化应用环境;
优选地,可通过以下方式实现初始化应用环境:执行部署系统后台的数据库初始化应用环境脚本,其中,该数据库初始化应用环境脚本中至少包括以下信息:环境名、环境编码;或者,直接在部署系统的界面上新增应用环境,此时,需要输入新增的应用环境的环境名、环境编码等信息。环境编码为应用环境的唯一标识,贯穿整个部署系统,环境名为界面展示使用。
需要说明的是,这里的应用环境具体指微服务应用所需要运行的环境变量信息,可以包括以下一种多种:开发环境,测试环境,预发布环境,生产环境等。
上述部署系统,指的是可以提供一个微服务应用云管理和部署的平台。在部署系统上,能够实现多种微服务自动部署、解决微服务实例零散化现象、提供完善统计、监控、运维功能、减少运维成本和误操作,提高机器的利用率,提供灵活的伸缩性,提供方便的API接入。
步骤S12:初始化部署系统的基础服务;
考虑到在现有技术中,基础服务在各套环境会被反复部署,如果每次都需要人工重复操作,会使得服务编排效率低下,也增加了重复的工作量。因此,在本实施中,将能够重复使用、并且能稳定运行的应用或中间件定义为基础服务,并预先实现基础服务的初始化,由此,当需要在应用环境上部署基础服务的时候,部署系统会自动根据步骤5中服务编排文件的描述自动进行部署,无须人工预先操作部署。优选地,根据上述定义,基础服务可以包括:配置中心,服务编码:CONFIG;用户中心,服务编码:USERCENTER;注册中心,服务编码:REGISTER;缓存,服务编码:CACHE;数据库,服务编码:DATABASE;消息队列,服务编码:MESSAGE等。
具体地,通过执行部署系统后台的数据库初始化基础服务脚本,实现初始化部署系统的基础服务;其中,数据库初始化基础服务脚本中至少包括以下信息:服务名称,服务编码,服务类型,服务版本,服务路径,默认运行配置,服务文件签名;可选地,还可以包括:服务描述;需要说明的是,该步骤中初始化后的基础服务,是可以被服务编排解析引擎支持的。同时,基础服务被服务编排解析引擎解析后,能够被部署的微服务应用所引用。服务编码为基础服务在部署系统的唯一标识,贯穿整个部署系统。
步骤S2:在部署系统中新增各应用环境下能够运行待部署微服务应用的机器的机器信息;从而建立起应用环境与机器信息的关联关系,该关联关系可以通过应用环境的环境编码实现;
优选地,机器信息至少包括:机器名称、帐号、密码、IP、连接端口;还可以包括:机房、主机CPU核数、内存、硬盘大小、操作系统、操作系统版本等信息。在上述机器信息中,需要连接机器的信息为必须项(即机器名称、帐号、密码、IP、连接端口),其他项目可以连接后通过执行命令获取到。
优选地,当微服务应用部署在物理机或虚拟机上时,上述机器信息即为物理机或虚拟机的机器信息;当微服务应用部署在容器上时,上述机器信息为容器宿主机器的信息,其中,宿主可以是虚拟机或物理机。
步骤S3:在部署系统中新增所述待部署微服务应用,并获取所述微服务应用的应用编码;
优选地,可以通过url地址下载或微服务应用上传的方式,将需要部署的微服务应用存储到部署系统。
例如,当通过url地址下载方式存储微服务应用时,是通过url地址下载微服务应用到部署系统的文件存储系统,应用地址指微服务应用在文件存储系统上的绝对路径,应用来源描述为通过url下载;当通过微服务应用上传的方式存储微服务应用时,是直接上传到部署系统的文件存储系统,应用地址也是指微服务应用对应在文件存储系统上的绝对路径,应用来源描述为通过文件上传。
上传的微服务应用,至少包括以下信息:应用名称,应用编码,应用类型,应用版本,应用地址,应用来源,默认运行配置,应用文件签名;可选地,还可以包括:应用描述。需要说明的是,上传的微服务应用如果通过标准的自动化构建工具构建的,如:maven,gradle等,部署系统能够自动的从微服务应用读取到信息,至少包括:应用名称,应用编码,应用版本等。应用编码为微服务应用在部署系统的唯一标识,贯穿整个部署系统。
步骤S4:基于所述服务编码(由步骤S1确定)和所述应用编码(由步骤S3确定),得到服务编排文件;
本实施例中的服务编排文件,既能部署到物理机或虚拟机,也能部署到容器。由于本行业中大部分部署系统都会在每套应用环境上编写一个服务编排文件,因此,通过这种方式编写的服务编排文件不具备不同应用环境下的通用性。而在本部署系统中,通过服务编排文件描述的微服务应用和基础服务的关系,并通过应用环境去获取当前基础服务的实例,以实现微服务应用在各个应用环境上的灵活部署。需要说明的是,本实施例中,在一个服务编排文件上,可以编排一个或多个微服务应用。
优选地,编写的服务编排文件包括以下内容:
服务编排名称,服务编排版本,实例数量,镜像名称,镜像,内存限制,依赖服务,运行参数配置,运行端口,元数据信息;可选地,还可以包括设备映射,文件系统挂载,网络模式等;
需要说明的是,在编写服务编排文件过程中,需要注意几个关键的要素:
(1)服务编排名称,该服务编排文件的唯一性标识;
(2)服务编排版本,该服务编排文件的版本号;
(3)实例数量,指微服务应用需要部署的实例个数,该参数大大提高微服务应用部署的伸缩性;
(4)镜像名称,为当前镜像在本实施例中的服务编排文件上唯一标识;
(5)镜像,指向步骤S3新增的微服务应用的应用编码;
(6)内存限制,填写该微服务应用能申请的最大内存;
(7)依赖服务,指当前微服务应用依赖的基础服务或当前服务编排文件上的其它微服务应用。基础服务依赖填入方式为;-T加步骤S1的服务编码,如果微服务应用依赖了缓存基础服务(服务编码表示为CACHE),则可以这样描述-TCACHE。微服务应用依赖填入方式为:-D加上当前服务编排文件上其他微服务应用的应用编码。如果在一个服务编排文件上,描述了有两个微服务应用,第一个微服务应用的应用编码为IMG1,第二个微服务应用的应用编码为IMG2,并且第二个镜像依赖了第一个镜像,则第二个微服务应用可以描述为-DIMG1。需要说明的是,在当前服务编排文件上的其它微服务应用,这种方式属于整体编排。比如,在当前的服务编排文件上,部署的第二个微服务应用,是依赖了第一个微服务应用的。
(8)运行参数配置,填入微服务应用的运行的个性化参数。其中微服务运行的个性化参数包括:部署到特定机器,开启GC日志,开启远程调试,指定服务部署引擎等。
(9)运行端口:该微服务应用运行后,对外提供服务的端口。
在实际应用过程中,可采用yml文件编辑器进行编写。编写完后,产生*.yml格式的服务编排文件。
步骤S5:利用服务编排解析引擎对所述服务编排文件进行解析,确定所部署的应用环境和目标部署机器,并获取服务部署引擎;以及,利用所述服务部署引擎进行服务部署;若无法通过解析所述服务编排文件确定所部署的环境和目标部署机器,则通过选择环境编码确定所部署的应用环境和目标部署机器;
服务编排解析引擎对服务编排文件进行解析的具体过程为:
步骤S51:服务编排解析引擎检测服务编排文件的运行参数配置信息,确定用户是否配置部署到特定机器,若是,则不进行机器的选择,直接将用户配置的特定机器作为目标部署机器,并将匹配于所述目标部署机器的应用环境作为所部署的应用环境;否则,服务编排解析引擎通过选择环境编码确定所部署的应用环境,并获取所部署的应用环境下的所有可部署的机器,根据每台机器的内存、CPU、硬盘、网络、操作系统、操作系统版本等信息与当前应用环境的微服务应用所需的最低条件之间的匹配关系,选择最优的一台机器作为目标部署机器进行部署。
步骤S52:若所述依赖服务中指示了当前微服务应用依赖的基础服务,则获取服务编排文件上的微服务应用所依赖的基础服务,并将该基础服务实例的信息引用到当前微服务应用上;
具体地,根据当前部署的应用环境,检测是否存在该基础服务实例。如果存在,则将该基础服务实例的信息引用到当前微服务应用上,否则会自动部署该基础服务,并将部署完成的基础服务实例存储进部署系统上,再将该基础服务实例的信息引用到当前微服务应用上;
若所述依赖服务中指示了当前服务编排文件上的其它微服务应用,则将所述其它微服务应用实例的信息引用到当前微服务应用上;
其中,基础服务实例的信息、其它微服务应用实例的信息,均至少包括,ip,端口,还可以包括,用户名,密码等。
步骤S53:获取服务部署引擎。具体地,获取所述服务编排文件中存在运行参数配置信息,若在所述服务编排文件中的运行参数配置信息配置了指定服务部署引擎,则表明用户配置了服务部署引擎,此时,基于所述运行参数配置信息,则从运行参数配置信息中取出用户要求的服务部署引擎;否则,则表明用户没有配置服务部署引擎,此时执行以下操作:
所述服务编排引擎检测所述目标部署机器是否符合容器部署条件(如:linux内核版本是否支持等),若符合,则将服务编排文件中的镜像指向的应用编码转换成dockerfile文件,构建成容器镜像,并采用容器部署引擎进行部署;否则采用原生部署引擎进行部署。
其中,容器部署引擎指的是部署到容器上时对应的部署方式;容器部署引擎核心原理是,采用的对kubernetes进行二次开发。由于该部分内容为现有技术,此处不再赘述。
原生部署引擎,指的是部署到物理机器或虚拟机时对应的部署方式;原生部署引擎核心原理是,采用插件模板式框架,对每种需要部署的服务,进行shell命令编排,最终采用ssh远程执行该命令编排的过程。
以下描述微服务应用采用原生部署引擎部署的过程,具体包括以下步骤:
步骤S54:对目标部署机器进行运行环境(指的是微服务应用的运行环境)检测,确定是否符合部署微服务应用。比如检测是否安装了JDK,JDK的版本是否符合。如果不符合,则进行环境的安装。否则,执行步骤S55;
步骤S55:检测服务编排文件上该微服务应用需要运行的运行端口在目标部署机器上是否可用;如果端口被占用,则以端口递增方式申请,直到获取到可用的端口;否则,执行步骤S56;
步骤S56:检测目标部署机器中是否存在当前微服务应用部署目录如果不存在,则进行创建;否则,执行步骤S57;
步骤S57:对需要部署的微服务应用进行配置的更新。如根据上一步获取的部署目录更新微服务应用日志的输出路径等如果当前该微服务应用引用了当前编排文件的其它微服务应用实例,也在当前步骤将其它微服务应用实例信息回填到当前微服务应用的配置上。
步骤S58:将经过上述步骤更新的微服务应用,复制到目标部署机器。
步骤S59:根据服务编排文件上运行参数配置节点上信息,生成运行参数。如开启GC日志,开启远程调试等。
步骤S510:启动微服务应用,并基于所述运行参数在后台运行。
优选地,上述服务编排解析引擎还提供外部服务调用API接口,方便其它外部系统整合进部署系统。
步骤S6:所述服务部署成功后,产生微服务应用实例,运行在所述目标部署机器上。需要说明的是,当所述机器为容器宿主机器时,所述微服务应用实例具体可描述为运行在所述容器上。
编排部署完成后,部署系统会产生守护进程,能监控微服务应用的进程是否存在,端口是否提供服务,来判断是否部署成功。微服务应用部署成功后,就会产生进程,通俗来讲该进程就是一个微服务应用实例。
上述方法还可以包括以下步骤:
步骤S7:由部署系统提供监控界面监控微服务应用的运行情况。
例如,可通过监控界面,查看应用实例的异常告警信息,运行日志,当前运行状态,服务健康情况。
实施例2
本实施例提供了一种基于应用环境的服务编排系统,用于在部署系统中部署微服务应用;结构示意图如图2所示,所述系统包括:
应用环境模块,用于初始化所述部署系统的一个或多个应用环境,获取所述应用环境的环境编码;还可用于管理应用环境中的数据,执行增删改查等操作;
基础服务模块,用于初始化所述部署系统的基础服务,获取所述基础服务的服务编码;还可用于存储服务编排、以及产生的实例信息数据等;
机器信息存储模块,用于在部署系统中新增各应用环境下能够运行待部署微服务应用的机器的一个或多个机器信息;
微服务应用模块,用于在部署系统中新增所述待部署微服务应用,并获取所述微服务应用的应用编码;
服务编排文件生成模块,用于基于所述服务编码和所述应用编码,得到服务编排文件;
服务解析和部署模块,用于利用服务编排解析引擎对所述服务编排文件进行解析,确定所部署的应用环境和目标部署机器,并获取服务部署引擎;以及,利用所述服务部署引擎进行服务部署;若无法通过解析所述服务编排文件确定所部署的环境和目标部署机器,则通过选择环境编码确定所部署的应用环境和目标部署机器;
微服务应用实例生成模块,用于所述服务部署成功后,产生微服务应用实例,运行在所述目标部署机器上。
优选地,上述系统还可以包括微服务应用实例监控模块,用于提供监控界面监控微服务应用的运行情况;
优选地,所述服务编排文件生成模块得到的服务编排文件包括以下内容:
服务编排名称,服务编排版本,实例数量,镜像名称,镜像,内存限制,依赖服务,运行参数配置,运行端口,元数据信息;
其中,
所述镜像,用于指向所述应用编码;
所述依赖服务,指当前微服务应用依赖的基础服务或当前服务编排文件上的其它微服务应用;所述基础服务依赖填入方式为:-T+服务编码;其它微服务应用依赖填入方式为:-D+当前服务编排文件上其它微服务应用的应用编码;
所述运行参数配置,包括部署到特定机器、指定服务部署引擎。
优选地,在所述服务解析和部署模块中,服务编排解析引擎通过执行以下操作对所述服务编排文件进行解析:
若所述运行参数配置信息配置了部署到特定机器,则将所述特定机器作为目标部署机器,将匹配于所述目标部署机器的应用环境作为所部署的应用环境;
若所述依赖服务中指示了当前微服务应用依赖的基础服务,则获取服务编排文件上的微服务应用所依赖的基础服务,并将该基础服务实例的信息引用到当前微服务应用上;若所述依赖服务中指示了当前服务编排文件上的其它微服务应用,则将所述其它微服务应用实例的信息引用到当前微服务应用上;
获取服务部署引擎。
本发明系统实施例的具体实施过程参见上述方法实施例即可,本实施例在此不再赘述。由于本实施例与上述方法实施例原理相同,所以本系统也具有上述方法实施例相应的技术效果。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于应用环境的服务编排方法,用于在部署系统中部署微服务应用;其特征在于,所述方法包括以下步骤:
初始化所述部署系统的一个或多个应用环境和基础服务,获取所述应用环境的环境编码和所述基础服务的服务编码;
在部署系统中新增各应用环境下能够运行待部署微服务应用的机器的一个或多个机器信息;
在部署系统中新增所述待部署微服务应用,并获取所述微服务应用的应用编码;
基于所述服务编码和所述应用编码,得到服务编排文件;
利用服务编排解析引擎对所述服务编排文件进行解析,确定所部署的应用环境和目标部署机器,并获取服务部署引擎;以及,利用所述服务部署引擎进行服务部署;若无法通过解析所述服务编排文件确定所部署的环境和目标部署机器,则通过选择环境编码确定所部署的应用环境和目标部署机器;
所述服务部署成功后,产生微服务应用实例,运行在所述目标部署机器上。
2.根据权利要求1所述的基于应用环境的服务编排方法,其特征在于,所述初始化应用环境,包括:
执行部署系统后台的数据库初始化应用环境脚本,该数据库初始化应用环境脚本中至少包括环境名和环境编码;或者,获取输入的应用环境的环境名和环境编码,在部署系统的界面上直接新增所述应用环境。
3.根据权利要求1所述的基于应用环境的服务编排方法,其特征在于,所述初始化部署系统的基础服务,包括:
通过执行部署系统后台的数据库初始化基础服务脚本,实现初始化部署系统的基础服务;其中,数据库初始化基础服务脚本中至少包括以下信息:服务名称,服务编码,服务类型,服务版本,服务路径,默认运行配置,服务文件签名。
4.根据权利要求1所述的基于应用环境的服务编排方法,其特征在于,所述机器为物理机、虚拟机或容器宿主机器;所述机器信息至少包括:机器名称、帐号、密码、IP、连接端口。
5.根据权利要求1-4中任一项所述的基于应用环境的服务编排方法,其特征在于,服务编排文件包括以下内容:
服务编排名称,服务编排版本,实例数量,镜像名称,镜像,内存限制,依赖服务,运行参数配置,运行端口,元数据信息;
其中,
所述镜像,用于指向所述应用编码;
所述依赖服务,指当前微服务应用依赖的基础服务或当前服务编排文件上的其它微服务应用;所述基础服务依赖填入方式为:-T+服务编码;其它微服务应用依赖填入方式为:-D+当前服务编排文件上其它微服务应用的应用编码;
所述运行参数配置,包括部署到特定机器、指定服务部署引擎。
6.根据权利要求5所述的基于应用环境的服务编排方法,其特征在于,所述服务编排解析引擎通过执行以下操作对所述服务编排文件进行解析:
若所述运行参数配置信息配置了部署到特定机器,则将所述特定机器作为目标部署机器,将匹配于所述目标部署机器的应用环境作为所部署的应用环境;
若所述依赖服务中指示了当前微服务应用依赖的基础服务,则获取服务编排文件上的微服务应用所依赖的基础服务,并将该基础服务实例的信息引用到当前微服务应用上;若所述依赖服务中指示了当前服务编排文件上的其它微服务应用,则将所述其它微服务应用实例的信息引用到当前微服务应用上;
获取服务部署引擎。
7.根据权利要求6所述的基于应用环境的服务编排方法,其特征在于,通过以下方式获取服务部署引擎:
若所述运行参数配置信息配置了指定服务部署引擎,则基于所述运行参数配置信息,获取服务部署引擎;否则,执行以下操作:
所述服务编排引擎检测所述目标部署机器是否符合容器部署条件,若符合,则将服务编排文件中的镜像指向的应用编码转换成dockerfile文件,构建成容器镜像,并采用容器部署引擎进行部署;否则,采用原生部署引擎进行部署。
8.根据权利要求7所述的基于应用环境的服务编排方法,其特征在于,所述原生部署引擎通过执行以下操作实现服务部署:
对目标部署机器进行运行环境检测,确定是否符合部署微服务应用;若不符合,则进行运行环境的安装;
检测所述服务编排文件上该微服务应用的运行端口在所述目标部署机器上是否可用;若所述运行端口被占用,则以端口递增方式申请,直到获取到可用的端口;
检测目标部署机器中是否存在当前微服务应用部署目录,若不存在,则进行创建;
对需要部署的微服务应用进行配置的更新;
将更新后的微服务应用,复制到目标部署机器;
根据服务编排文件上运行参数配置节点上的信息,生成运行参数;
启动微服务应用,并基于所述运行参数在后台运行。
9.一种基于应用环境的服务编排系统,用于在部署系统中部署微服务应用;其特征在于,所述系统包括:
应用环境模块,用于初始化所述部署系统的一个或多个应用环境,获取所述应用环境的环境编码;
基础服务初始化模块,用于初始化所述部署系统的基础服务,获取所述基础服务的服务编码;
机器信息存储模块,用于在部署系统中新增各应用环境下能够运行待部署微服务应用的机器的一个或多个机器信息;
微服务应用模块,用于在部署系统中新增所述待部署微服务应用,并获取所述微服务应用的应用编码;
服务编排文件生成模块,用于基于所述服务编码和所述应用编码,得到服务编排文件;
服务解析和部署模块,用于利用服务编排解析引擎对所述服务编排文件进行解析,确定所部署的应用环境和目标部署机器,并获取服务部署引擎;以及,利用所述服务部署引擎进行服务部署;若无法通过解析所述服务编排文件确定所部署的环境和目标部署机器,则通过选择环境编码确定所部署的应用环境和目标部署机器;
微服务应用实例生成模块,用于所述服务部署成功后,产生微服务应用实例,运行在所述目标部署机器上。
10.根据权利要求9所述的基于应用环境的服务编排系统,其特征在于,
所述服务编排文件生成模块得到的服务编排文件包括以下内容:
服务编排名称,服务编排版本,实例数量,镜像名称,镜像,内存限制,依赖服务,运行参数配置,运行端口,元数据信息;
其中,
所述镜像,用于指向所述应用编码;
所述依赖服务,指当前微服务应用依赖的基础服务或当前服务编排文件上的其它微服务应用;所述基础服务依赖填入方式为:-T+服务编码;其它微服务应用依赖填入方式为:-D+当前服务编排文件上其它微服务应用的应用编码;
所述运行参数配置,包括部署到特定机器、指定服务部署引擎;
在所述服务解析和部署模块中,服务编排解析引擎通过执行以下操作对所述服务编排文件进行解析:
若所述运行参数配置信息配置了部署到特定机器,则将所述特定机器作为目标部署机器,将匹配于所述目标部署机器的应用环境作为所部署的应用环境;
若所述依赖服务中指示了当前微服务应用依赖的基础服务,则获取服务编排文件上的微服务应用所依赖的基础服务,并将该基础服务实例的信息引用到当前微服务应用上;若所述依赖服务中指示了当前服务编排文件上的其它微服务应用,则将所述其它微服务应用实例的信息引用到当前微服务应用上;
获取服务部署引擎。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010195229.0A CN111367534B (zh) | 2020-03-19 | 2020-03-19 | 一种基于应用环境的服务编排方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010195229.0A CN111367534B (zh) | 2020-03-19 | 2020-03-19 | 一种基于应用环境的服务编排方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111367534A CN111367534A (zh) | 2020-07-03 |
CN111367534B true CN111367534B (zh) | 2023-05-09 |
Family
ID=71209043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010195229.0A Active CN111367534B (zh) | 2020-03-19 | 2020-03-19 | 一种基于应用环境的服务编排方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111367534B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112083912B (zh) * | 2020-08-17 | 2024-03-12 | 山东中创软件商用中间件股份有限公司 | 服务编排的中间结果处理方法、装置、设备及存储介质 |
CN112181439A (zh) * | 2020-09-24 | 2021-01-05 | 中国建设银行股份有限公司 | 一种微服务部署方法、装置、电子设备及可读存储介质 |
CN112491607A (zh) * | 2020-11-21 | 2021-03-12 | 广州西麦科技股份有限公司 | 一种用于管理应用部署的方法及系统 |
CN114721764A (zh) * | 2020-12-18 | 2022-07-08 | 中兴通讯股份有限公司 | 业务编排部署方法、系统、网络设备和存储介质 |
CN113342464A (zh) * | 2021-06-19 | 2021-09-03 | 南威软件股份有限公司 | 一种基于容器服务的应用构建部署方法 |
CN114816357A (zh) * | 2022-04-11 | 2022-07-29 | 湖南三湘银行股份有限公司 | 一种服务于流程银行的服务编排系统 |
WO2024065191A1 (en) * | 2022-09-27 | 2024-04-04 | Siemens Aktiengesellschaft | Method, apparatus, electronic device, and readable storage medium for orchestrating microservices |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487870A (zh) * | 2015-11-30 | 2016-04-13 | 中电科华云信息技术有限公司 | 跨基础设施的应用环境编排的方法及系统 |
US20180088935A1 (en) * | 2016-09-27 | 2018-03-29 | Ca, Inc. | Microservices application configuration based on runtime environment |
CN110780914B (zh) * | 2018-07-31 | 2022-12-27 | 中国移动通信集团浙江有限公司 | 服务发布方法及装置 |
CN110286884B (zh) * | 2019-06-21 | 2023-10-13 | 北京百度网讯科技有限公司 | 微服务编排方法、装置、设备及计算机可读存储介质 |
CN110532020B (zh) * | 2019-09-04 | 2023-12-05 | 中国工商银行股份有限公司 | 一种微服务编排的数据处理方法、装置及系统 |
-
2020
- 2020-03-19 CN CN202010195229.0A patent/CN111367534B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111367534A (zh) | 2020-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111367534B (zh) | 一种基于应用环境的服务编排方法及系统 | |
US8589522B2 (en) | Incrementally updatable system software infrastructure for sensor networks | |
CN107577475B (zh) | 一种数据中心集群系统的软件包管理方法及系统 | |
US20210141625A1 (en) | Container image building using shared resources | |
US8892700B2 (en) | Collecting and altering firmware configurations of target machines in a software provisioning environment | |
US9411570B2 (en) | Integrating software provisioning and configuration management | |
US8782204B2 (en) | Monitoring hardware resources in a software provisioning environment | |
US8775578B2 (en) | Providing hardware updates in a software environment | |
US8402123B2 (en) | Systems and methods for inventorying un-provisioned systems in a software provisioning environment | |
US9250672B2 (en) | Cloning target machines in a software provisioning environment | |
US8417926B2 (en) | Systems and methods for providing configuration management services from a provisioning server | |
US20100058330A1 (en) | Methods and systems for importing software distributions in a software provisioning environment | |
US20060265469A1 (en) | XML based scripting framework, and methods of providing automated interactions with remote systems | |
CN111459539B (zh) | 基于镜像分层的持续集成流水线运行方法及装置 | |
WO2010113160A1 (en) | A method and system for emulating desktop software applications in a mobile communication network | |
CN111984269A (zh) | 提供应用构建服务的方法及应用构建平台 | |
CN112685035A (zh) | 项目开发方法及装置、计算机可读存储介质、电子设备 | |
CN111984270A (zh) | 应用部署方法和系统 | |
JP2016529602A (ja) | ファームウェア仮想化のための方法および装置 | |
CN110928554A (zh) | 一种部署方法、装置、设备及存储介质 | |
US11144292B2 (en) | Packaging support system and packaging support method | |
CN117112122A (zh) | 一种集群部署方法和装置 | |
CN116244186A (zh) | 一种操作系统测试管理方法、装置与计算设备 | |
Sethi et al. | Rapid deployment of SOA solutions via automated image replication and reconfiguration | |
CN112685051A (zh) | 自动执行shell脚本的方法、装置、平台及存储介质 |
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 |