CN111913721A - 自动化部署方法、装置、设备及存储介质 - Google Patents

自动化部署方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111913721A
CN111913721A CN202010685500.9A CN202010685500A CN111913721A CN 111913721 A CN111913721 A CN 111913721A CN 202010685500 A CN202010685500 A CN 202010685500A CN 111913721 A CN111913721 A CN 111913721A
Authority
CN
China
Prior art keywords
deployment
component
target application
task
generate
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.)
Granted
Application number
CN202010685500.9A
Other languages
English (en)
Other versions
CN111913721B (zh
Inventor
杨沛
周钧
王雨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Travelsky Holding Co
Original Assignee
China Travelsky Holding Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Travelsky Holding Co filed Critical China Travelsky Holding Co
Priority to CN202010685500.9A priority Critical patent/CN111913721B/zh
Publication of CN111913721A publication Critical patent/CN111913721A/zh
Application granted granted Critical
Publication of CN111913721B publication Critical patent/CN111913721B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

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

自动化部署方法、装置、设备及存储介质
技术领域
本发明涉及自动化部署技术领域,更具体的说,涉及一种自动化部署方法、装置、设备及存储介质。
背景技术
随着云计算技术的成熟和基础设施的完备,以及新的架构范式的出现,自动化部署已经被业界快速接受并付诸实践,成为提高交付效率的必备技术手段。
自动化部署平台或工具大多针对的是基于微服务或容器技术的应用,对传统服务架构下应用的适用度并不高,更无法兼容某些企业私有中间件的操作。然而对于大型的传统计算机信息企业,短时间内无法将大量的传统应用转移成微服务应用。并且,与微服务应用不同,传统服务架构下应用大部分采用松管控模式管理,给予技术人员自由度较高,开发人员可以不同的技术实现方式来实现应用的业务需求,导致复杂多样的技术类型也给传统应用的自动化部署实现增加了难度。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
一种自动化部署方法,包括:
将目标应用的部署流程抽象为组件;所述目标应用的部署流程中包括多个子操作,所述组件中包括多个组件方法,所述多个组件方法与所述多个子操作一一对应;所述目标应用为采用不同技术框架的多种应用中的任意一种;
按照用户设定的编排顺序,将所述组件内的多个组件方法进行编排并封装,以生成任务模板;
将部署所述目标应用所需的资源,加载到所述任务模板中,以生成任务实例;
通过调用预置的部署引擎,来执行所述任务实例,以完成所述目标应用的自动化部署。
一种自动化部署装置,包括:
应用抽象单元,用于将目标应用的部署流程抽象为组件;所述目标应用的部署流程中包括多个子操作,所述组件中包括多个组件方法,所述多个组件方法与所述多个子操作一一对应;所述目标应用为采用不同技术框架的多种应用中的任意一种;
任务模板单元,用于按照用户设定的编排顺序,将所述组件内的多个组件方法进行编排并封装,以生成任务模板;
任务实例单元,用于将部署所述目标应用所需的资源,加载到所述任务模板中,以生成任务实例;
部署引擎单元,用于通过调用预置的部署引擎,来执行所述任务实例,以完成所述目标应用的自动化部署。
一种自动化部署设备,包括:存储器与处理器;
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,以执行前述的自动化部署方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序在被处理器执行时,实现前述的自动化部署方法。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本发明实施例提供的自动化部署方法的基本流程图;
图2为本发明实施例提供的应用抽象过程的流程图;
图3为本发明实施例提供的自动化部署方法的系统流程图;
图4为本发明实施例提供的自动化部署方案的应用示例图;
图5为本发明实施例提供的自动化部署装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
早期,人们的关注点主要集中在软件开发环节,关注于需求管理及其对开发工作的影响,产生了很多优秀的软件开发方法;“开发完成”之后的工作被忽视。近年来,自动化部署走入人们的视野,DevOps的思想日渐深入人心;随着云计算技术的成熟和基础设施的完备,以及新的架构范式的出现,自动化部署已经被业界快速接受并付诸实践,成为提高交付效率的必备技术手段。
目前针对DevOps的研究主要集中在微服务、持续集成与持续部署、自动化工具的研发等方面,比较常见的工具有Puppet、Chef、Docker、Jenkins、Ansible、Zabbix、Sentry、Rundeck等。但这些目前业界常见的自动化部署平台或工具大多针对的是基于微服务或容器技术的应用,对传统服务架构下应用的适用度并不高,更无法兼容某些企业私有中间件的操作。然而对于大型的传统计算机信息企业,短时间内无法将大量的传统应用转移成微服务应用,这这种现实情况下,必须考虑一种可适用于传统应用的自动化部署方法。
与微服务应用不同,传统服务架构下应用大部分采用松管控模式管理,给与技术人员自由度较高,开发人员可以不同的技术实现方式来实现应用的业务需求。本发明实践的公司作为一家大型计算机信息服务提供商,现拥有数十条业务产品线,每个产品线拥有3-8个子产品,各产品软件架构和技术实现不尽相同。公司在架构层面做了很多的努力,但仍然未达到良好的系统一致性,有些产品基于企业自开发的私有中间件,有些产品基于一些其他商业或开源的开发框架。复杂多样的技术类型给传统应用的自动化部署实现增加了难度。
本发明提出的自动化部署方法,是一种适用于多种技术框架应用的自动化部署方法。通过组件封装和模板编排,可以兼容传统应用的复杂多样性,可以完成多种类型应用的自动化部署工作。组件采用插件的形式,可针对企业私有中间件框架进行定制,也可随时增加新类型,其中,“插件形式”只是一种设计思路,是为了满足灵活性的需求,本发明不排除可以使用其他方式实现。本发明中能够对企业私有框架的部署操作进行封装,并通过对这些封装好的组件方法进行编排,即可实现应用的自动化部署,同时编排完成的模板可以保存下来,反复使用,以解决自动化部署方案无法兼容传统应用和企业私有中间件的问题。
本发明提出的自动化部署方法,主要由网页前端和自动化部署后台两部分组成。其中,网页前端也是指用户操作的网页页面,用户在网页页面中操作部署过程;自动化部署后台可采用本发明的自动化部署装置来实现,其包括了应用抽象单元、任务模板单元、任务实例单元、部署引擎单元这四个主要功能单元。
参照图1,本发明的自动化部署方法的基本流程可以包括:
S101、将目标应用的部署流程抽象为组件。
其中,所述目标应用为采用不同技术框架的多种应用中的任意一种。
所述目标应用的部署流程中包括多个子操作,所述组件中包括多个组件方法,所述多个组件方法与所述多个子操作一一对应。
通过应用抽象单元,可以将某一类应用的部署流程抽象为一个组件,一个组件中包括多个组件方法,组件方法是最小逻辑部署单元,组件方法描述了组件的各个部署场景及其步骤,比如重启的部署场景就包括停止和启动两个步骤。
应用抽象单元能够实现对多个组件方法的管理,可以通过配置来新增和修改相应的组件方法。
S102、按照用户设定的编排顺序,将所述组件内的多个组件方法进行编排并封装,以生成任务模板。
任务模板是由多个组件方法通过编排整合到一起的,任务模板是定义了一次完整的部署流程,它包括某一种部署场景下的所有操作步骤,但它在缺少部署参数的情况下,是不能被直接部署的。其中,部署参数是指需要在任务模板中配置的、且任务实例需要确认的参数,如IP、脚本参数等。
编排是按照应用逻辑运行时涉及的程序、组件和服务及其它们之间的依赖关系,按照实际情况对应用部署过程进行事先进行“剧本”设计与对象封装的过程,按照编排的顺序对组件内的组件方法进行组装就形成了任务模板。
比如,为一次典型的基于TODE中间框架的应用的配置更新设计的模板由两个方法组成:TODE节点停止方法-->TODE节点启动方法(在TODE服务启动方法的开始会完成配置文件的更新)。
TODE是基于C++语言开发的核心交易引擎,用于替代Tuxedo商业中间件。
其中,编码在一起的组件方法,可以是相同技术框架的应用对应的多个组件的组件方法,也可以是不同技术框架的应用对应的不同组件的多个组件方法,比如:按照用户设定的编排顺序,将不同技术框架的多种应用各自对应的不同的组件方法进行统一编排并封装,以生成任务模板,进而实现对不同技术框架的多种应用各自对应的不同的组件方法的整合与兼容。
S103、将部署所述目标应用所需的资源,加载到所述任务模板中,以生成任务实例。
任务实例是任务模板的实例化,它包括目标应用的所有的部署操作步骤和相关参数,即将各项资源加载到准备好任务模板中,这些资源包括目标服务器信息、系统账号信息、部署操作中需要的各项参数信息(如程序包、配置文件、服务名称、指令类型等)。一个任务实例中包含了本次部署操作中所需的所有内容。比如对一次典型的基于TODE中间框架的应用的配置更新模板的实例化,需要配置好部署服务器IP、操作系统账号、配置文件、TODE节点名称、TODE服务名称。
任务实例可以被直接部署。并且,基于任务实例可以重复执行部署操作。
S104、通过调用预置的部署引擎,来执行所述任务实例,以完成所述目标应用的自动化部署。
部署引擎的主要功能,是按照任务实例的内容在目标服务器上完成正确部署,任务实例在这里转化为可执行的脚本语言,通过SSH协议登录远程的目标服务器,并执行部署任务。
本实施例提出的自动化部署方法,适用于多种技术框架应用的自动化部署,可以兼容传统应用的复杂多样性,可以完成多种类型应用的自动化部署工作。本发明主要优点包括:1)、可兼容多类型部署,解决了现有技术无法兼容传统应用和企业私有中间件的问题。2)、可灵活增改,组件采用插件的形式,可针对企业私有中间件框架进行定制,随时增加新类型。3)、可复用,同时编排完成的任务模板可以保存下来,反复使用。
本发明实施例还提供的具体的应用抽象过程(对应步骤S101),参照图2,可以具体包括:
S201、根据目标应用的部署需求,创建部署模型。
S202、根据目标应用的技术框架,获取组件设计逻辑。
S203、根据所述组件设计逻辑,生成组件基本信息。
S204、根据所述部署模型与所述组件设计逻辑,将目标应用的部署流程拆解为多个子操作。
S205、根据所述多个子操作,生成多个组件方法。
本实施例首先要对目标应用的部署需求进行分析和建模,针对不同技术框架的应用,采用不同的组件设计逻辑,设计不同类型的组件,并对其部署流程的相关操作进行分解,将分解后的子操作作为组件内的组件方法。组件是部署的最小逻辑单元,组件包含组件基本信息及组件方法,每个组件方法都是一个部署子流程。
比如,针对基于TODE中间框架的应用,可以将其部署操作分解为五个组件方法,包括:TODE节点启动方法、TODE节点停止方法、TODE服务启动方法、TODE服务停止方法、TODE动态更新方法。
本实施例提出的应用抽象过程,先根据实际的应用部署需求预先编写多个剧本,编写的这个“剧本”可以实现在远程系统中执行一些复杂的操作步骤。编写“剧本”可以类比为编写部署操作手册。本发明中的组件方法、任务模板、任务实例,均可看做是一个“剧本”,通过编写“剧本”实现其功能,而这种设计方式也保证了“剧本”使用的灵活性。
进一步地,参照图3,本发明提供的自动化部署方法的系统流程,可以包括:
S301、部署需求建模。
根据目标应用的部署需求,创建部署模型。
S302、技术框架确定。
根据目标应用的技术框架,获取组件设计逻辑。
S303、组件设计。
S304、组件基本信息生成。
根据所述组件设计逻辑,生成组件基本信息。
S305、部署操作分解。
根据所述部署模型与所述组件设计逻辑,将目标应用的部署流程拆解为多个子操作。
S306、组件方法生成。
根据所述多个子操作,生成多个组件方法。
其中,步骤S301-S306均可由应用抽象单元来执行。
S307、编排。
根据用户设定的编排顺序与所述组件基本信息,将所述组件内的多个组件方法进行编排并封装,以生成任务模板。
S308、任务模板生成。
其中,步骤S307-S308均可由任务模板单元来执行。
S309、资源加载。
将目标服务器的信息、系统账号信息以及部署操作中需要的参数信息,全部加载到所述任务模板中,以生成任务实例。
S310、任务实例生成。
其中,步骤S309-S310均可由任务实例单元来执行。
S311、实例包执行。
S312、目标服务器部署。
通过调用预置的部署引擎,来执行所述任务实例,以使所述部署引擎在所述目标服务器上完成所述目标应用的自动化部署。
部署引擎负责执行上一步生成的任务实例包,部署引擎的主服务器会在目标服务器上完成任务实例包中的相关部署。
S313、收集执行结果并反馈。
在所述执行所述任务实例的过程中,收集执行结果并进行反馈。
本发明提供的自动化部署方法,适用于多种技术框架应用的自动化部署,其核心是组件封装和模板编排。组件封装通过抽象的方法将应用的部署流程步骤封装为多个组件方法,可兼容多种技术下的应用;模板编排可以灵活对组件方法进行排序和组合,适用于多种复杂的部署场景。通过这两种设计,可以兼容传统应用的复杂多样性,可以实现多种类型应用的自动化部署工作。此外,灵活性也是本发明的一大优势,本发明中的组件采用插件的形式,可针对企业私有中间件框架进行定制,可灵活增加新类型。
为了进一步说明本发明的技术方案,下面以基于JBOSS中间框架、基于TODE中间框架以及基于JCF中间框架的应用部署为例,来介绍本发明的自动化部署方案,参照图4,JBOSS中间框架、TODE中间框架与JCF中间框架,分别对应JBOSS组件、TODE组件与JCF组件。
一、针对基于JBOSS中间框架的应用部署的实施例
在针对基于JBOSS中间框架的应用部署的实施例中,本发明提供的自动化部署方法,具体步骤包括:
步骤A1、设计组件方法
将JBOSS应用的基本部署操作分解为三个组件方法,包括JBOSS包更新方法、JBOSS包删除方法、JBOSS数据源更新方法。在这些组件方法的操作流程中描述了部署的具体操作,并且每个方法中都可以选择性上传程序包或配置文件。
比如JBOSS包更新方法的操作流程如下:
①、执行停止脚本停止JBOSS服务器;
②、检查JBOSS服务器是否停止成功;
③、删除应用包的deployed文件(deployed文件为JBOSS部署中生成的文件);
④、上传应用包,则上传并在更新前备份;
⑤、执行启动脚本启动JBOSS服务器;
⑥、检查JBOSS服务器是否启动成功;
⑦、执行touch命令发布应用包。
JBOSS包更新方法中包括的参数,见下表1,这些参数将在任务实例中补充:
表1 JBOSS参数表一
Figure BDA0002587419050000091
步骤A2、编排任务模板
根据实际部署需要编排任务模板。比如一次典型的基于JBOSS中间框架的应用的软件包更新的模板,只需要一个方法即可满足部署需求:JBOSS包更新方法。
该任务模板的操作流程与JBOSS包更新方法的流程相同。
步骤A3、生成任务实例
生成任务实例,即对步骤A2中的任务模板的实例化,补充各组件方法中的参数取值,整合到任务模板的操作流程中。
该方法中包括的参数见下表2,这些参数将在任务实例中补充:
表2 JBOSS参数表二
Figure BDA0002587419050000101
步骤A4、调用部署引擎部署
调用部署引擎,后台在目标服务器上执行上一步生成的操作流程,完成部署。
二、针对基于TODE中间框架的应用部署实例
在针对基于TODE中间框架的应用部署的实施例中,本发明提供的自动化部署方法,具体步骤包括:
步骤B1、设计组件方法
将TODE应用的基本部署操作分解为五个组件方法,包括TODE节点启动方法、TODE节点停止方法、TODE服务启动方法、TODE服务停止方法、TODE动态更新方法。在这些组件方法的操作流程中描述了部署的具体操作,并且每个方法中都可以选择性上传程序包或配置文件。
比如,TODE节点启动方法的操作流程如下:
①、检查TODE环境是否符合要求;
②、确认tsma、tsmc组件,若不存在则启动;(tsma、tsmc是在部署过程中必须执行的TODE内部的指令组件)
③、如需软件包、配置文件更新,则上传并在更新前备份;
④、执行tsboot命令启动TODE节点;(tsboot是TODE内部指令组件,用于启动TODE服务)
⑤、检查TODE节点是否启动成功。
该方法中包括的参数见下表3,这些参数将在任务实例中补充:
表3 TODE参数表一
Figure BDA0002587419050000111
步骤B2、编排任务模板
根据实际部署需要编排任务模板。比如为一次典型的基于TODE中间框架的应用的配置更新设计的模板由两个方法组成:TODE节点停止方法-->TODE节点启动方法。编排后这两个方法的操作流程将合为一个,该任务模板的操作流程如下:
①、检查TODE环境是否符合要求;
②、确认tsma、tsmc组件,若不存在则启动;
③、如需软件包、配置文件更新,则上传并在更新前备份;
④、执行tsshutdown命令停止TODE节点;
⑤、检查TODE节点是否停止成功;
⑥、检查TODE环境是否符合要求;
⑦、确认tsma、tsmc组件,若不存在则启动;
⑧、如需软件包、配置文件更新,则上传并在更新前备份;
⑨、执行tsboot命令启动TODE节点;
⑩、检查TODE节点是否启动成功。
步骤B3、生成任务实例
生成任务实例,即对步骤B2中的任务模板的实例化,补充各组件方法中的参数取值,整合到任务模板的操作流程中。
该方法中包括的参数见下表,这些参数将在任务实例中补充:
表4 TODE参数表二
Figure BDA0002587419050000121
步骤B4、调用部署引擎部署
调用部署引擎,后台在目标服务器上执行上一步生成的操作流程,完成部署。
三、针对基于JCF中间框架的应用部署的实施例
在针对基于JCF中间框架的应用部署的实施例中,本发明提供的自动化部署方法,具体步骤包括:
步骤C1、设计组件方法
将JCF应用的基本部署操作分解为八个组件方法,包括JCF服务器停止方法、JCF服务器启动方法、JCF数据源更新方法、JCF应用发布方法、JCF应用启动方法、JCF应用停止方法、JCF应用版本切换方法、JCF日志配置上传方法。在这些组件方法的操作流程中描述了部署的具体操作,并且每个方法中都可以选择性上传程序包或配置文件。
比如JCF服务器停止方法的操作流程如下:
①、确认JCF服务器版本;
②、检查JCF服务器名称是否存在;
③、执行stopServer命令停止JCF服务器;
④、执行getServerStatus命令检查JCF服务器是否停止成功。
该方法中包括的参数见下表,这些参数将在任务实例中补充:
表5 JCF参数表一
参数名称 说明
主机信息 IP、hostname、user、password
软件包 可选
配置文件 可选
Jcf_server JCF服务器名称
步骤C2、编排任务模板
根据实际部署需要编排任务模板。比如为一次典型的基于JCF中间框架的应用的服务器重启设计的模板由两个方法组成:JCF服务器停止方法-->JCF服务器启动方法。编排后这两个方法的操作流程将合为一个,该任务模板的操作流程如下:
①、确认JCF服务器版本;
②、检查JCF服务器名称是否存在;
③、执行stopServer命令停止JCF服务器;
④、执行getServerStatus命令检查JCF服务器是否停止成功;
⑤、确认JCF服务器版本;
⑥、检查JCF服务器名称是否存在;
⑦、执行startServer命令启动JCF服务器;
⑧、执行getServerStatus命令检查JCF服务器是否启动成功。
步骤C3、生成任务实例
生成任务实例,即对步骤C2中的任务模板的实例化,补充各组件方法中的参数取值,整合到任务模板的操作流程中。
该方法中包括的参数见下表,这些参数将在任务实例中补充:
表6 JCF参数表二
Figure BDA0002587419050000131
步骤C4、调用部署引擎部署
调用部署引擎,后台在目标服务器上执行上一步生成的操作流程,完成部署。
本发明中对JBOSS以及企业私有框架TODE、JCF的部署操作进行了封装,通过对这些封装好的组件方法进行编排,即可实现应用的自动化部署。其中,JBOSS、TODE与JCF只是本发明的几种具体应用示例而已,本发明的自动化部署方案也可适用于JBOSS、TODE与JCF之外的其它技术框架的应用部署,而并不局限于JBOSS、TODE与JCF技术框架的自动化部署。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
可选地,在上述自动化部署方法的实施例的基础上,本发明实施例还提供了相应的自动化部署装置,参照图5,所述自动化部署装置可以包括:应用抽象单元11、任务模板单元12、任务实例单元13与部署引擎单元14。
应用抽象单元11,用于将目标应用的部署流程抽象为组件。
所述目标应用的部署流程中包括多个子操作,所述组件中包括多个组件方法,所述多个组件方法与所述多个子操作一一对应;所述目标应用为采用不同技术框架的多种应用中的任意一种;
任务模板单元12,用于按照用户设定的编排顺序,将所述组件内的多个组件方法进行编排并封装,以生成任务模板。
任务实例单元13,用于将部署所述目标应用所需的资源,加载到所述任务模板中,以生成任务实例。
部署引擎单元14,用于通过调用预置的部署引擎,来执行所述任务实例,以完成所述目标应用的自动化部署。
一示例中,应用抽象单元11具体用于:根据目标应用的部署需求,创建部署模型;根据目标应用的技术框架,获取组件设计逻辑;根据所述组件设计逻辑,生成组件基本信息;根据所述部署模型与所述组件设计逻辑,将目标应用的部署流程拆解为多个子操作;根据所述多个子操作,生成多个组件方法。
相应的,任务模板单元12具体用于:根据用户设定的编排顺序与所述组件基本信息,将所述组件内的多个组件方法进行编排并封装,以生成任务模板。
在其他示例中,任务模板单元12具体还用于:按照用户设定的编排顺序,将不同技术框架的多种应用各自对应的不同的组件方法进行统一编排并封装,以生成任务模板。
一示例中,任务实例单元13具体用于:将目标服务器的信息、系统账号信息以及部署操作中需要的参数信息,全部加载到所述任务模板中,以生成任务实例。
相应的,部署引擎单元14具体用于:通过调用预置的部署引擎,来执行所述任务实例,以使所述部署引擎在所述目标服务器上完成所述目标应用的自动化部署。
此外,部署引擎单元14具体还可用于:在所述执行所述任务实例的过程中,收集执行结果并进行反馈。
本实施例提供的自动化部署装置,适用于多种技术框架应用的自动化部署,可以兼容传统应用的复杂多样性,可以完成多种类型应用的自动化部署工作。
需要说明的是,本实施例中的各个单元的工作过程,请参照上述方法实施例中的相应说明,在此不再赘述。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
可选的,在上述自动化部署方法的实施例的基础上,本发明另一实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现前述的自动化部署方法。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
可选的,在上述自动化部署方法的实施例的基础上,本发明的另一实施例提供了一种自动化部署设备,包括存储器与处理器;
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,以执行前述的自动化部署方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的物品或者设备中还存在另外的相同要素。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从ROM被安装。在该计算机程序被处理装执行时,执行本公开实施例的方法中限定的上述功能。
根据本公开的一个或多个实施例,上述实施例提供了一种自动化部署方法,包括:
将目标应用的部署流程抽象为组件;所述目标应用的部署流程中包括多个子操作,所述组件中包括多个组件方法,所述多个组件方法与所述多个子操作一一对应;所述目标应用为采用不同技术框架的多种应用中的任意一种;
按照用户设定的编排顺序,将所述组件内的多个组件方法进行编排并封装,以生成任务模板;
将部署所述目标应用所需的资源,加载到所述任务模板中,以生成任务实例;
通过调用预置的部署引擎,来执行所述任务实例,以完成所述目标应用的自动化部署。
其中,所述将目标应用的部署流程抽象为组件包括:
根据目标应用的部署需求,创建部署模型;
根据目标应用的技术框架,获取组件设计逻辑;
根据所述组件设计逻辑,生成组件基本信息;
根据所述部署模型与所述组件设计逻辑,将目标应用的部署流程拆解为多个子操作;
根据所述多个子操作,生成多个组件方法。
其中,所述按照用户设定的编排顺序,将所述组件内的多个组件方法进行编排并封装,以生成任务模板包括:
根据用户设定的编排顺序与所述组件基本信息,将所述组件内的多个组件方法进行编排并封装,以生成任务模板。
其中,所述按照用户设定的编排顺序,将所述组件内的多个组件方法进行编排并封装,以生成任务模板包括:
按照用户设定的编排顺序,将不同技术框架的多种应用各自对应的不同的组件方法进行统一编排并封装,以生成任务模板。
其中,所述将部署所述目标应用所需的资源,加载到所述任务模板中,以生成任务实例包括:
将目标服务器的信息、系统账号信息以及部署操作中需要的参数信息,全部加载到所述任务模板中,以生成任务实例。
其中,所述通过调用预置的部署引擎,来执行所述任务实例,以完成所述目标应用的自动化部署包括:
通过调用预置的部署引擎,来执行所述任务实例,以使所述部署引擎在所述目标服务器上完成所述目标应用的自动化部署。
其中,所述自动化部署方法还包括:
在所述执行所述任务实例的过程中,收集执行结果并进行反馈。
根据本公开的一个或多个实施例,上述实施例提供了一种自动化部署装置,包括:
应用抽象单元,用于将目标应用的部署流程抽象为组件;所述目标应用的部署流程中包括多个子操作,所述组件中包括多个组件方法,所述多个组件方法与所述多个子操作一一对应;所述目标应用为采用不同技术框架的多种应用中的任意一种;
任务模板单元,用于按照用户设定的编排顺序,将所述组件内的多个组件方法进行编排并封装,以生成任务模板;
任务实例单元,用于将部署所述目标应用所需的资源,加载到所述任务模板中,以生成任务实例;
部署引擎单元,用于通过调用预置的部署引擎,来执行所述任务实例,以完成所述目标应用的自动化部署。
根据本公开的一个或多个实施例,上述实施例提供了一种自动化部署设备,包括:存储器与处理器;
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,以执行前述的自动化部署方法的步骤。
根据本公开的一个或多个实施例,上述实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序在被处理器执行时,实现前述的自动化部署方法。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种自动化部署方法,其特征在于,包括:
将目标应用的部署流程抽象为组件;所述目标应用的部署流程中包括多个子操作,所述组件中包括多个组件方法,所述多个组件方法与所述多个子操作一一对应;所述目标应用为采用不同技术框架的多种应用中的任意一种;
按照用户设定的编排顺序,将所述组件内的多个组件方法进行编排并封装,以生成任务模板;
将部署所述目标应用所需的资源,加载到所述任务模板中,以生成任务实例;
通过调用预置的部署引擎,来执行所述任务实例,以完成所述目标应用的自动化部署。
2.根据权利要求1所述的自动化部署方法,其特征在于,所述将目标应用的部署流程抽象为组件包括:
根据目标应用的部署需求,创建部署模型;
根据目标应用的技术框架,获取组件设计逻辑;
根据所述组件设计逻辑,生成组件基本信息;
根据所述部署模型与所述组件设计逻辑,将目标应用的部署流程拆解为多个子操作;
根据所述多个子操作,生成多个组件方法。
3.根据权利要求2所述的自动化部署方法,其特征在于,所述按照用户设定的编排顺序,将所述组件内的多个组件方法进行编排并封装,以生成任务模板包括:
根据用户设定的编排顺序与所述组件基本信息,将所述组件内的多个组件方法进行编排并封装,以生成任务模板。
4.根据权利要求1-3任一项所述的自动化部署方法,其特征在于,所述按照用户设定的编排顺序,将所述组件内的多个组件方法进行编排并封装,以生成任务模板包括:
按照用户设定的编排顺序,将不同技术框架的多种应用各自对应的不同的组件方法进行统一编排并封装,以生成任务模板。
5.根据权利要求1所述的自动化部署方法,其特征在于,所述将部署所述目标应用所需的资源,加载到所述任务模板中,以生成任务实例包括:
将目标服务器的信息、系统账号信息以及部署操作中需要的参数信息,全部加载到所述任务模板中,以生成任务实例。
6.根据权利要求5所述的自动化部署方法,其特征在于,所述通过调用预置的部署引擎,来执行所述任务实例,以完成所述目标应用的自动化部署包括:
通过调用预置的部署引擎,来执行所述任务实例,以使所述部署引擎在所述目标服务器上完成所述目标应用的自动化部署。
7.根据权利要求1所述的自动化部署方法,其特征在于,所述自动化部署方法还包括:
在所述执行所述任务实例的过程中,收集执行结果并进行反馈。
8.一种自动化部署装置,其特征在于,包括:
应用抽象单元,用于将目标应用的部署流程抽象为组件;所述目标应用的部署流程中包括多个子操作,所述组件中包括多个组件方法,所述多个组件方法与所述多个子操作一一对应;所述目标应用为采用不同技术框架的多种应用中的任意一种;
任务模板单元,用于按照用户设定的编排顺序,将所述组件内的多个组件方法进行编排并封装,以生成任务模板;
任务实例单元,用于将部署所述目标应用所需的资源,加载到所述任务模板中,以生成任务实例;
部署引擎单元,用于通过调用预置的部署引擎,来执行所述任务实例,以完成所述目标应用的自动化部署。
9.一种自动化部署设备,其特征在于,包括:存储器与处理器;
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,以执行如权利要求1~7任一项所述的自动化部署方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序,所述程序在被处理器执行时,实现如权利要求1~7任一项所述的自动化部署方法。
CN202010685500.9A 2020-07-16 2020-07-16 自动化部署方法、装置、设备及存储介质 Active CN111913721B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010685500.9A CN111913721B (zh) 2020-07-16 2020-07-16 自动化部署方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010685500.9A CN111913721B (zh) 2020-07-16 2020-07-16 自动化部署方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111913721A true CN111913721A (zh) 2020-11-10
CN111913721B CN111913721B (zh) 2024-06-11

