基于容器的操作系统和方法与流程

文档序号:18301930发布日期:2019-07-31 10:16阅读:251来源:国知局
基于容器的操作系统和方法与流程

本公开涉及用于托管可配置计算资源的共享池的分布式网络的基于容器(container)的操作系统和方法。



背景技术:

由美国国家标准与技术研究院(nist)开发了与云计算相关的定义和标准。本文件将参考其进行解释,特别是由petermell和timothygrance撰写的“nist定义的云计算”(2011年9月),nist特刊800-145。

云计算的nist定义是用于实现对可以快速供应的可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的无处不在,方便的按需网络访问的模型,并以最少的管理工作或服务提供商互动发布。

以其当前形式的云存储由服务提供商主导,该服务提供商构成客户信任以安全地托管他们的数据的第三方。换句话说,正在使用可信中央权威模型,如在传统的互联网银行中,或由政府机构提供用于车辆登记,房地产所有权等的中央数据库。

图1是标准云存储架构的示意图。示出了两个示例用户14,其具有各自的计算机装置25,其具有希望存储到云的文件16,即,在云提供商所拥有的虚拟化服务器12上。云提供商为用户14提供应用18,用户14可以经由该应用18上载(即存储)并将其文件16下载(即访问)到虚拟化服务器12。反过来,虚拟化服务器12使用至少三个物理服务器20,在其上存储每个客户端文件的数据以确保至少最小的冗余。在此体系结构中没有标准的执行端到端加密的方式,使得容易受到安全威胁。在其基本形式中,在用户计算机25,应用18和云提供商的服务器12、20之间传输的客户端数据未被加密,使得传输线(窥探),用户计算机25、应用18和服务器12、20的攻击都是可能的。

为了摆脱这种传统架构并提供更安全的环境,使用基于对等网络结构的区块链技术是即时的。

图2示出了作为云计算环境的一部分的示例对等网络55。该网络包括网络节点10,每个网络节点10是用户可与之交互的一个或多个物理或虚拟硬件网络实体。网络节点10通过通信线路15连接。网络实体可以是例如大型主机61;不同类型的服务器62、63、64;大容量存储装置65或可以是更加面向消费者的装置,例如个人计算机、平板电脑、智能电话或与物联网(iot)相关的装置,例如白色家电(冰箱、冰柜、洗衣机)、ip摄像机、打印机、工厂装置或电视录像机。

区块链技术不使用可信中央权威模型,而是提供记录的分布式数据库,其包括在参与方之间发生的所有交易或事件的可公开访问的分类账,即区块链的成员,其处于如图4所示的对等网络的相应节点。每个成员都有一个公钥,用作该成员的地址,以及一个私钥,成员用它来对交易进行数字签名。交易由一个成员用他的私钥对交易进行数字签名并使用该成员的公钥作为地址发送给另一个成员来实现。然后,接收方成员使用发送成员的公钥来验证交易上的数字签名。交易被放置在块中,该块被广播到区块链网络上的每个节点,并且通过由其他成员执行的称为“挖掘”的解谜过程,交易以及同一块中的任何其他交易被验证为有效。然后允许该块被添加到链中,从而成为公共交易分类帐的一部分。区块链的块是存储在分类帐上的永久可扩展的链接事件序列的元素。将一个块链接到链中的前一个块的是前一个块的散列。散列可以被认为是令牌,该令牌是挖掘成员在解决难题和通过强力确定交易散列时执行的工作的证明。每个块包含时间戳和许多交易。一旦嵌入链中,每个块变得有效地无法编辑,无论是有意还是通过黑客攻击,随着块越来越远离结束块,防止编辑的安全性迅速增加。

