掌桥专利:专业的专利平台
掌桥专利
首页

云服务的流线型安全部署

文献发布时间:2023-06-19 11:55:48


云服务的流线型安全部署

背景技术

远程或“云”计算通常利用远程服务器的集合来提供计算、数据存储、电子通信或其他云服务。计算机网络可以互连远程服务器,以形成具有一个或多个计算集群的计算结构。在操作期间,计算结构中的多个服务器可以协作以提供支持执行用户应用的分布式计算环境,以便提供期望的云服务。

发明内容

该发明内容被提供来以简化的形式介绍对于下面在详细描述中进一步被描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或者必要特征,也不旨在被用于限制所要求保护的主题的范围。

云计算系统可以包括被配置为经由计算机网络提供各种云计算服务的大量远程服务器或节点。取决于访问限制,云计算系统或“云”可以是公共的或私有的。例如,公共云向公众提供云服务的订阅,而由于安全性、数据保护、隐私或其他考虑,私有云仅由组织的用户可访问。公共云的示例包括Microsoft

公共云和私有云计算系统可以彼此提供不同的资源、资源能力、特征或其他操作特性。由于云平台的部署版本、云应用、服务类型提供、可用资源内容或资源属性能力的改变,前述差异通常可以是动态的。例如,与公共云相比,私有云通常在受限的基础设施拓扑中操作。因此,私有云通常提供较少的基础设施故障域或其他计算能力。在另一示例中,私有云通常不提供各种基础设施种类,诸如服务器类型、存储能力等。因此,资源属性能力(诸如私有云服务器中的可部署虚拟机类型)可能会受到限制。在又一示例中,私有云可以提供在公共云中可用的可用应用编程接口(“API”)版本的子集。在又一示例中,与在公共云中提供的并且可以在私有云的稍后版本中提供的资源相比,特定版本的私有云可以具有不同的可用资源集。

公共云和私有云之间的差异可能会导致新的/更新的云应用/服务的部署需要不同的部署过程,而私有云提供方可能不容易适应这些过程。例如,公共云提供方(例如Amazon.com公司)通常具有开发人员团队,该团队开发与云服务相对应的应用和关联组件。在部署期间,开发团队可以通过使用部署脚本标识、安装、调试和/或对云服务的各个应用组件执行其他合适的动作来支持云服务的部署。因此,在开发团队的支持下,这种部署过程可以令人满意地操作。

然而,当私有云提供方由于各种资源或能力差异而尝试部署或更新相同的云服务时,用于公共云的前述部署过程可能无法令人满意地操作。通常,私有云提供方没有专用于云服务的开发团队,私有云提供方也没有从公共云提供方访问开发团队的权限。因此,涉及调整部署脚本等的复杂部署过程往往会阻止私有云提供方部署新的云服务。因此,私有云的用户体验可能会被降低。

所公开技术的几个实施例涉及云计算系统中的云服务的流线型安全部署,甚至无需访问云服务的开发团队。在某些实现中,所公开的技术可以提供“设备体验(applianceexperience)”,据此,与所部署的云服务相关联的内部组件被保持在内部并且对云服务提供方不可见。因此,云服务的实现(资源,诸如用于管理虚拟机的管理程序、用于分配用户存储账户的存储硬件服务、或者用于管理内部服务标识的域控制器等)被视为内部组件或“内脏(guts)”,并被保持在内部且不暴露于云服务提供方。

在一个示例实现中,部署服务或部署资源提供方(DRP)是在云计算系统(例如公共云或私有云)中提供的,以用于在云计算系统中部署、更新、故障排除和/或以其他方式管理资源。当新的云服务(或对现有云服务的更新)被存放到DRP(例如从公共云)时,新的云服务的部署清单被提供以在部署或更新新的云服务时引导DRP。部署清单可以包括表示以下的数据:应用组件列表、应用组件更新列表、安装顺序、应用组件的配置简档、以及关于应用组件安装的其他合适信息。部署清单可以采用任何合适的文件格式,诸如JavaScript对象符号(JSON)。

当被激活时,DRP通过在新的云服务要被部署的云计算系统中创建新的特殊订阅(在本文中称为“部署订阅”)来执行“自举(bootstrapping)”操作。取决于部署清单,部署订阅可以采用“消耗”或“计量”计费模式。与由云计算系统的实际用户或管理员拥有的典型订阅不同,部署订阅由DRP拥有,并且对云计算系统的任何实际用户或管理员都是不可见的。这种不可见性允许部署订阅保持从用户隐藏,同时在内部提供部署和运行新的云服务的能力。

一旦部署订阅在云计算系统中被创建,DRP就可以基于部署清单来创建被用于支持部署过程的初始资源集。例如,初始资源集可以包括密钥保管库或适合于存储凭证、虚拟机、容器(例如Docker容器)、存储账户等的其他合适的秘密存储装置,其被配置为收集用户提供的输入(例如秘密,诸如密码等)以进行云服务部署。通常,用户提供的输入数据可以包括诸如安全性凭证等参数,这些参数允许云服务在云计算系统中操作。在某些实现中,初始资源集可以具有描述可以被用于存储和验证用户提供的值的确切要求(例如安全性凭证的类型等)的元数据。另一预部署操作可以包括收集其余的非秘密参数,诸如用户偏好等。

