用于管理多个分布式服务器上的机器镜像的系统和方法与流程

文档序号:14713999发布日期:2018-06-16 00:58阅读:132来源:国知局
用于管理多个分布式服务器上的机器镜像的系统和方法与流程

所公开的发明涉及管理机器镜像,并且更具体地涉及用于管理多个分布式服务器上的机器镜像的分布式系统。



背景技术:

在连接到网络的计算设备上安装软件更新的现有系统和方法基于软件的发布者将更新的软件文件经网络推送至计算设备。然后,根据从发布者获得的指令将更新的软件安装在计算设备上。

需要的是解决跨区域和云供应商的网络来维护具有复杂安装的应用容器的问题的技术。需要的是使得依赖于基于云的临时性机器实例的在线服务能够将它们的机器镜像的目录自动保持为最新,这对于安全性和工程效率是有益的。将在线软件与来自所有软件供应商的最新安全补丁同步保持最新是至关重要的。



技术实现要素:

本发明的示例实施例解决跨云供应商和区域来维护和更新具有复杂安装的应用容器的问题。

在本发明的示例实施例中,分布式系统经计算机网络管理多个分布式服务器上的机器镜像。服务处理器生成用于在远程服务器上构建机器镜像的安装指令,该机器镜像包括至少一个组件,该安装指令包括用于让远程服务器经网络从至少一个组件的源访问至少一个组件的指令。服务处理器将用于构建机器镜像的安装经计算机网络传输到远程服务器的多个分布式服务器。

耦接到服务处理器的反应式管理处理器访问至少一个组件的源,以检测是否存在该至少一个组件的更新,并且向服务处理器通知存在检测到的更新。

响应于服务处理器从反应式管理处理器接收到更新的通知,服务处理器生成用于在远程服务器上构建修正的机器镜像的修正的安装指令,修正的安装指令包括用于让远程服务器经网络从至少一个组件的源访问至少一个组件的更新的指令。服务处理器将用于重新构建修正的机器镜像的修正的安装指令和全局重新构建命令经计算机网络传输到远程服务器的多个分布式服务器。

全局重新构建命令由服务处理器响应于对安装指令的改变、对已安装软件组件的改变、对所使用的库的改变或者对基本操作系统补丁状态的改变中的至少一个而传输。

至少一个组件的源可以是软件组件的发布者或者存储软件组件的存储设备。

服务处理器还被配置为生成用于使自动功能测试在已经在远程服务器上被构建之后针对机器镜像而被执行的指令,用于功能测试的指令与安装指令一起经计算机网络被传输到远程服务器的多个分布式服务器。

服务处理器还被配置为生成用于使自动功能测试在已经在远程服务器上被重新构建之后针对修正的机器镜像而被执行的修正的指令,用于功能测试的修正的指令与修正的安装指令一起经计算机网络被传输到远程服务器的多个分布式服务器。

对于计算机网络中的远程服务器的多个分布式服务器中的每个分布式服务器,机器镜像构建器软件执行用于在远程服务器上构建机器镜像的安装指令。

本发明的示例实施例通过利用组件的非常规并且非一般的布置来控制(harness)网络体系结构并且利用它,以经计算机网络管理多个分布式服务器上的机器镜像,从而跨基于云的供应商和区域的网络来维护和更新具有复杂安装的应用容器。

附图说明

图1例示本发明的示例实施例,该示例实施例示出包括计算机网络中的多个分布式服务器和服务处理器的分布式系统。服务处理器被配置为生成用于在分布式服务器上构建机器镜像的安装指令以及生成用于在已经在分布式服务器上被构建之后针对机器镜像执行的自动功能测试。反应式管理处理器耦接到服务处理器并且被配置为访问机器镜像的至少一个组件的源,以检测是否存在该至少一个组件的更新,以及向服务处理器通知检测到的更新的存在。服务处理器被配置为响应于由反应式管理处理器检测到更新,生成重新构建在分布式服务器上构建的机器镜像的修正的指令并且将全局重新构建命令分发到分布式服务器。

图2例示本发明的示例实施例,该示例实施例示出服务处理器已经生成在分布式服务器上构建机器镜像的安装指令。

图3例示本发明的示例实施例,该示例实施例示出计算机网络中的分布式服务器已经接收到在服务器上构建机器镜像的安装指令。

图3A例示本发明的示例实施例,该示例实施例示出机器镜像的组件以及机器镜像构建器基于接收到的安装指令而在分布式服务器上对它们进行安装的示意图。