在michaelcrosby等人的文章“bitchaintechnologybeyondbitcoin”2015年10月16日(http://scet.berkeley.edu/wp-content/uploads/blockchainpaper.pdf)中描述了区块链技术。

图3是如上所述的区块链57的片段的示意图。在区块链57的中间示出了三个相邻的块2,标记为n,n+1和n+2,块n是三个中最老的块,块n+2是最年轻的块。块n包括具有时间戳的分类帐部分4,该时间戳记录连续的区块链交易txs'c'到'f'。块n+1记录下一组交易'g'到'm'以及块n+2之后的交易,'n'到'w'。标记为散列的倾斜取向箭头是连接相邻块(即后续块)的,例如,块n+2将散列存储到前一块n+1。

信任由分类帐的公共性质和内置于这种系统中的安全措施自动化,以确保区块链的块不能被改变。在不信任的交易各方之间进行调解的唯一可信权威机构的需要被取消了。

图4是storj提供的区块链云存储系统的示意图。storj系统使用metadisk。在storj架构中,图2中所示类型的对等网络55包括区块链57和相关的公共分类账26。区块链的两个示例成员14具有相关联的计算机装置25,每个都是网络55的节点的一部分。如果一个成员14希望将数据文件16存储到区块链云存储网络,则该成员将该文件细分为可管理的部分(称为分片),并在它们被分发出去存储在同一区块链的同伴成员之间的网络中之前使用他的私钥22对它们进行加密。为云商店提供空间的区块链成员称为农夫(farmer)。区块链成员可以是云存储用户和/或农民。metadisk是一个中介,它接收客户数据并将其路由到网络中的存储位置,并可以应用合适的数据冗余规则,例如3-位置。

图5是示出storj系统使用的分片处理的示意图。如上所述,分片作为要存储的文件的加密部分。分片保持固定的大小,使得分片大小不包含可能对黑客有帮助的信息,未使用的空间被填充掉。以大小为70mb的数据文件16为例,将其分成多个固定大小的较小文件30,示出为32mb,它们是原始分片。使用成员私钥22对每个较小文件30进行加密,然后将其散列发送到区块链网络55、57以进行存储。

在shawnwilkinson等人的文章“storjapeer-to-peercloudstoragenetwork”2014年12月15日v1.01(https://storj.io/storj.pdf)中描述了storj系统。

上面提到的文件可以是容器文件,在下文中称为容器。随着越来越多的系统转移到基于云的基础架构上,在容器上运行的数据和服务变得重要。软件容器或容器是虚拟机实例,作为硬件和操作系统之间的中间层,它们彼此隔离并在硬件节点上并发运行。创建和运行此类虚拟机实例的软件、固件或硬件称为管理程序(hypervisor)或虚拟机监视器(vmm)。在本文档中,我们主要使用术语管理程序。

该方法被称为基于容器的虚拟化,服务器虚拟化或操作系统虚拟化。每个容器代表一个虚拟环境,该虚拟环境具有定义的硬件资源集合,该硬件资源与实际可用硬件无关,并作为配置操作系统的基础。容器的示例是泊坞窗(docker)容器。泊坞窗容器在应用上运行,并包含一个独立的软件,其中包括运行所需的所有内容,例如操作系统,系统工具,系统库,使得它始终以相同的方式运行。linux是linustorvalds在美国和/或其他国家/地区的注册商标。

众所周知,云与国家数据保护法的法律合规性之间存在内在的紧张关系。云存储或基于云的应用的分布式性质具有作为本质的通过网络灵活的数据分发而没有地理限制。另一方面,国家数据保护法的定义是地域性的。在欧洲,“第29条工作组”的任务是专门研究云存储如何符合欧盟数据保护指令(95/46/ec)和欧盟电子隐私指令(2002/58/ec)并发布它在2012年的意见。在德国,对未能保护个人数据(“德国刑法典”第203条)的强制性刑事制裁需要加以考虑。云提供商和云用户(例如企业和政府机构)的法律合规性和法律风险管理可能需要确保在基于云的基础架构上运行的特定数据和服务位于特定国家或地区,和/或仅确定各方可以访问特定的数据和服务。

以一个企业为例,该企业已经为其部分it基础设施采用了基于容器的系统,并且不仅使用一个,而且使用多个云服务提供商。这样的业务将具有分布在多个云提供商上的容器或其他文件类型,每个容器分布在多个服务器上。可以理解,管理法律数据保护问题可能很快变得非常复杂。

图6示出了示例系统,其中三组容器与相应的云存储提供商相关联。假设单个企业拥有这些容器组并且需要它们在系统边界28(例如地理边界)内操作。三组容器40_1、40_2和40_3分别存储在具有各自虚拟服务器12_1、12_2和12_3的三个不同云存储提供商中,每个提供商都以某种复杂的方式在多个物理服务器上存储其客户数据(未示出)。容器的所有者如何控制云存储提供商存储组成这些容器的数据的方式和位置?



技术实现要素:

根据优选实施例,提供了基于云的服务的区块链实现,其被设计为处理法律合规性问题,例如地理限制和权限管理。

根据本发明的一个方面,提供了一种分布式网络,其托管适用于托管区块链的一个或多个系统实例的可配置计算资源的共享池,所述区块链具有在区块链中记录交易的公共分类账,所述分布式网络包括一个这样的系统实例,其中每个系统实例包括虚拟机和容器集合,其中所述容器可操作以在虚拟机上运行,并且每个包括可操作以在容器上运行区块链的区块链子系统,其中定义所述区块链使得集合的容器是区块链的成员,因为公共分类帐记录所述集合的每个容器的至少所选部分的加密副本,以便所述集合的每个容器可以参考公共分类帐,确定分布式网络中的另一个容器是否也属于所述集合,以为所述容器集合创建系统边界,系统边界充当屏障以防止与不在所述集合中的其他容器的不期望的交互。

即时(instant)区块链系统可以提供在区块链内创建新容器的灵活性。即,在某些实施例中,在每个系统实例中指定一个容器以具有系统实例控制器的角色。系统实例控制器具有为集合创建新容器的唯一权利,系统实例控制器可操作以创建这样的新容器。因此,新的容器创建被处理为区块链交易。系统实例控制器的作用优选地在不同的容器之间随时间轮换(rotate)。可以提供灵活性的另一个领域是处理容器上的软件更新。即,在某些实施例中,每当容器接收软件更新时,更新容器的加密副本被记录在公共分类帐上。因此软件更新被处理为区块链交易。通过这种方式,公共分类帐保存每个容器的最新版本的副本,以及所有先前版本的副本,从而提供完全可审计的历史记录。

在使用中,系统边界优选地如下监管。当集合的容器需要与另一个容器交互时,例如,在容器上运行的代码包括对另一个容器的函数调用,容器在执行函数调用之前检查另一个容器是否是同一个集合的一部分。所述集合的容器启动与另一个容器的通信以获得识别信息。然后,它通过在公共分类帐中搜索包含另一个容器的加密副本的交易来检查另一个容器是否在该集合中。如果没有找到这样的交易,则容器知道另一个容器不在该集合中,所以知道不要与其他容器互动,例如,不执行函数调用。如果集合的容器确定另一个容器不在集合中,它也可以在公共分类帐上记录事实,于是集合中的所有其他容器知道它们应该从该记录中防火墙另一个容器,而不是通过重复在整个公共分类帐中搜索另一个容器副本的过程。

该即时系统优选地允许任何数量的系统实例共存于分布式网络以及不属于任何系统实例且不是区块链的一部分的其他容器。应当理解,在所述即时系统中,属于一个系统实例的容器不属于另一个系统实例。

可以定义系统边界以便施加地理限制,使得在形成分布式网络的可配置计算资源的共享池中容器可以驻留的位置存在物理限制。例如,所有容器可能仅限于特定的管辖区或集团管辖区,例如欧洲联盟,德国,特拉华州,美国,英属维尔京群岛或其他地区。系统边界也可以用一些其他限制来定义,例如用户类型。

根据本发明的另一方面,提供了一种可操作以在虚拟机上运行的软件容器,所述容器包括:存储器资源;处理资源;区块链子系统,可操作以使用处理资源在容器上运行区块链,其中区块链具有公共分类账;以及存储在存储器资源中的公共分类帐的副本,其中定义区块链使得公共分类帐记录所述容器的至少所选部分和至少一个其他容器的每个的加密副本,这些容器共同构成区块链的成员的容器集合。容器可能拥有为区块链创建新容器的专有权。

根据本发明的另一方面,提供了一种存储本文所述的软件容器的计算机程序产品。

根据本发明的另一方面,提供了一种创建新容器的方法,该新容器在托管可配置计算资源的共享池的分布式网络中执行,其中存在区块链的系统实例,区块链的成员是容器,并且区块链具有记录区块链中的交易的公共分类账,其中定义区块链使得公共分类账记录集合的每个容器的至少所选部分的加密副本,所述方法包括以下一个或多个:指定所述一个容器具有系统实例控制器的角色,其中系统实例控制器具有为所述集合创建新容器的唯一权利;

由系统实例控制器创建新容器;

加密新容器的至少所选部分的副本,使得新容器创建作为区块链交易被处理;以及

将加密副本记录在公共分类帐上。

根据本发明的又一方面,提供了一种在容器上执行软件更新的方法,容器驻留在托管可配置计算资源的共享池的分布式网络中,其中存在区块链的系统实例,区块链的成员是容器,包括在其上将执行软件更新的容器,区块链具有在区块链中记录交易的公共分类账,所述方法包括:

在容器上执行软件更新;

加密更新的容器的至少所选部分的副本,使得软件更新作为区块链交易被处理;以及

在公共分类帐上记录加密副本。

根据本发明的又一方面,提供了一种用于第一容器检查第二容器是否属于相同容器集合的方法,所述方法在托管可配置计算资源的共享池的分布式网络中执行,其中存在区块链的系统实例,区块链的成员是所述集合的容器,其至少包括第一容器,并且区块链具有记录区块链中的交易的公共分类账,其中定义区块链使得公共分类账记录所述集合的每个容器的至少所选部分的加密副本,所述方法包括:

在执行一系列软件命令的过程中,第一个容器到达一个命令以访问第二个容器;

第一容器,建立与第二容器的网络连接,并获得关于第二容器的身份的信息;

第一容器参考公共分类帐确定第二容器是否记录在区块链上的交易中;

如果没有这样的交易,推断第二容器不是区块链的成员,并且避免执行命令来访问第二容器;以及

提出这样的交易,推断第二容器是区块链的成员并执行访问第二容器的命令。

在一些实施例中,如果第二容器不是区块链的成员,该方法还将此事实记录在公共分类帐上,使得作为区块链交易,所述第二容器不是所述区块链的成员的确定被处理。

根据本发明的一个方面,提供了一种可在分布式网络中操作的方法,该分布式网络托管适用于托管区块链的一个或多个系统实例的可配置计算资源的共享池,所述区块链具有记录在该区块中的交易的公共分类账。区块链,分布式网络包括:一个或多个系统实例,其中每个系统实例包括虚拟机和容器集合,其中所述容器可操作以在虚拟机上运行,并且每个容器包括可操作以在容器上运行区块链的区块链子系统,其中定义所述区块链使得集合的容器是区块链的成员,并且公共分类帐记录所述集合的每个容器的至少所选部分的加密副本,所述方法包括:所述集合的每个容器在与另一个容器交互之前,参考公共分类帐以确定分布式网络中的其他容器是否也属于所述集合,从而为容器的所述集合创建系统边界,系统边界充当屏障以防止与不在所述集合中的其他容器的不期望的交互。

因此,根据各种实施例,所述即时系统允许跨多个主机提供商的基于容器的系统的集合的定义作为一个系统实例,具有的容器通过使用区块链将同一系统实例的所有容器绑定(tie)在一起,安全且可审计,从而定义完全可控和可验证的系统边界。

附图说明

在下文中,将仅通过示例参考附图中示出的示例性实施例来进一步描述本发明。

图1是标准云存储架构的示意图。

图2示出了示例对等网络,它将成为云计算环境的一部分。

图3是区块链片段的示意图。

图4是已知区块链云存储系统的示意图。

图5是示出图4的区块链云存储系统使用的分片处理的示意图。

图6示出了一个示例系统,其中三组容器与相应的云存储提供商相关联,并且需要被限制在系统边界内。

图7示出了适合于托管本公开的实施例的示例云计算环境。

图8示出了由图7的云计算环境提供的功能抽象层的集合。

图9a是根据本发明实施例的云环境的系统图。

图9b示出了根据本发明的实施例的来自图9a的系统的容器。

图10示出了根据本发明实施例的用于添加新容器的过程。

图11示出了根据本发明实施例的用于在现有容器上运行软件更新的过程。

图12示出了根据本发明实施例的容器检查另一个容器是否在其系统边界内的过程。

图13示出了通用计算机装置。

具体实施方式

在以下详细描述中,出于解释而非限制的目的,阐述了具体细节以便更好地理解本公开。对于本领域技术人员来说显而易见的是,本公开可以在脱离这些具体细节的其他实施例中实施。

图7示出了示例云计算环境50。如图所示,云计算环境50包括一个或多个云计算节点10,云消费者使用本地计算装置,例如,举例来说,个人数字助理(pda)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n可以与之通信。节点10可以彼此通信。它们可以在一个或多个网络中物理地或虚拟地分组(未示出),例如如上所述的私有云、社区云、公共云或混合云,或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要维护本地计算装置上的资源的服务。应当理解,图1中示出的计算装置54a-n的类型仅旨在说明,并且计算节点10和云计算环境50可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化装置通信。

图8示出了由图7的云计算环境50提供的功能抽象层集合。应该预先理解,图8中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如图所示,提供了以下层和相应的功能:

硬件和软件层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;和移动桌面96。

图9a是根据本公开的实施例的云环境的系统图。云环境存在于对等网络55内,如同在背景技术部分中已经描述的标准云计算环境的一部分以及详细描述的上述部分。由管理程序42运行的容器集合40的所有者定义了基于管理程序和容器集合的系统实例110。容器40作为虚拟机在管理程序42上运行。管理程序42为多个容器提供对内核(未示出)的共享访问,其中每个内核包括操作系统,允许运行与该内核关联的组的容器。系统实例110可以被认为是被限制在系统边界28_1内的那些元素。可以围绕任意容器集合定义系统边界,以为运行这些容器的任何一个提供特定的系统实例。系统边界可以是由该系统实例中的任何容器必须遵守的规则集合概念性定义的,或者是物理的,例如地理边界,其中即使在物理边界的情况下,这也将由规则集合定义。相同的所有者或另一所有者可以创建另一系统实例120,如具有其自己的管理程序42和容器40的另一系统边界28_2所示。

通过使公共分类帐记录哪些容器是允许相互共存和交互的容器集合的一部分来使用区块链技术,我们将其称为位于系统边界内。系统边界或区域被创建为区块链中的系统实例。每个容器都是区块链的成员。

图9b示出了容器40。每个容器40保存其公共分类帐副本44的副本及其在容器上运行的区块链软件的副本。我们将其称为区块链子系统46。容器的区块链子系统46负责在容器上提供本地服务的集合以管理该容器的公共区块链分类帐的本地副本并执行其他区块链特定的网络任务。每个容器运行区块链子系统46并维护区块链的公共分类账副本44,使得作为同一区块链的成员的所有容器可以彼此交互。区块链子系统46具有识别网络上的其他容器的能力,并且能够广播和接收与公共分类账44的维护有关的消息。每个区块链子系统46作为在其容器40上运行的服务而存在,容器之间的通信用于进行区块链更新。区块链形成网络,这是一个“紧急”网络,它是由于容器彼此之间对等通信而产生的。系统边界或区域是使用分布式区块链分类账44定义的功能边界或区域,其可用于系统实例110(或120)内的特定容器集合的所有容器40。该容器集合可以是在特定管辖区内使用的容器,即在某些地理边界内,以符合数据保护法律;或提供仅应由特定用户或用户类型访问的数据或服务的容器。

在设想的区块链中,交易是容器的数据。区块链中的块存储容器的状态,最初是在将其添加到系统实例时,也是在每次更新后。即,每次在容器上运行软件更新时,通过将表示更新容器的状态的交易添加到公共分类帐来更新区块链。可以通过散列容器内的某些目标目录(例如/etc,/bin或/sbin)来记录容器的当前状态。可以使用诸如md5deep(http://md5deep.sourceforge.net/)之类的工具为这些目录创建哈希集合。

系统边界内只考虑在区块链中记录有交易的容器,只有在区块链中记录有交易的容器才允许向区块链中添加一个区块,其概念是容器是区块链成员。所有容器都可以检查这一点,因为它们都可以访问公共分类帐。只有已经验证为在区块链中的容器才能将块添加到区块链中。

注意,其他与容器相关的信息也可以存储在区块链中,例如容器的类型(数据库/网络服务器等)。

每个系统实例内的至少一个容器被指定为系统实例控制器(sic)。sic是唯一有权在系统实例中创建新容器的容器类型。创建新容器后,通过散列新容器的内容以及创建sic的散列来提供它是容器的创建者的记录,sic将其初始状态作为交易添加到区块链中。

可以由其他指定节点周期性地审核sics。可以围绕系统实例内的多个容器轮换sic权限以分发服务。对sic的任何更新或更改也可以记录为区块链中的交易。因此,可以将创建日期戳和任何容器的起源追溯到创建它的sic,因为创建sic将在公共分类帐上记录的该容器的第一个交易中被引用。

例如,参考图9a,如果sicsic1a是系统实例110的当前指定控制器,则它可能正在创建一个新的“常规”容器c1c的过程中,用虚线表示。在某些时候,sic1a可以决定轮换其控制状态并将其传递给标记为sic1b的容器。同样参考图9a,第二系统实例120还具有容器40,容器40包括“常规”容器c2a和sic、sic2,以及它自己的管理程序42。在两个系统实例之间不共享容器40,因为它们具有相应的区块链,使它们分开并且不相互作用。

该方法可以传播多代,使得例如可以将容器追溯到其创建的sic容器,该容器可能是由另一个sic容器等自己创建的容器。在任何情况下,通过无论多少代存在的谱系,都可以通过公共分类账追溯到系统实例的原始创建。

系统边界是有效的,因为当网络上的容器希望与另一个容器进行某种工作时,它可以查询其自己的系统实例的公共分类帐,以确定另一个容器是否在其系统边界内。如果另一个容器在公共分类帐上没有交易,则容器知道另一个容器不是其系统实例的一部分,即不在其系统边界内,使得可以停止与该另一个容器的所有通信。区块链还可用作系统内所有基于容器的活动的可审计和防篡改的分类帐。因此,属于特定系统实例的任何容器可以参考该系统实例的公共分类帐来验证任何其他容器是否属于同一系统实例。

本系统为企业提供了一种方法,使其能够独立于底层管理程序和/或容器主机系统保护其自己的基于容器的系统,同时仍保持100%基于云。不依赖任何一个虚拟机管理程序或托管服务提供商。企业不被绑定到一个特定的托管提供商,以确保其容器符合与存储数据或向谁提供服务相关的特定合同或其他法律条件,无论是在云中还是作为传统的托管服务器。相反,企业可以通过其完全控制的区块链自主地确保其容器的法律合规性,而无需与其使用的托管服务提供商一起工作,并且不考虑数据如何存储在网络中的机制,无论是云型网络还是传统网络。区块链存储的分布式特性还意味着获得了通常的区块链安全优势,即不依赖于单个中心数据库服务器,这是单点漏洞。公共分类账的性质也意味着区块链的整个历史都具有完全可追溯性,这是考虑到检查法律合规性是否得到遵守的可审计性的进一步优势。区块链公共分类账的防篡改性质进一步增强了安全性。

容器的性质意味着根据定义,每个容器是一个独立的包含了运行所需的所有内容的软件。通过将容器封装在区块链的块中,只通过查看相关块的内容,就可以随时检查任何容器的内容是可能的。

利用本方法,网络可以保持打开,因为允许网络上的所有容器之间的通信。但是,对于网络上的那些容器,它们是所描述的相同区块链系统实例的一部分,它们可以可靠地识别属于其系统实例的所有其他容器,并限制或阻止与“外来”容器的任何交互,而不仅仅是识别朋友或敌人。

将容器集合与特定地理限制绑定的能力对于应用可能性具有重要意义,因为地理限制是许多政府活动的基本要求,即政府及其法律通常仅应用于管辖区本身,法律或公共政策可以禁止将数据存储在管辖区之外。地理限制也是受到严格监管的服务的要求,例如通过银行运营的立法进行银行业务。例如,如果容器用于管理真实(即非数字)货币,则可能需要地理限制。

区块链数据的分布式特性意味着即使大部分基于容器的系统受到损害和/或关闭,相同系统实例内的所有容器的整个历史和身份也可从任何一个容器获得。这降低了与业务连续性相关的风险。

以这种方式,区块链技术用于定义独立的基于容器的软件系统,该软件系统基于跨网络的多个节点可用的公共分类账真正分布,具有审计网络上的容器活动的能力。

图10示出了添加新容器的过程。

在步骤1中,当前指定的系统实例控制器接收添加新容器的请求,该容器通常来自负载平衡器服务器,其是具有监视网络资源和在网络负载足够忙时请求额外资源(在本例中是容器)的角色的服务器,以保证执行此操作。但原则上,云环境中的任何网络节点都可以充当请求源。

在步骤2中,系统实例控制器创建新容器。

在步骤3中,系统实例控制器在其初始状态下获取新容器的内容的指纹(fingerprint),即散列,并且还散列其自身数据的某些方面以提供它是创建者的永久记录。

步骤4,系统实例控制器联系区块链子系统,并为该新容器添加新的交易集合。

在步骤5中,与新容器相关联的区块链的新块被广播到网络的其他节点,并且因此由区块链的所有成员接收,其通常将代表网络节点的子集。

图11示出了用于在现有容器上运行软件更新的过程。

在步骤1中,容器操作系统接收系统更新,并且在执行更新之后散列其更新的内容,至少对于已经受更新影响的任何目录。

在步骤2中,容器操作系统经由区块链子系统联系区块链,并向区块链中添加反映更新的新交易集合,即公共分类账。

图12示出了容器检查另一个容器是否在其系统实例内,即在其系统边界内的过程。

在步骤1中,第二容器操作系统正在处理数据并且需要从第一容器操作系统访问资源。

在步骤2中,第二容器意识到需要验证第一容器是否在系统边界内。

在步骤3中,第二容器向区块链子系统查询属于第一容器的交易。公共分类帐不包含与第一个容器相关的任何交易,第二容器从中推断出第一个容器位于系统边界之外。

在步骤4中,第二容器向网络广播第一容器不在系统边界中,使得属于第二容器的系统实例的所有其他网络节点防火墙第一容器。

图13示出了计算机系统501和计算机程序507的结构,其可用于实现如上所述的网络节点,例如客户端或服务器。计算机系统501包括处理器503,以提供通过一个或多个i/o接口509耦合到一个或多个硬件数据存储装置511和一个或多个i/o装置513的处理器资源,其可以管理图形对象请求,以及显示器515,可以在其上显示图形对象。处理器503还可以连接到一个或多个存储器装置505。提供存储器资源的至少一个存储器装置505包含存储的计算机程序507,其是包括计算机可执行指令的计算机程序。数据存储装置511可以存储计算机程序507。存储在存储装置511中的计算机程序507被配置为由处理器503经由存储器装置505执行。处理器503执行存储的计算机程序507。

本领域普通技术人员将清楚,优选实施例的全部或部分逻辑处理步骤可以替代地体现在逻辑装置或多个逻辑装置中,包括被布置为执行该方法的逻辑处理步骤的逻辑元件以及这些逻辑元件可包括硬件组件,固件组件或其组合。

本领域技术人员同样清楚的是,优选实施例的全部或部分逻辑组件可以替代地体现在包括逻辑元件的逻辑装置中,以执行该方法的步骤,并且这些逻辑元件可以包括诸如逻辑门之类的组件,例如,可编程逻辑阵列中或专用集成电路中。这种逻辑布置还可以体现为使用例如虚拟硬件描述符语言在这种阵列或电路中临时或永久地建立逻辑结构的使能元件,其可以使用固定或可传输的载体媒体来存储和传输。

在另一替换实施例中,本公开可以以部署服务的计算机实现的方法的形式实现,该方法包括部署计算机程序的步骤,该计算机程序可操作,当被部署到计算机基础设施中并在其上执行时,使计算机系统执行该方法的所有步骤。

应当理解,优选实施例的方法和组件可以替代地完全或部分地体现在包括两个或更多个处理器的并行计算系统中,用于执行并行软件。

本公开的另一实施例是根据系统和方法定义的计算机程序产品。该计算机程序产品可以包括计算机可读存储介质,其上具有计算机可读程序指令,用于使处理器执行本公开的各方面。

计算机可读存储介质可以是有形装置,其可以保留和存储指令以供指令执行装置使用。

本公开可以是系统,方法和/或计算机程序产品。该计算机程序产品可以包括计算机可读存储介质(或介质),其上具有计算机可读程序指令,用于使处理器执行本公开的各方面。

计算机可读存储介质可以是可以保持和存储由指令执行装置使用的指令的有形装置。计算机可读存储介质例如可以是――但不限于――电存储装置、磁存储装置、光存储装置、电磁存储装置、半导体存储装置或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码装置、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理装置,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储装置。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理装置中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理装置中的计算机可读存储介质中。

用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或以一种或多种编程语言的任意组合编写的源代码或目标代码,包括诸如smalltalk、c++等的面向对象的编程语言,以及诸如“c”编程语言或类似编程语言的传统过程编程语言。计算机可读程序指令可以完全在用户的计算机上,部分在用户的计算机上,作为独立的软件包,部分地在用户的计算机上,部分地在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,或者可以连接到外部计算机(例如,通过因特网使用因特网服务提供商)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息以个性化电子电路来执行计算机可读程序指令以执行本公开的各方面。

这里参考根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本公开的各方面。将理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他装置以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它装置上,使得在计算机、其它可编程数据处理装置或其它装置上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它装置上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

在以上详细描述中,我们已经描述了在托管可配置计算资源的共享池的分布式网络中,如何可以提供区块链的一个或多个系统实例。每个系统实例包括虚拟机和容器集合。容器是区块链的成员,因为区块链的公共分类帐记录了每个容器的至少所选目录的加密副本。因此集合中的每个容器可以验证任何其他容器是否也是参考公共分类帐的同一集合的一部分,因为记录在公共分类帐上的交易是集合容器的加密副本。因此区块链的使用允许通过区块链的初始规范在容器集合周围定义系统边界。这很有用,因为可以定义系统边界以确保容器集合符合法律要求,例如地理限制或权限管理。

本领域技术人员将清楚,在不脱离本公开的范围的情况下,可以对前述示例性实施例进行许多改进和修改。

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