在所有输入被收集之后,DRP可以开始部署过程。与开发团队的典型部署不同,在该典型部署中团队成员知道(多个)部署脚本的确切细节并且具有直接访问计算环境的能力(例如出于故障排除的目的),DRP可以被配置为执行部署,而不是云计算系统的用户或管理员。在一个示例中,用户指导DRP部署云服务,并且作为响应,DRP取回部署清单中指定的(多个)资源管理器模板(其被签名并且对用户隐藏),根据资源管理器模板(例如从公共云)取回合适的组件或组件更新,并且部署所取回的组件或组件更新。DRP可以被配置为执行复杂部署的多个操作,包括创建和删除资源,调用端点(例如虚拟机)等。为了添加新的云服务并“扩展”云计算系统,API集合(例如*.提供方命名空间)可以在云计算系统中实现。因此,将用户暴露于所部署的云服务的“内脏”可以被避免。用户还可以被防止干扰在部署云服务期间涉及的内容,因为用户无法访问这种内容。

所公开技术的另一方面涉及管理在云计算系统中提供某些云服务所需的秘密。通常,秘密被保存在安全的位置(例如密钥保管库或其他合适类型的秘密存储装置),其中云服务可以访问已保存的秘密。然而,这种方法可能具有多个缺点。例如,使云服务提供方(例如管理员)直接访问秘密被存储的安全位置可以创建云服务提供方错误地修改或“操作失误(fat-finger)”一个或多个所存储的秘密的机会。云服务提供方可能还会无意中将无效的秘密(错误的域、错误的凭证类型等)供应到安全位置。而且,一些秘密同时具有公共和私有部分(例如公钥和私钥),并且需要以一致的方式来更新。前述问题中的任何一个都可能会导致云服务无法操作,并且对于部署云服务的“设备”样式操作是不可接受的。为了解决这种问题的至少某些方面,DRP可以被配置为在云服务提供方(人类)和消耗秘密的云服务之间提供间接性。DRP确保秘密有效,并针对公共和私有部分进行适当更新。

根据所公开技术的实施例,当在云计算系统中部署云服务时,前述部署/更新过程可以实现设备体验。代替人工操作员,DRP可以被配置为处置诸如创建一个或多个订阅,创建/更新/删除资源,在云计算系统中调用端点,执行自定义脚本,发送各种遥测和关于部署过程和结果的概要等操作。用户在部署/更新过程期间提供的部署参数可以被缓存或以其他方式记住,以避免在(多个)后续更新期间请求相同的输入,从而消除或至少降低由用户提供的不一致值的风险。秘密管理可以被配置为允许云服务提供方查看计算系统中的所有秘密、对应的属性(例如密钥长度、创建/到期日期等),并适当地单独或一次性或在两者之间旋转它们。

附图说明

图1是根据所公开技术的实施例的混合云计算系统的示意图。

图2A是图示了根据所公开技术的实施例的适合于图1中的混合云计算系统的云计算系统的示意图。

图2B是图示了根据所公开技术的实施例的图2A中的云计算系统的某些硬件/软件组件的示意图。

图3A至图3D是图示了根据所公开技术的实施例的在云服务的流线型安全部署的某些阶段期间的图1中的云计算环境的某些硬件/软件组件的示意图。

图4是图示了根据所公开技术的实施例的图3A至3D中的部署资源提供方的某些硬件/软件组件的示意图。

图5A至图5C是图示了根据所公开技术的实施例的云服务的流线型安全部署的过程的各个方面的流程图。

图6是适合于图1中的云计算环境的某些组件的计算设备。

具体实施方式

用于支持云服务的流线型安全部署的计算系统、设备、组件、模块、例程和过程的某些实施例在下面被描述。在以下描述中,组件的具体细节被包括以提供对所公开技术的某些实施例的透彻理解。相关领域的技术人员还可以理解,所公开的技术可以具有附加实施例,或者可以在没有下面参照图1至图6描述的实施例的多个细节的情况下被实践。

如本文所使用的,术语“云计算系统”或“云”通常是指被配置为经由计算机网络提供各种云计算服务的计算机系统。云计算系统可以包括将大量远程服务器或节点彼此互连和/或与外部网络(例如互联网)互连的多个网络设备。在一个示例中,云计算系统可以包括分别在云计算数据中心(或其部分)中保持多个服务器的多个容器、机架或其他合适的外壳。术语“网络设备”通常是指网络通信组件。示例网络设备包括路由器、交换机、集线器、桥接器、负载平衡器、安全性网关或防火墙。“节点”通常是指被配置为实现一个或多个虚拟机、虚拟路由器、虚拟网关或其他合适的虚拟化计算组件的计算设备。例如,节点可以包括具有管理程序的计算服务器,该管理程序被配置为支持一个或多个虚拟机。

如本文所使用的,术语“公共云”或“公共云计算系统”通常是指向公众提供云服务订阅的云计算系统。公共云的示例包括Microsoft

还如本文所使用的,术语“云计算服务”或“云服务”通常是指通过诸如互联网等计算机网络提供的一个或多个计算资源。示例云服务包括软件即服务(“SaaS”)、平台即服务(“PaaS”)和基础设施即服务(“IaaS”)。SaaS是一种软件分发技术,其中软件应用由云服务提供方托管在例如数据中心中,并由用户通过计算机网络访问。PaaS通常是指通过计算机网络递送操作系统和关联服务,而无需下载或安装。IaaS通常是指用于支持存储装置、硬件、服务器、网络设备或其他组件的外包设备,所有这些设备都通过计算机网络可访问。

还如本文所使用的,术语“资源提供方”通常是指被配置为提供或使公共云或私有云的一个或多个云服务或资源可用的云服务。资源可以通过例如经由用户门户可访问的“资源管理器”来部署和管理。在某些实施例中,资源提供方可以被配置为提供代表性状态转移(“REST”)应用编程接口(“API”)以与关联资源一起工作。例如,资源提供方可以被配置为部署用于存储密钥和凭证的秘密存储装置(例如密钥保管库)。该资源提供方可以提供称为“保管库”的以创建密钥保管库的示例资源类型以及称为“保管库/秘密”的以在密钥保管库中创建秘密的另一示例资源类型。在其他实施例中,资源提供方还可以提供计算资源(例如虚拟机)、存储资源(例如网络存储装置)、网络资源(例如虚拟网络)、数据库资源(例如数据库服务器)或其他合适类型的资源。