Family

ID=73280997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010685500.9A Active CN111913721B (zh) 2020-07-16 2020-07-16 自动化部署方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111913721B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407178A (zh) * 2021-06-01 2021-09-17 上海安畅网络科技股份有限公司 一种跨平台的DevOps引擎模板方法和系统
CN113986258A (zh) * 2021-11-17 2022-01-28 建信金融科技有限责任公司 业务发布方法、装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360308A (zh) * 2011-09-29 2012-02-22 用友软件股份有限公司 组件的分布式部署系统和方法
US20130151975A1 (en) * 2010-09-07 2013-06-13 Tomer Shadi System and method for automated deployment of multi-component computer environment
US20130232464A1 (en) * 2012-03-02 2013-09-05 Xerox Corporation Deployment of business processes in service-oriented architecture environments
CN108762769A (zh) * 2018-06-04 2018-11-06 万惠投资管理有限公司 微服务应用编排和部署方法、装置及计算机终端
CN109086051A (zh) * 2018-06-29 2018-12-25 平安科技(深圳)有限公司 应用组件部署方法、装置及计算机存储介质
CN110286884A (zh) * 2019-06-21 2019-09-27 北京百度网讯科技有限公司 微服务编排方法、装置、设备及计算机可读存储介质
CN110768833A (zh) * 2019-10-25 2020-02-07 北京宝兰德软件股份有限公司 基于kubernetes的应用编排部署方法及装置
CN111274000A (zh) * 2020-01-21 2020-06-12 苏州浪潮智能科技有限公司 一种服务编排方法、装置及电子设备和存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130151975A1 (en) * 2010-09-07 2013-06-13 Tomer Shadi System and method for automated deployment of multi-component computer environment
CN102360308A (zh) * 2011-09-29 2012-02-22 用友软件股份有限公司 组件的分布式部署系统和方法
US20130232464A1 (en) * 2012-03-02 2013-09-05 Xerox Corporation Deployment of business processes in service-oriented architecture environments
CN108762769A (zh) * 2018-06-04 2018-11-06 万惠投资管理有限公司 微服务应用编排和部署方法、装置及计算机终端
CN109086051A (zh) * 2018-06-29 2018-12-25 平安科技(深圳)有限公司 应用组件部署方法、装置及计算机存储介质
CN110286884A (zh) * 2019-06-21 2019-09-27 北京百度网讯科技有限公司 微服务编排方法、装置、设备及计算机可读存储介质
CN110768833A (zh) * 2019-10-25 2020-02-07 北京宝兰德软件股份有限公司 基于kubernetes的应用编排部署方法及装置
CN111274000A (zh) * 2020-01-21 2020-06-12 苏州浪潮智能科技有限公司 一种服务编排方法、装置及电子设备和存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407178A (zh) * 2021-06-01 2021-09-17 上海安畅网络科技股份有限公司 一种跨平台的DevOps引擎模板方法和系统
CN113407178B (zh) * 2021-06-01 2022-06-17 上海安畅网络科技股份有限公司 一种跨平台的DevOps引擎模板方法和系统
CN113986258A (zh) * 2021-11-17 2022-01-28 建信金融科技有限责任公司 业务发布方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111913721B (zh) 2024-06-11