图4例示本发明的示例实施例,该示例实施例示出反应式管理处理器访问机器镜像的至少一个组件的源,并且检测是否已存在该至少一个组件的更新。反应式管理处理器被示为向服务处理器通知检测到的更新的存在。服务处理器被示为响应于由反应式管理处理器检测到更新,生成重新构建在分布式服务器上构建的机器镜像的修正的指令并且将全局重新构建命令分发到分布式服务器。

图5例示本发明的示例实施例,该示例实施例示出计算机网络中的分布式服务器已经接收到在服务器上重新构建修正的机器镜像的修正的安装指令。

图6例示本发明的示例实施例,该示例实施例示出对反应式管理处理器访问机器镜像的若干供应者源组件以及搜索供应者的目录以寻找组件的任何更新的存在的较详细描述。反应式管理处理器被示为向服务处理器通知存在检测到的更新。

图7是响应于反应式管理处理器检测到更新,由服务处理器执行以生成重新构建在分布式服务器上构建的机器镜像的修正的指令,并且将全局重新构建命令分发到分布式服务器的示例程序化方法的流程图。

具体实施方式

本发明的示例实施例解决跨分布式的基于云的供应商和区域的网络来维护具有复杂安装的应用容器的问题。本发明的示例实施例使得依赖于基于云的临时性机器实例的在线服务能够自动地使它们的机器镜像的目录保持最新,以使在线软件与来自所有软件供应商的最新安全补丁保持最新。

图1例示本发明的示例实施例,该示例实施例示出包括计算机网络(例如,因特网)120中的多个分布式供应商云服务器130(1)、130(2)和130(3)以及机器镜像构建器服务处理器100的分布式系统。服务处理器100被配置为生成在分布式服务器上构建机器镜像的安装指令以及生成在已经在分布式服务器上被构建之后针对机器镜像执行的自动功能测试。反应式管理处理器110耦接到服务处理器100并且它们可以在同一机器上运行。反应式管理处理器110被配置为访问机器镜像的至少一个组件的源,以检测是否存在该至少一个组件的更新,以及向服务处理器100通知检测到的更新的存在。服务处理器100被配置为响应于由反应式管理处理器110检测到更新,生成重新构建在分布式服务器130(1)、130(2)和130(3)上构建的机器镜像的修正的指令以及将全局重新构建命令分发到分布式服务器。

图2例示本发明的示例实施例,该示例实施例示出服务处理器100已经在步骤103中生成了在分布式服务器130(1)、130(2)和130(3)上构建机器镜像的安装指令作为配方(recipe)脚本115。

在步骤104中,服务处理器100将配方脚本115发送到每个供应商云服务器。

配方脚本115的示例可以包括以下指令:

[1]在供应商云服务器处运行机器镜像构建器

[2]从第一供应者的因特网URL获得第一组件并且安装

[3]从第二供应者的URL获得第二组件并且安装

[4]创建目录“install_files”

[5]使用对于“install_files”的证书来从存储装置下载“A_file”

[6]安装“A_file”

[7]运行所安装的机器镜像的功能测试

[8]从库中删除先前的机器镜像

[9]将所安装的机器镜像存储在库中

从第一供应者的因特网URL获得第一组件并且安装的脚本指令[2]的示例在表格A中示出:

表格A

install package'Java(TM)8 Update 111'do

source

'http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-windows-x64.exe'

end

服务处理器100还被配置为生成用于使自动功能测试在已经在每个远程服务器130(1)、130(2)和130(3)上被构建之后针对机器镜像执行的指令,用于功能测试的指令与安装指令脚本115一起经计算机网络120传输到远程服务器的多个分布式服务器130(1)、130(2)和130(3)。

用于服务器130(1)上的已完成的机器镜像的自动功能测试的脚本指令的示例在表格B中示出:

表格B

在步骤105中,服务处理器100还将目标云供应商以及对于每个目标云供应商的区域目标的集合的列表发送到每个供应商云服务器。

服务处理器100包括处理器106,处理器106包括双中央处理器单元(CPU)或者多CPU 107/107’、随机存取存储器(RAM)108和只读存储器(ROM)109。存储器108和/或109包括用于执行服务处理器100的功能的计算机程序代码。传输器/接收器TX/RX 101实现与计算机网络120的通信。