不同的云计算系统可以向由云计算系统提供的云服务的用户提供不同的资源和/或能力。针对一些云计算系统,诸如私有云,由于在云计算系统处可用的资源和/或能力的特质导致一定程度的部署定制,因此部署新的或更新的云服务可能很困难。这样,一些云服务提供方(例如私有云提供方)可能被劝阻在对应的云计算系统中部署新的/更新的云服务。缺乏新的/更新的云服务的可用性可能会对用户体验、安全性、隐私保护或云计算系统的其他合适特征产生负面影响。

所公开技术的多个实施例可以通过在云计算系统中实现云服务的流线型安全部署来解决至少一些前述缺点。在某些实现中,所公开的技术可以提供“设备体验”,据此,与部署的云服务相关联的内部组件被保持在内部并且对云服务提供方不可见。因此,云服务的实现(资源,诸如用于管理虚拟机的管理程序、用于分配用户存储账户的存储硬件服务或用于管理内部服务标识的域控制器等)被视为内部组件或“内脏”,并保持在内部且不暴露于云服务提供方。因此,如下面参照图1至图6更详细地描述的,至少复杂的部署定制可以被减少,如果不被消除的话。

图1是图示了根据所公开技术的实施例的实现云服务的安全部署的云计算环境100的示意图。如图1所示,云计算环境100可以包括经由计算机网络104与关联于用户101的客户端设备102互连的一个或多个公共云108和私有云106。计算机网络104可以包括企业内联网、广域网、局域网、互联网或其他合适类型的网络。计算机网络104的一个示例在下面是参照图2A更详细地描述的。

即使云计算环境100的特定组件和关联布置在图1中被示出,但是在其他实施例中,云计算环境100可以包括附加的和/或不同的组件。例如,在所图示的实施例中,云计算环境100包括两个(即,第一和第二)私有云106a和106b以及两个(即第一和第二)公共云108a和108b。在其他实施例中,云计算环境100可以包括三个、四个或任何其他合适数量的私有云106和/或公共云108。在其他实施例中,云计算环境100可以仅包括公共云108而没有私有云106,反之亦然。在其他实施例中,云计算环境100还可以包括web服务器、域名服务器或其他合适的组件。

客户端设备102可以单独地包括计算设备,该计算设备支持用户101经由计算机网络104对公共云108和/或私有云106的访问。例如,在说明性实施例中,客户端设备102单独地包括台式计算机。在其他实施例中,客户端设备102还可以包括膝上型计算机、平板计算机、智能手机或其他合适的计算设备。即使为了说明目的三个用户101在图1中被示出,但是在其他实施例中,云计算环境100可以支持任何合适数量的用户101经由计算机网络104对公共云108和/或私有云106的访问。

公共云108和私有云106可以被单独地配置为向用户101提供某些云服务的订阅。如图1所示,公共云108向公众开放。因此,所有用户101都可以访问公共云108。另一方面,私有云106可以具有严格的访问控制。因此,仅被授权的用户101可以访问私有云106。例如,第一用户101a和第二用户101b可以被授权以分别访问第一私有云106a和第二私有云106b,但是不能访问第三用户101c。因此,第三用户101c无权访问第一私有云106a或第二私有云106b,而仅有权访问公共云108a和108b。适合于公共云108或私有云106的云计算系统110(如图2A所示)的示例组件在下面是参照图2A至图2B更详细地描述的。

如图1所示,私有云106和公共云108中的每一个可以具有不同的资源、能力或功能性。例如,第一私有云106a可以具有比第二云106b更早版本的云平台。在另一示例中,当与第一公共云108a或第二公共云108b相比时,私有云106可以具有受限的能力和/或特征。在又一示例中,第一公共云108a和第二公共云108b也可以具有不同的能力或功能性。当第一私有云106a和第二私有云106b的用户101云提供方(未示出)在第一私有云106a和第二私有云106b中部署新的/更新的云应用/服务时,这种差异可能会带来挑战。如下面参照图3A至图3D更详细地描述的,所公开技术的多个实施例可以实现云服务的安全流线型部署,以允许“设备体验”用于在例如第一私有云106a和第二私有云106b层中部署新的/更新的云服务。

图2A是图示了根据所公开技术的实施例的适合于图1的公共云108或私有云106的云计算系统110的示意图。如图2A所示,云计算系统110可以包括将与用户101和计算结构114相关联的多个客户端设备102互连的底层网络109。尽管云计算系统110的特定组件在图2A中被示出,但是在其他实施例中,云计算系统110还可以包括附加的和/或不同的组分。例如,云计算系统110还可以包括彼此互连的附加计算结构(未示出)、网络存储设备、公用事业基础设施和/或其他合适的组件。

如图2A所示,底层网络109可以包括互连用户101和计算结构114的一个或多个物理网络设备113。网络设备113的示例可以包括路由器、交换机、防火墙、负载平衡器或其他合适的网络组件。即使出于说明目的特定的连接方案在图2A中被示出,但是在其他实施例中,网络设备113可以可操作地以分层、平坦、“网格”或其他合适的拓扑耦合。