Similar Documents

Publication Publication Date Title
CN110399119A (zh) 一种组件化构建方法、装置、电子设备及存储介质
CN107273140B (zh) 脚手架管理方法、装置及电子设备
CN109117170B (zh) 一种运行环境搭建方法及装置、代码合入方法及系统
CN108845940A (zh) 一种企业级信息系统自动化功能测试方法和系统
US10466973B2 (en) Integration application creator design
CN104461562A (zh) 一种任务创建的方法及系统
CN111913721A (zh) 自动化部署方法、装置、设备及存储介质
CN105045602A (zh) 一种构建Hadoop应用开发框架的方法、装置及电子装置
CN113626002A (zh) 一种服务执行方法及装置
CN110109684B (zh) 区块链节点管理代理服务安装方法、电子装置及存储介质
CN111897565A (zh) 基于物联网的数据处理方法、装置和设备
CN108334374A (zh) 组件动态加载与执行的方法和装置
CN103677842A (zh) 软件工具配置式集成扩展调用方法与系统
EP3676706A1 (en) Megamodel driven process enactment
CN114968287A (zh) 一种自动部署项目的方法及系统
CN114978686A (zh) 数字资产上链方法及装置
Harcuba et al. Unified REST API for supporting the semantic integration in the ESB-based architecture
US20210042105A1 (en) System and method for implementing complex patching micro service automation
CN112564979A (zh) 构建任务的执行方法、装置、计算机设备和存储介质
CN107392414B (zh) 一种产品资料集成编排的方法及云服务装置
EP3903181A1 (en) System and method for configuring simple object access protocol (soap) components
US12039473B2 (en) Software development project infrastructure builder tool
Tsai et al. Dynamic collaboration simulation in service-oriented computing paradigm
US20230132531A1 (en) Software Development Project Infrastructure Builder Tool
CN116774978A (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