CN113474751B - 管理软件程序 - Google Patents

管理软件程序 Download PDF

Info

Publication number
CN113474751B
CN113474751B CN202080016509.9A CN202080016509A CN113474751B CN 113474751 B CN113474751 B CN 113474751B CN 202080016509 A CN202080016509 A CN 202080016509A CN 113474751 B CN113474751 B CN 113474751B
Authority
CN
China
Prior art keywords
container base
base image
managed
program instructions
image
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
Application number
CN202080016509.9A
Other languages
English (en)
Other versions
CN113474751A (zh
Inventor
N·吉布斯
M·M·洛比斯
B·J·斯尼泽
M·特雷德维
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.)
Qindarui Co
Original Assignee
Qindarui 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 Qindarui Co filed Critical Qindarui Co
Publication of CN113474751A publication Critical patent/CN113474751A/zh
Application granted granted Critical
Publication of CN113474751B publication Critical patent/CN113474751B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells

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描绘了根据本发明实施例的云计算环境。
图6描绘了根据本发明实施例的抽象模型层。
具体实施方式
向应用容器供应来自服务提供商的基础映像向用户提供预安装的、预结构化的内容集。打补丁和更新容器系统是用户的责任,而不是服务提供者。由于容器存储是短暂的,当容器停止运行或重新启动时,对映像和应用所做的更改将丢失。必须对基础配置映像进行更改才能生效。
在一个实施例中,云资源提供者(CSP)从用户接收对容器基础映像的请求。该请求可以是对托管映像的请求,也可以只是对特定容器映像的请求。请求可以是管理特定容器映像(即DOCKER映像)并通过私有映像注册表使其可用。CSP从公共映像注册中心或已知私有映像注册中心获取基础映像。然后,CSP创建所请求映像文件的托管版本,并将用户指向私有注册表中文件的托管版本。通过将用户直接指向私有注册表中的映像的托管版本来回答对具有托管版本的基础映像的后续请求。
基础映像包括在构建过程中创建的一系列层。该进程捕获与在定义容器环境的文件中执行命令相关联的系统文件系统的更改。与从文件中执行的每个命令相关的所有更改都被捕获为最终基础映像的一个层。
系统将基础映像传递给映像分析器,映像分析器识别映像层并对其进行编目。映像分析器审查容器基础映像层链并识别根层操作系统(OS)。系统创建基础映像的精确副本,并根据根层OS编码附加注入点。然后,基础映像的新托管版本存储在私有注册表中,其名称表明它是基础映像的托管版本。托管版本的位置或标签被提供给用户以将他们指向托管映像。附加的注入点使系统能够更新、打补丁或以其他方式修改基础映像的新托管版本内的底层基础映像。
然后,用户使用托管映像和容器编排软件工具(例如,KUBERNETES)来供应一个或多个容器。用户可以修改/增强托管映像,根据他们的需要和应用要求将他们的自定义配置添加到映像中。
在一个实施例中,系统确定OS或应用相关的编码漏洞影响存储在私有注册表/目录中的托管映像的至少一部分。由于操作系统和应用发布者发布的更新,该漏洞可能被识别。系统创建操作系统和/或应用特定的补丁脚本来解决漏洞。该方法的系统将每个受影响的映像从私有注册表/目录传递到系统的补丁插入组件。补丁插入组件在注入点将创建的补丁脚本的行注入到映像中。
打补丁的托管映像随后被发布到私有注册表,以代替托管映像的先前版本。打补丁后的映像与原始托管映像具有相同的位置(标记)。发布后,将为所有受影响的应用容器发出手动或自动应用重启命令。应用重新启动从私有注册表中拉取更新的托管映像,并且应用开始使用更新的映像执行。容器映像在重新启动时使用补丁重建。
在一个实施例中,云服务提供商(CSP)识别容器映像。CSP可以接收用户对特定容器映像的请求,或者用户可以提供映像。该请求可以是对托管映像的请求,也可以只是对特定容器映像的请求。CSP从公共映像注册表、用户或已知私有映像注册表中获取基础映像。然后,CSP创建所请求映像文件的托管版本,将托管版本存储在注册表中,并将用户指向私有注册表中文件的托管版本。对基础映像的后续请求通过将用户直接指向私有注册表中映像的托管版本来回答。在本实施例中,CSP通过添加注入点和对集中组件的调用来包装基础映像来改变基础映像。该组件在容器实例化期间调用时将轮询以确定是否存在与正在重新启动的映像匹配的托管映像。如果有,则返回更新的托管映像,并使用更新重建映像。
在一个实施例中,用户在知道服务提供托管映像的情况下从该服务做出特定映像请求。在该实施例中,用户的映像请求在没有指示提供的映像是托管映像的情况下得到满足。
在一个实施例中,用户可以指定更新偏好以保持对用于构建基础映像的各个组件软件版本的控制。在该实施例中,用户可以使用语义版本控制偏好来设置与可接受和不可接受的更新版本相关的限制。(例如,用户可以提供的任何更新版本7.*都是可以接受的,但没有更新版本8.*是可以接受的。)
在一个实施例中,用户可以指定基础映像的可接受更新的片段和不可接受更新的片段。随着漏洞和更新得到解决,适当分割的补丁被传递到补丁插入组件,每个用户的映像都会根据用户对更新的偏好重建。在一个实施例中,用户设置自动更新或手动更新的偏好。具有自动更新的映像被重建,重启命令被自动推送到用户系统。带有手动更新的映像被打补丁并发送给用户,并附有更新通知和允许用户接受或拒绝打补丁的映像的说明。
在一个实施例中,用户可以为他们请求的映像提供应用级别信息。在一个实施例中,该服务可以为应用和/或其映像的依赖项以及映像的底层操作系统提供更新和补丁。在该实施例中,系统可以提供具有注入点的托管映像以插入更新和补丁,或者服务提供商可以提供具有用于定期检查更新和补丁的系统轮询指令的托管映像。
图1提供了与实践所公开的发明相关联的示例性网络资源的示意图。本发明可以在任何公开的处理指令流的元件的处理器中实施。如图所示,联网的客户端设备110无线连接到服务器子系统102。客户端设备104通过网络114无线连接到服务器子系统102。客户端设备104和110包括容器编排程序106、112,连同足够的计算资源(处理器、存储器、网络通信硬件)来执行程序。如图1所示,服务器子系统102包括服务器计算机150。服务器计算机150存储托管容器映像的目录/注册表。图1描绘了根据本发明实施例的联网计算机系统1000内的服务器计算机150的组件的框图。应当理解,图1仅提供了一种实施方式的图示,并且并不意味着对可以实现不同实施例的环境有任何限制。可以对所描绘的环境进行许多修改。
服务器计算机150可以包括处理器154、高速缓存162、存储器158、永久存储器170、通信单元152、输入/输出(I/O)接156和通信结构140。通信结构140提供高速缓存162、存储器158、持久性存储器170、通信单元152和输入/输出(I/O)接口156之间的通信。通信结构140可以用任何设计用于在处理器(例如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其他硬件组件之间传递数据和/或控制信息的架构来实现。例如,通信结构140可以用一个或多个总线来实现。
存储器158和永久存储器170是计算机可读存储介质。在该实施例中,存储器158包括随机存取存储器(RAM)160。通常,存储器158可以包括任何合适的易失性或非易失性计算机可读存储介质。高速缓存162是快速存储器,通过保存来自存储器158的最近访问的数据和最近访问的数据附近的数据来增强处理器154的性能。
用于实践本发明实施例的程序指令和数据,例如容器映像管理程序175,存储在持久性存储器170中以供执行和/或通过高速缓存162由服务器计算机150的一个或多个相应处理器154中的一个或多个访问。持久存储170还包含所公开的发明所使用的托管映像目录178,以及设备104和110的应用容器107和113。在该实施例中,永久存储器170包括磁性硬盘驱动器。替代地,或除了磁性硬盘驱动器,持久性存储器170可以包括固态硬盘驱动器、半导体存储设备、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存或任何其他能够存储程序指令或数字信息的计算机可读存储介质。
持久性存储器170使用的介质也可以是可移除的。例如,可移动硬盘驱动器可用于持久存储170。其他示例包括光盘和磁盘、拇指驱动器和智能卡,它们插入驱动器以转移到另一个计算机可读存储介质上,该存储介质也是持久存储的一部分170。
在这些示例中,通信单元152提供与其他数据处理系统或设备的通信,包括客户端计算设备104和110的资源。在这些示例中,通信单元152包括一个或多个网络接口卡。通信单元152可以通过使用物理和无线通信链路之一或两者来提供通信。软件分发程序以及用于实现本发明的其他程序和数据可以通过通信单元152下载到服务器计算机150的永久存储器170。
I/O接口156允许与可以连接到服务器计算机150的其他设备的数据输入和输出。例如,I/O接口156可以提供到外部设备190的连接,例如键盘、小键盘、触摸屏、麦克风、数码相机和/或一些其他合适的输入设备。外部设备190还可以包括便携式计算机可读存储介质,例如拇指驱动器、便携式光盘或磁盘和存储卡。用于实践本发明的实施例的软件和数据,例如服务器计算机150上的容器映像管理程序175,可以存储在这种便携式计算机可读存储介质上,并且可以通过I/O接口加载到永久存储器170上156。I/O接口156也连接到显示器180。
显示器180提供向用户显示数据的机制,并且可以是例如计算机监视器。显示器180还可以用作触摸屏,例如平板电脑的显示器。
图2提供了流程图200,示出了与本公开的实践相关联的示例性活动。在程序启动之后,系统在210从用户接收对容器基础映像的请求。在一个实施例中,该请求可以由驻留在基于云的服务器上的系统映像管理软件接收。对于具有现有托管版本的请求映像,系统将用户指向私有映像注册表(未示出)中基础映像的相关托管版本的位置。用户可以提供当前使用的基础映像而不是请求新映像。系统在220通过分析基础映像层并向基础映像添加注入点来创建基础映像的托管版本。系统在230将创建的基础映像的托管版本发布到私有映像注册表,并在230向用户提供基础映像的托管版本的位置。根据需要,系统在240更新或打补丁托管映像版本,通过在注入点插入适当的代码来创建托管映像的新版本。系统在250将新的托管映像版本发布到先前版本的私有注册表位置。在260,系统为所有受影响的容器应用发出重新启动命令。在执行重新启动命令时,托管映像的打补丁后的版本将从私有映像注册表中拉取。重新启动应用会执行补丁的代码,重建没有漏洞的映像,为用户提供更新/补丁的好处。
在一个实施例中,系统维护管理的容器基础映像的目录。每个托管映像都经过包装以包含代码插入点。单个基础映像的多个版本可以存储在目录/注册表中。多个版本中的每一个都可以包括一组独特的补丁,以解决底层基础映像的一个或多个漏洞。多个中的每一个都可以包括用于底层基础映像的层的不同更新级别。在该实施例中,用户可以请求包括用户可接受的层更新设置的基础映像。可以向用户提供仅包括那些可接受的更新的托管映像。用户可以选择手动接受未来可用的映像更新。在该实施例中,托管映像被提供给用户,其代码允许用户接受或拒绝未来的更新/补丁。在一个实施例中,托管映像包括定期轮询目录以获取更新通知的代码。在该实施例中,不向用户发出拉取或重启指令以用于对托管映像的新补丁/更新。
图3示出了本发明的一个实施例。如图所示,提供了一个客户端映像XYZ,310,包括层:CENTOS 1.0、APACHE 1.0、客户增强(Client Enhance)1.0。根据该实施例,创建了包括注入点、SP层的XYZ的托管版本,managed.XYZ,320,并且使其对客户端可用。在系统识别出需要更新后,补丁代码被插入到SP层并重建映像,产生一个新版本的managed.XYZ,330。(注意:术语“CENTOS”、“APACHE”、“KUBERNETES”和“DOCKER”可能受制于世界各地不同司法管辖区的商标权,并且在此处仅用于指代以商标正确命名的产品或服务,前提是此类商标权可能存在。)
图4提供了根据本发明实施例的系统架构400和数据流的图形说明。如图所示,系统410确定存在漏洞并生成补丁415以解决该漏洞。补丁分析器420接收补丁并检查托管映像的目录430,检索需要补丁的托管映像。补丁插入单元440从补丁分析器430接收补丁和相关映像,并在插入点将补丁插入托管映像,产生更新的映像445。系统将打补丁后的托管映像445发送到私有注册表460以供用户访问。用户容器编排元件470从系统410接收映像重启指令并从私有注册表460拉取打补丁后的映像,并重建映像,执行补丁代码。
应当理解,虽然本公开包括关于云计算的详细描述,但是在此引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图5,其中显示了根据本发明一个实施例的示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这允许云的消费者无需在本地计算设备上维护资源,云计算环境50就能提供基础架构即服务、平台即服务和/或软件即服务。应当理解,图5显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图6,其中显示了根据本发明一个实施例的云计算环境50(图5)提供的一组功能抽象层。首先应当理解,图6所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图6所示,提供下列层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机61;基于RISC(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;网络和网络组件66。在一些实施例中,软件组件的例子包括:网络应用服务器软件67以及数据库软件68。
虚拟层70提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器71、虚拟存储72、虚拟网络73(包括虚拟私有网络)、虚拟应用和操作系统74,以及虚拟客户端75。
在一个示例中,管理层80可以提供下述功能:资源供应功能81:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能82:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能83:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能84:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能85:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:映射和导航91;软件开发和生命周期管理92;虚拟课堂教育交付93;数据分析处理94;交易处理95;和容器映像管理程序175。
本发明可以是系统、方法和/或计算机程序产品。本发明可以在处理指令流的任何系统、单个或并行系统中有利地实施。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本发明的各种实施例的描述是出于说明的目的而呈现的,但并非旨在穷举或限于所公开的实施例。在不脱离本发明的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员来说将是显而易见的。选择此处使用的术语以最好地解释实施例的原理、实际应用或对市场中发现的技术的技术改进,或者使本领域普通技术人员能够理解此处公开的实施例。

Claims (17)

1.一种用于管理容器应用的计算机实现的方法,该方法包括:
由服务提供商提供托管容器基础映像的注册表,所述托管容器基础映像中的每个托管容器基础映像包括原始容器基础映像;
识别所述托管容器基础映像中的每个原始容器基础映像的层链中的映像层;
在所述托管容器基础映像中的每个原始容器基础映像的所识别的映像层中识别根层操作系统;
根据所述根层操作系统的编码向所述托管容器基础映像中的每个原始容器基础映像附加注入点;
由服务提供商确定来自托管容器基础映像的所述注册表的第一托管容器基础映像包括第一漏洞;
由服务提供商创建第一补丁脚本以解决第一漏洞;
由服务提供商在所确定的第一托管容器基础映像的注入点处插入第一补丁脚本以创建打补丁后的第一托管容器基础映像;
由服务提供商确定来自托管容器基础映像的所述注册表的第二托管容器基础映像包括第二漏洞;
由服务提供商创建第二补丁脚本以解决第二漏洞;
由服务提供商在第二托管容器基础映像的注入点处插入第二补丁脚本,从而产生打补丁后的第二托管容器基础映像;
由服务提供商向容器编排工具发出用于使用所确定的第一托管容器基础映像的应用的重新启动命令以拉取打补丁后的第一托管容器基础映像并通过执行第一补丁脚本来重建所确定的第一托管容器基础映像;以及
由服务提供商发布打补丁后的第二托管容器基础映像。
2.根据权利要求1的计算机实现的方法,还包括:
由服务提供商接收对第三容器基础映像的请求;
由服务提供商确定第三容器基础映像未被托管;和
由服务提供商创建第三容器基础映像的托管版本。
3.根据权利要求2所述的计算机实现的方法,其中第三容器基础映像的托管版本包括被附加以包括注入点的第三容器基础映像。
4.根据权利要求1所述的计算机实现的方法,还包括:
由服务提供商确定与第一漏洞相关的一组托管映像;
由服务提供商使用所创建的用于解决第一漏洞的第一补丁脚本为该组托管映像中的每个托管映像打补丁;和
由服务提供商发布该组托管映像的每个打补丁后的托管映像。
5.根据权利要求1所述的计算机实现的方法,还包括所述服务提供商使用户能够拒绝拉取打补丁后的第一或第二托管容器基础映像。
6.根据权利要求1所述的计算机实现的方法,还包括:
由服务提供商确定第四容器基础映像未被托管;
由服务提供商创建第四容器基础映像的托管版本,其中第四容器基础映像的托管版本包括注入点;和
由服务提供商使用户能够拒绝拉取第四容器基础映像的托管版本。
7.一种计算机可读介质,存储用于管理应用执行的程序指令,所存储的程序指令包括:
用于提供托管容器基础映像的注册表的程序指令,所述托管容器基础映像中的每个托管容器基础映像包括原始容器基础映像;
用于识别所述托管容器基础映像中的每个原始容器基础映像的层链中的映像层的程序指令;
用于在所述托管容器基础映像中的每个原始容器基础映像的所识别的映像层中识别根层操作系统的程序指令;
用于根据所述根层操作系统的编码向所述托管容器基础映像中的每个原始容器基础映像附加注入点的程序指令;
用于确定来自托管容器基础映像的所述注册表的第一托管容器基础映像包括第一漏洞的程序指令;
用于创建第一补丁脚本以解决第一漏洞的程序指令;
用于在所确定的第一托管容器基础映像的注入点处插入第一补丁脚本以创建打补丁后的第一托管容器基础映像的程序指令;
用于确定来自托管容器基础映像的所述注册表的第二托管容器基础映像包括第二漏洞的程序指令;
用于创建第二补丁脚本以解决第二漏洞的程序指令;
用于在第二托管容器基础映像的注入点处插入第二补丁脚本,从而产生打补丁后的第二托管容器基础映像的程序指令;
用于向容器编排工具发出用于使用所确定的第一托管容器基础映像的应用的重新启动命令以拉取打补丁后的第一托管容器基础映像并通过执行第一补丁脚本来重建所确定的第一托管容器基础映像的程序指令;以及
用于发布打补丁后的第二托管容器基础映像的程序指令。
8.根据权利要求7所述的计算机可读介质,存储的程序指令还包括:
用于接收对第三容器基础映像的请求的程序指令;
用于确定第三容器基础映像未被托管的程序指令;和
用于创建第三容器基础映像的托管版本的程序指令。
9.根据权利要求8所述的计算机可读介质,其中第三容器基础映像的托管版本包括被附加以包括注入点的第三容器基础映像。
10.根据权利要求7所述的计算机可读介质,存储的程序指令还包括:
用于确定与第一漏洞相关的一组托管映像的程序指令;
用于使用所创建的用于解决第一漏洞的第一补丁脚本为该组托管映像中的每个托管映像打补丁的程序指令;和
用于发布该组托管映像的每个打补丁后的托管映像的程序指令。
11.根据权利要求7所述的计算机可读介质,存储的程序指令还包括用于使用户能够拒绝拉取打补丁后的第一或第二托管容器基础映像的程序指令。
12.根据权利要求7所述的计算机可读介质,存储的程序指令还包括:
用于确定第四容器基础映像未被托管的程序指令;
用于创建第四容器基础映像的托管版本的程序指令,其中第四容器基础映像的托管版本包括注入点;和
用于使用户能够拒绝拉取第四容器基础映像的托管版本的程序指令。
13.一种用于管理应用执行的计算机系统,该计算机系统包括:
一个或多个计算机处理器;
一个或多个计算机可读存储设备;
在所述一个或多个计算机可读存储设备上存储的由所述一个或多个计算机处理器执行的程序指令,所存储的程序指令包括:
用于提供托管容器基础映像的注册表的程序指令,所述托管容器基础映像中的每个托管容器基础映像包括原始容器基础映像;
用于识别所述托管容器基础映像中的每个原始容器基础映像的层链中的映像层的程序指令;
用于在所述托管容器基础映像中的每个原始容器基础映像的所识别的映像层中识别根层操作系统的程序指令;
用于根据所述根层操作系统的编码向所述托管容器基础映像中的每个原始容器基础映像附加注入点的程序指令;
用于确定来自托管容器基础映像的所述注册表的第一托管容器基础映像包括第一漏洞的程序指令;
用于创建第一补丁脚本以解决第一漏洞的程序指令;
用于在所确定的第一托管容器基础映像的注入点处插入第一补丁脚本以创建打补丁后的第一托管容器基础映像的程序指令;
用于确定来自托管容器基础映像的所述注册表的第二托管容器基础映像包括第二漏洞的程序指令;
用于创建第二补丁脚本以解决第二漏洞的程序指令;
用于在第二托管容器基础映像的注入点处插入第二补丁脚本,从而产生打补丁后的第二托管容器基础映像的程序指令;
用于向容器编排工具发出用于使用所确定的第一托管容器基础映像的应用的重新启动命令以拉取打补丁后的第一托管容器基础映像并通过执行第一补丁脚本来重建所确定的第一托管容器基础映像的程序指令;以及
用于发布打补丁后的第二托管容器基础映像的程序指令。
14.根据权利要求13所述的计算机系统,存储的程序指令还包括:
用于接收对第三容器基础映像的请求的程序指令;
用于确定第三容器基础映像未被托管的程序指令;和
用于创建第三容器基础映像的托管版本的程序指令。
15.根据权利要求14所述的计算机系统,其中第三容器基础映像的托管版本包括被附加以包括注入点的第三容器基础映像。
16.根据权利要求13所述的计算机系统,存储的程序指令还包括:
用于确定与第一漏洞相关的一组托管映像的程序指令;
用于使用所创建的用于解决第一漏洞的第一补丁脚本为该组托管映像中的每个托管映像打补丁的程序指令;和
用于发布该组托管映像的每个打补丁后的托管映像的程序指令。
17.根据权利要求13所述的计算机系统,存储的程序指令还包括:
用于接收对第四容器基础映像的请求的程序指令;
用于确定第四容器基础映像未被托管的程序指令;
用于创建第四容器基础映像的托管版本的程序指令,其中第四容器基础映像的托管版本包括注入点;和
用于使用户能够拒绝拉取第四容器基础映像的托管版本的程序指令。
CN202080016509.9A 2019-05-14 2020-05-07 管理软件程序 Active CN113474751B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/411,250 2019-05-14
US16/411,250 US11042366B2 (en) 2019-05-14 2019-05-14 Managing software programs
PCT/IB2020/054316 WO2020229956A1 (en) 2019-05-14 2020-05-07 Managing software programs

Publications (2)

Publication Number Publication Date
CN113474751A CN113474751A (zh) 2021-10-01
CN113474751B true CN113474751B (zh) 2024-01-09

Family

ID=73228688

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080016509.9A Active CN113474751B (zh) 2019-05-14 2020-05-07 管理软件程序

Country Status (6)

Country Link
US (1) US11042366B2 (zh)
JP (1) JP7446332B2 (zh)
CN (1) CN113474751B (zh)
DE (1) DE112020000912T5 (zh)
GB (1) GB2596495B (zh)
WO (1) WO2020229956A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230050944A1 (en) * 2020-01-22 2023-02-16 Telefonaktiebolaget Lm Ericsson (Publ) Container with encrypted software packages
US11188450B2 (en) * 2020-04-02 2021-11-30 Sap Se Cloud application architecture using edge computing
KR102340021B1 (ko) * 2020-06-08 2021-12-21 한국전자통신연구원 컨테이너 이미지에 대한 보안 가시성 제공 방법 및 장치
US11194561B1 (en) * 2020-07-08 2021-12-07 Vmware, Inc. System and method for generating and recommending desired state of virtualization software
US11528331B2 (en) * 2020-08-28 2022-12-13 Arris Enterprises Llc Management system for vCores
US11748211B2 (en) * 2020-12-17 2023-09-05 EMC IP Holding Company LLC Automatic update of network assets using gold images
CN112613041A (zh) * 2020-12-25 2021-04-06 南方电网深圳数字电网研究院有限公司 容器镜像检测方法和装置、电子设备、存储介质
WO2024006839A1 (en) * 2022-06-30 2024-01-04 Robust Intelligence, Inc. Systems and methods for container image upgrade

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619698A (en) * 1995-05-05 1997-04-08 Apple Computer, Inc. Method and apparatus for patching operating systems
CN101646995A (zh) * 2007-03-26 2010-02-10 国际商业机器公司 用于存储管理器的数据流过滤器和插件
KR20170133120A (ko) * 2016-05-25 2017-12-05 삼성에스디에스 주식회사 컨테이너 이미지 관리 시스템 및 방법
CN108228201A (zh) * 2017-12-28 2018-06-29 广州亦云信息技术股份有限公司 基于软件仓库的软件管理方法、电子设备及存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9594548B2 (en) 2005-12-27 2017-03-14 International Business Machines Corporation Dynamically updating templated applications
US8863114B2 (en) 2010-12-06 2014-10-14 Red Hat, Inc. Managing software packages using a version control system
US8850420B2 (en) 2012-03-22 2014-09-30 Sap Ag Dynamically updating on-demand runtime platforms executing business applications
US9459856B2 (en) 2013-01-02 2016-10-04 International Business Machines Corporation Effective migration and upgrade of virtual machines in cloud environments
US20190230130A1 (en) * 2013-09-20 2019-07-25 Open Text Sa Ulc System and method for updating downloaded applications using managed container
US10037196B2 (en) 2015-01-27 2018-07-31 Red Hat, Inc. Source to image framework for a platform-as-a-service system
US9652612B2 (en) 2015-03-25 2017-05-16 International Business Machines Corporation Security within a software-defined infrastructure
US9436585B1 (en) 2015-11-19 2016-09-06 International Business Machines Corporation Image patching in an integrated development environment
US10261782B2 (en) * 2015-12-18 2019-04-16 Amazon Technologies, Inc. Software container registry service
KR102000266B1 (ko) 2016-01-15 2019-07-15 구글 엘엘씨 애플리케이션 인스턴스들에 걸친 식별자들
US20180088926A1 (en) 2016-09-27 2018-03-29 Ca, Inc. Container image management using layer deltas
US10303499B2 (en) * 2017-01-05 2019-05-28 Portworx, Inc. Application aware graph driver
US10719603B2 (en) * 2017-05-16 2020-07-21 Vmware, Inc. Methods and apparatus for sandboxed code execution using containers
JP6666310B2 (ja) 2017-07-28 2020-03-13 日本電信電話株式会社 配信データ作成装置、配信データ作成方法及び配信データ作成プログラム
US10324708B2 (en) * 2017-11-14 2019-06-18 Red Hat, Inc. Managing updates to container images
CN107943485B (zh) 2017-12-11 2021-07-20 北京奇虎科技有限公司 一种补丁编译平台及补丁编译方法
CN108154035B (zh) 2017-12-21 2021-01-26 杭州安恒信息技术股份有限公司 大规模网站漏洞扫描方法、装置及电子设备
US10503448B1 (en) * 2018-10-31 2019-12-10 Kyocera Document Solutions Inc. Printer software distribution system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619698A (en) * 1995-05-05 1997-04-08 Apple Computer, Inc. Method and apparatus for patching operating systems
CN101646995A (zh) * 2007-03-26 2010-02-10 国际商业机器公司 用于存储管理器的数据流过滤器和插件
KR20170133120A (ko) * 2016-05-25 2017-12-05 삼성에스디에스 주식회사 컨테이너 이미지 관리 시스템 및 방법
CN108228201A (zh) * 2017-12-28 2018-06-29 广州亦云信息技术股份有限公司 基于软件仓库的软件管理方法、电子设备及存储介质

Also Published As

Publication number Publication date
JP2022532482A (ja) 2022-07-15
US20200364039A1 (en) 2020-11-19
GB2596495A (en) 2021-12-29
DE112020000912T5 (de) 2021-11-18
JP7446332B2 (ja) 2024-03-08
GB2596495B (en) 2022-06-29
US11042366B2 (en) 2021-06-22
CN113474751A (zh) 2021-10-01
GB202114696D0 (en) 2021-12-01
WO2020229956A1 (en) 2020-11-19

Similar Documents

Publication Publication Date Title
CN113474751B (zh) 管理软件程序
US11237812B2 (en) Deploying an application in a cloud computing environment
CN110688123B (zh) 托管服务域中的自动应用部署的方法、系统和存储介质
US11063815B2 (en) Building and fixing a dynamic application topology in a cloud based environment leveraging log file data
US9912760B2 (en) Dynamically generating solution stacks
US10606480B2 (en) Scale-out container volume service for multiple frameworks
US10324647B2 (en) Dynamic compression for runtime services
US11656864B2 (en) Automatic application of software updates to container images based on dependencies
US10778753B2 (en) Deferential support of request driven cloud services
US10530842B2 (en) Domain-specific pattern design
US20230142148A1 (en) Automated Deployment of Enterprise Archive with Dependency on Application Server Via Script
CN116917858A (zh) 容器化应用中的运行时通信协议参数调整
US20190069121A1 (en) Direct update of mobile applications based on features used
US11900129B2 (en) Computer operating system shutdown sequencing
US20230401051A1 (en) Generating compliant container images via embeddings
CN114489924A (zh) 用于jni调用的gc安全点的选择性注入

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220216

Address after: USA New York

Applicant after: Qindarui Co.

Address before: USA New York

Applicant before: International Business Machines Corp.

GR01 Patent grant
GR01 Patent grant