如图2A所示,计算结构114可以包括通过网络设备113可操作地彼此耦合的多个节点105。在某些实施例中,节点105可以单独地包括处理器、物理服务器或多个物理服务器。在其他实施例中,节点105还可以包括虚拟服务器或多个虚拟服务器。节点105可以被组织为机架、可用性区域、组、集合、计算集群或其他合适的分区。例如,在所图示的实施例中,节点105被分组为三个计算集群107(分别单独地示为第一计算集群107a、第二计算集群107b和第三计算集群107c),其可操作地被耦合至底层网络109中的对应网络设备113。尽管出于说明目的三个计算集群107在图2A中被示出,但在其他实施例中,计算结构114可以包括一个、两个、八个、十六个或任何其他合适数量的计算集群107(具有类似或不同的组件和/或配置)。

如图2A所示,计算结构114还可以包括被配置为监测、控制或以其他方式管理计算集群107中的节点105的操作的管理控制器115。例如,在某些实施例中,管理控制器115可以包括结构控制器,该结构控制器被配置为管理计算集群107中用于托管云服务的处理、存储、通信或其他合适类型的硬件资源。在其他实施例中,管理控制器115还可以包括数据中心控制器、应用递送控制器或其他合适类型的控制器。在所图示的实施例中,管理控制器115被示为与计算集群107分离。在其他实施例中,管理控制器115可以在计算集群107中包括一个或多个节点105。在其他实施例中,管理控制器115可以在计算集群107中包括在一个或多个节点105上托管的软件服务。

在操作中,用户101可以经由例如用户门户(未示出)请求部署云服务。例如,用户101可以请求虚拟机145的实例化(如图2B所示)。响应于从用户101接收到请求,管理控制器115可以验证用户101的订阅级别,并且在验证时供应虚拟机的实例化。然后,管理控制器115可以使节点105中的一个或多个实例化所请求的虚拟机145,如下面参照图2B更详细地描述的。

图2B是图示了根据所公开技术的实施例的在底层网络109上实现并且适合于图2A的云计算系统110的示例底层网络109'的示意图。在图2B中,为了清楚起见,仅图2A的底层网络109的某些组件被示出。如图2B所示,第一节点105a和第二节点105b可以分别包括处理器131、存储器133和可操作地彼此耦合的输入/输出组件135。处理器131可以包括微处理器、现场可编程门阵列和/或其他合适的逻辑设备。存储器133可以包括易失性和/或非易失性介质(例如ROM;RAM、磁盘存储介质;光学存储介质;闪存设备和/或其他合适的存储介质)和/或被配置为存储从处理器131接收的数据以及用于处理器131的指令(例如用于执行下面参照图6A至图6D讨论的方法的指令)的其他类型的计算机可读存储介质。输入/输出组件135可以包括显示器、触摸屏、键盘、鼠标、打印机和/或其他合适类型的输入/输出设备,其被配置为接受来自操作员和/或自动化软件控制器(未示出)的输入并向其提供输出。

第一节点105a和第二节点105b的存储器133可以包括由处理器131可执行以使各个处理器131提供管理程序141(单独地标识为第一管理程序141a和第二管理程序141b)和其他合适的组件(未示出)的指令。管理程序141可以单独地被配置为发起、监测、终止和/或以其他方式本地管理组织为租户站点143的一个或多个虚拟机145。例如,如图2B所示,第一节点105a可以提供第一管理程序141a,其分别管理第一租户站点143a和第二租户站点143b。第二节点105b可以提供第二管理程序141b,该第二管理程序141b分别管理第一租户站点143a'和第二租户站点143b'。管理程序141可以是软件、固件或硬件组件。租户站点143可以分别包括多个虚拟机145或特定用户101的其他合适的租户实例。例如,第一节点105a和第二节点105b都可以托管用户101的租户站点142a和142a'。第一节点105a和第二节点105b都可以托管第二用户101b(图1)的租户站点143b和143b'。每个虚拟机145可以执行对应的操作系统、中间件和/或应用。

还如图2B所示,云计算系统110可以包括具有一个或多个虚拟网络147的底层网络109',该虚拟网络147跨多个节点105互连租户站点143a和143b。例如,第一虚拟网络147a在第一节点105a和第二节点105b处互连第一租户站点143a和143a'。第二虚拟网络147b在第一节点105a和第二节点105b处互连第二租户站点143b和143b'。即使单个虚拟网络147被示为对应于一个租户站点143,但是在其他实施例中,多个虚拟网络147(未示出)可以被配置为对应于单个租户站点143。

即使虚拟机145位于不同的节点105上,虚拟网络147上的虚拟机145也可以经由底层网络109(图2A)彼此通信。虚拟网络147中的每个虚拟网络147的通信可以与其他虚拟网络147隔离。在某些实施例中,通信可以被允许通过安全性网关或以受控方式从一个虚拟网络147跨到另一虚拟网络147。虚拟网络地址可以对应于特定虚拟网络147中的虚拟机145中的一个虚拟机145。因此,不同的虚拟网络147可以使用相同的一个或多个虚拟网络地址。示例虚拟网络地址可以包括IP地址、MAC地址和/或其他合适的地址。

在某些实施例中,在一个或多个节点105上托管的虚拟机145可以被用于执行一个或多个用户请求的任务。在其他实施例中,虚拟机145或云计算系统110的其他合适的组件也可以被用于为公共云108(图1)实现访问服务或为各个私有云106(图1)实现连接服务。访问服务可以被配置为将公共云108处的可用资源的信息提供给私有云106的连接服务。访问服务还可以被配置为支持私有云106对公共云108中的网络存储装置的访问。在某些实施例中,例如通过在计算结构115(图2A)中的所选节点105上的一个或多个虚拟机145中执行适当的指令或代码,访问服务或连接服务可以单独地被实现为云服务。在其他实施例中,访问服务和/或连接服务可以通过专用服务器或经由其他合适的技术来提供。即使图2B中的节点105被示为托管用于执行应用以提供合适的云服务的虚拟机145,在其他实施例中,节点105和/或虚拟机145也可以托管一个或多个容器(例如Docker容器,未示出)、虚拟交换机、虚拟路由器和/或其他合适的组件,以执行应用和/或执行其他合适的操作以提供对应的云服务。