图3例示本发明的示例实施例,该示例实施例示出计算机网络120中的分布式服务器130(1)已经接收到脚本115中的在服务器上构建机器镜像的安装指令。在步骤303中,分布式服务器130(1)接收用于构建具有远程访问的虚拟机和功能测试的配方脚本。在步骤304中,分布式服务器130(1)运行配方脚本115。分布式服务器130(1)从组件的相应供应者140经由它们相应的因特网URL访问脚本115中识别的组件。供应者140可以是软件组件的发布者。分布式服务器130(1)还可以从存储软件组件的存储设备135访问脚本115中识别的组件。所访问的组件然后由机器镜像构建器安装在分布式服务器130(1)上。对于计算机网络120中的远程服务器的多个分布式服务器130(1)、130(2)和130(3)的每一个,机器镜像构建器软件执行脚本115中的用于在分布式服务器130(1)上构建机器镜像的安装指令。所安装的机器镜像然后可以被存储在库131中。

分布式服务器130(1)包括处理器136,处理器136包括双中央处理器单元(CPU)或者多CPU 137/137’、随机存取存储器(RAM)138和只读存储器(ROM)139。存储器138和/或139包括用于执行分布式服务器130(1)的功能的计算机程序代码。传输器/接收器TX/RX 131实现经计算机网络120与组件供应者的通信以及与文件存储装置135和库131的通信。

图3A例示本发明的示例实施例,该示例实施例示出机器镜像的组件以及机器镜像构建器基于脚本115中的接收到的安装指令而在分布式服务器130(1)上对它们进行安装的示意图。机器镜像的组件的示例是:

Windows 2008R2+SQL Server+JDK 1.8.74+DYNSIM 5.3.2+Software Agent(软件代理)。

a)OS(Windows 2008R2)

b)数据库(SQL Server)

c)应用容器(JDK 1.8.74)

d)应用(DYNSIM 5.3.2)

e)实用程序服务(Software Agent 0.1.5)

在分布式服务器130(1)的基本操作系统上创建示例机器镜像20、以及组件和它们的依赖性的示例。镜像源机器镜像20包括用于软件、目标列表105和基本镜像30的信息。

a)目标列表是应当接收得到的机器镜像的云供应商和区域的列表。

b)基本镜像是由OS供应商(Canonical、Red Hat和Microsoft)发布的仅包含操作系统的最新版本的最小机器镜像。

图4例示本发明的示例实施例,该示例实施例示出反应式管理处理器110,反应式管理处理器110包括组件供应者的数据库112。反应式管理处理器110被示为在114处访问机器镜像的至少一个组件的组件供应者140源的因特网URL。反应式管理处理器110被示为在116处检测是否存在该至少一个组件的更新。反应式管理处理器110被示为在118处向服务处理器100通知检测到的更新的存在。

反应式管理处理器110包括处理器436,处理器436包括双中央处理器单元(CPU)或者多CPU 437、随机存取存储器(RAM)438和只读存储器(ROM)439。存储器438和/或439包括用于执行反应式管理处理器110的功能的计算机程序代码。传输器/接收器TX/RX433实现经计算机网络120与组件供应者的通信以及与文件存储装置440的通信。

服务处理器100被示为在步骤102’处从供应者接收更新的组件的标识。服务处理器100被示为在步骤103’处生成重新构建在分布式服务器130(1)、130(2)和130(3)上构建的机器镜像的修正的指令脚本115’。服务处理器100被示为响应于由反应式管理处理器110检测到更新,在步骤105’处将全局重新构建命令分发到分布式服务器130(1)、130(2)和130(3)。

图5例示本发明的示例实施例,该示例实施例示出计算机网络120中的分布式服务器130(1)在步骤302’处接收到用于利用修正的配方脚本115’进行全局重新构建的触发程序(trigger)。分布式服务器130(1)在步骤303’处接收用于在服务器130(1)上重新构建修正的机器镜像的修正的安装指令脚本115’。分布式服务器130(1)在步骤304’处运行修正的配方脚本115’以在服务器上重新构建修正的机器镜像。分布式服务器130从组件的相应供应者140经由它们相应的因特网URL来访问脚本115’中识别的组件。供应者140可以是软件组件的发布者。分布式服务器130还可以从存储软件组件的存储设备135访问脚本115’中识别的组件。所访问的组件然后由机器镜像构建器安装在分布式服务器130(1)上。对于计算机网络120中的远程服务器的多个分布式服务器130(1)、130(2)和130(3)中的每一个,机器镜像构建器软件执行脚本115’中的用于在分布式服务器130(1)上重新构建机器镜像的修正的安装指令。所安装的修正的机器镜像然后可以被存储在库131中。

