CN109298868B - 测绘影像数据处理软件智能动态部署及卸载方法 - Google Patents
测绘影像数据处理软件智能动态部署及卸载方法 Download PDFInfo
- Publication number
- CN109298868B CN109298868B CN201810962756.2A CN201810962756A CN109298868B CN 109298868 B CN109298868 B CN 109298868B CN 201810962756 A CN201810962756 A CN 201810962756A CN 109298868 B CN109298868 B CN 109298868B
- Authority
- CN
- China
- Prior art keywords
- deployment
- software
- information
- constraint
- deployed
- 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 50
- 238000013507 mapping Methods 0.000 title claims abstract description 14
- 238000012795 verification Methods 0.000 claims abstract description 74
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 52
- 238000009434 installation Methods 0.000 claims abstract description 43
- 238000013515 script Methods 0.000 claims abstract description 15
- 238000001514 detection method Methods 0.000 claims abstract description 10
- 238000012163 sequencing technique Methods 0.000 claims abstract description 6
- 238000004458 analytical method Methods 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 9
- 238000002360 preparation method Methods 0.000 claims description 8
- 238000010606 normalization Methods 0.000 claims description 6
- 230000007613 environmental effect Effects 0.000 claims description 5
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 230000003068 static effect Effects 0.000 claims description 4
- 238000007689 inspection Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 230000007123 defense Effects 0.000 claims 1
- 238000007726 management method Methods 0.000 description 17
- 239000003795 chemical substances by application Substances 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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
- 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/445—Program loading or initiating
- G06F9/44594—Unloading
-
- 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)
- Stored Programmes (AREA)
Abstract
本发明提供一种测绘影像数据处理软件智能动态部署及卸载方法,提取需要部署的计算节点数和需要部署的算法组件清单;获取当前所有计算节点的资源使用状态,对资源使用状态进行排序;获取需要部署的算法组件约束清单;验证待部署系统内的计算节点,待部署软件之间的约束关系验证;生成部署信息模型,生成可部署安装剧本;调用自动化部署工具执行自动部署。通过规范化建模描述部署软件的信息和部署目标的信息,调用约束检测、完整性检测、正确性检测等验证方法,来决定各个部署软件所对应的部署目标,生成各个部署目标的无冲突软件安装序列,使得软件能够自动无冲突的在部署目标上安装。提高了企业运行管理效率,有效地降低了企业信息管理运营成本。
Description
技术领域
本发明涉及遥感数据处理软件领域,具体地,涉及一种测绘影像数据处理软件智能动态部署及卸载方法。
背景技术
遥感数据是地球信息科学及其相关领域科学研究和生产工作中最重要的基础性资源,其应用已覆盖了地球信息科学相关的各个领域。基于遥感数据(特别是高分辨率遥感影像数据)的信息提取,是遥感数据的主要应用方式,是智能城市、环境监测、地质灾害预警、土地利用监测、植被监测、水体和海洋遥感、农业遥感和大气研究等行业进行科研和生产工作的常用技术手段。随着遥感卫星技术和成像技术的不断发展,多源、多时空分辨率的遥感数据呈现出海量化趋势,遥感原始数据量往往达到TB甚至PB级,这对地面数据处理系统的处理能力带来了极大的挑战。以嫦娥二号月球影像数据为例,原始条带影像的数据量已达到3TB,处理完成后的产品数据也高达800GB,这样庞大的数据量,已远远超出一般图形工作站的处理能力,对遥感数据的存储、管理和计算都提出了新的要求。
地面数据处理系统是基于海量数据分布式存储和GPU/CPU混合并行计算的云计算专业处理架构,可以实现地面数据处理系统的按需要扩展。根据遥感数据处理任务作业的需求,动态的加载计算节点,并且根据计算节点的资源空闲程度,动态部署相应的数据处理专业算法组件,完成数据处理任务作业。专业算法组件一般有上百种。在任务作业完成后,系统或管理员统一回收计算资源,即在已部署了专业算法组件的计算节点上删除或御载算法组件。不同的任务作业需要的计算节点数也不一样,任务作业需要的计算节点数一般由任务作业发起人预先申请。一个任务作业需要的计算节点数可能是几十个甚至上千个。一个任务作业在执行过程中,系统管理员可根据系统当前的状态,增加或减少计算节点数。当系统管理员减少计算节点数时,系统会依据一定的策略,优先回收计算节点负载较重的节点;而当系统管理员增加计算节点数时,系统也会依据一定的策略,优先加载空闲的计算节点或负载较轻的计算节点,直到满足系统管理员要求的计算节点数。
一个任务作业启动前,需要把选定的专业算法组件或编排好的算法组件部署到计算节点上,完成算法软件的智能化自动部署。软件部署是对软件进行安装和配置,使软件正常工作的过程。软件部署是一项繁琐工作,软件部署环境千差万别,部署环境中会存在各种不同类型的客户端和服务器端以及运行其上的各种不同的操作系统和应用软件。现有的软件部署方法有:手工安装、无人值守(Remote Install Service/Unattended)的安装、基于镜像的安装(Ghost,ImageX,powerQuest)、软件部署工具。针对大规模的软件安装部署,纯手工安装已不适合,部署效率太低,基本都会采用软件部署工具来实施软件部署工作。
国内外目前已经有许多软件部署系统,它们对软件的分发和部署采用了不同的方法和策略。现在较为强大的自动化部署工具有Chef、Puppet、SaltStack、Ansible等。Chef是一款自动化服务器配置管理工具,可以对所管理的对象实行自动化配置,如系统管理,安装软件,基于ruby语言编写的。它通过内置的配置可以帮助管理整个基础设施,其中包括通过编写代码管理服务器,与用户程序、数据库、LADP目录等程序紧密集成。Puppet是一种Linux、Unix、windows平台的集中配置管理系统,基于C/S的部署架构,使用自有的puppet描述语言,是一个为实现数据中心自动化管理而设计的配置管理软件,可管理配置文件、用户、cron任务、软件包、系统服务等。SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能。SaltStack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。通过部署SaltStack环境,可以实现在成千上万台服务器上做到批量执行命令;根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等。
Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible作为一个python写的自动化部署工具,与其它开源的Chef,Saltstack,Puppet相比,更有一些优势,首先是不需要安装Agent,操作完全依赖SSH(windows需要安装winrm开启ssh服务)。这样的好处是不需要专门为Agent申请网络端口,不再需要维护Agent的状态,不用担心Agent挂掉。而且部署Agent还需要花时间测试Agent好不好用。这个特点非常适合用来部署测绘影像数据处理专业算法组件,不用事先为新加入的计算节点而专门部署Agent。其次,Ansible是一个简单并且轻量级的自动化运维管理工具,可以批量命令,并发的执行软件部署安装过程,适合于成千上万的服务器集群部署环境。Ansible是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用SSH进行远程连接。Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是Ansible所运行的模块,Ansible只是提供一种框架。主要包括:连接插件connection plugins:负责和被监控端实现通信;host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;各种核心模块、command模块、自定义模块;借助于插件完成记录日志邮件等功能;playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
Ansible运行时,先从Inventory里调用主机名字,然后再调用特定的模块来完成任务。Paramiko,PyYAML和Jinjia2是Ansible的核心模块。Paramiko模块是用来创建SSH连接,基于SSH协议连接每一个被管理主机(在inventory文件中指定被管理主机的账号和密码)。PyYAML和Jinjia2模块是用来实现yaml语言格式和模板语言的。剧本playbook是使用yaml语言定制的。Ansible支持自定义模块,基于“模块”完成各种“任务”,自定义模块可使用任意语言开发。Ansible在管理节点将Ansible模块通过SSH协议(或者Kerberos、LDAP)推送到被管理端执行,执行完之后自动删除,可以使用SVN等来管理自定义模块及编排。管理端支持local、ssh、zeromq三种方式连接被管理端,默认使用基于ssh的连接——这部分对应基本架构图中的连接模块;可以按应用类型等方式进行Host Inventory(主机群)分类,管理节点通过各类模块实现相应的操作——单个模块,单条命令的批量执行,我们可以称之为ad-hoc;管理节点可以通过playbooks实现多个task的集合实现一类功能,如web服务的安装部署、数据库服务器的批量备份等。playbooks我们可以简单的理解为系统通过组合多条ad-hoc操作的配置文件。Ansible的任务执行流程如下:1)读取配置;2)获取全量主机和分组列表清单:可从多个静态文件、文件夹、脚本中读取机器,分组及其变关联量信息;3)使用host-pattern过滤主机列表;4)根据参数确定执行模块和配置:从Ansible内置模块中动态获取或定制化模块中获取;5)Runner执行返回:在Connection中定义连接方式=>Action阶段主机列表(查看plugin Action变量/文件等资源的获取),同时Callbackplugin各阶段的钩子调用;6)输出结束:Filter plugin过滤算子;Callback plugin各阶段的钩子调用。
现有的软件部署工具能够根据客户端部署的需求,对所需的软件一一部署。在整个软件部署过程中可以不需要人工的参与,而是把客户端部署的需求作为部署的目标,软件部署工具自动完成整个部署过程。虽然现有的软件部署工具较原来的手工或半自动化软件部署方法已经有了长足的进步,但是软件部署是机械的部署,而不是智能的部署。现有的软件部署工具根据服务器发送的需要部署的软件进行机械的部署,不进行判断。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种测绘影像数据处理软件智能动态部署及卸载方法。
根据本发明提供的测绘影像数据处理软件智能动态部署方法,包括以下步骤:
部署前期准备步骤:提取需要部署的计算节点数和需要部署的算法组件清单;
获取环境资源步骤:获取当前所有计算节点的资源使用状态,对资源使用状态进行排序;
获取算法组件约束步骤:获取需要部署的算法组件约束清单;
约束验证步骤:验证待部署系统内的计算节点,以及待部署软件之间的约束关系的正确性完整性验证,将该验证获得的结果记为约束验证结果;
生成部署信息模型步骤:生成部署信息模型,所述部署信息模型中包括部署信息;
生成可部署安装剧本步骤:生成可部署安装剧本;
执行自动化部署步骤:调用自动化部署工具,使用可部署安装剧本执行自动部署。
优选地,所述部署前期准备步骤包括:
部署任务作业步骤:根据数据处理任务要求,申请计算节点资源和需要使用的算法组件;
部署任务分析步骤:对申请获得的计算节点资源和算法组件清单进行规则分析检查。
优选地,所述规则分析检查包括以下的任一项或任多项:
-描述语言的规范化;
-制作静默安装包的安装打包工具的规范化;
-描述需求的计算节点的信息至少包括期望的操作系统及版本信息、CPU信息、内存空间信息、磁盘空间信息;
-待部署的算法组件的描述信息至少包括安装包名称、软件静默安装和卸载的配置参数及命令信息。
优选地,在所述约束验证步骤之后还包括验证结果分析步骤;
所述约束验证结果包括验证通过、验证不通过;
验证结果分析步骤通过分析验证不通过的约束验证结果,得到完全不通过的约束验证结果、部分通过的约束验证结果。
优选地,在所述验证结果分析步骤之后还包括继续部署步骤;
继续部署步骤通过设定的条件对部分通过的约束验证结果生成部署信息模型,继续部署。
优选地,还包括:
部署状态检测步骤:查看自动部署结果,决定部署过程是否需要重新部署;
部署信息保存步骤:保存部署结果信息,在数据处理任务结束后,回收计算节点的资源。
优选地,所述算法组件约束清单主要包括算法组件的名称和ID、依赖库、静默安装配置参数、静默御载配置参数、CPU需求、GPU需求、存储空间需求中的任一项或任多项。
优选地,所述正确性完整性验证包括:
采用静态分析方法解析XML描述文件,生成依赖结构矩阵;
对符合要求的计算节点进行匹配判定;
对软件组件进行软件依赖条件检查。
优选地,所述部署信息模型主要包括Web终端、部署服务器、部署目标;
所述部署信息主要包括部署目标的软硬件信息、部署软件信息、部署软件约束信息、软件约束验证和满足性验证、软件安装剧本。
根据本发明提供的测绘影像数据处理软件智能动态卸载方法,包括以下步骤:
卸载前期准备步骤:提取需要卸载的计算节点数和需要卸载的算法组件清单;
获取环境资源步骤:获取当前所有计算节点的资源使用状态,对资源使用状态进行排序;
获取算法组件约束步骤:获取需要卸载的算法组件约束清单;
约束验证步骤:验证待卸载系统内的计算节点,以及待卸载软件之间的约束关系的正确性完整性验证,将约束验证获得的结果记为约束验证结果;
生成卸载信息模型步骤:生成卸载信息模型,所述卸载信息模型中包括卸载信息;
生成可卸载安装剧本步骤:生成可卸载安装剧本;
执行自动化卸载步骤:调用自动化卸载工具,使用可卸载安装剧本执行自动卸载。
与现有技术相比,本发明具有如下的有益效果:
1、本发明能够根据部署目标环境差异的冲突,自动选择符合要求的部署目标,确保软件部署工作的正确性;
2、本发明不需要在部署目标中预先安装任何客户端,能够实现高效的、可靠的、批量的、自动化的软件安装、升级与删除等功能。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为Ansible的基本架构示意图;
图2为Ansible的工作机制示意图;
图3为Ansible的任务执行流程图;
图4为本发明的软件智能动态部署模型示意图;
图5为本发明的软件智能动态部署算法实现流程图。
图中示出:
Ans ible:核心;Core Modules:核心模块;Custom Modules:扩展模块;Plugins:插件;emai l:邮件;logging:日志;other:其他;Connectior Plugins:连接插件;HostInventory:主机群;Playbooks:剧本;Host1:主机1;Host2:主机2;Host3:主机3;HostN:主机N;Users:用户;Public/Private Cloud:公有/私有云;Control Node:控制机器;Inventory:主机清单;ZeroMQ:轻量级消息队列;SSH:连接协议。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
鉴于现有的软件部署工具存在的各种问题,本发明提出软件智能部署的概念。软件智能部署是在对使用规范化软件描述语言来描述软件部署约束和组件之间的版本依赖关系的基础上,结合部署目标的软硬件环境,自动对软件部署过程进行匹配和调整,在管理员最少干预的情况下,自动的、智能的完成软件部署过程。软件智能部署是针对分布式复杂环境下的,面向目标的智能化部署过程。软件智能化部署会在软件部署前尽可能的解决软件部署冲突。不同的数据处理专业算法软件依赖的运行的环境不一样,有的算法软件需要在windows平台上运行,而有的算法软件则需要在Linux平台上运行,需求的CPU和GPU资源也不一样。在执行数据处理任务作业时,需要依据当前所有的计算节点的资源状态,选择符合数量和资源要求的计算节点,快速部署专业算法软件或组件。在任务作业完成后,系统或管理员统一回收计算资源,即在已部署了专业算法组件的计算节点上删除或御载算法组件。要进行软件智能部署,必须结合部署软件的信息和部署目标的信息,对部署目标和部署软件进行规范化描述。部署目标的规范化描述是通过对部署客户端节点的硬件和软件信息进行模型化描述来实现;部署软件的规范化描述则通过软件描述语言来描述。
本发明提供的软件智能动态部署方法通过规范化建模描述部署软件的信息和部署目标的信息,调用约束检测、完整性检测、正确性检测等验证方法,来决定各个部署软件所对应的部署目标,生成各个部署目标的无冲突软件安装序列,使得软件能够自动的、无冲突的在部署目标上安装。通过该方法不仅提高了企业运行管理的效率,同时也有效地降低了企业信息管理运营成本。在规模大、复杂度高的情况下,软件智能动态部署方法具有人工部署和半自动化部署这两种部署方法无可比拟的优点。根据任务作业需要的计算节点数,智能化的选择满足数量的计算节点,动态部署专业算法组件。任务作业结束后,在计算节点中删除或御载之前部署的专业算法组件,释放计算节点的资源。
以下对本发明进行进一步的阐述。
本发明公开了一种测绘影像数据处理软件智能动态部署方法,包括以下步骤:部署前期准备步骤:根据数据处理作业任务要求,提取需要部署的计算节点数和需要部署的算法组件清单;获取环境资源步骤:获取当前所有计算节点的资源使用状态,对资源使用状态进行排序,通过IT资源监控管理软件获取当前所有计算节点的资源使用状态,获取当前所有计算节点的资源信息,信息包括运行的操作系统信息、当前计算节点资源使用的信息。根据不同的操作系统类别进行分组,按CPU空闲程度、GPU空闲程度、内存剩余空间、硬盘剩余空间等属性作为关键值,进行降序排列;获取算法组件约束步骤:获取需要部署的算法组件约束清单,从算法配置库中获取需要部署的算法组件约束清单。约束清单包含的内容有:算法组件的名称和ID、依赖库、静默安装配置参数、静默御载配置参数、CPU需求、GPU需求、存储空间需求等属性,在算法配置库中包含了对约束规则的描述,包括自身正确性约束、依赖约束、冲突约束和部署顺序正确性约束,针对不同类型的约束规则定义了不同的约束语法;约束验证步骤:验证待部署系统内的计算节点,以及待部署软件之间的约束关系的正确性完整性验证,对算法组件部署正确性完整性验证和约束规则、满足性验证,将该验证获得的结果记为约束验证结果,主要验证当前系统内是否有足够多的满足要求的计算节点以及需要部署的软件之间约束关系是否正确和完整;生成部署信息模型步骤:生成部署信息模型,所述部署信息模型中包括部署信息;生成可部署安装剧本步骤:生成可部署安装剧本,所述可部署安装剧本基于Ansible,即生成Host Inventory配置文件和yaml语言格式编写的Playbooks;执行自动化部署步骤:调用自动化部署工具,使用可部署安装剧本执行自动部署,具体为调用Ansible自动化部署工具,执行软件自动部署。Ansible自动化部署的过程方式参见图3种的Ansible任务执行流程。Ansible在部署软件时,如果部署目标中已经部署了待部署的软件,则待部署的软件会忽略,继续部署下一个待部署的软件。
具体地,所述部署信息模型主要包括Web终端、部署服务器、部署目标,涉及部署目标的软硬件信息、部署软件信息及其相关的约束规则信息、软件约束验证和满足性验证、软件安装剧本等;所述部署信息主要包括部署目标的软硬件信息、部署软件信息、部署软件约束信息、软件约束验证和满足性验证、软件安装剧本。如图3所示,部署目标:需要进行软件部署的主机。部署服务器:提供部署服务(存放部署软件服务和部署决策服务)的主机。Web终端:供管理员发起部署任务作业的主机。部署软件信息:主要包括软件安装包的可执行文件、软件静默安装和御载的配置参数及命令信息。部署软件约束信息:是一种规范化描述,信息内容涵盖了部署软件基本信息、与部署相关的依赖库和约束。部署目标软件信息:不仅包括部署目标操作系统信息,还包括在系统上安装的软件信息,例如软件名称、软件版本、软件运行情况等信息等,这些信息必须规范描述。部署目标硬件信息:有关部署目标的所有硬件信息,主板、内存、CPU、GPU、硬盘和网卡等,这些硬件信息同样必须规范描述。约束规则正确性完整性验证:分析总结各种应用软件部署时的限制和约束;对约束规则的描述,包括自身正确性约束、依赖约束、冲突约束和部署顺序正确性约束;针对不同类型的约束规则定义不同的约束语法;约束规则检测算法,针对以上定义的约束规则,解决软件安装过程中发生冲突的问题,生成无冲突的安装序列。部署信息模型:主要包括部署目标数、部署目标IP、每个部署目标的部署软件清单序列及其相关部署参数等信息。可部署软件安装剧本:即生成Ansible的Host Inventory配置文件和yaml语言格式编写的Playbooks。
具体地,所述部署前期准备步骤包括:部署任务作业步骤:系统管理员在web终端上根据数据处理任务要求,申请计算节点资源和需要使用的算法组件或专业算法软件;部署任务分析步骤:根据数据处理作业任务要求,提取出需要部署的计算节点数和需要部署的算法组件清单。在提取之前,对申请获得的计算节点资源和算法组件清单进行规则分析检查。所述规则分析检查包括以下的任一项或任多项:-描述语言的规范化,计算节点描述和需要部署的算法组件描述是通过规范化的语言描述的,如XML语言;-制作静默安装包的安装打包工具的规范化,待部署的算法软件或组件包是通过规范化的安装打包工具制作成的静默安装包;-描述需求的计算节点的信息至少包括期望的操作系统及版本信息、CPU信息、内存空间信息、磁盘空间信息,CPU信息包括CPU个数和CPU核数;-待部署的算法组件的描述信息至少包括安装包名称、软件静默安装和卸载的配置参数及命令信息。
具体地,在所述约束验证步骤之后还包括验证结果分析步骤;所述约束验证结果包括验证通过、验证不通过;验证结果分析步骤通过分析验证不通过的约束验证结果,得到完全不通过的约束验证结果、部分通过的约束验证结果。
具体地,在所述验证结果分析步骤之后还包括继续部署步骤;继续部署步骤通过设定的条件对部分通过的约束验证结果生成部署信息模型,继续部署。
具体地,测绘影像数据处理软件智能动态部署方法还包括:部署状态检测步骤:查看自动部署结果,决定部署过程是否需要重新部署或执行;部署信息保存步骤:保存部署结果信息,在数据处理任务结束后,回收计算节点的资源。部署结果信息保存,作为数据处理任务结束后,回收计算节点资源的输入。
具体地,所述算法组件约束清单主要包括算法组件的名称和ID、依赖库、静默安装配置参数、静默御载配置参数、CPU需求、GPU需求、存储空间需求中的任一项或任多项。
具体地,所述正确性完整性验证包括:采用静态分析方法解析XML描述文件,生成依赖结构矩阵;对符合要求的计算节点进行匹配判定,涉及约束规则验证和满足性验证。例如需要10个Linux平台的计算节点,但当前系统中只有8个可用的Linux平台计算节点,匹配结果就是部分匹配。再如算法软件需要1GB的硬盘空间,但某个计算节点只有800MB的硬盘剩余空间,算法软件部署会发生冲突,匹配结果就是完全不符合;对软件组件进行软件依赖条件检查,涉及正确性完整性验证。例如两个算法同时依赖一个软件库,则在依赖库集合去除一个。对于一次软件部署,如果部署所依赖的软件存在于部署软件集合或部署目标中,则称这一次部署是完整的。对经过验证的验证结果进行保存。
具体地,正确性完整性验证和约束规则、满足性验证,主要验证当前系统内是否有足够多的满足要求的计算节点以及需要部署的软件之间约束关系是否正确和完整,尽量在软件安装过程前解决软件安装过程中发生冲突的问题。如果验证结果分析得出验证结果完全通过,则继续部署步骤。如果验证结果完全不通过,说明当前系统非常繁忙,没有符合要求资源可用,取消本次部署任务,部署流程结束。如果验证结果是部分通过,系统依据管理员设定的策略执行以下相应的操作:管理员选择取消部署,则部署任务结束;管理员选择继续部署,则部署任务进入下一步。选择继续部署可以设置一个判断条件,让部署方法自动执行。例如设置满足要求的计算节点数是所申请的计算节点个数的80%,则只要满足要求的计算节点数大于等于这个条件就可以继续进行软件部署。
本发明公开了一种测绘影像数据处理软件智能动态卸载方法,包括以下步骤:卸载前期准备步骤:提取需要卸载的计算节点数和需要卸载的算法组件清单;获取环境资源步骤:获取当前所有计算节点的资源使用状态,对资源使用状态进行排序;获取算法组件约束步骤:获取需要卸载的算法组件约束清单;约束验证步骤:验证待卸载系统内的计算节点,以及待卸载软件之间的约束关系的正确性完整性验证,将约束验证获得的结果记为约束验证结果;生成卸载信息模型步骤:生成卸载信息模型,所述卸载信息模型中包括卸载信息;生成可卸载安装剧本步骤:生成可卸载安装剧本;执行自动化卸载步骤:调用自动化卸载工具,使用可卸载安装剧本执行自动卸载。算法软件御载过程相对部署过程简单很多,只需要依据之前的部署过程,修改Ansible的Playbooks。把Playbooks中软件部署的命令换成御载的命令。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (4)
1.一种测绘影像数据处理软件智能动态部署方法,其特征在于,包括以下步骤:
部署前期准备步骤:提取需要部署的计算节点数和需要部署的算法组件清单;
获取环境资源步骤:获取当前所有计算节点的资源使用状态,对资源使用状态进行排序;
获取算法组件约束步骤:获取需要部署的算法组件约束清单;
约束验证步骤:验证待部署系统内的计算节点,以及待部署软件之间的约束关系的正确性完整性验证,将该验证获得的结果记为约束验证结果;
生成部署信息模型步骤:生成部署信息模型,所述部署信息模型中包括部署信息;
生成可部署安装剧本步骤:生成可部署安装剧本;
执行自动化部署步骤:调用自动化部署工具,使用可部署安装剧本执行自动部署;
所述算法组件约束清单主要包括算法组件的名称和ID、依赖库、静默安装配置参数、静默御载配置参数、CPU需求、GPU需求、存储空间需求中的任一项或任多项;
所述正确性完整性验证包括:
采用静态分析方法解析XML描述文件,生成依赖结构矩阵;
对符合要求的计算节点进行匹配判定;
对软件组件进行软件依赖条件检查;
所述部署信息模型主要包括Web终端、部署服务器、部署目标;
所述部署信息主要包括部署目标的软硬件信息、部署软件信息、部署软件约束信息、软件约束验证和满足性验证、软件安装剧本;
在所述约束验证步骤之后还包括验证结果分析步骤;
所述约束验证结果包括验证通过、验证不通过;
验证结果分析步骤通过分析验证不通过的约束验证结果,得到完全不通过的约束验证结果、部分通过的约束验证结果;
在所述验证结果分析步骤之后还包括继续部署步骤;
继续部署步骤通过设定的条件对部分通过的约束验证结果生成部署信息模型,继续部署。
2.根据权利要求1所述的测绘影像数据处理软件智能动态部署方法,其特征在于,所述部署前期准备步骤包括:
部署任务作业步骤:根据数据处理任务要求,申请计算节点资源和需要使用的算法组件;
部署任务分析步骤:对申请获得的计算节点资源和算法组件清单进行规则分析检查。
3.根据权利要求2所述的测绘影像数据处理软件智能动态部署方法,其特征在于,所述规则分析检查包括以下的任一项或任多项:
-描述语言的规范化;
-制作静默安装包的安装打包工具的规范化;
-描述需求的计算节点的信息至少包括期望的操作系统及版本信息、CPU信息、内存空间信息、磁盘空间信息;
-待部署的算法组件的描述信息至少包括安装包名称、软件静默安装和卸载的配置参数及命令信息。
4.根据权利要求1所述的测绘影像数据处理软件智能动态部署方法,其特征在于,还包括:
部署状态检测步骤:查看自动部署结果,决定部署过程是否需要重新部署;
部署信息保存步骤:保存部署结果信息,在数据处理任务结束后,回收计算节点的资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810962756.2A CN109298868B (zh) | 2018-08-22 | 2018-08-22 | 测绘影像数据处理软件智能动态部署及卸载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810962756.2A CN109298868B (zh) | 2018-08-22 | 2018-08-22 | 测绘影像数据处理软件智能动态部署及卸载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109298868A CN109298868A (zh) | 2019-02-01 |
CN109298868B true CN109298868B (zh) | 2024-01-09 |
Family
ID=65165403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810962756.2A Active CN109298868B (zh) | 2018-08-22 | 2018-08-22 | 测绘影像数据处理软件智能动态部署及卸载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109298868B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110011875B (zh) * | 2019-04-11 | 2023-03-03 | 深圳前海微众银行股份有限公司 | 拨测方法、装置、设备及计算机可读存储介质 |
CN112241648A (zh) * | 2019-07-16 | 2021-01-19 | 杭州海康威视数字技术股份有限公司 | 图像处理系统及图像设备 |
CN110519365B (zh) * | 2019-08-26 | 2022-07-01 | 网宿科技股份有限公司 | 一种变更设备业务的方法和业务变更系统 |
CN110750273A (zh) * | 2019-10-14 | 2020-02-04 | 交控科技股份有限公司 | 云平台自动部署方法及系统 |
CN111078302B (zh) * | 2019-11-19 | 2023-08-11 | 许昌许继软件技术有限公司 | 一种配网监控平台系统的自动化部署方法及终端 |
CN113301068A (zh) * | 2020-04-07 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 管理集群资源的方法和系统、设备、集群以及介质 |
CN113495732A (zh) * | 2021-06-21 | 2021-10-12 | 中国普天信息产业股份有限公司 | 服务器部署方法、装置、设备及可读存储介质 |
CN113867735A (zh) * | 2021-09-03 | 2021-12-31 | 中国人民解放军军事科学院战争研究院 | 信息系统自动部署方法及装置 |
CN113867742A (zh) * | 2021-09-28 | 2021-12-31 | 杭州盈高科技有限公司 | 应用的处理方法、安装方法和卸载方法 |
CN115242598A (zh) * | 2022-07-15 | 2022-10-25 | 天翼云科技有限公司 | 一种云操作系统部署方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885796A (zh) * | 2014-03-03 | 2014-06-25 | 西安电子科技大学 | 一种基于脚本工具的软件动态部署方法 |
CN104199689A (zh) * | 2014-08-18 | 2014-12-10 | 中国建设银行股份有限公司 | 综合前端系统的安装方法及装置 |
CN104298525A (zh) * | 2014-09-25 | 2015-01-21 | 南京航空航天大学 | 复杂约束条件下多组件软件部署的自动化与自适应方法及其部署管理系统 |
CN105159736A (zh) * | 2015-10-23 | 2015-12-16 | 武汉大学 | 一种支持性能分析的SaaS软件部署方案的构建方法 |
CN105786564A (zh) * | 2016-02-22 | 2016-07-20 | 上海新炬网络信息技术有限公司 | 一种Oracle的自动化定制安装部署方法 |
CN106775947A (zh) * | 2016-12-06 | 2017-05-31 | 中国电子科技集团公司第三十二研究所 | 基于openstack的大规模虚拟计算动态负载均衡方法 |
CN108399083A (zh) * | 2017-02-07 | 2018-08-14 | 北京京东尚科信息技术有限公司 | 一种系统部署方法、装置、电子设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8046755B2 (en) * | 2005-12-30 | 2011-10-25 | Sap Ag | Deploying software based on a calculated deployment risk level |
US8978029B2 (en) * | 2013-05-13 | 2015-03-10 | Sap Se | Automated template deployment to computing platforms |
US9483250B2 (en) * | 2014-09-15 | 2016-11-01 | International Business Machines Corporation | Systems management based on semantic models and low-level runtime state |
US10243804B2 (en) * | 2016-09-16 | 2019-03-26 | Oracle International Corporation | Continuous delivery of hierarchical products using executor for software configuration automation |
-
2018
- 2018-08-22 CN CN201810962756.2A patent/CN109298868B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885796A (zh) * | 2014-03-03 | 2014-06-25 | 西安电子科技大学 | 一种基于脚本工具的软件动态部署方法 |
CN104199689A (zh) * | 2014-08-18 | 2014-12-10 | 中国建设银行股份有限公司 | 综合前端系统的安装方法及装置 |
CN104298525A (zh) * | 2014-09-25 | 2015-01-21 | 南京航空航天大学 | 复杂约束条件下多组件软件部署的自动化与自适应方法及其部署管理系统 |
CN105159736A (zh) * | 2015-10-23 | 2015-12-16 | 武汉大学 | 一种支持性能分析的SaaS软件部署方案的构建方法 |
CN105786564A (zh) * | 2016-02-22 | 2016-07-20 | 上海新炬网络信息技术有限公司 | 一种Oracle的自动化定制安装部署方法 |
CN106775947A (zh) * | 2016-12-06 | 2017-05-31 | 中国电子科技集团公司第三十二研究所 | 基于openstack的大规模虚拟计算动态负载均衡方法 |
CN108399083A (zh) * | 2017-02-07 | 2018-08-14 | 北京京东尚科信息技术有限公司 | 一种系统部署方法、装置、电子设备和存储介质 |
Non-Patent Citations (3)
Title |
---|
Improved distribution system utilization and expansion through distributed generator placement;Shiqiong Tong等;《IEEE Power Engineering Society General Meeting》;第1卷;第941页 * |
云计算环境下的软件动态部署;靳志成;《中国优秀硕士学位论文全文数据库 信息科技辑》(第7期);I138-370 * |
服务组件依赖关系求解与应用的研究;赵大香;《中国优秀硕士学位论文全文数据库 信息科技辑》(第10期);I139-93 * |
Also Published As
Publication number | Publication date |
---|---|
CN109298868A (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109298868B (zh) | 测绘影像数据处理软件智能动态部署及卸载方法 | |
CN109120678B (zh) | 用于分布式存储系统的服务托管的方法和装置 | |
US10430204B2 (en) | System and method for cloud provisioning and application deployment | |
CN112667362B (zh) | Kubernetes上部署Kubernetes虚拟机集群的方法与系统 | |
US10977274B2 (en) | Unified replication and recovery | |
CN112035228B (zh) | 一种资源调度方法及装置 | |
US9602599B2 (en) | Coordinating application migration processes | |
US9280336B2 (en) | Virtual machine disk image installation | |
US8918783B2 (en) | Managing virtual computers simultaneously with static and dynamic dependencies | |
US9594637B2 (en) | Deploying parallel data integration applications to distributed computing environments | |
CN113569987A (zh) | 模型训练方法和装置 | |
CN112269640B (zh) | 一种实现容器云组件的生命周期管理的方法 | |
CN111176818B (zh) | 分布式预测的方法、装置、系统、电子设备及存储介质 | |
CN113434158B (zh) | 一种大数据组件的自定义管理方法、装置、设备及介质 | |
CN117099079A (zh) | 经由配置在云平台中的数据中心上的持续交付部署的服务的系统配置冻结和变更管理 | |
CN112463290A (zh) | 动态调整计算容器的数量的方法、系统、装置和存储介质 | |
US7444350B1 (en) | Method and apparatus for processing management information | |
US7882232B2 (en) | Rapid resource provisioning with automated throttling | |
CN113867600A (zh) | 处理流式数据的开发方法、装置和计算机设备 | |
CN114115838A (zh) | 一种基于分布式组件和云平台的数据交互方法及系统 | |
EP3230865B1 (en) | Recovery execution system using programatic generation of actionable workflows | |
CN114528085A (zh) | 资源调度方法、装置、计算机设备、存储介质和程序产品 | |
CN113296795A (zh) | 应用部署方法、装置、设备、存储介质及程序产品 | |
CN116107694A (zh) | k8s子集群的部署方法、装置及存储介质 | |
CN112564979B (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 |