图3A至图3D是图示了根据所公开技术的实施例的在云服务的流线型安全部署的某些阶段期间的图1中的云计算环境100的某些硬件/软件组件的示意图。在图3A至图3D中,为了清楚起见,云计算环境100的某些组件被省略。例如,出于说明目的,仅一个私有云106在图3A至图3D中被示出。其他和/或附加的公共和/或私有云可以具有与图3A至图3D所示的组件和关联操作类似的组件和关联操作。

即使流线型安全部署技术在下面在将云服务从公共云108部署到私有云106的上下文中被描述,在其他实现中,所描述的技术也可以被应用于将云服务从发布服务部署到公共云,从公共云部署到另一公共云或者从私有云部署到另一私有云。因此,所公开技术的实施例不被限于将云服务从公共云部署到私有云。

另外,在图3A至图3D和本文的其他附图中,各个软件组件、对象、类、模块和例程可以是用C、C++、C#、Java和/或其他合适的编程语言编写为源代码的计算机程序、程序或过程。组件可以包括但不限于一个或多个模块、对象、类、例程、属性、过程、线程、可执行文件、库或其他组件。组件可以采用源形式或二进制形式。组件可以包括在编译之前的源代码(例如类、属性、程序、例程)、已编译的二进制单元(例如库、可执行文件)或在运行时实例化并使用的假像(例如对象、过程、线程)的各个方面。在某些实施例中,下面描述的各种组件和模块可以用动作者来实现。在其他实施例中,应用和/或相关服务的生成还可以使用单片应用、多层应用或其他合适的组件来实现。

系统内的组件可以在系统内采用不同的形式。作为一个示例,包括第一组件、第二组件和第三组件的系统可以涵盖但不限于第一组件是源代码的属性,第二组件是二进制编译库并且第三组件是在运行时间创建的线程的系统。计算机程序、程序或过程可以被编译为对象、中间物或机器代码,并被呈现以由个人计算机、网络服务器、膝上型计算机、智能手机和/或其他合适的计算设备中的一个或多个处理器执行。同样地,组件可以包括硬件电路系统。

本领域的普通技术人员将认识到,硬件可以被视为化石软件,并且软件可以被视为液化硬件。仅作为一个示例,组件中的软件指令可以被刻录到可编程逻辑阵列电路,或者可以被设计为具有适当集成电路的硬件电路。同样地,硬件可以由软件仿真。源代码、中间代码和/或对象代码以及关联数据的各种实现可以被存储在计算机存储器中,该计算机存储器包括只读存储器、随机存取存储器、磁盘存储介质、光学存储介质、闪存设备和/或除了传播信号以外的其他合适的计算机可读存储介质。

如图3A所示,公共云108可以包括资源管理器122,该资源管理器122被配置为支持对公共云108处的各种资源的管理。公共云108还可以包括被配置为提供各种资源的各种资源提供方121。例如,在所图示的实施例中,公共云108可以包括可操作地彼此耦合的认证服务124和发布服务126。前述服务中的每个服务可以是经由在一个或多个节点105(图2A)上执行合适的指令而由计算结构114(图2A)提供的云服务。公共云108还可以包括储存库111,该储存库111包含单独地对应于云服务的应用112的记录。储存库111可以在公共云108中包括数据库或其他合适的网络存储装置。即使公共云108的特定组件在图3A中被示出,在其他实施例中,公共云108也可以包括存储服务、计算服务、web服务、数据库服务或其他合适类型的资源提供方。

资源管理器122可以被配置为在公共云108中部署、监测和/或管理对订户(例如图1中的用户101)可用的资源。资源管理器122可以允许订户与一组可用资源进行交互。例如,资源管理器122可以允许在协调操作中部署、更新或删除一个或多个可用资源。资源管理器122还可以被配置为提供安全性、审计和标记特征,以在部署之后支持资源的管理。即使公共云108在图3A中被示为具有资源管理器122,在其他实施例中,资源管理器122也可以被省略。在这种实施例中,订户可以单独地,分别地或以其他合适的方式来管理公共云108中的各种可用资源。

认证服务124可以被配置为支持各种认证和授权协议。例如,在某些实施例中,认证服务124可以被配置为支持单密钥或多密钥认证。在其他实施例中,认证服务124也可以被配置为支持密钥翻转。在其他实施例中,认证服务124还可以被配置为通过协调用户与服务之间的批准交互或者通过允许用户自己获得受限访问来支持授予对HTTP或其他合适的服务的受限访问。一个示例认证服务124是由华盛顿州雷蒙德市的微软公司提供的

发布服务126可以被配置为从例如独立软件供应者(ISV)或其他合适的源接收应用112,并提供对公共云108的用户101(图1)的应用112的访问。在某些实施例中,ISV可以开发SaaS应用并将所开发的SaaS应用提交给发布服务126。反过来,发布服务126可以被配置为验证所提交的SaaS应用以确保与云计算平台的兼容性,没有恶意软件或其他合适的目的。发布服务126还可以被配置为对应用112的一个或多个特性进行归类、分类或以其他方式标识。