图6例示本发明的示例实施例,该示例实施例示出对反应式管理处理器110访问机器镜像20的组件的若干供应者源140(1)、140(2)至140(I)并且搜索供应者的目录650(1)、650(2)至650(I)以寻找组件的任何更新的存在的较详细描述。反应式管理处理器被示为向服务处理器100通知存在检测到的更新。在可替代的实施例中,组件供应者可以将关于更新的存在的推送通知提供给反应式管理处理器。

反应式管理处理器110的存储器48存储被配置为访问供应者源140(1)、140(2)至140(I)以及搜索供应者的目录650(1)、650(2)至650(I)以寻找机器镜像20的组件的任何更新的存在的编程指令。指令的示例序列可以从用于访问组件供应者的数据库112的指令652开始。这可以跟着是用于遍历(index through)“I”个供应者的指令654。这可以跟着是用于通过访问供应者“i”的目录114而开始循环的指令656。这可以跟着是用于针对组件“i”,比较现有的文件名与目录中的文件名的指令658。这可以跟着是用于针对组件“i”,比较现有的时间戳与目录中的时间戳的指令660。这可以跟着是用于确定如果文件名或者时间戳改变,那么将文件识别为已更新的指令662。这可以跟着是用于识别来自供应者“i”的组件“i”的更新以供重新构建118的指令664。这可以跟着是用于将用于组件供应者的索引加一,并且然后循环回到指令656,以继续对于“I”个供应者的循环的指令666。

反应式管理处理器110被示为在指令656处访问机器镜像的组件(i)的第“i”个组件供应者140(i)的因特网URL。反应式管理处理器110被示为在指令662处检测是否存在第“i”个组件的更新。反应式管理处理器110被示为在指令664处向服务处理器100通知检测到的更新的存在。服务处理器100被示为从反应式管理处理器110接收更新的组件的标识。

反应式管理处理器110尝试查看供应者的目录的URL结构。例如,如果SQL安装处于如下URL,

https://download.microsoft.com/download/c/2/8/123/SQLEXPR_x64_ENU.exe

那么反应式管理处理器110将自动地找到部分URL

https://download.microsoft.com/download/c/2/8/124/

对于没有在编号的路径结构中的文件,例如,用户自己的文件:

s3://m6remotefolder/Dynsim53_BETA_InstallKit1.zip

将通过仅替换该文件来更新。

反应式管理处理器110寻找该文件上的更新的时间戳。反应式管理处理器110记住现有的文件时间戳并且识别更新。

虽然并不非常常见,但是配方脚本115’使用安装器的授权的下载是可能的。证书可以被存储在分开的证书库中,而不是显式地存储在配方脚本115’中。加密的证书库可以与配方脚本115’一起被推送至供应商云服务器130(1)并且使用一次性密钥在运行中被解密。可以以类似的方式来处理软件许可,其中许可文件由供应商云服务器130(1)从分开的授权源下载。

图7是由图1的系统执行以响应于由反应式管理处理器检测到更新,生成重新构建在分布式服务器上构建的机器镜像的修正的指令,以及将全局重新构建命令分发到分布式服务器的示例编程方法的流程图600。

流程图的步骤代表存储在RAM和/或ROM存储器中的计算机代码指令,这些计算机代码指令当由中央处理单元(CPU)执行时,执行本发明的示例实施例的功能。步骤可以按照不同于示出的次序的另一种次序执行并且单独的步骤可以被组合或者被分离成组成步骤。流程图具有以下步骤:

在步骤602,服务处理器(例如,图1中的100)生成用于在远程服务器(例如,图1中的130(1))上构建机器镜像的安装指令,机器镜像包括至少一个组件,安装指令包括用于使远程服务器经网络从该至少一个组件的源(例如,图1中的140)访问该至少一个组件的指令。

在步骤604,服务处理器将用于构建机器镜像的安装指令经计算机网络(例如,因特网)传输到远程服务器的多个分布式服务器。

在步骤606,反应式管理处理器(例如,图1中的110)访问该至少一个组件的源,以检测是否存在该至少一个组件的更新,以及向服务处理器通知检测到的更新的存在。

在步骤608,响应于服务处理器从反应式管理处理器110接收到更新的通知,服务处理器生成用于在远程服务器上构建修正的机器镜像的修正的安装指令,这些修正的安装指令包括用于使远程服务器经网络从该至少一个组件的源访问该至少一个组件的更新的指令。

在步骤610,服务处理器将用于重新构建修正的机器镜像的修正的安装指令和全局重新构建命令经计算机网络传输到远程服务器的多个分布式服务器。

虽然已经公开了本发明的具体示例实施例,但是本领域技术人员将理解,可以对针对具体示例实施例描述的细节进行改变,而不背离本发明的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1