CN111708550A - 应用部署方法、装置、计算机设备及存储介质 - Google Patents
应用部署方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111708550A CN111708550A CN202010690880.5A CN202010690880A CN111708550A CN 111708550 A CN111708550 A CN 111708550A CN 202010690880 A CN202010690880 A CN 202010690880A CN 111708550 A CN111708550 A CN 111708550A
- Authority
- CN
- China
- Prior art keywords
- deployment
- application
- target server
- information
- file
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- 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/76—Adapting program code to run in a different environment; Porting
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用部署方法、装置、计算机设备及存储介质,属于计算机技术领域。本申请通过在确定对目标应用的部署操作后,查询对应预存的操作文件,达到了不同部署操作进行原子化拆分,再基于操作文件方便地生成配置文件,向目标服务器发送该配置文件,由于已经预先提供了各个部署操作的操作文件,因此用户在生成配置文件时无需关心操作文件内部的处理逻辑,即可将目标应用部署在私有化的目标服务器中,而并非部署在云服务器中,大大降低了应用部署的技术门槛,提升了应用部署效率,提高了可移植性。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种应用部署方法、装置、计算机设备及存储介质。
背景技术
随着计算机技术的发展,云计算厂商在面向客户提供云服务时,能够采用私有化的部署模式,也即将应用部署在客户私有的服务器上,避免由于将应用相关的业务数据接入云服务器而带来的泄露隐患。
目前,技术人员通常通过管理服务器向私有服务器分发脚本、命令,以进行应用程序的私有化部署,比如,在部署过程中,需要检查系统环境是否满足应用程序的部署要求,具体地,需要手动编写环境检查代码逻辑,并使用工具分发代码,技术人员通过代码的执行结果来判断系统环境是否满足部署要求。
在上述过程中,应用部署的技术门槛较高,需要技术人员熟练掌握系统命令、了解操作系统和设备控制,且针对不同的应用程序或者不同的系统环境,技术人员需要设计不同的交付部署工具,导致应用部署的技术门槛高、部署效率低、可移植性差。
发明内容
本申请实施例提供了一种应用部署方法、装置、计算机设备及存储介质,能够降低应用部署的技术门槛、提高部署效率、提升可移植性。该技术方案如下:
一方面,提供了一种应用部署方法,该方法包括:
基于在目标服务器上部署目标应用时待执行的至少一个部署操作,查询分别与所述至少一个部署操作所对应的至少一个操作文件;
根据所述至少一个操作文件,获取用于在所述目标服务器上部署所述目标应用的配置文件;
向所述目标服务器发送所述配置文件,所述配置文件用于触发所述目标服务器执行所述至少一个部署操作。
一方面,提供了一种应用部署装置,该装置包括:
查询模块,用于基于在目标服务器上部署目标应用时待执行的至少一个部署操作,查询分别与所述至少一个部署操作所对应的至少一个操作文件;
获取模块,用于根据所述至少一个操作文件,获取用于在所述目标服务器上部署所述目标应用的配置文件;
发送模块,用于向所述目标服务器发送所述配置文件,所述配置文件用于触发所述目标服务器执行所述至少一个部署操作。
在一种可能实施方式中,所述至少一个部署操作的操作类型包括加固操作、检查操作或者配置操作中至少一项,其中,所述加固操作用于表示对操作系统的安全项目的修改操作,所述检查操作用于表示对操作系统的运行环境的查询操作,所述配置操作用于表示对所述操作系统的运行环境的编辑操作。
一方面,提供了一种计算机设备,该计算机设备包括一个或多个处理器和一个或多个存储器,该一个或多个存储器中存储有至少一条程序代码,该至少一条程序代码由该一个或多个处理器加载并执行以实现如上述任一种可能实现方式的应用部署方法。
一方面,提供了一种存储介质,该存储介质中存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行以实现如上述任一种可能实现方式的应用部署方法。
一方面,提供一种计算机程序产品或计算机程序,所述计算机程序产品或所述计算机程序包括一条或多条程序代码,所述一条或多条程序代码存储在计算机可读存储介质中。计算机设备的一个或多个处理器能够从计算机可读存储介质中读取所述一条或多条程序代码,所述一个或多个处理器执行所述一条或多条程序代码,使得计算机设备能够执行上述任一种可能实施方式的应用部署方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过在确定对目标应用的各个部署操作后,查询对应的各个预存的操作文件,达到了对整个部署过程中各个不同的部署操作进行原子化地拆分,并且为原子化的各个部署操作提供了对应的操作文件,再基于各个操作文件方便地生成目标应用的配置文件,向目标服务器发送该配置文件,由于已经预先提供了各个部署操作的操作文件,因此用户在生成配置文件时无需关心各个操作文件内部的处理逻辑,大大降低了应用部署的技术门槛,且由于不同应用在不同环境下的不同部署操作均能够提供对应的操作文件,因此可以大大提升应用部署效率、提高应用部署的可移植性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还能够根据这些附图获得其他的附图。
图1是本申请实施例提供的一种应用部署方法的实施环境示意图;
图2是本申请实施例提供的一种应用部署方法的流程图;
图3是本申请实施例提供的一种应用部署方法的流程图;
图4是本申请实施例提供的一种应用部署方法的架构示意图;
图5是本申请实施例提供的一种应用部署方法的原理性流程图;
图6是本申请实施例提供的一种应用部署方法的原理性流程图;
图7是本申请实施例提供的一种应用部署装置的结构示意图;
图8是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
本申请中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上,例如,多个第一位置是指两个或两个以上的第一位置。
在介绍本申请实施例之前,需要引入一些云技术领域内的基本概念:
云技术(Cloud Technology):是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术,也即是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,能够组成资源池,按需所用,灵活便利。云计算技术将变成云技术领域的重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,均能通过云计算来实现。
云计算(Cloud Computing):是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是能够无限扩展的,并且能够随时获取,按需使用,随时扩展,按使用付费。对于云计算的基础能力提供商而言,会建立云计算资源池(Infrastructure as a Service,IaaS,基础设施即服务平台,俗称为云平台),在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。按照逻辑功能划分,可选地,在IaaS层上部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software asa Service,软件即服务)层,或者,直接将SaaS层部署在IaaS层上。PaaS层为应用程序运行的平台,如数据库、web容器等。SaaS层为各式各样的业务应用,如web门户网站、短信群发器等。一般来说,SaaS层和PaaS层相对于IaaS层而言是上层。
私有云(Private Cloud):是将云基础设施与软硬件资源创建在防火墙内,以供机构或企业内各部门共享数据中心内的资源。创建私有云,除了硬件资源外,一般还有IaaS应用程序。私有云计算同样包含云硬件、云平台、云服务三个层次。不同的是,云硬件是用户自己的个人电脑或私有服务器,而非云计算厂商的数据中心(也即云服务器)。云计算厂商构建数据中心的目的是为千百万用户提供公共云服务,因此需要拥有几十上百万台服务器。私有云计算,对个人来说只服务于亲朋好友,对企业来说只服务于本企业员工以及本企业的客户和供应商,因此个人或企业自己的个人电脑或私有服务器已经足够用来提供私有云服务。
本申请实施例涉及上述私有云技术,随着现代信息技术的不断发展,越来越多的企业向“互联网+”的方向进行发展,在企业信息技术改造的过程中,通常企业会向云计算厂商购买私有化的应用程序(即软件产品)来引入互联网技术和能力。在应用程序的私有化部署过程中,往往会遇到由于不同客户的私有服务器上准备的系统环境存在差异而导致部署周期较长的问题,有的系统环境甚至无法部署相关应用,并且不同应用的部署需求条件也往往差异巨大,需要大量的人工操作才能够最终实现应用的安装部署。
此外,由于目前主要的开源工具包括ansible、fabric等类似工具,在应用的私有化部署过程中,技术人员通过管理服务器向客户的私有服务器分发脚本、命令,通常要求技术人员具备较丰富的运维部署经验和相对较深入的操作系统专业知识,才能够利用上述开源工具实现最终的部署操作,比如,在部署过程中,需要检查系统环境是否满足应用的部署需求条件,需要手动编写系统环境的检查代码逻辑并使用工具分发代码,通过代码的执行结果人工判断是否满足部署需求条件,这都需要较高的技术门槛,且对于每一个独立的私有化应用,都需要重新设计一个交付部署工具,不仅需要技术人员对应用和系统环境具有一定的理解,而且往往会由于不同环境或者不同应用反复出现相同的问题(Bug),因此,应用部署过程中普遍存在技术门槛高、部署效率低、可移植性差的问题。
有鉴于此,本申请实施例提供一种通用化的应用私有化部署方法,仅适用一套由多个预存的操作文件所构成的工具库即能够支持不同应用的私有化部署,能够提升应用的研发效率,具有很强的复用性,且实现了应用的自动化部署,提供了应用部署效率,具有创新价值和极高的实践指导意义,将在下面的实施例中进行详述。
图1是本申请实施例提供的一种应用部署方法的实施环境示意图。参见图1,在该实施环境中可以包括管理服务器101和目标服务器102,其中,管理服务器101和目标服务器102均为一种计算机设备。
管理服务器101是云计算厂商用于提供应用部署服务的计算机设备,用户可以通过管理服务器101来管控应用的部署过程,用于向目标服务器102下发待部署的目标应用的配置文件及安装文件等,还用于接收目标服务器102返回的各个部署操作的执行结果信息,并确定本次部署过程最终的部署结果信息。可选地,应用部署模式包括公有云部署、私有云部署以及混合云部署,在本申请实施例中仅涉及私有云部署,是指将应用部署在客户私有的目标服务器102上(而相对地,公有云部署是指将应用部署在云计算厂商提供的云服务器上)。
管理服务器101和目标服务器102之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
目标服务器102是向云计算厂商购买云服务的客户所私有的计算机设备,可选地,目标服务器102是客户私有的一台服务器、多台服务器、云计算中心或者虚拟化中心中的至少一种,目标服务器102创建在防火墙内,用于为客户(机构或企业)内各部门提供私有化的云服务,通常在局域网内进行数据传输。可选地,目标服务器102承担主要计算工作,管理服务器101承担次要计算工作;或者,目标服务器102承担次要计算工作,管理服务器101承担主要计算工作;或者,目标服务器102和管理服务器101之间采用分布式计算架构进行协同计算。
可选地,上述目标服务器102或者管理服务器101是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDelivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
图2是本申请实施例提供的一种应用部署方法的流程图。参见图2,该实施例应用于上述实施环境中的管理服务器101,该实施例包括下述步骤:
201、管理服务器基于在目标服务器上部署目标应用时待执行的至少一个部署操作,查询分别与该至少一个部署操作所对应的至少一个操作文件。
其中,管理服务器是指云计算厂商所提供的、用于部署目标应用的计算机设备,而目标服务器则是作为目标应用的部署对象的计算机设备。
可选地,管理服务器将多个部署操作与多个操作文件进行对应存储,比如,在数据库中以段页式的存储方式进行存储,也即是将多个部署操作的标识信息(Identification,操作ID)作为索引,将与该多个部署操作一一对应的多个操作文件作为索引内容,存放在数据表中,又比如,在数据库中以键值对的存储方式进行存储,也即是将多个部署操作的操作ID作为键名(Key),将与该多个部署操作一一对应的多个操作文件作为键值(Value),存放在数据库中,从而能够完成对各个部署操作与各个操作文件的预存工作,形成一套面向不同的私有化应用的通用工具集。
在一些实施例中,管理服务器通过解析该目标应用在该目标服务器上的部署需求条件,得到该至少一个部署操作,然后基于该至少一个部署操作,查询分别与该至少一个部署操作所对应的至少一个操作文件。
可选地,该至少一个部署操作的操作类型包括加固操作、检查操作或者配置操作中至少一项,其中,该加固操作用于表示对操作系统的安全项目的修改操作,该检查操作用于表示对操作系统的运行环境的查询操作,该配置操作用于表示对该操作系统的运行环境的编辑操作。
在解析过程中,管理服务器能够使用调度工具来解析调度任务,得到在目标服务器上部署该目标应用时待执行的至少一个部署操作,也即确定出对操作系统的加固操作、检查操作以及配置操作。
在查询过程中,可选地,管理服务器构建包含该至少一个配置操作的列表(列表中一个元素代表一个配置操作),以该列表中的每个元素为索引,在段页式存储的数据库中查询与该索引对应的索引内容,若命中任一索引内容,读取该索引内容,对该列表逐元素执行上述查询操作,直到对该列表遍历完毕,将读取到的各个索引内容确定为该至少一个操作文件。
在查询过程中,可选地,管理服务器构建包含该至少一个配置操作的列表(列表中一个元素代表一个配置操作),以该列表中的每个元素为键名,在键值型存储的数据库中查询与该键名对应存储的键值,若命中任一键值,读取该键值,对该列表逐元素执行上述查询操作,直到对该列表遍历完毕,将读取到的各个键值确定为该至少一个操作文件。
202、管理服务器根据该至少一个操作文件,获取用于在该目标服务器上部署该目标应用的配置文件。
在一些实施例中,首先,技术人员根据目标服务器的设备信息,在管理服务器上编写待配置节点信息,由于目标服务器可以包括一台或多台服务器,因此待配置节点信息中可以包括一个或多个待配置节点,比如,该待配置节点信息包括各个待配置节点(也即目标服务器)的IP地址(Internet Protocol Address,互联网协议地址)、用户名、用户密码或者通讯端口中至少一项。其次,技术人员根据该至少一个操作文件,在管理服务器上编写待执行脚本信息,在一个示例中,各个操作文件以脚本文件的形式进行预存,此时只需要简单地将各个脚本文件串联起来,即可完成对该待执行脚本信息的编写操作。最后,管理服务器将该待配置节点信息和该待执行脚本信息获取为该配置文件。
203、管理服务器向该目标服务器发送该配置文件,该配置文件用于触发该目标服务器执行该至少一个部署操作。
可选地,管理服务器向目标服务器仅发送配置文件,等待目标服务器返回对该至少一个部署操作的至少一个执行结果信息,进而确定出目标应用的整个部署过程的部署结果信息,如果该部署结果信息表示部署成功,再向目标服务器发送该目标应用的安装文件(俗称为安装包),如果该部署结果信息表示部署失败,在管理服务器上显示出执行结果信息不符合部署需求条件的部署操作,这样便于技术人员进行查漏补缺和技术修复,能够减少本次通讯过程的通信量。
可选地,管理服务器向目标服务器发送配置文件时还同时发送安装文件,在一个示例中,将前述配置文件和安装文件封装在同一条数据传输报文中,在另一个示例中,将前述配置文件和安装文件封装在不同的数据传输报文中,这样可以由目标服务器直接根据本机对该至少一个部署操作的至少一个执行结果信息,确定出目标应用的整个部署过程的部署结果信息,如果该部署结果信息表示部署成功,直接打开安装文件进行目标应用的安装过程,如果该部署结果信息表示部署失败,向管理服务器返回用于表示部署失败的部署结果信息,可选地,目标服务器丢弃该安装文件,有利于减少管理服务器与目标服务器之间的通信轮次。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本申请实施例提供的方法,通过在确定对目标应用的各个部署操作后,查询对应的各个预存的操作文件,达到了对整个部署过程中各个不同的部署操作进行原子化地拆分,并且为原子化的各个部署操作提供了对应的操作文件,再基于各个操作文件方便地生成目标应用的配置文件,向目标服务器发送该配置文件,由于已经预先提供了各个部署操作的操作文件,因此用户在生成配置文件时无需关心各个操作文件内部的处理逻辑,大大降低了应用部署的技术门槛,且由于不同应用在不同环境下的不同部署操作均能够提供对应的操作文件,因此可以大大提升应用部署效率、提高应用部署的可移植性。
图3是本申请实施例提供的一种应用部署方法的流程图。参见图3,该实施例应用于上述实施环境中的管理服务器101与目标服务器102的交互过程,该实施例包括下述步骤:
301、管理服务器解析目标应用在目标服务器上的部署需求条件,得到在该目标服务器上部署该目标应用时待执行的至少一个部署操作。
其中,管理服务器是指云计算厂商所提供的、用于部署目标应用的计算机设备,而目标服务器则是作为目标应用的部署对象的计算机设备。
可选地,该至少一个部署操作的操作类型包括加固操作、检查操作或者配置操作中至少一项,其中,该加固操作用于表示对操作系统的安全项目的修改操作,例如配置防火墙、SSH(Secure Shell Protocol,安全外壳协议)密码认证等,该检查操作用于表示对操作系统的运行环境的查询操作,例如检查内存是否满足部署需求条件、CPU(CentralProcessing Unit,中央处理器)是否满足部署需求条件等,该配置操作用于表示对该操作系统的运行环境的编辑操作,例如挂载磁盘、修改系统参数等。
在解析过程中,管理服务器能够使用调度工具来解析调度任务,得到在目标服务器上部署该目标应用时待执行的至少一个部署操作,也即确定出对操作系统的加固操作、检查操作以及配置操作。
在一个示例中,根据某个目标应用的部署需求条件,解析得到至少一个部署操作,其中,检查操作包括:检查内存、检查CPU版本、检查操作系统版本、检查内核版本等,配置操作包括:挂载磁盘、修改系统配置参数、修改umask参数、修改目录权限、新建用户信息等,加固操作包括:设置系统防火墙、设置SSH密码认证等。
302、管理服务器基于该至少一个部署操作,查询分别与该至少一个部署操作所对应的至少一个操作文件。
可选地,管理服务器将多个部署操作与多个操作文件进行对应存储,比如,在数据库中以段页式的存储方式进行存储,也即是将多个部署操作的标识信息(Identification,操作ID)作为索引,将与该多个部署操作一一对应的多个操作文件作为索引内容,存放在数据表中,又比如,在数据库中以键值对的存储方式进行存储,也即是将多个部署操作的操作ID作为键名(Key),将与该多个部署操作一一对应的多个操作文件作为键值(Value),存放在数据库中,从而能够完成对各个部署操作与各个操作文件的预存工作,形成一套面向不同的私有化应用的通用工具集。
可选地,管理服务器构建包含该至少一个配置操作的列表(列表中一个元素代表一个配置操作),以该列表中的每个元素为索引,在段页式存储的数据库中查询与该索引对应的索引内容,若命中任一索引内容,读取该索引内容,对该列表逐元素执行上述查询操作,直到对该列表遍历完毕,将读取到的各个索引内容确定为该至少一个操作文件。
可选地,管理服务器构建包含该至少一个配置操作的列表(列表中一个元素代表一个配置操作),以该列表中的每个元素为键名,在键值型存储的数据库中查询与该键名对应存储的键值,若命中任一键值,读取该键值,对该列表逐元素执行上述查询操作,直到对该列表遍历完毕,将读取到的各个键值确定为该至少一个操作文件。
图4是本申请实施例提供的一种应用部署方法的架构示意图,请参考图4,管控工具401也即管理服务器上装载的管理程序,用于提供由管理服务器向多个不同客户的多个目标服务器分发文件(包括配置文件、安装文件等)和命令的能力,在作业调度模块402中,技术人员可以基于该作业调度模块402来编排目标应用的部署任务,也即技术人员在作业调度阶段中解析出待执行的至少一个部署操作,其中,一个部署操作用于达成一个部署任务,而系统加固403、系统检查404、系统配置405这三个模块则提供部署过程最基础的任务能力。在这种架构中,云计算厂商在向各个客户交付部署目标应用时,只需要在交付前简单配置作业调度模块402,就能够达成自动化部署,而且还可以方便地进行多次部署、批量化部署。
303、管理服务器根据该至少一个操作文件,获取用于在该目标服务器上部署该目标应用的配置文件。
在一些实施例中,管理服务器根据该目标服务器的设备信息,获取该配置文件的待配置节点信息;根据该至少一个操作文件,获取该配置文件的待执行脚本信息;根据该待配置节点信息和该待执行脚本信息,生成该配置文件。
可选地,由于目标服务器可以包括一台或多台服务器,因此待配置节点信息中可以包括一个或多个待配置节点,比如,该待配置节点信息包括各个待配置节点(也即目标服务器)的IP地址(Internet Protocol Address,互联网协议地址)、用户名、用户密码或者通讯端口中至少一项。
在一个示例中,技术人员可以通过下述任务模板来直接编写待配置节点信息:
[hostgroup1]
ip=xxxxx password=xxxx port=xxx user=xxx#配置机器的ip,用户名密码,通讯端口
ip=xxxxx password=xxxx port=xxx user=xxx
[hostgroup2]
ip=xxxxx password=xxxx port=xxx user=xxx
ip=xxxxx password=xxxx port=xxx user=xxx
在编写待配置节点信息的过程中,技术人员可以登录管理服务器上的管理程序,由管理程序提供该任务模板,技术人员只需要将各个待配置节点的设备信息分别替换掉“xxx”、“xxxx”、“xxxxx”格式的掩码,即可生成待配置节点信息。
在一些实施例中,技术人员在管理服务器中预先从目标服务器中加载各个待配置节点的设备信息,技术人员只需要一键选择出本次部署过程需要对哪些节点进行配置,由管理服务器自动化的将被选中的节点的设备信息填充到该任务模板中,即可自动化地生成该待配置节点信息。
可选地,在获取待执行脚本信息时,管理服务器根据该至少一个操作文件的执行优先级,确定该至少一个操作文件在该待执行脚本信息中的执行顺序,其中,该操作优先级与该执行顺序呈正相关。
需要说明的是,不同操作文件能够具有不同的执行优先级,操作文件的执行优先级能够由技术人员进行预先设置,比如通常先检查内存是否满足部署需求条件,再检查CPU是否满足部署需求条件,因此内存检查操作的执行优先级高于CPU检查操作的执行优先级。
可选地,该至少一个操作文件以脚本文件的形式进行预存,这样相当于对于原子化的部署操作分别提供了原子化的脚本文件,针对不同的系统环境、不同的目标应用,只需要按照目标应用的部署需求条件,搭配出不同原子化的部署操作,即可查询到对应的脚本文件,大大提升了应用部署效率。
在一个示例中,各个操作文件以脚本文件的形式进行预存,此时只需要简单地将各个脚本文件串联起来,即可完成对该待执行脚本信息的编写操作。技术人员可以通过下述任务模板来编写该待执行脚本信息:
task:step1#任务名称
host:10.1.1.1,hostgroup1#任务需要执行的目标主机或主机组
action:
script:”check_memory.sh 8G”#执行任务脚本,例如检查内存是否满足8G的条件。
Script:”check_cpu_core.sh 32”#执行任务脚本,例如检查cpu是否满足32核心。
Script:”check_os_version centos”#执行任务脚本,例如检查操作系统是否为centos。
……
在编写待执行脚本信息的过程中,技术人员可以登录管理服务器上的管理程序,由管理程序提供该任务模板,技术人员只需要将各个部署操作的脚本文件分别替换掉“script”后面的调用内容,即可生成待执行脚本信息。
在一些实施例中,由于各个部署操作的脚本文本都是预存在管理服务器中的(当然也可以存储在云端,由管理服务器在使用过程中即时下载),技术人员只需要一键选择出本次部署过程需要执行哪些部署操作,由管理服务器自动化的定位到被选中的部署操作的脚本文件,然后自动将这些脚本文件填充到该任务模板中,即可自动化地生成该待执行脚本信息。
304、管理服务器向该目标服务器发送该配置文件,该配置文件用于触发该目标服务器执行该至少一个部署操作。
可选地,管理服务器向目标服务器仅发送配置文件,等待目标服务器返回对该至少一个部署操作的至少一个执行结果信息,进而确定出目标应用的整个部署过程的部署结果信息,如果该部署结果信息表示部署成功,再向目标服务器发送该目标应用的安装文件(俗称为安装包),如果该部署结果信息表示部署失败,在管理服务器上显示出执行结果信息不符合部署需求条件的部署操作,这样便于技术人员进行查漏补缺和技术修复,能够减少本次通讯过程的通信量。
可选地,管理服务器向目标服务器发送配置文件时还同时发送安装文件,在一个示例中,将前述配置文件和安装文件封装在同一条数据传输报文中,在另一个示例中,将前述配置文件和安装文件封装在不同的数据传输报文中,这样可以由目标服务器直接根据本机对该至少一个部署操作的至少一个执行结果信息,确定出目标应用的整个部署过程的部署结果信息,如果该部署结果信息表示部署成功,直接打开安装文件进行目标应用的安装过程,如果该部署结果信息表示部署失败,向管理服务器返回用于表示部署失败的部署结果信息,可选地,目标服务器丢弃该安装文件,有利于减少管理服务器与目标服务器之间的通信轮次。
305、目标服务器接收到该配置文件,执行该至少一个部署操作,向该管理服务器发送对该至少一个部署操作的至少一个执行结果信息。
在上述过程中,目标服务器根据该配置文件,通过执行该配置文件中的待执行脚本信息,能够达成执行该至少一个部署操作,可选地,对每个部署操作,采用一个返回值表示该部署操作的执行结果信息,比如,该返回值为0时表示符合部署需求条件,该返回值为1时表示不符合部署需求条件,目标服务器获取各个部署操作的返回值,将各个部署操作的返回值作为各个部署操作的执行结果信息。目标服务器汇总各个部署操作的各个执行结果信息后,打包发送至管理服务器。
可选地,在发送各个执行结果信息时,如果目标服务器与管理服务器之间的链路状况较差(丢包率高、延迟高),目标服务器能够采用冗余发送的方式,也即重复多次发送各个执行结果信息,以提升信息传输的可靠性。可选地,目标服务器向管理服务器发送加密后的各个执行结果信息,以提升信息传输的安全性。
在一个示例中,部署操作为检查目标服务器的内存是否满足部署需求条件,此时采用的脚本文件为check_memory.sh,其中,脚本文件的输入参数为检查的内存值,返回值为0时表示符合部署需求条件(代表验证成功),返回值为1时表示不符合部署需求条件(代表验证失败)。
图5是本申请实施例提供的一种应用部署方法的原理性流程图,请参考图5,在步骤501中,管理服务器分析产品(也即目标应用)的部署需求条件,在步骤502中,管理服务器定义系统加固项、系统检查项、系统配置项,也即确定对操作系统的加固操作、检查操作和配置操作(三者统称为配置操作),接着,在步骤503中,技术人员进行任务调度配置,生成目标应用程序的配置文件,将该配置文件发送至目标服务器,在步骤504中,由目标服务器执行各个任务的配置操作。这一部署过程对管理服务器及目标服务器的硬件设备均无要求,仅仅依赖于操作系统提供的命令和一些代码库(比如Python库),还可以将各个配置操作所对应的脚本文件封装为一个独立的软件包,这一可以在任一计算机设备上加载该软件包,以实现对应用部署过程的管控。
306、管理服务器接收该目标服务器对该至少一个部署操作的至少一个执行结果信息。
在上述过程中,管理服务器接收目标服务器发送的数据包,解析该数据包得到该至少一个执行结果信息。
图6是本申请实施例提供的一种应用部署方法的原理性流程图,请参考图6,在步骤601中,管理服务器通过调度工具解析调度任务,得到至少一个部署操作,在步骤602中,管理服务器通过管控工具向目标服务器分发文件和命令(也即发送配置文件),在步骤603中,目标服务器执行检查项和初始化项(也即目标服务器执行该至少一个部署操作),在步骤604中,目标服务器向管理服务器返回每个待配置节点的执行结果信息。
307、管理服务器根据该至少一个执行结果信息,确定该目标服务器对该目标应用的部署结果信息。
可选地,若该至少一个执行结果信息均符合该目标应用的部署需求条件,管理服务器将该部署结果信息确定为部署成功;若该至少一个执行结果信息中存在不符合该目标应用的部署需求条件的执行结果信息,管理服务器将该部署结果信息确定为部署失败。
在一个示例性场景中,假设目标应用为Mysql数据库,则解析得到的至少一个部署操作包括:管理Selinux(Security-Enhanced Linux,安全增强型Linux)、挂载数据磁盘、检查系统命令(yum)是否存在、检查目标服务器的操作系统版本是否满足部署需求条件、检查目标服务器的内存及CPU是否满足部署需求条件、修改目标服务器的时区信息、设置目标服务器的操作系统语言等。如果目标服务器在一个分布式系统,那么在相关技术中,对于分布式系统的每个待配置节点,均需要由技术人员手动执行相同的一系列部署操作,且在执行一系列部署操作时均需要编写相应的逻辑代码,时间成本高且技术门槛高,而基于本申请实施例提供的应用部署方法,由于将整体的应用部署过程拆分为一个个原子化的部署操作,对每个原子化的部署操作预先存储了对应的脚本文件,这样只需要针对本次应用部署过程的配置操作,调用对应的脚本文件,与目标应用具体是哪个应用无关,从而可以实现跨产品、跨环境的脚本工具复用,可以覆盖到绝大部分的私有化产品部署场景中,且可以实现集群内批量化自动部署,大大提升了应用部署效率。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本申请实施例提供的方法,通过在确定对目标应用的各个部署操作后,查询对应的各个预存的操作文件,达到了对整个部署过程中各个不同的部署操作进行原子化地拆分,并且为原子化的各个部署操作提供了对应的操作文件,再基于各个操作文件方便地生成目标应用的配置文件,向目标服务器发送该配置文件,由于已经预先提供了各个部署操作的操作文件,因此用户在生成配置文件时无需关心各个操作文件内部的处理逻辑,大大降低了应用部署的技术门槛,且由于不同应用在不同环境下的不同部署操作均能够提供对应的操作文件,因此可以大大提升应用部署效率、提高应用部署的可移植性。
图7是本申请实施例提供的一种应用部署装置的结构示意图,请参考图7,该装置包括:
查询模块701,用于基于在目标服务器上部署目标应用时待执行的至少一个部署操作,查询分别与该至少一个部署操作所对应的至少一个操作文件;
获取模块702,用于根据该至少一个操作文件,获取用于在该目标服务器上部署该目标应用的配置文件;
发送模块703,用于向该目标服务器发送该配置文件,该配置文件用于触发该目标服务器执行该至少一个部署操作。
本申请实施例提供的装置,通过在确定对目标应用的各个部署操作后,查询对应的各个预存的操作文件,达到了对整个部署过程中各个不同的部署操作进行原子化地拆分,并且为原子化的各个部署操作提供了对应的操作文件,再基于各个操作文件方便地生成目标应用的配置文件,向目标服务器发送该配置文件,由于已经预先提供了各个部署操作的操作文件,因此用户在生成配置文件时无需关心各个操作文件内部的处理逻辑,大大降低了应用部署的技术门槛,且由于不同应用在不同环境下的不同部署操作均能够提供对应的操作文件,因此可以大大提升应用部署效率、提高应用部署的可移植性。
在一种可能实施方式中,基于图7的装置组成,该获取模块702包括:
第一获取单元,用于根据该目标服务器的设备信息,获取该配置文件的待配置节点信息;
第二获取单元,用于根据该至少一个操作文件,获取该配置文件的待执行脚本信息;
生成单元,用于根据该待配置节点信息和该待执行脚本信息,生成该配置文件。
在一种可能实施方式中,该第二获取单元用于:
根据该至少一个操作文件的执行优先级,确定该至少一个操作文件在该待执行脚本信息中的执行顺序,其中,该操作优先级与该执行顺序呈正相关。
在一种可能实施方式中,基于图7的装置组成,该装置还包括:
解析模块,用于解析该目标应用在该目标服务器上的部署需求条件,得到该至少一个部署操作。
在一种可能实施方式中,基于图7的装置组成,该装置还包括:
接收模块,用于接收该目标服务器对该至少一个部署操作的至少一个执行结果信息;
确定模块,用于根据该至少一个执行结果信息,确定该目标服务器对该目标应用的部署结果信息。
在一种可能实施方式中,该确定模块用于:
该至少一个执行结果信息均符合该目标应用的部署需求条件,将该部署结果信息确定为部署成功;
该至少一个执行结果信息中存在不符合该目标应用的部署需求条件的执行结果信息,将该部署结果信息确定为部署失败。
在一种可能实施方式中,该至少一个部署操作的操作类型包括加固操作、检查操作或者配置操作中至少一项,其中,该加固操作用于表示对操作系统的安全项目的修改操作,该检查操作用于表示对操作系统的运行环境的查询操作,该配置操作用于表示对该操作系统的运行环境的编辑操作。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的应用部署装置在部署应用时,仅以上述各功能模块的划分进行举例说明,实际应用中,能够根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用部署装置与应用部署方法实施例属于同一构思,其具体实现过程详见应用部署方法实施例,这里不再赘述。
图8是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备800可因配置或性能不同而产生比较大的差异,该计算机设备800包括一个或一个以上处理器(Central Processing Units,CPU)801和一个或一个以上的存储器802,其中,该存储器802中存储有至少一条程序代码,该至少一条程序代码由该处理器801加载并执行以实现上述各个实施例提供的应用部署方法。可选地,该计算机设备800还具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备800还包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括至少一条程序代码的存储器,上述至少一条程序代码可由终端中的处理器执行以完成上述实施例中应用部署方法。例如,该计算机可读存储介质包括ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或该计算机程序包括一条或多条程序代码,该一条或多条程序代码存储在计算机可读存储介质中。计算机设备的一个或多个处理器能够从计算机可读存储介质中读取该一条或多条程序代码,该一个或多个处理器执行该一条或多条程序代码,使得计算机设备能够执行上述各个实施例提供的应用部署方法。
本领域普通技术人员能够理解实现上述实施例的全部或部分步骤能够通过硬件来完成,也能够通过程序来指令相关的硬件完成,可选地,该程序存储于一种计算机可读存储介质中,可选地,上述提到的存储介质是只读存储器、磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种应用部署方法,其特征在于,所述方法包括:
基于在目标服务器上部署目标应用时待执行的至少一个部署操作,查询分别与所述至少一个部署操作所对应的至少一个操作文件;
根据所述至少一个操作文件,获取用于在所述目标服务器上部署所述目标应用的配置文件;
向所述目标服务器发送所述配置文件,所述配置文件用于触发所述目标服务器执行所述至少一个部署操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个操作文件,获取用于在所述目标服务器上部署所述目标应用的配置文件包括:
根据所述目标服务器的设备信息,获取所述配置文件的待配置节点信息;
根据所述至少一个操作文件,获取所述配置文件的待执行脚本信息;
根据所述待配置节点信息和所述待执行脚本信息,生成所述配置文件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述至少一个操作文件,获取所述配置文件的待执行脚本信息包括:
根据所述至少一个操作文件的执行优先级,确定所述至少一个操作文件在所述待执行脚本信息中的执行顺序,其中,所述操作优先级与所述执行顺序呈正相关。
4.根据权利要求1所述的方法,其特征在于,所述基于在目标服务器上部署目标应用时待执行的至少一个部署操作,查询分别与所述至少一个部署操作所对应的至少一个操作文件之前,所述方法还包括:
解析所述目标应用在所述目标服务器上的部署需求条件,得到所述至少一个部署操作。
5.根据权利要求1所述的方法,其特征在于,所述向所述目标服务器发送所述配置文件之后,所述方法还包括:
接收所述目标服务器对所述至少一个部署操作的至少一个执行结果信息;
根据所述至少一个执行结果信息,确定所述目标服务器对所述目标应用的部署结果信息。
6.根据权利要求5所述的方法,其特征在于,所述根据所述至少一个执行结果信息,确定所述目标服务器对所述目标应用的部署结果信息包括:
所述至少一个执行结果信息均符合所述目标应用的部署需求条件,将所述部署结果信息确定为部署成功;
所述至少一个执行结果信息中存在不符合所述目标应用的部署需求条件的执行结果信息,将所述部署结果信息确定为部署失败。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述至少一个部署操作的操作类型包括加固操作、检查操作或者配置操作中至少一项,其中,所述加固操作用于表示对操作系统的安全项目的修改操作,所述检查操作用于表示对操作系统的运行环境的查询操作,所述配置操作用于表示对所述操作系统的运行环境的编辑操作。
8.一种应用部署装置,其特征在于,所述装置包括:
查询模块,用于基于在目标服务器上部署目标应用时待执行的至少一个部署操作,查询分别与所述至少一个部署操作所对应的至少一个操作文件;
获取模块,用于根据所述至少一个操作文件,获取用于在所述目标服务器上部署所述目标应用的配置文件;
发送模块,用于向所述目标服务器发送所述配置文件,所述配置文件用于触发所述目标服务器执行所述至少一个部署操作。
9.根据权利要求8所述的装置,其特征在于,所述获取模块包括:
第一获取单元,用于根据所述目标服务器的设备信息,获取所述配置文件的待配置节点信息;
第二获取单元,用于根据所述至少一个操作文件,获取所述配置文件的待执行脚本信息;
生成单元,用于根据所述待配置节点信息和所述待执行脚本信息,生成所述配置文件。
10.根据权利要求9所述的装置,其特征在于,所述第二获取单元用于:
根据所述至少一个操作文件的执行优先级,确定所述至少一个操作文件在所述待执行脚本信息中的执行顺序,其中,所述操作优先级与所述执行顺序呈正相关。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
解析模块,用于解析所述目标应用在所述目标服务器上的部署需求条件,得到所述至少一个部署操作。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收所述目标服务器对所述至少一个部署操作的至少一个执行结果信息;
确定模块,用于根据所述至少一个执行结果信息,确定所述目标服务器对所述目标应用的部署结果信息。
13.根据权利要求12所述的装置,其特征在于,所述确定模块用于:
所述至少一个执行结果信息均符合所述目标应用的部署需求条件,将所述部署结果信息确定为部署成功;
所述至少一个执行结果信息中存在不符合所述目标应用的部署需求条件的执行结果信息,将所述部署结果信息确定为部署失败。
14.一种计算机设备,其特征在于,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述至少一条程序代码由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求7任一项所述的应用部署方法。
15.一种存储介质,其特征在于,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行以实现如权利要求1至权利要求7任一项所述的应用部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010690880.5A CN111708550A (zh) | 2020-07-17 | 2020-07-17 | 应用部署方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010690880.5A CN111708550A (zh) | 2020-07-17 | 2020-07-17 | 应用部署方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111708550A true CN111708550A (zh) | 2020-09-25 |
Family
ID=72546702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010690880.5A Pending CN111708550A (zh) | 2020-07-17 | 2020-07-17 | 应用部署方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111708550A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112182591A (zh) * | 2020-11-26 | 2021-01-05 | 江苏北弓智能科技有限公司 | 一种基于Linux系统的web应用可信运行环境校验方法 |
CN112804094A (zh) * | 2020-12-30 | 2021-05-14 | 北京天融信网络安全技术有限公司 | 一种设备部署方法和装置 |
CN113031977A (zh) * | 2021-04-07 | 2021-06-25 | 深圳云之家网络有限公司 | 一种软件批量化安装方法以及相关装置 |
CN113391853A (zh) * | 2021-06-15 | 2021-09-14 | 中国工商银行股份有限公司 | 跨系统配置环境的方法、装置、设备、介质及程序产品 |
CN114003312A (zh) * | 2021-10-29 | 2022-02-01 | 广东智联蔚来科技有限公司 | 大数据服务组件管理方法、计算机装置及存储介质 |
CN116149689A (zh) * | 2023-04-24 | 2023-05-23 | 上海观安信息技术股份有限公司 | 软件安装方法、装置、存储介质及计算机设备 |
-
2020
- 2020-07-17 CN CN202010690880.5A patent/CN111708550A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112182591A (zh) * | 2020-11-26 | 2021-01-05 | 江苏北弓智能科技有限公司 | 一种基于Linux系统的web应用可信运行环境校验方法 |
CN112182591B (zh) * | 2020-11-26 | 2021-02-19 | 江苏北弓智能科技有限公司 | 一种基于Linux系统的web应用可信运行环境校验方法 |
CN112804094A (zh) * | 2020-12-30 | 2021-05-14 | 北京天融信网络安全技术有限公司 | 一种设备部署方法和装置 |
CN113031977A (zh) * | 2021-04-07 | 2021-06-25 | 深圳云之家网络有限公司 | 一种软件批量化安装方法以及相关装置 |
CN113391853A (zh) * | 2021-06-15 | 2021-09-14 | 中国工商银行股份有限公司 | 跨系统配置环境的方法、装置、设备、介质及程序产品 |
CN114003312A (zh) * | 2021-10-29 | 2022-02-01 | 广东智联蔚来科技有限公司 | 大数据服务组件管理方法、计算机装置及存储介质 |
CN116149689A (zh) * | 2023-04-24 | 2023-05-23 | 上海观安信息技术股份有限公司 | 软件安装方法、装置、存储介质及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111708550A (zh) | 应用部署方法、装置、计算机设备及存储介质 | |
US9569266B2 (en) | Apparatus, method, and computer program product for solution provisioning | |
CN107534571B (zh) | 用于管理虚拟网络功能的方法、系统和计算机可读介质 | |
CN108255497B (zh) | 一种应用的部署方法及装置 | |
KR20190082926A (ko) | 메시징 프로토콜 통신 관리 | |
CN110752947A (zh) | 一种k8s集群部署方法及装置,一种部署平台 | |
US8027817B2 (en) | Simulation management within a grid infrastructure | |
CN111857733B (zh) | 一种业务环境的构建方法、装置、系统以及可读存储介质 | |
CN104702624A (zh) | 基于CloudStack平台虚拟机登录方法及系统 | |
CN113835911B (zh) | 内网穿透代理方法、系统、主机及计算机可读存储介质 | |
EP3737039B1 (en) | Method for transmitting request message and apparatus | |
CN113687858A (zh) | 配置文件的检查方法、装置、电子设备及存储介质 | |
KR102118487B1 (ko) | 지속적인 통합 및 배포를 위한 컨테이너 기반 애플리케이션의 자동 품질검사 시스템 및 방법 | |
EP3839734A1 (en) | Integration of an orchestration services with a cloud automation services | |
CN114168179A (zh) | 微服务管理方法、装置、计算机设备和存储介质 | |
KR102623631B1 (ko) | Nfv 환경에서의 vnf 자동 설정 방법 및 이를 위한 nfv mano | |
KR101943936B1 (ko) | 웹 표준 애플리케이션 개발을 위한 통합 외부 연동 시스템 및 방법 | |
US11269615B2 (en) | Automatically orchestrating deployments of software-defined storage stacks | |
CN114024822A (zh) | 基于区块链的物联网设备管理方法、设备、服务器及介质 | |
CN113032263A (zh) | 用例测试处理方法、装置、服务器及可读存储介质 | |
CN114258020B (zh) | 专有云部署方法、平台及电子设备 | |
CN111176782A (zh) | 一种在线实验方法和装置 | |
KR102485154B1 (ko) | 전력 통신 서비스 | |
CN117056029B (zh) | 资源处理方法、系统、装置、存储介质及电子设备 | |
US9436523B1 (en) | Holistic non-invasive evaluation of an asynchronous distributed software process |
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 |