然后,发布服务126可以被配置为将应用112的各种组件和假像的一个或多个副本存储在例如公共云108中的储存库111或其他合适的网络存储装置(未示出)中。应用112的组件可以包括可执行文件、库、数据库和/或其他合适的软件模块。如本文所使用的,术语“工件(artifact)”通常是指在软件开发期间产生的副产品。例如,用例、类图、其他统一建模语言(UML)模型、要求、设计文档或其他合适类型的工件可以帮助描述应用112的功能、架构和/或设计。其他工件可以包含与应用的开发过程相关的信息,诸如项目计划、业务案例和风险评估。

在某些实施例中,发布服务126还可以将某些应用112的工件发布到私有云106。例如,在一个实施例中,当ISV提交应用112时,ISV可以选择使应用112也被发布到私有云106。响应于接收到所提交的应用112,发布服务126然后可以例如经由应用公告150来通知、发布或以其他方式使私有云106知道所提交的应用112。在其他实施例中,默认情况下,所有提交的应用112可以被发布到私有云106。在其他实施例中,默认情况下,应用112的某些类别、类、组或类型可以被自动发布到私有云106。

如图3A所示,私有云106可以包括资源管理器122'、部署资源提供方(示出为“DRP134”)、计算服务136和可操作地耦合至储存库111'和秘密存储装置114的安全性服务138。资源管理器122'和储存库111'通常可以类似于公共云108的资源管理器122'和储存库111'。例如,资源管理器122'可以被配置为便于管理员103经由客户端设备102'部署、监测和/或管理私有云106中的资源。储存库111'可以被配置为存储在私有云106中发布的应用112'的记录以及私有云106中的其他合适类型的数据。

计算服务136可以被配置为向DRP 134、用户101和/或私有云106的其他服务提供计算资源。例如,在一个实施例中,计算服务136可以被配置为实例化数字秘密存储装置114、虚拟机、存储账户和/或DRP 134的其他合适类型的资源的实例,以支持私有云106中的部署过程,如下面更详细地描述的。安全性服务138可以被配置为管理秘密存储装置114中的账户凭证或其他合适类型的秘密115。在某些实现中,安全性服务138可以被配置为接收和验证由管理员103提供的用于部署应用112的秘密115,如下面参照图3C和3D更详细地描述的。

DRP 134可以被配置为使私有云106中的云服务的安全部署流线型。在某些实施例中,在例如资源管理器122'处接收到与应用122相关联的应用公告150时,私有云106的管理员103可以选择部署与私有云106中的应用122相对应的云服务。如图3A所示,管理员103可以向资源管理器122'提供启动DRP 134的部署指令152,以在私有云106中执行应用112的部署过程。在其他实现中,管理员103可以直接调用DRP 134,而无需使用资源管理器122'。

当被启动时,DRP 134可以被配置为通过在私有云106中创建新的特殊订阅(在本文中称为“部署订阅”)来执行“自举”操作。在一个实施例中,DRP 134可以被配置为在初始阶段期间执行部署/更新条件检查。如果部署/更新条件未被满足,则DRP 134停止部署过程。如果部署/更新条件被满足,则DRP 134可以创建用于部署应用112的部署订阅。例如,如图3B所示,DRP 134可以经由资源管理器122'向订阅服务(未示出)发送订阅请求153。作为响应,订阅服务可以向所请求的部署订阅提供授权。授权可以标识DRP 134可访问的私有云106中的资源数量或类型中的一个或多个。与由私有云106的实际用户101或管理员103拥有的典型订阅不同,部署订阅由DRP 134拥有,并且对于私有云106的任何实际用户101或管理员103都是不可见的。这种不可见性允许部署订阅保持从用户101隐藏,同时内部提供了部署和运行新的云服务的能力。

如图3B所示,在接收到对所请求的部署订阅的授权时,DRP 134可以被配置为实例化私有云106中的一个或多个计算资源。例如,DRP 134可以将资源请求159发送给计算服务136以请求实例化一个或多个虚拟机145,并发送给安全性服务138以请求实例化一个或多个密钥保管库114。在其他示例中,DRP 134也可以请求存储服务(未示出)以实例化例如储存库111'中的存储账户,或者请求其他合适类型的服务以实例化其他合适类型的资源。

在实例化诸如私有云106中的虚拟机145和秘密存储装置114等合适资源时,DRP134可以被配置为从管理员103收集各种类型的部署输入154,如图3C所示。在一个示例中,部署输入154可以包括账户凭证(例如密码)、安全性凭证和/或允许云服务在私有云106中操作的其他合适的秘密115。所收集的秘密115可以被存储在实例化的秘密存储装置114或其他合适的位置中。部署输入154还可以包括非秘密参数,诸如用户偏好等。这种非秘密参数可以被存储在DRP 134的一个或多个实例化存储账户(未示出)中。

根据所公开技术的实施例,要被部署在私有云106中的应用112可以具有对应的应用清单151,例如作为应用112的工件。应用清单151可以包括标识应用112的一个或多个组件、一个或多个组件的安装顺序和/或对部署应用112有用的其他合适信息的数据。以下是JSON格式的示例应用清单151:

上述示例应用清单151中标识的各种属性值在下表中被示出:

在图3C所图示的示例中,DRP 134被配置为通过向公共云108发送包含从管理员103接收到的一个或多个秘密115的部署请求155来从公共云108取回应用清单151。在例如由公共云108处的认证服务124进行认证时,公共云108将应用清单151提供给DRP 134。在其他示例中,应用清单151连同申请公告150(图3A)或以其他合适方式被提供给私有云106。

在一些实现中,部署请求155还可以包括表示以下的数据:私有云106中的云平台的版本号、发行版号、构建号和/或其他合适的产品/配置参数。在一个实施例中,公共云108处的发布服务126(或其他合适的服务)可以被配置为根据私有云106中的云平台的接收参数选择合适的产品清单151,并将所选的产品清单151提供给DRP 134。不同的产品清单151可以包括标识应用112的不同组件、安装顺序、配置参数和/或其他合适信息的数据。

在其他实施例中,发布服务126可以被配置为以临时或其他合适的方式基于私有云106中的云平台的产品/配置参数来生成应用清单151。例如,发布服务126可以被配置为选择应用112的可用组件的子集。在另一示例中,发布服务126可以被配置为更改组件的安装顺序。在又一示例中,发布服务126可以被配置为生成在应用112部署期间要在私有云106中被执行的自定义脚本。

在某些实现中,应用清单151还可以包括元数据,该元数据标识可接受的账户凭证或用于部署云服务的其他合适类型的秘密115的一个或多个属性。示例属性可以包括关键字类型、关键字长度、安全性密钥格式等。基于应用清单151中的元数据,安全性服务138可以被配置为确定所收集的部署输入154中的账户凭证是否具有可接受账户凭证的一个或多个属性。响应于确定所收集的部署输入154具有可接受账户凭证的一个或多个属性,安全性服务138可以将接收到的秘密115存储在秘密存储装置114中。否则,安全性服务138可以提示管理员103提供更新的或不同的部署输入154。

在接收到应用清单151时,DRP 134可以被配置为安装由应用清单151引导的应用112的组件。例如,如图3D所示,DRP 134可以被配置为向公共云108发送一个或多个组件请求157,请求应用112的一个或多个组件。作为响应,发布服务126(或公共云108中的其他合适类型的服务)可以被配置为取回应用112'的组件的副本,并将所取回的副本提供给私有云106处的DRP 134。

在接收到应用112'的一个或多个组件时,DRP 134可以被配置为使用实例化计算资源以在私有云106中的一个或多个服务器或节点105(图2A)中安装一个或多个组件。例如,如图3D所示,DRP 134可以被配置为将部署指令158(例如自定义脚本)提供给一个或多个虚拟机145。然后,虚拟机145可以根据例如在应用模板151(图3C)中标识的安装顺序执行自定义脚本以安装应用112的组件。这种安装可以包括以下一项或多项:创建应用目录,将一个或多个组件复制到应用目录中,在私有云106中创建到附加资源的链路和/或其他合适的操作。然后,一个或多个节点105可以执行应用112的已安装的一个或多个组件,以向用户101(图1)提供对应的云服务。

DRP 134还可以将应用112'的一个或多个组件的副本存储在储存库111'中,以部署应用112'的附加实例或其他合适的目的。在部署过程期间和/或完成部署过程时,DRP134可以被配置为经由客户端设备102'向管理员103提供部署状况156。部署状况156可以包括指示应用112'已经被成功部署在私有云106中的数据或部署过程的其他合适信息。

当在诸如私有云106等云计算系统中部署云服务时,前述部署/更新过程的多个实施例可以实现设备体验。代替诸如管理员103等人工操作员,DRP 134可以被配置为处置诸如创建一个或多个订阅,创建/更新/删除资源,调用端点,执行自定义脚本,发送各种遥测以及关于部署过程和结果的概要等操作。因此,应用112'的一个或多个组件以及关联的安装顺序不会被暴露于管理员103。而且,通过使用DRP 134访问秘密存储装置114中的秘密115,由管理员103错误修改所存储的秘密115的风险可以被减少。因此,DRP 134可以向管理员103提供有效的服务部署体验,以使得能够在私有云106中部署新的和/或更新的云服务。

另外,管理员103在部署/更新过程期间提供的部署参数可以被缓存或以其他方式记住,以避免在(多个)后续更新期间请求相同的输入,从而消除或至少降低由用户提供的不一致值的风险。安全性服务138可以被配置为允许管理员103查看秘密存储装置114中的所有秘密115、对应的属性(例如密钥长度、创建/到期日期等),并适当地单独或一次性或在两者之间旋转它们。

图4是图示了根据所公开技术的实施例的图3A至图3D中的DRP 134的某些硬件/软件组件的示意图。如图4所示,DRP 134可以包括订阅创建器162、资源分配器164和可操作地彼此耦合的部署处理器166。即使出于说明目的特定组件在图4中被示出,但是在其他实施例中,DRP 134也可以包括输入/输出或其他合适类型的组件。

订阅创建器162可以被配置为响应于接收到部署指令152而创建部署订阅。例如,如上面参照图3A描述的,订阅创建器134可以被配置为向私有云106(图3A)中的订阅服务生成并发送订阅请求153。作为响应,订阅创建者162可以接收针对所请求的部署订阅的授权,据此,资源分配器164可以被配置为通过发送资源请求159来实例化一个或多个资源。使用实例化的资源,部署处理器166可以被配置为根据应用清单151(图3C)中的安装顺序取回要被部署在私有云106中的应用112'的一个或多个组件,并安装应用112'的一个或多个组件。

图5A至图5C是图示了根据所公开技术的实施例的云服务的流线型安全部署的过程的各个方面的流程图。即使过程的实施例在下面是在图1至图3D的云计算环境100的上下文中描述的,但是在其他实施例中,该过程可以在具有附加和/或不同组件的云计算环境中实现。

如图5A所示,过程200可以包括在阶段202中接收应用通知。在一个示例中,应用通知可以由私有云106(图3A)从公共云108(图3A)接收。在其他实施例中,应用通知可以由公共云从发布源、另一发布或其他合适的源接收。然后,过程200可以包括在阶段204中创建部署订阅。如上面参照图3A描述的,部署订阅可以由DRP 134(图3A)拥有或以其他方式管理或者与其相关联,并且对于私有云106的管理员103(图3A)或任何用户101(图1)是不可见的。创建部署订阅的示例操作在下面将参照图5B更详细地描述。

然后,过程200可以包括在阶段206中接收应用清单。如上面参照图3C描述的,应用清单可以包括标识应用112(图3C)的一个或多个组件的数据、一个或多个组件的安装顺序和/或应用112的其他合适的安装信息。即使接收应用清单在图5A中是在创建部署订阅之后示出的,但是在其他实施例中,接收应用清单也可以在创建部署订阅之前,与其交错或与其同时进行。然后,过程200可以包括在阶段208中在私有云106中部署应用和对应的云服务。部署应用的示例操作在下面是参照图5C更详细地描述的。

如图5B所示,创建部署订阅的示例操作可以包括在阶段212中提交订阅请求。示例操作然后可以包括在阶段214中接收订阅确认。示例操作然后可以包括基于部署订阅来分配或以其他方式获得对私有云106(图3A)中的资源的访问。示例资源可以包括以下一个或多个:秘密存储装置、虚拟机、存储账户和/或私有云106中的其他合适类型的计算资源。

如图5C所示,部署应用112(图3D)的示例操作可以包括在阶段222中取回应用的组件,并在阶段224中根据应用清单安装所取回的组件。操作还可以包括在阶段226中基于应用清单配置已安装的组件,并在阶段228中将部署状况提供给例如管理员103(图3D)。

图6是适合于图1至2B中的云计算环境100的某些组件的计算设备300。例如,计算设备300可以适合于图1至图2B的节点105或客户端设备102。在非常基本的配置302中,计算设备300可以包括一个或多个处理器304和系统存储器306。存储器总线308可以被用于在处理器304和系统存储器306之间进行通信。

取决于期望的配置,处理器304可以是任何类型的,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任何组合。处理器304可以包括一个多级缓存(诸如一级缓存310和二级缓存312)、处理器核心314和寄存器316。示例处理器核心314可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核心(DSP核心)或其任何组合。示例存储器控制器318也可以与处理器304一起使用,或者在一些实现中,存储器控制器318可以是处理器304的内部部分。

取决于期望的配置,系统存储器306可以是任何类型的,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或其任何组合。系统存储器306可以包括操作系统320、一个或多个应用322和程序数据324。所描述的该基本配置302在图8中是通过内部虚线内的那些组件图示的。

计算设备300可以具有附加特征或功能性以及支持基本配置302与任何其他设备和接口之间的通信的附加接口。例如,总线/接口控制器330可以被用于支持基本配置302与一个或多个数据存储设备332之间经由存储接口总线334的通信。数据存储设备332可以是可移除存储设备336、不可移除存储设备338或其组合。仅举数例,可移除存储设备和不可移除存储设备的示例包括磁盘设备(诸如软盘驱动器和硬盘驱动器(HDD))、光盘驱动器(诸如压缩盘(CD)驱动器或数字通用盘(DVD)驱动器)、固态驱动器(SSD)和磁带驱动器。示例计算机存储介质可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性和非易失性介质、可移除和不可移除介质。术语“计算机可读存储介质”或“计算机可读存储设备”排除了传播信号和通信介质。

系统存储器306、可移除存储设备336和不可移除存储设备338是计算机可读存储介质的示例。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪存或者其他存储器技术、CD-ROM、数字通用盘(DVD)或者其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁性存储设备或者可以被用于存储期望信息并且可以由计算设备300访问的任何其他介质。任何这种计算机可读存储介质可以是计算设备300的一部分。术语“计算机可读存储介质”排除了传播信号和通信介质。

计算设备300还可以包括接口总线340,以支持从各种接口设备(例如输出设备342、外围接口344和通信设备346)经由总线/接口控制器330到基本配置302的通信。示例输出设备342包括图形处理单元348和音频处理单元350,其可以被配置为经由一个或多个A/V端口352与诸如显示器或扬声器等各种外部设备通信。示例外围接口344包括串行接口控制器354或并行接口控制器356,其可以被配置为经由一个或多个I/O端口358与诸如输入设备(例如键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如打印机、扫描仪等)等外部设备通信。示例通信设备346包括网络控制器360,其可以被布置为支持经由一个或多个通信端口364在网络通信链路上与一个或多个其他计算设备362的通信。

网络通信链路可以是通信介质的一个示例。通信介质通常可以由计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据(诸如载波或其他输送机制等)来实施,并且可以包括任何信息递送介质。“调制数据信号”可以是以对信号中的信息进行编码的这种方式设置或改变其一个或多个特性的信号。通过示例而非限制,通信介质可以包括诸如有线网络或直接有线连接等有线介质以及诸如声学、射频(RF)、微波、红外(IR)和其他无线介质等无线介质。本文使用的术语计算机可读介质可以包括存储介质和通信介质。

计算设备300可以被实现为小型便携式(或移动)电子设备(诸如手机、个人数据助理(PDA)、个人媒体播放设备、无线web观看设备、个人耳机设备、专用设备或者包括任何以上功能的混合设备)的一部分。计算设备300还可以被实现为个人计算机,包括膝上型计算机和非膝上型计算机配置。

通过前述内容,可以了解的是,本公开的特定实施例在本文中已经出于说明的目的被描述,但是各种修改可以在不偏离本公开的情况下进行。另外,除了其他实施例的元件之外或代替其他实施例的元件,一个实施例的许多元件可以与其他实施例组合。因此,除了随附权利要求之外,本技术不受限制。

相关技术
  • 云服务的流线型安全部署
  • 基于云服务器的深度学习模型部署方法及部署系统
技术分类

06120113106634