CN114730258A - 用于基础设施编排服务的用户界面技术 - Google Patents

用于基础设施编排服务的用户界面技术 Download PDF

Info

Publication number
CN114730258A
CN114730258A CN202080081022.9A CN202080081022A CN114730258A CN 114730258 A CN114730258 A CN 114730258A CN 202080081022 A CN202080081022 A CN 202080081022A CN 114730258 A CN114730258 A CN 114730258A
Authority
CN
China
Prior art keywords
infrastructure
software
declarative
user interface
provisioning
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.)
Pending
Application number
CN202080081022.9A
Other languages
English (en)
Inventor
A·卡雷
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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
Priority claimed from US17/001,626 external-priority patent/US20210223923A1/en
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN114730258A publication Critical patent/CN114730258A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

公开了用于提供多个用户界面的技术。计算系统可以执行声明性基础设施供应器。计算系统可以提供声明性指令并指示声明性基础设施供应来部署多个基础设施资源和多个工件。一个示例用户界面可以提供多个基础设施组件和工件的全局视图。另一个示例用户界面可以提供多个基础设施组件和工件的对应状态和改变活动。可以提供又一个用户界面,其呈现指示计算环境的第一改变的本地生成的安全计划与指示计算环境的第二改变的远程生成的安全计划之间的相似性和/或差异。

Description

用于基础设施编排服务的用户界面技术
相关申请的交叉引用
本申请是以下美国临时申请和美国非临时申请的并且根据35U.S.C.119(e)要求其优先权权益的非临时申请,以下美国临时申请和美国非临时申请的全部内容出于所有目的通过引用并入本文:2020年1月20日提交的标题为“USER INTERFACE TECHNIQUES FOR ANINFRASTRUCTURE ORCHESTRATION SERVICE”的美国临时申请No.62/963,456;2020年1月22日提交的标题为“USER INTERFACE TECHNIQUES FOR AN INFRASTRUCTURE ORCHESTRATIONSERVICE”的美国临时申请No.62/964,596;2020年8月24日提交的标题为“USER INTERFACETECHNIQUES FOR AN INFRASTRUCTURE ORCHESTRATION SERVICE”的美国非临时申请No.17/001,626。
背景技术
如今,云基础设施服务利用许多个体服务来(分别)跨云基础设施服务的许多区域供应和部署代码和配置。这些工具要求大量的手动操作才能使用,尤其是考虑到供应一般是声明性的并且部署代码是必要的。此外,随着服务团队和区域数量的增长,云基础设施服务将需要继续增长。一些云基础设施服务的部署到大量较小区域的策略包括每个区域的支出,这可能无法很好地扩展。
发明内容
本文公开了用于提供一个或多个用户界面的技术。在一些实施例中,公开了一种方法。该方法可以包括由计算系统执行声明性基础设施供应器。该方法还可以包括由计算系统至少部分地基于向声明性基础设施供应器提供声明性指令的第一集合来供应基础设施组件的第一集合。该方法还可以包括由计算系统至少部分地基于向声明性基础设施供应器提供声明性指令的第二集合来部署软件工件的第二集合。该方法还可以包括由计算系统提供呈现多个用户界面元素的用户界面,所述多个用户界面元素至少识别与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态。
在一些实施例中,公开了一种系统。该系统可以包括一个或多个处理器和存储计算机可执行指令的一个或多个存储器,这些计算机可执行指令在由一个或多个处理器执行时使得系统执行操作。操作可以包括执行声明性基础设施供应器。操作还可以包括至少部分地基于向声明性基础设施供应器提供声明性指令的第一集合来供应基础设施组件的第一集合。操作还可以包括至少部分地基于向声明性基础设施供应器提供声明性指令的第二集合来部署软件工件的第二集合。操作还可以包括提供呈现多个用户界面元素的用户界面,所述多个用户界面元素至少识别与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态。
在一些实施例中,公开了一种非暂态计算机可读存储介质。该非暂态计算机可读存储介质可以包括一个或多个处理器和存储计算机可执行指令的一个或多个存储器,这些计算机可执行指令在由一个或多个处理器执行时使得计算设备执行操作。操作可以包括执行声明性基础设施供应器。操作还可以包括至少部分地基于向声明性基础设施供应器提供声明性指令的第一集合来供应基础设施组件的第一集合。操作还可以包括至少部分地基于向声明性基础设施供应器提供声明性指令的第二集合来部署软件工件的第二集合。操作还可以包括提供呈现多个用户界面元素的用户界面,所述多个用户界面元素至少识别与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态。
在一些实施例中,公开了一种计算机实现的方法。该方法可以包括由计算系统提供呈现多个用户界面元素的用户界面,所述多个用户界面元素至少识别与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态。基础设施的第一集合至少部分地基于声明性基础设施供应器来供应,并且软件工件的第二集合至少部分地基于声明性基础设施供应器来供应。
在一些实施例中,公开了一种系统。该系统可以包括一个或多个处理器和存储计算机可执行指令的一个或多个存储器,这些计算机可执行指令在由一个或多个处理器执行时使得系统执行操作。操作可以包括提供呈现多个用户界面元素的用户界面,所述多个用户界面元素至少识别与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态。基础设施的第一集合至少部分地基于声明性基础设施供应器来供应,并且软件工件的第二集合至少部分地基于声明性基础设施供应器来供应。
在一些实施例中,公开了一种非暂态计算机可读存储介质。该非暂态计算机可读存储介质可以包括一个或多个处理器和存储计算机可执行指令的一个或多个存储器,这些计算机可执行指令在由一个或多个处理器执行时使得计算设备执行操作。操作可以包括提供呈现多个用户界面元素的用户界面,所述多个用户界面元素至少识别与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态。基础设施的第一集合至少部分地基于声明性基础设施供应器来供应,并且软件工件的第二集合至少部分地基于声明性基础设施供应器来供应。
在一些实施例中,公开了一种装置。该装置可以包括用于执行根据本公开的实施例的任何方法的步骤的部件。
附图说明
为了容易地识别对任何特定元素或动作的讨论,附图标记中的一个或多个最高有效数字是指第一次引入该元素的图号。
图1是根据至少一个实施例的用于实现云基础设施编排服务的至少一些元素的体系架构的框图。
图2是根据至少一个实施例的用于实现云基础设施编排服务的至少一些元素的体系架构的框图。
图3是用于图示根据至少一个实施例的示例群的流程图。
图4是用于图示根据至少一个实施例的示例群的流程图。
图5是图示根据至少一个实施例的示例用户界面的示意图。
图6是图示根据至少一个实施例的用于提供与所选择的发布相关的信息的示例用户界面的示意图。
图7是图示根据至少一个实施例的用于查看发布的状态的示例用户界面的示意图。
图8是图示根据至少一个实施例的用于查看发布的状态的示例用户界面的示意图。
图9是图示根据至少一个实施例的描绘所选择的执行目标的执行目标资源的示例用户界面的示意图。
图10是图示根据至少一个实施例的用于呈现关于所选择的发布的选定阶段的信息的示例用户界面的示意图。
图11是图示根据至少一个实施例的描绘用于图示执行任务的集合的执行次序的执行图的示例用户界面的示意图。
图12是图示根据至少一个实施例的描绘示例UI 1200的示例用户界面的示意图,该示例UI 1200描绘与所选择的发布的一个或多个阶段相关的执行状态。
图13是图示根据至少一个实施例的示出示例安全计划的示例用户界面的示意图。
图14是根据至少一个实施例的用于描述生成用于供应基础设施的用户界面的示例过程的流程图。
图15是根据至少一个实施例的分布式系统的框图。
图16是根据至少一个实施例的系统环境的一个或多个组件的框图,通过该系统环境的一个或多个组件,由实施例系统的一个或多个组件提供的服务可以作为云服务提供。
图17是其中可以实现本公开的各种实施例的示例计算机系统的框图。
具体实施方式
在一些示例中,基础设施即服务(IaaS)是一种特定类型的云计算。IaaS可以被配置为通过公共网络(例如,互联网)提供虚拟化的计算资源。在一些示例中,IaaS是云计算服务的三个主要类别(或子类别)之一。大多数人认为其它主要类别是软件即服务(SaaS)和平台即服务(PaaS),并且有时SaaS可以被认为是更广泛的类别,涵盖PaaS和IaaS两者,甚至也有些人认为IaaS是PaaS的子类别。
在IaaS模型中,云计算提供商可以托管基础设施组件(例如,服务器、存储设备、网络节点(例如,硬件)、部署软件、平台虚拟化(例如,管理程序层)等)。
在一些情况下,IaaS提供商还可以供应各种服务来伴随这些基础设施组件(例如,计费、监视、日志记录、安全性、负载平衡和聚类等)。因此,由于这些服务可以是策略驱动的,因此IaaS用户可以能够实现驱动负载平衡的策略以维持应用可用性和性能。
在一些情况下,IaaS客户可以通过诸如互联网之类的广域网(WAN)访问资源和服务,并且可以使用云提供商的服务来安装应用堆栈的其余元素。例如,用户可以登录IaaS平台以创建虚拟机(VM),在每个VM中安装操作系统(OS),部署诸如数据库之类的中间件,为工作负载和备份创建存储桶,以及甚至将企业软件安装到该VM中。然后,客户可以使用提供商的服务来执行各种功能,包括平衡网络流量、解决应用问题、监视性能、管理灾难恢复等。
在大多数情况下,云计算模型将要求云提供商的参与。云提供商可以是但不需要是专门提供(例如,销售)IaaS的第三方服务。实体也可能选择部署私有云,成为其自己的基础设施服务的提供商。
在一些示例中,IaaS部署是将新应用或新版本放置到准备好的应用服务器等上的过程。它还可以包括准备服务器的过程(例如,安装库、守护程序等)。这常常由云提供商管理,位于管理程序层之下(例如,服务器、存储装置、网络硬件和虚拟化)。因此,客户可以负责(例如,在(例如,可以按需启动的)自助服务虚拟机上)处置(OS)、中间件和/或应用部署等。
在一些示例中,IaaS供应可以指获取计算机或虚拟主机以供使用,并且甚至在其上安装所需的库或服务。在大多数情况下,部署不包括供应,并且可能需要首先执行供应。
在一些情况下,IaaS供应存在两个不同的问题。首先,在任何东西运行之前供应基础设施的初始集合是最初的挑战。其次,一旦所有内容都已供应,就面临着发展现有基础设施(例如,添加新服务、改变服务、移除服务等)的挑战。在一些情况下,可以通过启用以声明方式定义基础设施的配置来解决这两个挑战。换句话说,基础设施(例如,需要哪些组件以及它们如何交互)可以由一个或多个配置文件定义。因此,基础设施的总体拓扑(例如,哪些资源依赖于哪些资源,以及它们各自如何一起工作)可以以声明方式描述。在一些情况下,一旦定义了拓扑,就可以生成创建和/或管理配置文件中描述的不同组件的工作流。
在一些示例中,基础设施可以具有许多互连的元件。例如,可以存在一个或多个虚拟私有云(VPC)(例如,可配置和/或共享的计算资源的潜在按需池),也称为核心网络。在一些示例中,还可以提供被供应成定义如何设置网络的安全性的一个或多个安全性组规则,以及一个或多个虚拟机(VM)。也可以供应其它基础设施元素,诸如负载平衡器、数据库等。随着越来越多的基础设施元素被期望和/或添加,基础设施可以逐步发展。
如上所述,供应基础设施的一种方式是以声明方式描述它。照此,配置文件可以是仅仅描述上述每个基础设施组件以及它们如何交互的声明性文件。配置文件可以描述创建元素所需的资源和相关字段,然后可以描述引用先前描述的元素的其它元素。在一些示例中,供应工具然后可以生成用于创建和管理配置文件中描述的元素的工作流。
在一些情况下,供应工具的工作流可以被配置为执行各种命令。可以被执行的一个功能是视图协调,其中供应工具可以将当前基础设施的视图(例如,基础设施的预期状态)与基础设施的实际运行方式进行比较。在一些情况下,执行视图协调功能可以包括查询各种资源提供者或基础设施资源以识别哪些资源正在实际运行。供应工具可以执行的另一个功能是计划生成,其中供应工具可以将实际运行的基础设施组件与供应工具希望状态看起来像什么(例如,期望的配置)进行比较。换句话说,计划生成功能可以确定需要进行哪些改变才能使资源达到最新的预期。在一些情况下,第三个功能是执行(例如,应用)功能,其中供应工具可以执行由计划生成功能生成的计划。
一般而言,供应工具可以被配置为获取配置文件,解析其中包括的声明性信息,并以编程方式/自动地确定需要供应资源以执行计划的次序。例如,如果VPC需要在安全性组规则和VM启动之前被启动,那么供应工具将能够做出该确定并按该次序实现启动,而无需用户干预和/或无需在配置文件中包括该信息。
在一些情况下,可以采用连续部署技术来启用跨各种虚拟计算环境的基础设施代码的部署。此外,所描述的技术可以在这些环境中启用基础设施管理。在一些示例中,服务团队可以编写期望部署到一个或多个但常常是许多不同的生产环境的代码(例如,跨各种不同的地理位置,有时跨整个世界)。但是,在一些示例中,必须首先设置将在其上部署代码的基础设施。在一些情况下,供应可以手动完成,供应工具可以被用于供应资源,和/或部署工具可以被用于一旦供应了基础设施就部署代码。
如上所述,一般有两个不同的工具用于处置基础设施资源的供应和控制基础设施资源的代码的部署中的每一个,其中手动执行这两个工具之间的编排。但是,在规模上,手动实施方式总是导致偏差。因此,可以既供应又部署虚拟基础设施的自动化工具启用更高效和可靠的技术来实现虚拟云环境。
在一些示例中,当使用两个工具时,当用户在供应阶段和部署阶段之间手动地对代码进行改变时会出现问题。如本文所述,使用单个工具进行供应和部署的技术可以通过使过程自动化来缓解这种情况,使得没有机会进行手动代码改变。可能的情况是,对用户编码方式的轻微改变可能在部署阶段产生重大问题。在一些示例中,操作者第一次在新区域中执行动作(例如,代码中的拼写错误)时,使用拼写错误编码的对象可以永远都是这样。如果使用该拼写错误来部署应用,并且该应用对该拼写错误不敏感(例如,它仍然可以工作),那么有可能在以后的某个时间,附加的代码改变会对该拼写错误变得敏感,并且导致整个系统崩溃。因此,本文提供的技术可以消除常常导致问题的供应和部署之间的差距。
一般而言,建模部署是声明性的,使得配置文件可以被用于声明基础设施资源。例如,创建、读取、更新、删除(CRUD)指令一般被用于使用通用的代表性状态传输(REST)概念(例如,REST应用编程接口(API))生成部署文件。但是,部署本身一般不遵循相同的概念。此外,虽然基础设施供应工具往往非常强大和/或富有表现力,但用于部署的工具往往对它们可以执行的操作有更多的限制(例如,它们是强制性的,而不是声明性的)。因此,长期以来,人们一直需要能够在云环境内处置两种功能需求(例如,基础设施元素的供应和部署)的工具。
在一些示例中,本文描述了用于实现云基础设施编排服务(CIOS)的技术。如上面简要描述的,此类技术可以被配置为管理云环境内基础设施资产的供应和部署两者。在一些情况下,CIOS可以包括两类服务:中央和区域组件(例如,CIOS中央和CIOS区域)。以下术语将贯穿全文使用:
·基础设施组件-支持运行代码的长期存在的基础设施。
ο示例:部署应用、负载平衡器、域名系统(DNS)条目、对象存储桶等。
·工件-被部署到部署应用或Kubernetes引擎集群的代码,或被应用于基础设施组件的配置信息(下文中简称为“配置”)。这些可以是只读资源。
·部署任务-常常与部署或测试代码相关联的短期任务。此外,部署任务被建模为资源,其生命周期不超过创建它们的发布。
ο示例:“将$artifact部署到$environment”、“观察$alarm 10分钟”、“执行$testSuite”或“等待$manualApproval”
ο例如,CIOS可以将部署编排器部署建模为在完成时过渡到可用状态的资源的创建。
ο因为CIOS维护其云基础设施服务声明性供应器的状态,所以CIOS可以控制与发布相关的这些短期资源的生命周期。
·资源-可CRUD的资源。
οCIOS将上面列出的每个构造建模为资源。下一节将详细讨论这种建模。
·群(Flock)-CIOS的模型,其封装控制平面及其所有组件。主要用于对基础设施组件的所有权进行建模和指向。
·群配置-描述与单个服务相关联的所有基础设施组件、工件和部署任务的集合。
ο每个群都只有一个群配置。群配置已签入源代码控制。
ο群配置是声明性的。他们希望CIOS提供领域、区域、广告和工件版本作为输入。
ο群是细粒度的-群由单个服务和支持基础设施组成。
·状态-群中每个资源的状态的时间点快照。
·发布-特定版本的群配置和它引用的特定版本的每个工件的元组。
ο将发布视为描述可能尚不存在的状态。
·发布计划-CIOS将所有区域从其当前状态过渡到发布所描述的状态的步骤的集合。
ο发布计划具有有限数量的步骤和明确定义的开始和结束时间。
·应用-这是个名词。单次尝试执行发布计划。执行改变群的当前状态。
CIOS可以被描述为将配置应用于下游系统(例如,全球)的编排层。它被设计为允许全球范围内的基础设施供应和代码部署,而无需服务团队进行手动努力(例如,在一些情况下超出初始批准)。CIOS的高级职责包括但不限于:
·为团队提供对由CIOS管理的资源的当前状态的了解,包括任何正在进行的改变活动。
·帮助团队计划和发布新的改变。
·协调跨区域内各种下游系统的活动,以执行批准的发布计划而无需人工干预。
·协调跨地区/领域的活动,以在全球范围内执行批准的发布计划。
在一些示例中,CIOS通过使团队能够经由签入代码向CIOS提供配置信息来处置引导流程(onboarding)。此外,CIOS可以自动化更多的事情,因此与以前的实施方式相比,这是更繁重的工作。在一些情况下,CIOS通过为团队提供自动部署和测试代码的能力来处置预部署。在一些情况下,CIOS可以通过启用自动生成计划以在团队构建新工件时(例如,在全球范围)推出新工件来处置改变管理(CM)策略的编写。它可以通过检查每个区域的当前状态和当前CIOS配置(它本身可以是工件)来做到这一点。此外,团队可以检查这些计划,并且可以通过改变CIOS配置并要求CIOS重新计划来对其进行迭代。一旦团队对计划感到满意,他们就可以创建引用该计划的“发布(release)”。然后可以将该计划标记为已批准或已拒绝。虽然团队仍然可以编写CM,但它们只是CIOS计划的指针。因此,团队可以花更少的时间来推理计划。计划更准确,因为它们是机器生成的。计划对于人类消费来说几乎太详细了;但是,它可以经由复杂的用户界面(UI)显示。
在一些示例中,CIOS可以通过自动执行部署计划来处置CM的执行。一旦已经创建并批准了发布计划,除非CIOS发起回滚,否则工程师将不再参与CM。在一些情况下,这可以要求团队将当前手动的任务自动化。在一些示例中,当CIOS在执行时检测到服务健康状况下降时,CIOS可以通过自动生成将群返回到其原始(例如,预发布)状态的计划来处置回滚改变管理(CM)。在一些示例中,CIOS可以通过接收范围为区域子集和/或CIOS管理的资源子集的发布计划、然后执行该计划来处置部署紧急/战术(tactical)改变。
此外,CIOS可以支持定义全自动全球部署所必需的原语。例如,CIOS可以通过监视警报和执行集成测试来测量服务健康状况。CIOS可以帮助团队在服务降级的情况下快速定义回滚行为,然后自动执行它。CIOS可以自动生成和显示发布计划并且可以跟踪批准。在一些情况下,团队用来描述期望的部署行为的语言可以是声明性的。CIOS可以在一个系统中组合代码部署和基础设施配置(例如,供应)的功能。CIOS还支持跨区域和跨区域内的组件的灵活排序。团队可以经由签入配置表达排序。团队可以以编程方式调用CIOS的计划和发布API。
图1描绘了用于说明用于实现至少CIOS中心102的技术的体系架构100。在一些示例中,CIOS中心102可以是处置“群”级别的操作的服务。CIOS中心102具有一些职责,包括但不限于:
·用作群元数据改变和发布操作的认证网关。
·将群元数据的权威映射存储到用于群的部署工件和CIOS储存库。
·跨阶段和目标协调全球发布。
·同步以强制执行如“一次只向群发布不多于一个的正在进行的发布”之类的策略。
·检测对群配置(配置)和工件的改变,并在此类改变时触发发布生成。
在一些示例中,源代码版本控制管理服务(SCVMS)104可以被配置为存储权威的群配置,并且工件通知服务(ANS)106可以由CIOS中心102订阅,以便CIOS中心102可以被通知新工件构建。CIOS中心102然后可以将传入的改变映射到受影响的群,并在期望的地方发起发布计划。此外,在一些示例中,工件推送服务(APS)可以在发布到目标之前由CIOS中心102调用,以确保在发布之前成功发布所需的任何工件都存在于目标的区域中。
在一些示例中,客户(例如,工程师)108可以调用CIOS中心102以对群和/或发布进行CRUD,并查看正在进行的CIOS活动的状态。群管理服务110可以包括一个或多个API来操纵群,查看/计划/批准服务112可以包括CRUD API以创建和批准计划,以及查看所有CIOS管理的资源的状态的中心副本,改变监视服务114可以监视SCVMS 104对群配置的改变,并且可以从ANS 106接收关于对其它工件的改变的通知,并且状态摄取器服务116可以在CIOS中心数据库(DB)118中创建区域状态的副本,以便查看/计划/批准112可以暴露它们。在一些示例中,CIOS中心DB 118可以是群、计划和状态的DB。群信息可以是权威的;而其它一切都可以来自CIOS区域120的数据的陈旧副本。CIOS中心102可以被配置为提供任何合适的部分和/或数量的用户界面(例如,用户界面500-1300),用于呈现与群、发布、基础设施组件、工件等相关的任何合适数据。在一些实施例中,CIOS中心102可以经由任何合适接口呈现与一个或多个发布相关的数据。发布可以包括与一个或多个基础设施组件和/或对一个或多个应用(例如,工件)的一个或多个代码改变相关的任务的任何合适组合。由CIOS中心102提供的用户界面的一些示例在下面关于图5-图13进行描述。
在一些示例中,工程师108可以对群管理服务110(例如,通过入口代理队列122)执行API调用以创建群的列表。进行这种API调用的协议可以是超文本传输协议安全(HTTPS)等。用于这个操作的相关访问控制列表(ACL)可以包括局域网(LAN)124或其它专用连接。例如,CIOS可以管理/控制网络连接性,作为使用公共互联网将客户的本地数据中心或网络与CIOS连接的替代(例如,专用、租用和/或私有连接)。此外,(例如,工程师108的)认证和授权可以由允许用户管理机器基础设施(例如,预订服务)的预订系统门户来执行。在一些情况下,CIOS中心102可以使用Java数据库连接性(JDBC)等将群元数据、计划和状态存储在中心DB 118中。在一些示例中,ANS 106可以被配置为在新工件已公布的时候通知变化监视服务114。ANS 106可以使用HTTPS,并且认证和授权都可以由相互运输层安全性服务来处置。此外,在一些情况下,改变监视服务114可以轮询SCVMS 104以获取群配置改变。可以使用安全外壳(SSH)或其它协议执行这个轮询。改变监视服务114的认证可以由CIOS系统账户处置,并且授权可以由SCVMS 104处置。
在一些示例中,工程师108可以使用查看/计划/批准服务112来执行以下操作中的一个或多个。工程师108可以通过调用CIOS中心102来计划和/或批准以生成和批准计划。工程师108可以通过调用CIOS中心102来进行查看,以查看全球正在进行的CIOS活动的状态。此外,工程师108可以调用CIOS中心102来查看全球CIOS管理资源状态的副本。这些API调用(等)可以经由HTTPS协议或类似协议被执行。此外,相关的ACL可以由LAN 124控制,并且认证和授权都可以由预订服务处置。在一些示例中,查看/计划/批准服务112可以请求计划并将计划批准推送到CIOS区域120的所有区域(例如,使用HTTPS等)。可以使用由广域网(WAN)网关126管理的安全性列表来控制相关ACL。认证可以由相互运输层安全性处置并且授权可以由各种身份策略处置。另外,状态摄取器服务116可以观看CIOS区域120的工作状态或状态改变,从而CIOS可以根据请求提供它们的中心视图(例如,也使用HTTPS等)。用于此的ACLS也可以由WAN网关126处置,并且认证和授权都可以由相互运输层安全性服务处置。
图2描绘了用于说明用于实现至少CIOS区域202的技术的体系架构200。在一些示例中,CIOS区域202是声明性供应和计划以及批准的发布应用的大部分工作可以发生的地方。在一些情况下,CIOS区域202的每个实例都可以有面向前的区域,其可以处置“执行目标”级别的操作。它可以被配置为执行以下操作:
·处置来自CIOS中心102的传入操作的所有CIOS认证。
·强制执行一次只能针对给定执行目标正在进行一个“执行”(计划/导入资源/应用计划)的规则。
·在声明性基础设施供应执行期间管理用于输入和输出的声明性供应工件的二进制工件存储。输入的示例是声明性基础设施供应配置文件和输入状态文件。典型的输出是最终状态文件。
·从CIOS执行器请求工作并轮询任何给定执行的结果。
在一些情况下,CIOS前端可以依赖于可以处置实际执行的CIOS执行器206(本文也称为“调度器”)。在一些示例中,CIOS执行器在“执行”级别进行操作,并且它可以:
·跟踪可用工作器节点的池
·查询传入的工作请求,并在可用时将它们指派给符合条件的工作器
·跟踪工作器状态和执行更新以向客户端报告
·经由租赁协议检测死节点,并可以使指派给死节点的任务失败,具体取决于任务状态。
·提供取消/杀死/暂停/恢复执行的设施,并且可以将那些映射到设施上以将取消/杀死/恢复信息传递到工作器节点。
在一些情况下,CIOS执行器可以依赖于CIOS工作器,CIOS工作器可以将要执行的任务指派给工作器,并为工作器提供更新工作进度的设施。工作器服务以“任务”的粒度操作。每个工作器都是执行指派给该工作器的任务并报告任务状态和输出的代理。每个工作器可以:
·为指派的工作项轮询执行器工作器API,并采取动作以使指派状态与其本地状态匹配:
ο开始容器,用于轮询本地不存在的任务项
ο杀死容器,用于本地运行的没有对应指派的任务项的容器
·报告工作的状态
·用于作业容器执行的阶段输入和输出
·启动和监视声明性基础设施供应容器,以完成针对执行目标的发布的实际工作。
CIOS工作器可以取决于CIOS执行器来轮询来自CIOS执行器的工作器端点的工作并向其报告结果。工作器可以依赖执行器进行所有协调。此外,CIOS工作器还可以取决于CIOS区域202,其中工作器服务从与区域前端服务相关联的一个或多个API读取输入并将输出写入一个或多个API。输入的示例是配置和启动状态文件以及导入映射。输出的示例是声明性供应过程、输出声明性供应状态文件和导入结果状态。
在一些示例中,CIOS区域202可以是用于管理CIOS的区域实例/部署的区域服务。CIOS区域202负责权威地存储和管理与特定区域相关的计划和统计数据。区域DB 204可以是特定区域中的状态和计划的CIOS DB。这是图1的中心DB 118的区域子集的权威副本。调度器206可以负责管理工作器队列容量、将任务指派给工作器以及跟踪任务状态。在一些情况下,任务DB 208是用于任务状态的另一个CIOS DB。这个DB中的数据主要用于操作目的。此外,工作器210可以是管理声明性供应映像的Java虚拟机(JVM)的队列。它们从调度器206接收指令并将结果传送给调度器206和CIOS区域202两者。CIOS容器212可以在其自己的私有坞站214容器中运行声明性供应操作。这个容器不需要包含秘密。此外,在一些示例中,签署代理216可以被配置为经由声明性供应工具防止秘密泄露,以便避免将秘密放入声明性供应映像中。代替地,CIOS可以在代理中执行请求签署或发起相互运输层安全性(mTLS)服务。这也使得使用符合FIPS的加密库变得更加容易。
在一些示例中,CIOS中心102可以调用CIOS区域202以创建计划、推送批准、观看作业状态(服务主体)和提取声明性供应器状态(服务主体)。入口代理218可以被配置为ACL并且各种身份策略可以被用于认证和授权两者。可替代地,在一些示例中,入口代理218可以由被配置为平衡负载传入请求、计划等的负载平衡器代替。在一些情况下,CIOS区域202可以通过要求调度器206这样做来运行声明性供应器。工作器210可以询问调度器206它应当运行什么,并且可以在完成时向调度器206报告状态。在一些情况下,mTLS可以处置针对CIOS区域202和工作器210的认证和授权两者。此外,当工作器210需要运行声明性供应器时,它通过与本地坞站214交互在坞站容器中执行这个操作。对这个阶段的认证可以由本地unix套接字处置。最后一步可以使用坞站协议;但是,HTTPS可以被用于以前的步骤。
在一些实施例中,CIOS区域202可以被配置为提供任何合适的部分和/或数量的用户界面(例如,用户界面500-1300),用于呈现与群、发布、基础设施组件、工件等相关的任何合适的数据。在一些实施例中,CIOS区域202可以经由任何合适的接口来呈现与一个或多个发布相关的数据。发布可以包括与一个或多个基础设施组件和/或对一个或多个应用(例如,工件)的一个或多个代码改变相关的任务的任何合适组合。下面参考图5-图13描述由CIOS区域202提供的用户界面的一些示例。
在一些示例中,CIOS容器212使声明性供应器能够(经由API)与签署代理216交互,而声明性供应器认为它正在调用各种CIOS服务。签署代理216对于声明性供应器的每个调用实例在一个临时端口上侦听,只有该声明性供应器知道。签署代理216可以发起请求签名或mTLS,并且可以将声明性供应器的调用传递给服务飞地(enclave)内的其它CIOS服务。在一些情况下,签署代理216还可以与一个或多个公共CIOS服务220进行通信。例如,签署代理216将尽可能使用公共服务的内部端点。对于没有内部端点的服务,它必须使用出口代理222才能到达外部端点。签署代理216的这种使用不能用于跨区域通信;例如,每个区域中的出口代理白名单可以仅适用于该区域的公共IP范围。在一些示例中,工作器210然后可以保持来自CIOS区域202中的声明性供应器的状态和日志,以便它们可以被泄露到CIOS中心102。
使用CIOS,代表性客户体验存在几个阶段:引导流程、预发布、全球发布和战术发布。对于预发布阶段,以下是在构建新工件和将工件发布到发布一(例如,R1)之间发生的示例。这应当代替当前改变管理处理中的一些或大部分。随着相关工件的构建,CIOS可以使用“群中所有内容的最新版本”自动生成发布。发布是具有特定输入的群配置的特定版本(例如,工件版本、领域、区域和广告)。发布包含每个区域的前滚计划和描述区域排序的元数据。每个区域计划都是声明性供应器将采取以实现该区域中的群配置的操作的集合。具有预发布环境的团队可以使用CIOS在所述环境中自动发布和测试软件。团队可以配置CIOS以自动测试回滚计划。团队将能够通过CIOS UI检查和批准发布。团队可以批准发布中的区域计划的一些,但不是全部。如果“所有内容的最新版本”没有产生合适的计划,那么团队可以要求CIOS为择优挑选的工件版本生成计划。
对于全球发布阶段,以下是团队如何执行今天“正常CM”的明天版本的示例。一旦发布获得批准,CIOS就将每个批准的区域计划推送到相应的区域。CIOS在每个区域内独立行动以应用批准的计划。CIOS将仅执行该地区的计划中明确描述的动作的集合。代替“独立思考”,它将失败。CIOS UI向团队示出执行的进度。当要求手动批准时,CIOS UI提示团队。如果由于CIOS或下游服务中断而导致执行失败,那么CIOS可以通知团队并可以提示他们执行后续步骤(例如,中止、重试)。CIOS确实会执行重试,但一些下游系统中断将超出其重试意愿。如果由于服务健康状况下降或测试失败而导致执行失败,那么CIOS将协助团队将群回滚到其起始状态。CIOS将在它发起自动回滚时通知(例如,寻呼)团队。团队必须批准回滚计划,然后CIOS将执行它。
对于战术发布阶段,以下是团队如何执行“紧急CM”的明天版本的示例。当生成计划时,团队可以请求CIOS以几种方式针对特定资源制定计划:按照拓扑(例如,领域、区域、AD等)、通过资源类型(例如,“仅度量配置”或“仅部署编排服务部署”等),或以上的组合(例如,以分离的方式)。团队批准战术发布就像全球发布一样。CIOS以类似方式编排它们。如果团队需要在存在活动的全球发布时部署战术发布,那么CIOS将停止在作为目标的区域中执行全球发布,然后开始执行战术发布。
在一些示例中,声明性供应器的状态(例如,传统上是文件)是由声明性供应器管理的资源集的权威记录。它包含来自配置文件的每个资源的逻辑标识符与资源的实际标识符之间的映射。当声明性供应器创建资源时,某些种类的故障会阻止实际标识符被记录在状态中。当发生这种情况时,实际标识符不再属于声明性供应器。这些可以被称为“孤立(orphaned)资源”。
对于大多数资源,孤立表示浪费-声明性供应器启动(例如)它忘记的实例,但在下次运行时将启动另一个实例。对于具有唯一性约束或客户端供应的标识符的资源,孤立阻止声明性供应器取得进展。例如,如果声明性供应器创建了用户“nglass”并且故障使其孤立,那么声明性供应器的下一次运行将尝试创建“nglass”并失败,因为具有该用户名的用户已经存在。在一些情况下,孤立仅在向状态添加新资源时是个问题。在一些情况下,声明性供应器的刷新行为可以自然地从故障中恢复以记录更新和删除。
CIOS需要在下游服务中断或CIOS自身中断的情况下是稳健的。因为CIOS可以充分利用声明性供应器来应用改变,这意味着运行声明性供应器和维护声明性供应器状态应当具有稳健性。声明性供应器执行“小规模”重试-足以避免持续几分钟的中断。例如,云提供商将重试长达30分钟。持续超过30分钟的下游系统中断将造成声明性供应器发生故障。当声明性供应器发生故障时,它记录它在状态中成功进行的所有改变,然后退出。为了重试,CIOS必须重新执行声明性供应器。重新执行声明性供应器还允许CIOS在CIOS本身发生故障时重试。在某些情况下,CIOS可以在循环中运行以下操作:
·刷新-声明性供应器调用GET API来检索在其状态中描述的每个资源的新快照。
·计划-声明性供应器生成计划(具体的API调用集合),该计划将在最近刷新的当前状态下实现期望的状态。
·应用-声明性供应器执行计划中的步骤的集合。
当执行声明性供应器时,CIOS可以总是运行所有这三个步骤。刷新操作有助于从未被记录的任何更新或删除中恢复。CIOS检查计划操作的结果并将其与批准的发布计划进行比较。如果新生成的计划包含未在批准的发布计划中的操作,那么CIOS可能发生故障并且可以通知服务团队。
图3描绘了用于图示示例群302的有向无环图(DAG)300。对于CIOS中的单个群配置,代码/配置从签入到生产的进度可以从第一次测试部署到最后一次产品部署一路描述。在内部,CIOS将进度中的每个元素称为执行目标(ET)。CIOS基于群配置中定义的DAG 200执行ET。每个ET(例如,ET-1、ET-2、ET-3、ET-4、ET-5、ET-6和ET-7)大致是由群配置描述的服务的一个副本。
图4描绘了用于图示示例群402的DAG 400。在群配置中,CIOS对团队如何表达这种进度非常固执己见-他们必须使用云基础设施租赁和区域对其进行建模。团队不应当使用领域来对进度建模。CIOS允许团队使用领域内的多个租赁和租赁内的多个区域。DAG 400图示了图3中的DAG 300的版本,用租赁和区域表示。这个示例针对覆盖服务,其中pre-prodET位于prod区域中。服务飞地服务将在发布一中具有不稳定和稳定的租赁。在DAG 400中,IAD是华盛顿特区的Dulles机场的区域机场代码,YYZ是安大略的多伦多的区域机场代码,PHX、LHR和FRA分别是凤凰城、伦敦和法兰克福的区域机场代码,并且LUF和LFI用于两个不同的空军基地。
在一个实施例中,本文描述的CIOS和/或其它技术是对Terraform(声明性供应工具)、Tanden(代码生成工具)和Oracle部署编排器(ODO)中的每一个的改进。此外,在一些示例中,本文描述的CIOS和/或其它技术可以使用Terraform、Tanden和ODO工具的至少一部分来实现。
图5描绘了根据至少一个实施例的示例用户界面(UI)500的示意图。UI 500可以包括基础设施区域502、应用区域504和任务区域506的任何合适组合。UI 500可以包括如图5中所描绘和布置的基础设施区域502、应用区域504和任务区域506,或者这些区域可以不同地布置在UI 500内。
基础设施区域502可以位于UI 500的任何合适位置。如图5中所示,基础设施区域502定位在UI 500的左上角。基础设施区域502可以包括与任何合适数量的基础设施发布对应的基础设施发布数据(例如,发布名称、发布的基础设施组件将被供应到的执行目标的数量、与执行发布相关联的进度的一个或多个指示器、最新基础设施发布的指示器等)。如所描绘的,基础设施区域502呈现与六个发布对应的基础设施发布数据,这六个发布的标题为“Lovable(可爱的)”、“Excited(兴奋的)”、“Elegant(优雅的)”、“Nuclear(原子的)”、“Strange(奇怪的)”和“Aqueous(水状的)”。条目508呈现与发布“Lovable”对应的基础设施发布数据,并且包括百分比(例如,75%)和进度条510,各自指示已经对群的75%执行了发布。应当认识到的是,百分比和进度条510是用于描绘发布进度的示例用户界面元素,但是可以使用任何合适的用户界面元素来表示这种进度(例如,视觉上、文字上等)。举例来说,对应基础设施发布的进度可以附加地或替代地由数字、图表或用于显示进度的任何其它合适的用户界面元素来表示。在一些实施例中,可以使用标签512或包括图标、复选标记等的另一个合适的用户界面元素将特定基础设施发布识别为最新发布。如图5中所描绘的,条目508包括指示为其供应了与Lovable发布对应的基础设施组件的执行目标的数量(例如,15)的目标计数。可以设想,在基础设施区域502的每个条目中提供的基础设施发布数据可以被不同地布置并且可以包括与图5中描绘的属性的数量相比更多或更少的与每个发布对应的基础设施发布数据的属性。
在一些实施例中,UI 500可以包括应用区域504。应用区域504可以位于UI 500的任何合适的位置。在图5中所描绘的示例中,应用区域504定位在UI 500的右上角。应用区域504可以包括与任何合适数量的应用发布对应的应用发布数据(例如,应用发布名称、发布的软件工件将被部署到的执行目标的数量、与执行发布相关联的进度的一个或多个指示器(例如,部署软件工件)、最新应用发布的指示器等)。如所描绘的,应用区域504呈现与六个应用发布对应的应用发布数据,这六个应用发布的标题为“Chuck”、“Bob”、“Felipe”、“Asa”、“Strange”和“Errol”。条目514呈现与应用发布“Chuck”对应的应用发布数据并且包括百分比(例如,60%)和进度条516,其指示已经对群的60%执行发布。应当认识到的是,百分比和进度条516是用于描绘应用发布进度的示例用户界面元素,但是可以使用任何合适的用户界面元素来表示这种进度(例如,视觉上、文字上等)。举例来说,对应的应用发布的进度可以附加地或可替代地由数字、图表或用于显示进度的任何其它合适的用户界面元素来表示。在一些实施例中,可以使用标签518或包括图标、复选标记等的另一个合适的用户界面元素将特定基础设施发布识别为最新发布。如图5中所描绘的,条目514包括指示与Chuck发布对应的工件(例如,应用代码)被供应到的执行目标的数量(例如,12)的目标计数。可以设想,在应用区域504的每个条目中提供的应用发布数据可以被不同地布置并且可以包括与每个发布对应的应用发布数据的更多或更少的属性。
在一些实施例中,UI 500可以包括任务区域506。任务区域506可以位于UI 500的任何合适位置。在图5中所描绘的示例中,朝着UI 500的下半部分定位。任务区域506可以包括与群的每个执行目标对应的目标发布信息。本文提供的示例的每个执行目标可以与区域对应。本文示例中的区域可以包括至少一个物理位置。目标发布信息可以包括基础设施发布的标识符、与向执行目标供应基础设施发布的基础设施组件的进度对应的状态(例如,状态的视觉表示)、应用发布的标识符、指示部署与应用发布对应的工件(例如,应用代码)的进度的状态(例如,状态的可视化表示)。任务区域506可以包括任何合适数量和组合的列,诸如执行目标列520、基础设施改变列522和/或应用改变列524。执行目标列520可以按阶段组织,其中阶段可以指示跨执行目标执行发布(例如,包括供应基础设施组件的集合和/或部署软件工件的集合)的次序。在UI 500中,描绘了四个阶段:阶段I、阶段II、阶段III和阶段IV。在一些实施例中,阶段I必须在部署进入阶段II之前完成,阶段II在阶段III之前完成,以此类推。如所描绘的,阶段I和阶段II各自包括一个执行目标,阶段III包括4个执行目标,并且阶段IV包括12个执行目标。执行目标可以被并行应用。
任务区域506的每一行可以与阶段和/或执行目标对应。举例来说,条目526可以与阶段(例如,阶段I)和该阶段的单个执行目标对应。条目528可以与阶段III对应。条目530可以与阶段IV对应。默认情况下,可以隐藏与阶段的执行目标对应的条目。选择与阶段对应的条目可以使得与该阶段的对应执行目标对应的行出现。举例来说,最初可以隐藏条目532并且可以仅显示条目530。在一些实施例中,一旦选择条目530,就可以呈现条目532。条目532描绘了基础设施发布(例如,“Lovable”)和应用发布(例如,“Chuck”)对应的阶段IV的特定执行目标/区域。
基础设施改变列522可以包括基础设施发布的名称和针对每个阶段或执行目标的基础设施发布的状态。在一些实施例中,包括多于一个执行目标的阶段可以与一个或多个基础设施和/或应用发布对应。因此,在一些实施例中,基础设施改变列522可以包括指示阶段的执行目标使用的不同基础设施发布的数量的数据。举例来说,可以呈现指示器534以指示存在三个不同的基础设施发布要发布到阶段IV的执行目标。状态指示符536也可以呈现在基础设施改变列中,以向阶段的每个执行目标指示每个基础设施发布的状态。状态指示器536可以单独地指示对一个或多个执行目标的发布遇到错误、正在进行中或已经完成。类似地,应用改变列524可以包括指示器538以指示一个应用发布将被用于阶段IV的每个执行目标,并且包括状态指示器540以指示用于阶段IV的每个执行目标的每个应用发布的状态。对于与单个执行目标对应的条目(例如,条目532),基础设施改变列522可以呈现基础设施发布的名称以及状态。在一些实施例中,状态(例如,“完成”、“故障”、“进行中”、“待审查”等)可以如图5中所描绘的那样以文本方式呈现,或者状态可以以不同方式呈现。对于与单个执行目标对应的条目,应用改变列524可以类似地包括应用发布的名称(例如,“Chuck”)和应用发布的状态(例如,“完成”、“故障”、“进行中”、“待审查”等)。为应用发布显示的状态可以与为基础设施发布提供的状态相同或不同。在一些实施例中,选择条目(例如,选择条目542)可以使条目被视觉修改(例如,可以修改条目的背景)以指示选择。图5中描绘了与条目542的选择对应的一个示例修改。选择链接544可以将用户导航到图6的UI 600,但是其它导航动作可以提供类似的结果。
在一些实施例中,如果发布在至少一个方面发生故障,那么可以在UI 500处指示这个故障的状态。举例来说,基础设施组件供应的故障在546处被指示并且软件工件部署的故障在548处被指示。在一些实施例中,可以在546和/或548处接收用户输入(例如,选择词语“故障”)。响应于这个用户输入,可以向用户提供一个或多个选项来执行补救动作(例如,重新尝试与执行目标对应的供应和/或部署任务,取消与执行目标对应的供应和/或部署任务,修改与执行目标对应的供应和/或部署任务等)。
图6描绘了图示根据至少一个实施例的用于提供与所选择的发布相关的信息的示例UI 600的示意图。UI 600可以描绘用户界面,从该用户界面可以查看发布的细节。发布名称部分602显示在UI 600的顶部,但是发布名称部分602可以位于UI 600上的任何合适位置。如图所示,发布名称部分602可以呈现与特定发布相关联的发布数据。作为示例,与发布“Excited”相关联的发布数据被描绘为包括发布名称604、状态606、发布标识符608,但是可以呈现发布数据的更多或更少的属性。如图所示,发布名称604是“Excited”,但是发布名称604可以包括与期望群中任何合适发布的名称对应的任何合适的字母数字标识符。状态606可以指示与特定发布相关联的状态(例如,“未开始”、“需要批准”、“应用”、“故障”、“完成”等)。发布标识符608被描述为“09879iuhku7w”,但是发布标识符608可以是对于相关发布来说可以是唯一的任何合适的ID。
UI 600还可以包括状态栏610,其可以包括关于相关发布的状态的信息,诸如图表(graph)612、时间戳614和状态代码616。类似地,状态栏618可以包括图表620、时间戳622和状态代码624。图表612和618可以呈现一系列有序的任务列表。举例来说,图表612和618的每个节点可以表示一组任务(例如,“1”指示1个任务的集合,“9”指示9个任务的集合等)。如果在节点中指示了多于一个任务,那么该节点可以旨在指代要并行执行的任务的集合。每个任务可以与和特定目标对应的发布对应。节点的次序(例如,从左到右)可以指示执行(一个或多个)任务的每个集合的顺序。例如,可以要求与节点626相关联的任务在与节点628相关联的任务开始之前完成。类似地,可以要求与节点628相关联的任务在与节点630相关联的任务开始之前完成。与节点630相关联的每个任务可以并行执行。时间戳614可以呈现开始日期。此外,时间戳614可以呈现与状态码“已开始”对应的开始时间,以及与状态码“已完成”对应的结束时间。状态码624可以指示相关联的任务被批准,而时间戳622可以指示与和节点632相关联的任务对应的开始时间可以被标记为“进行中”,以指示当前正在执行任务。应当认识到的是,状态码616和624可以是用于跟踪相关发布的状态的任何合适的状态码(例如,“已批准”、“进行中”、“故障”、“需要批准”等)。
在一些实施例中,状态栏可以被用于描绘阶段次序。举例来说,状态栏610可以与特定阶段(诸如阶段1)对应,而状态栏618可以与不同的阶段(诸如阶段2)对应。如上所述,阶段可以被用于描述要完成阶段的次序。如所描绘的,可以要求状态栏610中所示的11个阶段1任务在与状态栏618相关联的12个阶段2任务开始之前完成。应当认识到的是,可以使用除仅仅两个阶段之外的附加阶段。当在给定当前窗口尺寸的情况下呈现与一个或多个阶段对应的信息太宽而无法显示时,应当认识到的是,状态栏610可以是水平可滚动的,使得用户可以滚动通过各个阶段以查看它们的对应状态。在一些实施例中,状态栏610利用“智能滚动”,使得如果用户正在利用仅具有垂直滚动能力的输入设备(例如,鼠标),那么该用户仍然可以水平滚动。举例来说,用户可以使用输入设备物理地向下滚动并且状态栏610将向右滚动。如果用户使用输入设备物理地向上滚动,那么状态栏610可以向左滚动。过滤器使用户能够专注于有影响力的改变,这样用户就不太可能被操作噪音分散注意力并错过有影响力的改变或错误。
阶段计划部分634也可以被包括在UI 600中,并且如图所示,阶段计划部分634位于UI 600的底部,但是它可以不同地放置在UI 600中。阶段计划部分634可以包括与期望阶段(例如,与状态栏618对应的阶段2)相关的信息。如UI 600中所示,阶段计划部分634指示阶段标题636、阶段状态638、数个执行目标640、操作概要(summary)642、租赁列644、部署进度列646、创建、读取、更新、删除(CRUD)操作列648、以及目标审查状态列650。阶段标题636可以包括在UI 600中描绘的发布的所选择的阶段的名称。名称可以包括任何合适长度的任何合适的字母数字标识符。在一些实施例中,阶段状态622可以是选定的发布阶段的状态。如UI 600中所示,阶段标题636是“阶段II”,并且阶段状态638被描绘为“需要批准”。阶段状态638可以是用于选定的发布阶段的任何合适状态(例如,“需要批准”、“进行中”、“故障”、“完成”等)。在UI 600中被描绘为“12”的执行目标640的数量可以指示发布可以部署到的执行目标的任意数量。操作概要642可以指示为该阶段计划的创建、修订、更新和删除操作的数量。如UI 600中所示,操作概要642包括四种不同的操作(从左到右列出):创建、更新、删除和读取(例如,不改变)。如图6中所描绘的,有20个创建操作、20个更新操作、100个删除操作和一个无改变操作。UI 600可以在操作概要642中包括任何合适数量的操作或操作组合。操作概要642可以包括与创建、修订、更新和删除对应的四个按钮。这些按钮可以各自被用作切换,以从阶段计划部分634过滤对应的操作集合。例如,如果选择了“创建”按钮,那么可以从阶段计划部分634中过滤所有创建操作。如果再次选择创建按钮,那么创建操作可以不被过滤并重新出现在阶段计划部分634中。默认情况下,可以取消切换按钮(例如,取消选择),使得不过滤任何操作,但是可以使用任何合适的默认行为。
应当认识到的是,虽然图6描绘了落在特定执行目标下的改变,但是在一些实施例中,类似的改变可以被分组在一起并且可以显示与每个改变相关的执行目标。因此,与图6对应的阶段计划可以以两种方式进行调整:执行目标到改变(如所描绘的)或改变到执行目标。
租赁列644可以位于UI 600上的任何合适位置,并且租用列644可以包括执行目标任务的列表,包括与对应于阶段II的节点632的特定任务集合对应的条目(例如,条目652),以及被调度在执行这些任务期间创建、修改或删除的应用列表654。为了显示应用列表654,用户可以选择选项655来扩展列表以指示发布中包括的应用(例如,SMS代理)。如UI 600中所示,当前呈现的唯一应用是“SMS代理”658。UI 600可以描绘要在659处对SMS代理的配置文件进行的修改。在一些实施例中,提供UI 600的计算系统可以识别软件工件(例如,SMS代理)的先前配置、识别要部署的软件工件的新配置、并且提供从软件工件的先前配置到新配置的改变的指示(例如,如在659处所描绘的)。如所描绘的,修改可以包括删除第5行(由5-指示)和添加新的第5行(由5+表示)。在一些实施例中,“修改”(也称为更新)可以包括删除和创建两者。更新的创建/删除可以被指示为更新操作,而不是CRUD操作列648内的创建/删除。应用列表654还可以包括用于所选择的发布的任何其它合适的应用。
部署进度列646可以显示在相关执行目标处的发布的状态。如UI 600中所示,用于所描绘的发布的执行目标的状态是“应用”,但可以显示任何合适的状态(例如,“应用”、“需要批准”、“未开始”、“完成”、“故障”等)。CRUD操作列648可以包括关于要为相关目标执行的操作的信息。操作可以包括创建命令、更新命令、删除命令或不改变命令,并且操作可以应用于每个执行目标、每个应用或任何合适的软件和/或硬件组件。目标审查状态列650可以包括关于每个实体上的操作是否已经被审查的信息。如UI 600中所示,目标审查状态被示为“已审查”,但目标审查状态可以是适于跟踪相关发布中的操作的任何状态。
阶段计划部分634还可以包括选择选项(例如,选择选项660)的集合,其可以包括用于“计划”、“状态”、“日志”、“批准”等的选项。UI 600和对应的数据旨在在选择“计划”选项时提供。
发布历史部分662也可以位于UI 600上。如UI 600中所示,发布历史部分662位于UI 600的左侧部分上,但发布历史部分662可以位于UI 600上的任何合适位置。发布历史部分662可以包括关于相关群内的各种发布的信息。如UI 600中所描绘的,呈现了三个发布:“Lovable”、“Excited”和“Elegant”,但是可以在发布历史部分662中显示任何合适数量的发布。从发布历史部分662中选择任何一个发布可以呈现与上面讨论的UI元素602-660中的每一个的该发布相关联的对应数据。在一些实施例中,发布历史部分662还可以包括改变类型指示器664(例如,“基础设施”、“应用”等)、目标数量指示器666、发布时间戳668、前滚选项670,并创建新的发布选项672。目标数量666可以指示特定发布打算供应给多少个执行目标。可以针对每个特定发布指示目标数量666并且该目标数量包括用于相关发布的目标的任何合适数量。发布时间戳668可以包括创建所选择的发布或完成供应的时间以及状态指示器(例如,“已创建”、“已完成”等)。发布时间戳668可以位于相关发布上的任何合适位置,或者发布时间戳668可以不存在于任何特定发布中。前滚选项672使得用户能够重新部署先前回滚的配置。创建新的发布选项656可以使得用户能够为所选择的群创建新发布。
在一些实施例中,用户可以右击他的鼠标以使选项656出现。选项656可以出现在用户鼠标光标的附近。选择选项656可以将用户导航到下面进一步讨论的图8的UI 800。
应当认识到的是,可以向用户提供在阶段计划部分634内向上或向下滚动以查看与所选择的特定阶段相关的数据的各个部分的能力。在一些实施例中,所选择的阶段的状态栏(例如,状态栏620)可以被突出显示和/或放大,指示其对应阶段被选择并且阶段计划部分634中的信息与所选择的阶段对应。
图7是图示根据至少一个实施例的用于查看发布的状态的示例用户界面(例如,UI700)的示意图。
发布状态部分704可以位于UI 700上任何合适的位置。如UI 700中所示,发布状态部分704位于UI 700的顶部。发布状态部分704可以是与发布相关的任何合适信息,包括发布的状态(例如,“应用”、“暂停”、“完成”、“故障”等),以及可以包括相关发布(例如,与图7中描绘的发布信息对应的发布)开始、完成、暂停等的时间的时间戳。发布状态部分704可以包括用于跟踪相关发布的状态的任何其它合适信息。
在至少一个实施例中,UI 700可以包括阶段计划部分706。在一些实施例中,可以响应于对图6的选择选项660的“状态”选项702的选择来呈现包括阶段计划部分706的UI700。选择“状态”选项702可以显示关于相关发布的状态的信息或与相关发布的状态相关的任何其它合适信息。
在一些实施例中,阶段计划部分706可以列出与阶段(例如,如上面结合图6所讨论的阶段II)对应的执行目标的集合。如图6中所描绘的,并且类似地在图7中,阶段可以与包括节点632、710和712的图表620相关联。每个节点可以与该阶段的任务集合对应。举例来说,可以列出执行目标任务集714、716和718。执行目标任务集714可以与节点632对应,执行目标任务集716可以与节点710对应,并且执行目标任务集718可以与节点712对应。如UI700中所示,已经选择执行目标任务集718,其包括十个执行目标(例如,如在节点712和执行目标任务集718两者处所指示的)。在选择执行目标任务集718后,对应的十个执行任务可以在执行目标任务集718下呈现为单独的行。如图7中所描绘的,每个任务可以与发布将被供应给的特定执行目标对应。
在一些实施例中,可以提供发布选项菜单720。在选择发布选项菜单720后,可以提供数个菜单选项(例如,暂停发布(未描绘)、发布细节、恢复、取消发布等)。在一些实施例中,可以通过选择发布选项菜单720来暂停发布,然后选择暂停发布的选项。UI 700的视图旨在描绘在发布已经暂停之后UI 700的状态。在一些实施例中,可以在字段722处描绘暂停状态。如果用户将悬停在字段722上,那么可以显示关于暂停状态的状态信息,如在724处所描绘的。在724处提供的信息可以包括关于与特定发布对应的特定阶段的状态的任何合适信息。
在暂停发布之后,用户可以再次选择发布选项菜单710以显示发布细节选项728、恢复选项730和取消发布选项732。发布细节选项728在被选择时可以显示关于相关发布的任何合适信息(例如,发布编号)。恢复选项712在被选择时可以从它被暂停的位置开始相关的发布部署。取消发布选项714在被选择时可以取消相关发布并从群中移除已取消的发布。
应当认识到的是,可以向用户提供在阶段计划部分634内向上或向下滚动以查看与所选择的特定阶段相关的数据的各个部分的能力。
图8是图示根据至少一个实施例的用于查看与发布相关联的日志的示例用户界面(例如,UI 800)的示意图。在一些实施例中,包括阶段计划部分634的UI 800可以响应于对图6的选择选项660的“日志”选项802的选择而呈现。选择“日志”选项802可以显示关于已经选择的执行目标的日志和/或源代码的信息,或者提供用户界面选项以访问关于与所选择的阶段(或随后选择的阶段)对应的任何合适执行目标的日志和/或源代码的信息。
UI 800可以包括图6的阶段计划部分634。可以选择执行任务集804来显示执行任务集804的一个或多个任务。执行任务集804可以与上面结合图6描述并且在图8中再次描绘的节点632对应。在一些实施例中,在选择执行任务集804后(或在任何合适的时间),可以显示与在特定执行目标(例如,英国伦敦)处提供发布对应的任务806。在一些实施例中,用户可以(例如,通过选择选项808)展开任务806以查看与该执行目标对应的一个或多个日志。
图9描绘了根据至少一个实施例的示例UI 900,该示例UI 900描绘所选择的执行目标(例如,与来自图8的执行目标任务806对应的执行目标)的执行目标资源。可以通过点击图8中所描绘的执行目标任务806的名称或通过任何其它合适的方法来显示UI 900,并且可以通过UI 900的定期或强制刷新利用关于与执行目标任务806对应的执行目标的信息来更新UI 900。UI 900可以包括执行目标的名称902和群的版本904。名称902和版本904可以位于UI 900上任何合适的位置,但是如图9中所示,位于UI 900的顶部。
UI 900还可以包括资源部分906。在一些实施例中,资源部分906可以指示与特定执行目标相关联的任何合适数量的基础设施和/或软件应用组件。举例来说,资源部分906可以包括各种资源,诸如在908处指示的基础设施组件“Bob”、“Carl”、“DNS”,以及诸如在910处指示的“应用1”、“应用2”和“测试”之类的软件工件(例如,应用代码)。每个资源可以指示该资源是基础设施组件(如910处所描绘的)还是应用(如912处所描绘的)。如在912处和同样在914处所描绘的,每个资源可以具有诸如资源类型(例如,“基础设施”、“应用”等)和资源计数之类的伴随信息,资源计数可以是适于描述每种资源有多少存在于所选择的执行目标中的任何数字。当被选择时,资源可以显示与方框916中的所选择的资源(例如,DNS)相关的配置,以及与所选择的资源相关的任何其它合适信息。应当认识到的是,如所描绘的,UI 900可以被呈现为可以覆盖在任何合适界面(例如,图5-图8的UI 500-800)上的对话框或另一个合适的弹出窗口。
图10是图示根据至少一个实施例的用于呈现关于所选择的发布的所选择的阶段的信息的示例用户界面(例如,UI 1000)的示意图。UI 1000可以包括进度条1002,进度条1002可以包括所选择的发布1004的所有阶段或阶段的任何合适子集。虽然在UI 1000的顶部示出,但进度条1002可以位于UI 1000上的任何合适位置。进度条1002还可以包括关于所选择的发布1004的每个阶段的各种信息,包括但不限于阶段名称、执行目标的数量、时间戳、批准状态、阶段状态以及与所选择的发布1004的每个阶段相关的任何其它合适信息。UI中所示的所选择的阶段1006是“稳定(13)”,但是可以选择进度条1002中的任何阶段以示出关于相应阶段的相关信息。所选择的阶段1006还可以包括环形进度条1007,其可以可视地跟踪所选择的阶段1006的(一个或多个)集体任务的进度。换句话说,环形进度条1007可以呈现与阶段对应的进度的视觉表示。在一些实施例中,圆形进度条1007可以跳动以指示所选择的阶段1002的任务当前正在进行中。在一些实施例中,环形进度条107可以包括一个或多个绿色部分(例如,指示器)和/或一个或多个红色部分(例如,指示器)和/或一个或多个白色部分(例如,指示器),每个部分与和阶段相关联的任务集合中的任务对应。在一些实施例中,环形进度条1007的绿色部分(例如,绿色指示器)可以表示所选择的阶段1006的已完成任务,并且进度条1007的红色部分(例如,红色指示器)可以表示所选择的阶段1006的失败任务。进度条1007的白色部分(例如,白色指示器)可以表示所选择的阶段1006的尚未失败或完成的任务。UI 1000还可以包括发布历史部分1108(例如,图6的发布历史部分646),并且所选择的发布1004可以位于UI 1000的发布历史部分1008中。
阶段的每个执行任务(例如,与将部署发布的执行目标对应)可以呈现在状态区域1010中。在一些实施例中,任务可以按照它们将被执行的次序和/或在UI 1000上的任何合适的位置来显示。如图所示,执行任务的列表位于UI 1000的底部。区域1010中呈现的任务的列表可以包括进度列1012、操作列1014以及与所列任务相关的任何其它合适信息。进度列1012可以显示执行目标的列表1008中每个执行目标的进度状态(例如,“成功”、“失败”、“应用”等)。操作列1014可以包括关于可以针对所选择的阶段1006的每个任务(例如,与所选择的阶段1006的执行目标对应的每个任务)执行哪些操作的信息。
图11是图示根据至少一个实施例的示例用户界面1100的示意图,该示例用户界面1100描绘了用于图示执行任务的集合的执行次序的执行图表。可以从进度条1104(例如,图10的进度条1006的示例)中选择所选择的阶段1102。与所选择的阶段1102对应的部分可以包括图表1106。图表1106可以描绘与执行目标对应的执行任务可以被执行的次序。如UI1100中所示,图表1106可以包含节点1108、1110和1112。节点1108可以与和一个执行目标对应的一个执行任务相关联。节点1110可以与和一个执行目标对应的一个执行任务相关联。节点1112可以与和七个执行目标对应的七个执行任务相关联。图表1106描绘了与节点1108、1110和1112对应的每组任务之间的执行顺序。例如,可以要求与节点1108相关联的任务在与节点1110相关联的任务开始之前完成。同样,可以要求与节点1110相关联的任务在与节点1112相关联的任务可以被执行之前完成。如果节点包括多于一个任务,那么可以至少部分并行地(例如,基本上并行地)执行这些任务。UI 1100还可以包括与要串行或并行执行的任何合适数量的执行目标对应的执行任务的任何合适组合。UI 1100可以按照任务在区域1114内执行的次序显示每个任务的列表。在一些实施例中,可以被并行执行的任务可以在区域1114内以任何合适的次序显示。
图12是图示根据至少一个实施例的示例用户界面(例如,UI 1200)的示意图,该示例用户界面描绘了与所选择的发布的一个或多个阶段相关的执行状态。阶段1202可以位于进度条1204(例如,图10的进度条1002的示例)中或UI 1200上的任何其它合适位置。阶段1002可以包括图表1206,其指示与节点1208和节点1210对应的任务执行的特定顺序。如UI1200中所描绘的,与节点1208对应的任务可以在与节点1210对应的任务之前执行。环形进度条1212(例如,图10的环形进度条1007的示例)可以被用于每个节点以指示每个节点的(一个或多个)执行任务的状态。如环形进度条1212所描绘的,与节点1208对应的任务可以已完成,而与节点1210对应的任务可以仍在进行中。
UI 1200还可以包括任务列表1214。当选择阶段1002时,与每个任务对应的(一个或多个)执行目标可以呈现在任务列表1214中。如UI 1200中所示,与节点1208对应的执行任务可以呈现在1216
处并且与节点1210对应的执行任务可以呈现在1218处。因此,在一些实施例中,可以按照与执行任务的执行次序对应的次序来呈现执行任务。状态1220和1222可以在任务列表1214中呈现。状态1220可以与对应于节点1208的状态的文本显示对应并且状态1222可以与对应于节点1210的状态的文本显示对应。
图13是图示根据至少一个实施例的示出示例安全计划的示例用户界面(例如,UI1300)的示意图。UI 1300可以包括执行任务列表1302(例如,图10的执行任务列表1008),其可以位于UI 1300上的任何合适位置,并且如图所示,执行任务列表1302在用户界面1300的顶部。执行任务1302可以与将与执行目标相关联的软件资源从第一状态修改为第二状态对应。在一些实施例中,作为将软件资源从第一状态修改为第二状态的一部分,可以利用UI1300来呈现要对这些软件资源做出的改变的集合。如所描绘的,执行任务列表1302包含与目标对应的执行任务1304(例如,标记为“不稳定”),该执行任务1304当被选择时,可以显示模块1306,该模块1306当进而被选择时,可以显示模块1308(标记为“app_deployment”,如所描绘的),该模块1308当被选择时,可以显示模块1310。执行目标1304可以显示与执行任务1304对应的任何合适数量的模块和/或应用部署。在具有多于一个模块1306的实施例中,模块1306可以按照创建、更新、删除或不改变操作的数量递减的次序列出。举例来说,可以显示模块1306-1310,使得创建次数最多的模块可以列在列表的顶部,并且可以根据每个任务对应的创建操作次数降序显示剩余的任务命令。在一些实施例中,可以不同地组织模块1306-1310(例如,以升序,或以用于组织模块1306-1310的任何其它合适方法)。在一些实施例中,当选择模块1310时,UI 1300可以呈现安全计划日志1312,以及与任务1304对应的任何其它合适信息。
安全计划日志1312可以呈现在UI 1300上的任何合适位置,但是如UI 1300中所示,安全计划日志1310位于UI 1300的右下角。安全计划日志可以呈现关于对与模块1310对应的应用代码所做的改变的信息。例如,行1314可以描绘添加的代码行,而行1316可以描绘被行1314替换的已删除代码行。在一些实施例中,行1312(和/或要添加的代码的任何部分)可以用绿色背景或适于识别要添加的一个或多个代码行的任何其它颜色背景来显示。行1314(例如,或要删除的代码的任何部分)可以用红色背景或适于识别要删除的一个或多个代码行的任何其它颜色背景来显示。
使用UI 1300,可以使用户能够查看任务的每个部分的每个计划的代码改变。
图14图示了根据本公开的某些实施例的示出用于实现CIOS的技术的过程1400的示例流程图。这个过程被图示为逻辑流程图,其每个操作可以在硬件、计算机指令或其组合中实现。在计算机指令的上下文中,操作可以表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,该计算机可执行指令在由一个或多个处理器执行时,执行所描述的操作。一般而言,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的次序不旨在被解释为限制,并且任何数量的描述的操作可以以任何次序和/或并行组合以实现过程。
此外,过程可以在配置有可执行指令的一个或多个计算设备或计算机系统的控制下执行,并且可以被实现为通过硬件或其组合在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。如上所述,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读存储介质上。在一些实施例中,过程1400可以由多个处理器并行执行。计算机可读存储介质可以是非暂态的。
过程1400可以开始于方框1402,其中计算系统执行声明性基础设施供应器(例如,图2的CIOS区域202)。如上面结合图2所讨论的,诸如CIOS区域202之类的声明性基础设施供应商可以使用描述组件以及它们如何交互的声明性文件来供应资源。配置文件可以描述创建元素所需的资源和相关字段,然后可以描述引用先前描述的元素的其它元素。在一些示例中,供应工具然后可以生成用于创建和管理配置文件中描述的元素的工作流。在一些实施例中,声明性基础设施供应器可以利用根据Terraform格式化的声明性语句,Terraform是用于构建、改变和版本化基础设施组件的工具。
过程1400可以继续到方框1404,其中计算系统供应基础设施组件的第一集合。基础设施组件的第一集合可以至少部分地基于计算系统向声明性基础设施供应器提供声明性指令的第一集合。
过程1400可以继续到方框1406,其中计算系统部署软件工件的第二集合。软件工件的第二集合可以至少部分地基于计算系统向声明性基础设施供应器提供声明性指令的第二集合。
过程1400可以继续到方框1408,其中计算系统提供呈现用户界面元素的集合(例如,图5的基础设施区域502和应用区域504)的用户界面系统。用户界面元素可以至少识别与供应基础设施组件的第一集合相关联的第一状态(例如,进度条510)和与部署软件工件的第二集合相关联的第二状态(例如,进度条516)。
应当认识到的是,计算系统可以被配置为提供任何合适的界面,诸如如上所述的图5-图13的用户界面500-1300。
说明性系统
图15-图17图示了用于实现根据各种实施例的本公开各方面的示例环境的各方面。图15描绘了用于实现本公开实施例的分布式系统1500的简化图。在所示的实施例中,分布式系统1500包括一个或多个客户端计算设备1502、1504、1506和1508,这些客户端计算设备被配置为通过(一个或多个)网络1510执行和操作客户端应用,诸如web浏览器、专有客户端(例如,Oracle Form)等。服务器1512可以经由网络1510与远程客户端计算设备1502、1504、1506和1508通信地耦合。
在各种实施例中,服务器1512可以适于运行一个或多个服务或软件应用,诸如提供身份管理服务的服务和应用。在某些实施例中,服务器1512还可以提供其它服务,或者软件应用可以包括非虚拟和虚拟环境。在一些实施例中,这些服务可以作为基于web的服务或云服务或者在软件即服务(SaaS)模型下提供给客户端计算设备1502、1504、1506和/或1508的用户。操作客户端计算设备1502、1504、1506和/或1508的用户进而可以利用一个或多个客户端应用与服务器1512进行交互以利用由这些部件提供的服务。
在图15描绘的配置中,系统1500的软件组件1518、1520和1522被示出为在服务器1512上实现。在其它实施例中,系统1500的一个或多个组件和/或由这些组件提供的服务可以也可以由客户端计算设备1502、1504、1506和/或1508中的一个或多个来实现。然后,操作客户端计算设备的用户可以利用一个或多个客户端应用来使用由这些组件提供的服务。这些组件可以用硬件、固件、软件或其组合来实现。应该理解的是,各种不同的系统配置是可能的,其可以与分布式系统1500不同。因此,图15中所示的实施例是用于实现实施例系统的分布式系统的一个示例,而不旨在进行限制。
客户端计算设备1502、1504、1506和/或1508可以包括各种类型的计算系统。例如,客户端计算设备可以包括便携式手持设备(例如,
Figure BDA0003653216620000371
蜂窝电话、
Figure BDA0003653216620000374
计算平板、个人数字助理(PDA))或可穿戴设备(例如,Google
Figure BDA0003653216620000378
头戴式显示器),其运行诸如Microsoft Windows
Figure BDA0003653216620000377
之类的软件和/或诸如iOS、Windows Phone、Android、BlackBerry 10,Palm OS等之类的各种移动操作系统。设备可以支持各种应用(诸如各种互联网相关的应用、电子邮件、短消息服务(SMS)应用),并且可以使用各种其它通信协议。客户端计算设备还可以包括通用个人计算机,其包括例如运行各种版本的Microsoft
Figure BDA0003653216620000372
Apple
Figure BDA0003653216620000373
和/或Linux操作系统的个人计算机和/或膝上型计算机。客户端计算设备可以是运行任何各种商用的
Figure BDA0003653216620000376
或类UNIX操作系统(包括但不限于诸如像Google Chrome OS的各种GNU/Linux操作系统)的工作站计算机。客户端计算设备还可以包括能够通过(一个或多个)网络1510通信的电子设备(诸如瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有
Figure BDA0003653216620000375
手势输入设备的Microsoft
Figure BDA0003653216620000379
游戏控制台)和/或个人消息传送设备)。
虽然图15中的分布式系统1500被示出具有四个客户端计算设备,但是可以支持任何数量的客户端计算设备。其它设备(诸如具有传感器的设备等)可以与服务器1512进行交互。
分布式系统1500中的(一个或多个)网络1510可以是对本领域技术人员熟悉的可以利用任何各种可用协议支持数据通信的任何类型的(一个或多个)网络,其中各种协议包括但不限于TCP/IP(传输控制协议/互联网协议)、SNA(系统网络体系架构)、IPX(互联网分组交换)、AppleTalk等。仅仅作为示例,(一个或多个)网络1510可以是局域网(LAN)、基于以太网的网络、令牌环、广域网、互联网、虚拟网络、虚拟专用网络(VPN)、内联网、外联网、公共交换电话网络(PSTN)、红外网络、无线网络(例如,在任何电气和电子协会(IEEE)1002.11协议套件、
Figure BDA0003653216620000381
和/或任何其它无线协议下操作的网络)和/或这些和/或其它网络的任意组合。
服务器1512可以包括一个或多个通用计算机、专用服务器计算机(作为示例,包括PC(个人计算机)服务器、
Figure BDA0003653216620000385
服务器、中档服务器、大型计算机、机架安装的服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合。服务器1512可以包括运行虚拟操作系统的一个或多个虚拟机,或涉及虚拟化的其它计算体系架构。一个或多个灵活的逻辑存储设备池可以被虚拟化,以维护用于服务器的虚拟存储设备。虚拟网络可以由服务器1512使用软件定义的联网来控制。在各种实施例中,服务器1512可以适于运行在前述公开内容中描述的一个或多个服务或软件应用。例如,服务器1512可以与根据本公开的实施例的用于如上所述执行处理的服务器对应。
服务器1512可以运行包括以上讨论的任何操作系统的操作系统,以及任何商用的服务器操作系统。服务器1512还可以运行任何各种附加的服务器应用和/或中间层应用,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(公共网关接口)服务器、
Figure BDA0003653216620000384
服务器、数据库服务器等。示例性数据库服务器包括但不限于可从Oracle、Microsoft、Sybase、IBM(国际商业机器)等商业获得的数据库服务器。
在一些实施方式中,服务器1512可以包括一个或多个应用,以分析和整合从客户端计算设备1502、1504、1506和1508的用户接收到的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于从一个或多个第三方信息源和持续数据流接收到的
Figure BDA0003653216620000383
馈送、
Figure BDA0003653216620000382
更新或实时更新,其可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视等相关的实时事件。服务器1512还可以包括经由客户端计算设备1502、1504、1506和1508的一个或多个显示设备显示数据馈送和/或实时事件的一个或多个应用。
分布式系统1500还可以包括一个或多个数据库1514和1516。这些数据库可以提供用于存储信息(诸如用户身份信息和由本公开实施例使用的其它信息)的机制。数据库1514和1516可以驻留在各种位置中。举例来说,数据库1514和1516中的一个或多个可以驻留在服务器1512本地(和/或驻留在服务器1512中)的非暂态存储介质上。可替代地,数据库1514和1516可以远离服务器1512并经由基于网络的或专用的连接与服务器1512通信。在一组实施例中,数据库1514和1516可以驻留在存储区域网络(SAN)中。类似地,用于执行归属于服务器1512的功能的任何必要文件可以适当地本地存储在服务器1512上和/或远程存储。在一组实施例中,数据库1514和1516可以包括适于响应于SQL格式的命令来存储、更新和检索数据的关系数据库,诸如由Oracle提供的数据库。
图16图示了可以被用于实现本公开的实施例的示例计算机系统1600。在一些实施例中,计算机系统1600可以被用于实现上述各种服务器和计算机系统中的任何一个。如图16中所示,计算机系统1600包括各种子系统,包括经由总线子系统1602与多个外围子系统通信的处理子系统1604。这些外围子系统可以包括处理加速单元1606、I/O子系统1608、存储子系统1618和通信子系统1624。存储子系统1618可以包括有形的计算机可读存储介质1622和系统存储器1610。
总线子系统1602提供了用于让计算机系统1600的各种组件和子系统按预期彼此通信的机制。虽然总线子系统1602被示意性地示为单个总线,但是总线子系统的替代实施例可以利用多个总线。总线子系统1602可以是若干种类型的总线结构中的任何类型的总线结构,包括使用各种总线体系架构中的任何总线体系架构的存储器总线或存储器控制器、外围总线和本地总线。例如,此类体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线,其可以实现为根据IEEE P1386.1标准制造的夹层(Mezzanine)总线,等等。
处理子系统1604控制计算机系统1600的操作并且可以包括一个或多个处理单元1632、1634等。处理单元可以包括一个或多个处理器,包括单核或多核处理器、处理器的一个或多个核,或其组合。在一些实施例中,处理子系统1604可以包括一个或多个专用协处理器,诸如图形处理器、数字信号处理器(DSP)等。在一些实施例中,可以使用定制电路(诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA))实现处理子系统1604的处理单元中的一些或全部。
在一些实施例中,处理子系统1604中的处理单元可以执行存储在系统存储器1610中或计算机可读存储介质1622上的指令。在各种实施例中,处理单元可以执行各种程序或代码指令并且可以维持多个并发执行的程序或过程。在任何给定时间,要执行的程序代码中的一些或全部可以驻留在系统存储器1610中和/或计算机可读存储介质1610上,包括潜在地在一个或多个存储设备上。通过适当的编程,处理子系统1604可以提供上述各种功能,用于响应于使用模式而动态地修改文档(例如,网页)。
在某些实施例中,可以提供处理加速单元1606以用于执行定制处理或用于卸载由处理子系统1604执行的处理中的一些以便加速由计算机系统1600执行的整体处理。
I/O子系统1608可以包括用于将信息输入到计算机系统1600和/或用于从计算机系统1600或经由计算机系统1600输出信息的设备和机制。一般而言,术语“输入设备”的使用旨在包括用于将信息输入到计算机系统1600的所有可能类型的设备和机制。用户接口输入设备可以包括例如键盘、诸如鼠标或轨迹球之类的定点设备、结合到显示器中的触摸板或触摸屏、滚轮、点击轮、拨盘、按钮、开关、键盘、带有语音命令识别系统的音频输入设备、麦克风,以及其它类型的输入设备。用户接口输入设备还可以包括运动感测和/或手势识别设备,诸如使用户能够控制输入设备并与之交互的Microsoft
Figure BDA0003653216620000401
运动传感器、Microsoft
Figure BDA0003653216620000402
游戏控制器、提供用于接收使用手势和语音命令的输入的接口的设备。用户接口输入设备还可以包括眼睛姿势识别设备,诸如检测用户的眼睛活动(例如,在拍照和/或进行菜单选择时“眨眼”)并将眼睛姿势转换为输入设备(例如,Google
Figure BDA0003653216620000413
)的输入的Google
Figure BDA0003653216620000412
眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,
Figure BDA0003653216620000411
导航器)进行交互的语音识别感测设备。
用户接口输入设备的其它示例包括但不限于三维(3D)鼠标、操纵杆或指向杆、游戏手柄和图形输入板、以及音频/视频设备,诸如扬声器、数码相机、数码摄录机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪和眼睛注视跟踪设备。此外,用户接口输入设备可以包括例如医疗成像输入设备,诸如计算机断层摄影、磁共振成像、位置发射断层摄影、医疗超声检查设备。用户接口输入设备也可以包括例如音频输入设备,诸如MIDI键盘、数字乐器等。
用户接口输出设备可以包括显示子系统、指示灯或非视觉显示器(诸如音频输出设备)等。显示子系统可以是阴极射线管(CRT)、诸如使用液晶显示器(LCD)或等离子体显示器的平板设备、投影设备、触摸屏等。一般而言,使用术语“输出设备”旨在包括所有可能类型的用于从计算机系统1600向用户或其它计算机输出信息的设备和机制。例如,用户接口输出设备可以包括但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。
存储子系统1618提供用于存储由计算机系统1600使用的信息的储存库或数据存储库。存储子系统1618提供有形的非暂态计算机可读存储介质,用于存储提供一些实施例的功能的基本编程和数据构造。当由处理子系统1604执行时提供上述功能的软件(程序、代码模块、指令)可以存储在存储子系统1618中。该软件可以由处理子系统1604的一个或多个处理单元执行。存储子系统1618还可以提供用于存储根据本公开使用的数据的储存库。
存储子系统1618可以包括一个或多个非暂态存储器设备,包括易失性和非易失性存储器设备。如图16中所示,存储子系统1618包括系统存储器1610和计算机可读存储介质1622。系统存储器1610可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)和其中存储固定指令的非易失性只读存储器(ROM)或闪存。在一些实施方式中,包含有助于在计算机系统1600内的元件之间(诸如在启动期间)传送信息的基本例程的基本输入/输出系统(BIOS)可以存储在ROM中。RAM可以包含当前由处理子系统1604操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器1610可以包括多种不同类型的存储器,诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。
作为示例而非限制,如图16中所描绘的,系统存储器1610可以存储应用程序1612,其可以包括客户端应用、Web浏览器、中间层应用、关系数据库管理系统(RDBMS)等、程序数据1614和操作系统1616。举例来说,操作系统1616可以包括各种版本的Microsoft
Figure BDA0003653216620000421
Apple
Figure BDA0003653216620000422
和/或Linux操作系统、各种商业可用的
Figure BDA0003653216620000423
或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google
Figure BDA0003653216620000424
OS等)和/或移动操作系统(诸如iOS、
Figure BDA0003653216620000425
Phone、
Figure BDA0003653216620000426
OS、
Figure BDA0003653216620000427
OS和
Figure BDA0003653216620000428
OS操作系统)。
计算机可读存储介质1622可以存储提供一些实施例的功能的编程和数据构造。当由处理子系统1604执行时处理器提供上述功能的软件(程序、代码模块、指令)可以存储在存储子系统1618中。举例来说,计算机可读存储介质1622可以包括非易失性存储器,诸如硬盘驱动器、磁盘驱动器、光盘驱动器(诸如CD ROM、DVD、
Figure BDA0003653216620000429
盘或其它光学介质)。计算机可读存储介质1622可以包括但不限于
Figure BDA00036532166200004210
驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字录像带等。计算机可读存储介质1622还可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存的SSD、企业级闪存驱动器、固态ROM等)、基于易失性存储器(诸如固态RAM、动态RAM、静态RAM)的SSD、基于DRAM的SSD、磁阻RAM(MRAM)SSD、以及使用基于闪存和DRAM的SSD的混合SSD。计算机可读介质1622可以为计算机系统1600提供计算机可读指令、数据结构、程序模块和其它数据的存储。
在某些实施例中,存储子系统1600还可以包括可以进一步连接到计算机可读存储介质1622的计算机可读存储介质读取器1620。与系统存储器1610一起并且可选地与系统存储器1610相结合,计算机可读存储介质1622可以全面地表示远程、本地、固定和/或可移动存储设备加上用于存储计算机可读信息的存储介质。
在某些实施例中,计算机系统1600可以提供对执行一个或多个虚拟机的支持。计算机系统1600可以执行诸如管理程序之类的程序以促进虚拟机的配置和管理。每个虚拟机可以是分配的存储器、计算机(例如,处理器、核)、I/O和联网资源。每个虚拟机可以运行它自己的操作系统,该操作系统可以与由计算机系统1600执行的其它虚拟机执行的操作系统相同或不同。因而,计算机系统1600可以潜在地同时运行多个操作系统。每个虚拟机一般独立于其它虚拟机运行。
通信子系统1624提供到其它计算机系统和网络的接口。通信子系统1624用作从其他系统接收数据和从计算机系统1600向其它系统传输数据的接口。例如,通信子系统1624可以使计算机系统1600能够经由互联网建立到一个或多个客户端设备的通信信道,用于从客户端设备接收信息和向客户端设备发送信息。此外,通信子系统1624可以被用于将成功登录的通知或重新输入密码的通知从特权账户管理者传送给发出请求的用户。
通信子系统1624可以支持有线和/或无线通信协议两者。例如,在某些实施例中,通信子系统1624可以包括用于访问无线语音和/或数据网络的射频(RF)收发器组件(例如,使用蜂窝电话技术、高级数据网络技术(诸如3G、4G或EDGE(用于全球演进的增强数据速率)、WiFi(IEEE 802.11系列标准,或其它移动通信技术,或其任何组合))、全球定位系统(GPS)接收器组件,和/或其它组件。在一些实施例中,通信子系统1624可以提供有线网络连接(例如,以太网)作为无线接口的补充或替代。
通信子系统1624可以以各种形式接收和传输数据。例如,在一些实施例中,通信子系统1624可以接收结构化和/或非结构化数据馈送1626、事件流1628、事件更新1630等形式的输入通信。例如,通信子系统1624可以被配置为实时接收(或发送)来自社交媒体网络和/或其它通信服务(诸如
Figure BDA0003653216620000441
馈送、
Figure BDA0003653216620000442
更新、web馈送(诸如丰富站点概要(RSS)馈送)的用户的数据馈送1626,和/或来自一个或多个第三方信息源的实时更新。
在某些实施例中,通信子系统1624可以被配置为接收连续数据流形式的数据,该连续数据流可以包括实时事件的事件流1628和/或事件更新1630,其本质上可以是连续的或无界的没有明确的结束。生成连续数据的应用的示例可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视等。
通信子系统1624还可以被配置为将结构化和/或非结构化数据馈送1626、事件流1628、事件更新1630等输出到一个或多个数据库,该一个或多个数据库可以与耦合到计算机系统1600的一个或多个流传输数据源计算机通信。
计算机系统1600可以是各种类型中的一种,包括手持便携式设备(例如,
Figure BDA0003653216620000443
蜂窝电话、
Figure BDA0003653216620000444
计算平板、PDA)、可穿戴设备(例如,Google
Figure BDA0003653216620000445
头戴式显示器)、个人计算机、工作站、大型机、信息站、服务器机架或任何其它数据处理系统。
由于计算机和网络的不断变化的性质,图16中描绘的计算机系统1600的描述仅旨在作为具体示例。与图16中所描绘的系统相比具有更多或更少组件的许多其它配置也是可能的。基于本文提供的公开和教导,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。
一些附图中描绘的系统可以以各种配置提供。在一些实施例中,系统可以被配置为分布式系统,其中系统的一个或多个组件跨一个或多个网络分布在一个或多个云基础设施系统中。
云基础设施系统是一个或多个服务器计算设备,网络设备和/或存储设备的集合。这些资源可以由云服务提供商划分,并以某种方式分配给其客户。例如,云服务提供商(诸如加利福尼亚州Redwood Shores的Oracle公司(Oracle Corporation))可以提供各种类型的云服务,包括但不限于在软件即服务(SaaS)类别下提供的一个或多个服务、在平台即服务(PaaS)类别下提供的服务、在基础设施即服务(IaaS)类别下提供的服务、或包括混合服务的其它类别的服务。SaaS服务的示例包括但不限于构建和递送一套按需应用(诸如Oracle Fusion应用)的功能。SaaS服务使客户能够利用在云基础设施系统上执行的应用,而无需客户为应用购买软件。PaaS服务的示例包括但不限于使组织(诸如Oracle)能够在共享的公共体系架构上整合现有应用的服务,以及构建充分利用平台提供的共享服务(诸如Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)等)的新应用的能力。IaaS服务可以有助于管理和控制底层计算资源,诸如存储、网络和其它基本计算资源,用于让客户利用SaaS平台和PaaS平台提供的服务。
图17是根据本公开实施例的系统环境1700的一个或多个组件的简化框图,通过该系统环境1700,可以提供由实施例系统的一个或多个组件提供的服务作为云服务。在所示的实施例中,系统环境1700包括一个或多个客户端计算设备1704、1706和1708,其可以由用户用于与提供云服务的云基础设施系统1702进行交互。客户端计算设备可以被配置为操作可以由客户端计算设备的用户用来与云基础设施系统1702进行交互以使用由云基础设施系统1702提供的服务的客户端应用,诸如web浏览器、专有客户端应用(例如,Oracle Form)或某个其它应用。
应当认识到的是,图中描绘的云基础设施系统1702可以具有除所描绘的那些组件之外的其它组件。另外,图中所示的实施例仅仅是可以结合本公开实施例的云基础设施系统的一个示例。在一些其它实施例中,云基础设施系统1702可以具有比图中所示更多或更少的组件、可以组合两个或多个组件、或者可以具有组件的不同配置或安排。
客户端计算设备1704、1706和1708可以是与上述用于客户端计算设备1502、1504、1506和1508的设备相似的设备。
虽然示出了具有三个客户端计算设备的示例系统环境1700,但是可以支持任何数量的客户端计算设备。诸如具有传感器的设备等之类的其它设备可以与云基础设施系统1702进行交互。
(一个或多个)网络1710可以促进客户端1704、1706和1708与云基础设施系统1702之间的数据通信和交换。每个网络可以是本领域技术人员熟悉的、可以使用各种商业可用的协议(包括上面针对(一个或多个)网络1510描述的那些协议)中的任何协议支持数据通信的任何类型的(一个或多个)网络。
云基础设施系统1702可以包括一个或多个计算机和/或服务器,其可以包括上面针对服务器1512描述的那些计算机和/或服务器。
在某些实施例中,由云基础设施系统提供的服务可以包括按需对云基础设施系统的用户可用的大量服务,诸如在线数据存储和备份解决方案、基于Web的电子邮件服务、托管的办公套件和文档协作服务、数据库处理、受管理的技术支持服务等。由云基础架构系统提供的服务可以动态扩展以满足其用户的需求。由云基础设施系统提供的服务的具体实例化在本文中被称为“服务实例”。一般而言,经由通信网络(诸如互联网)从云服务提供商的系统使得对用户可用的任何服务被称为“云服务”。在公共云环境中,构成云服务提供商的系统的服务器和系统与消费者自己的本地服务器和系统不同。例如,云服务提供商的系统可以托管应用,并且用户可以经由诸如互联网的通信网络按需订购和使用应用。
在一些示例中,计算机网络云基础设施中的服务可以包括对存储装置、托管的数据库、托管的web服务器、软件应用或者由云供应商向用户提供的其它服务的受保护的计算机网络访问,或者如本领域中另外已知的计算机网络访问。例如,服务可以包括通过互联网对云上的远程存储的受密码保护的访问。作为另一个示例,服务可以包括基于web服务的托管的关系数据库和脚本语言中间件引擎,用于由联网的开发人员私人使用。作为另一个示例,服务可以包括对在云供应商的网站上托管的电子邮件软件应用的访问。
在某些实施例中,云基础设施系统1702可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式交付给消费者的数据库服务产品、中间件和应用的套件。这种云基础设施系统的示例是由本受让方提供的Oracle公共云(Oracle Public Cloud)。
在各种实施例中,云基础设施系统1702可以适于自动地供应、管理和跟踪消费者对由云基础设施系统1702提供的服务的订阅。云基础设施系统1702可以经由不同的部署模型提供云服务。例如,服务可以在公共云模型下提供,其中云基础设施系统1702由销售云服务的组织拥有(例如,由Oracle拥有)并且使服务对一般公众或不同的工业企业可用。作为另一个示例,服务可以在私有云模型下提供,其中云基础设施系统1702仅针对单个组织操作,并且可以为组织内的一个或多个实体提供服务。云服务还可以在社区云模型下提供,其中云基础设施系统1702和由云基础设施系统1702提供的服务由相关社区中的若干个组织共享。云服务还可以在混合云模型下提供,混合云模型是两个或更多个不同模型的组合。
在一些实施例中,由云基础设施系统1702提供的服务可以包括在软件即服务(SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别、或包括混合服务的其它服务类别下提供的一个或多个服务。消费者经由订阅订单可以订购由云基础设施系统1702提供的一个或多个服务。云基础设施系统2702然后执行处理,以提供消费者的订阅订单中的服务。
在一些实施例中,由云基础设施系统1702提供的服务可以包括但不限于应用服务、平台服务和基础设施服务。在一些示例中,应用服务可以由云基础设施系统经由SaaS平台提供。SaaS平台可以被配置为提供属于SaaS类别的云服务。例如,SaaS平台可以提供在集成的开发和部署平台上构建和交付按需应用套件的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,消费者可以利用在云基础设施系统上执行的应用。消费者可以获取应用服务,而无需消费者单独购买许可证和支持。可以提供各种不同的SaaS服务。示例包括但不限于为大型组织提供用于销售绩效管理、企业集成和业务灵活性的解决方案的服务。
在一些实施例中,平台服务可以由云基础设施系统经由PaaS平台提供。PaaS平台可以被配置为提供属于PaaS类别的云服务。平台服务的示例可以包括但不限于使组织(诸如Oracle)能够在共享的共同体系架构上整合现有应用的服务,以及利用由平台提供的共享服务构建新应用的能力。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设施。消费者可以获取由云基础设施系统提供的PaaS服务,而无需消费者购买单独的许可证和支持。平台服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)等。
通过利用由PaaS平台提供的服务,消费者可以采用由云基础设施系统支持的编程语言和工具,并且还控制所部署的服务。在一些实施例中,由云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,Oracle融合中间件服务)和Java云服务。在一个实施例中,数据库云服务可以支持共享服务部署模型,其使得组织能够汇集数据库资源并且以数据库云的形式向消费者提供数据库即服务。中间件云服务可以为消费者提供开发和部署各种业务应用的平台,以及Java云服务可以在云基础设施系统中为消费者提供部署Java应用的平台。
可以由云基础设施系统中的IaaS平台提供各种不同的基础设施服务。基础设施服务促进底层计算资源(诸如存储装置、网络和其它基本计算资源)的管理和控制,以便消费者利用由SaaS平台和PaaS平台提供的服务。
在某些实施例中,云基础设施系统1702还可以包括基础设施资源1730,用于提供用来向云基础设施系统的消费者提供各种服务的资源。在一个实施例中,基础设施资源1730可以包括执行由PaaS平台和SaaS平台提供的服务的硬件(诸如服务器、存储装置和联网资源)的预先集成和优化的组合。
在一些实施例中,云基础设施系统1702中的资源可以由多个用户共享并且按需动态地重新分配。此外,资源可以分配给在不同时区中的用户。例如,云基础设施系统1730可以使第一时区内的第一用户集合能够利用云基础设施系统的资源指定的小时数,然后使得能够将相同资源重新分配给位于不同时区中的另一用户集合,从而最大化资源的利用率。
在某些实施例中,可以提供由云基础设施系统1702的不同组件或模块以及由云基础设施系统1702提供的服务共享的多个内部共享服务1732。这些内部共享服务可以包括但不限于:安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
在某些实施例中,云基础设施系统1702可以在云基础设施系统中提供云服务(例如,SaaS、PaaS和IaaS服务)的综合管理。在一个实施例中,云管理功能可以包括用于供应、管理和跟踪由云基础设施系统1702等接收到的消费者的订阅的能力。
在一个实施例中,如图中所描绘的,云管理功能可以由诸如订单管理模块1720、订单编排模块1722、订单供应模块1724、订单管理和监视模块1726以及身份管理模块1728的一个或多个模块提供。这些模块可以包括一个或多个计算机和/或服务器或可以使用一个或多个计算机和/或服务器来提供,该一个或多个计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器场,服务器集群或任何其它适当的布置和/或组合。
在示例操作1734中,使用客户端设备(诸如客户端设备1704、1706或1708)的客户可以通过请求由云基础设施系统1702提供的一个或多个服务并且对由云基础设施系统1702提供的一个或多个服务的订阅下订单来与云基础设施系统1702进行交互。在某些实施例中,消费者可以访问云用户界面(UI)(云UI 1712、云UI 1714和/或云UI 1716)并经由这些UI下订阅订单。响应于消费者下订单而由云基础设施系统1702接收到的订单信息可以包括识别消费者和消费者打算订阅的由云基础设施系统1702提供的一个或多个服务的信息。
在客户已经下订单之后,经由云UI,1712、1714和/或1716来接收订单信息。
在操作1736处,订单存储在订单数据库1718中。订单数据库1718可以是由云基础设施系统1718操作并且与其它系统元件一起操作的若干数据库之一。
在操作1738处,订单信息被转发到订单管理模块1720。在一些实例中,订单管理模块1720可以被配置为执行与订单相关的计费和记账功能,诸如验证订单,并且在通过验证后预订订单。
在操作1740处,将关于订单的信息传送到订单编排模块1722。订单编排模块1722可以利用订单信息来协调为客户下订单的服务和资源的供应。在一些实例中,订单编排模块1722可以使用订单供应模块1724的服务来协调资源的供应以支持订阅的服务。
在某些实施例中,订单编排模块1722使得能够管理与每个订单相关联的业务流程并应用业务逻辑,以确定订单是否应当前进到供应。在操作1742处,在接收到对新订阅的订单后,订单编排模块1722向订单供应模块1724发送分配资源并配置完成订阅的订单所需的这些资源的请求。订单供应模块1724使得能够为客户订阅的服务分配资源。订单供应模块1724提供由云基础设施系统1700提供的云服务与用于供应用于提供所请求服务的资源的物理实现层之间的抽象级别。因此,订单编排模块1722可以独立于实现细节,诸如服务和资源实际上是实时供应的还是预先供应并且仅在请求时分配/指派。
在操作1744处,一旦供应了服务和资源,就可以通过云基础设施系统1702的订单供应模块1724向客户端设备1704、1706和/或1708上的客户发送所提供服务的通知。在操作1746处,客户的订阅订单可以由订单管理和监视模块1726管理和跟踪。在一些情况下,订单管理和监视模块1726可以被配置为收集订阅订单中的服务的使用统计数据,诸如所使用的存储的量、传送的数据量、用户的数量、系统运行时间和系统停机时间。
在某些实施例中,云基础设施系统1700可以包括身份管理模块1728。身份管理模块1728可以被配置为在云基础设施系统1700中提供身份服务,诸如访问管理和授权服务。在一些实施例中,身份管理模块1728可以控制关于希望利用由云基础设施系统1702提供的服务的消费者的信息。这种信息可以包括认证这些消费者的身份的信息和描述这些消费者被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段等)执行的动作的信息。身份管理模块1728还可以包括关于每个消费者的描述性信息以及关于如何和由谁来访问和修改描述性信息的管理。
虽然已经描述了本公开的具体实施例,但是各种修改、变更、替代构造和等同物也包含在本公开的范围内。本公开的实施例不限于在某些特定数据处理环境内的操作,而是可以在多个数据处理环境内自由操作。此外,虽然已使用特定系列的事务和步骤描述了本公开的实施例,但是,对本领域技术人员应当显而易见的是,本公开的范围不限于所描述系列的事务和步骤。上述实施例的各种特征和方面可以被单独或结合使用。
另外,虽然已经使用硬件和软件的特定组合描述了本公开的实施例,但是应该认识到的是,硬件和软件的其它组合也在本公开的范围内。本公开的实施例可以只用硬件、或只用软件、或利用其组合来实现。本文描述的各种进程可以在相同处理器或以任何组合的不同处理器上实现。相应地,在组件或模块被描述为被配置为执行某些操作的情况下,这种配置可以例如通过设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作、或其任意组合来实现。进程可以使用各种技术来通信,包括但不限于用于进程间通信的常规技术,并且不同的进程对可以使用不同的技术,或者同一对进程可以在不同时间使用不同的技术。
因而,说明书和附图应当在说明性而不是限制性的意义上考虑。然而,将显而易见的是,在不脱离权利要求中阐述的更广泛精神和范围的情况下,可以对其进行添加、减少、删除和其它修改和改变。因此,虽然已经描述了具体的公开实施例,但是这些实施例不旨在进行限制。各种修改和等同物都在以下权利要求的范围之内。修改包括所公开特征的任何相关组合。

Claims (24)

1.一种计算机实现的方法,包括:
由计算系统执行声明性基础设施供应器;
由计算系统至少部分地基于向声明性基础设施供应器提供声明性指令的第一集合来供应基础设施组件的第一集合;
由计算系统至少部分地基于向声明性基础设施供应器提供声明性指令的第二集合来部署软件工件的第二集合;以及
由计算系统提供呈现多个用户界面元素的用户界面,所述多个用户界面元素至少识别与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态。
2.如权利要求1所述的计算机实现的方法,其中与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态独立与一个或多个执行目标对应,所述一个或多个执行目标中的每个执行目标与包括至少一个物理位置的预定义区域对应。
3.如权利要求1或权利要求2所述的计算机实现的方法,还包括由计算系统呈现与多个阶段中的阶段对应的进度的视觉表示,所述多个阶段中的每个阶段与供应基础设施组件的相应集合或将软件工件的相应集合部署到执行目标的集合相关联,执行目标的集合中的每个执行目标与包括至少一个物理位置的预定义区域对应,所述多个阶段与预定义执行次序相关联。
4.如权利要求3所述的计算机实现的方法,其中呈现与阶段对应的进度的视觉表示包括在与该阶段对应的进度的视觉表示内呈现与执行目标的集合对应的状态的相应指示器。
5.如前述权利要求中的任一项所述的计算机实现的方法,还包括:
由计算系统识别软件工件的第二集合中的软件工件的先前配置;
由计算系统至少部分地基于部署软件工件的第二集合来识别软件工件的新配置;以及
由计算系统经由用户界面提供从软件工件的先前配置到新配置的改变的指示。
6.如前述权利要求中的任一项所述的计算机实现的方法,还包括:
由计算系统检测基础设施组件的第一集合中的至少一个基础设施组件的供应中的故障;
由计算系统经由用户界面呈现所述故障的指示;
由计算系统接收用户输入;以及
由计算系统响应于用户输入而执行至少一个补救动作。
7.如前述权利要求中的任一项所述的计算机实现的方法,还包括:
由计算系统检测软件工件的第二集合中的至少一个软件工件的部署中的故障;
由计算系统经由用户界面呈现所述故障的指示;
由计算系统接收用户输入;以及
由计算系统响应于用户输入而执行至少一个补救动作。
8.如前述权利要求中的任一项所述的计算机实现的方法,其中部署软件工件的第二集合包括将与执行目标相关联的软件资源从第一状态修改为第二状态,并且所述计算机实现的方法还包括由计算系统呈现要对软件资源进行的改变的集合,作为将软件资源从第一状态修改为第二状态的一部分。
9.如前述权利要求中的任一项所述的计算机实现的方法,还包括生成用户界面以包括所述多个用户界面元素,所述多个用户界面元素至少识别与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态。
10.一种系统,包括
一个或多个处理器;以及
一个或多个存储器,存储计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时,使得系统:
执行声明性基础设施供应器;
至少部分地基于向声明性基础设施供应器提供声明性指令的第一集合来供应基础设施组件的第一集合;
至少部分地基于向声明性基础设施供应器提供声明性指令的第二集合来部署软件工件的第二集合;以及
提供呈现多个用户界面元素的用户界面,所述多个用户界面元素至少识别与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态。
11.如权利要求10所述的系统,其中与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态独立与一个或多个执行目标对应,所述一个或多个执行目标中的每个执行目标与包括至少一个物理位置的预定义区域对应。
12.如权利要求10或权利要求11所述的系统,其中执行指令还使得系统呈现与多个阶段中的阶段对应的进度的视觉表示,所述多个阶段中的每个阶段与供应基础设施组件的相应集合或将软件工件的相应集合部署到执行目标的集合相关联,执行目标的集合中的每个执行目标与包括至少一个物理位置的预定义区域对应,所述多个阶段与预定义执行次序相关联。
13.如权利要求10-12中的任一项所述的系统,其中执行指令还使得系统:
识别软件工件的第二集合中的软件工件的先前配置;
至少部分地基于部署软件工件的第二集合来识别软件工件的新配置;以及
经由用户界面提供从软件工件的先前配置到新配置的改变的指示。
14.如权利要求10-13中的任一项所述的系统,其中执行指令还使得系统:
检测供应基础设施组件的第一集合中的至少一个基础设施组件或部署软件工件的第二集合中的至少一个软件工件的故障;
经由用户界面呈现所述故障的指示;
接收用户输入;以及
响应于用户输入而执行至少一个补救动作。
15.一种非暂态计算机可读存储介质,包括一个或多个处理器和存储计算机可执行指令的一个或多个存储器,所述计算机可执行指令在由所述一个或多个处理器执行时,使得计算设备:
执行声明性基础设施供应器;
至少部分地基于向声明性基础设施供应器提供声明性指令的第一集合来供应基础设施组件的第一集合;
至少部分地基于向声明性基础设施供应器提供声明性指令的第二集合来部署软件工件的第二集合;以及
提供呈现多个用户界面元素的用户界面,所述多个用户界面元素至少识别与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态。
16.如权利要求15所述的非暂态计算机可读存储介质,其中与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态独立与一个或多个执行目标对应,所述一个或多个执行目标中的每个执行目标与包括至少一个物理位置的预定义区域对应。
17.如权利要求15或权利要求16所述的非暂态计算机可读存储介质,其中执行指令还使得计算设备呈现与多个阶段中的阶段对应的进度的视觉表示,所述多个阶段中的每个阶段与供应基础设施组件的相应集合或将软件工件的相应集合部署到执行目标的集合相关联,执行目标的集合中的每个执行目标与包括至少一个物理位置的预定义区域对应,所述多个阶段与预定义执行次序相关联。
18.如权利要求15-17中的任一项所述的非暂态计算机可读存储介质,其中执行指令还使得计算设备:
识别软件工件的第二集合中的软件工件的先前配置;
至少部分地基于部署软件工件的第二集合来识别软件工件的新配置;以及
经由用户界面提供从软件工件的先前配置到新配置的改变的指示。
19.如权利要求15-18中的任一项所述的非暂态计算机可读存储介质,其中执行指令还使得计算设备:
检测供应基础设施组件的第一集合中的至少一个基础设施组件或部署软件工件的第二集合中的至少一个软件工件的故障;
经由用户界面呈现所述故障的指示;
接收用户输入;以及
响应于用户输入而执行至少一个补救动作。
20.如权利要求15-19中的任一项所述的非暂态计算机可读存储介质,其中部署软件工件的第二集合包括将与执行目标相关联的软件资源从第一状态修改为第二状态,其中执行指令还使得计算设备呈现要对软件资源进行的改变的集合,作为将软件资源从第一状态修改为第二状态的一部分。
21.一种计算机实现的方法,包括:
由计算系统提供呈现多个用户界面元素的用户界面,所述多个用户界面元素至少识别与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态,其中基础设施的第一集合至少部分地基于声明性基础设施供应器来供应,并且软件工件的第二集合至少部分地基于声明性基础设施供应器来供应。
22.一种系统,包括:
一个或多个处理器;以及
一个或多个存储器,存储计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时,使得系统:
提供呈现多个用户界面元素的用户界面,所述多个用户界面元素至少识别与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态,其中基础设施的第一集合至少部分地基于声明性基础设施供应器来供应,并且软件工件的第二集合至少部分地基于声明性基础设施供应器来供应。
23.一种非暂态计算机可读存储介质,包括一个或多个处理器和存储计算机可执行指令的一个或多个存储器,所述计算机可执行指令在由所述一个或多个处理器执行时,使得计算设备:
提供呈现多个用户界面元素的用户界面,所述多个用户界面元素至少识别与供应基础设施组件的第一集合相关联的第一状态和与部署软件工件的第二集合相关联的第二状态,其中基础设施的第一集合至少部分地基于声明性基础设施供应器来供应,并且软件工件的第二集合至少部分地基于声明性基础设施供应器来供应。
24.一种包括用于执行根据权利要求1-9和21中的任一项所述的步骤的部件的装置。
CN202080081022.9A 2020-01-20 2020-11-12 用于基础设施编排服务的用户界面技术 Pending CN114730258A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US202062963456P 2020-01-20 2020-01-20
US62/963,456 2020-01-20
US202062964596P 2020-01-22 2020-01-22
US62/964,596 2020-01-22
US17/001,626 2020-08-24
US17/001,626 US20210223923A1 (en) 2020-01-20 2020-08-24 User interface techniques for an infrastructure orchestration service
PCT/US2020/060081 WO2021150291A1 (en) 2020-01-20 2020-11-12 User interface techniques for an infrastructure orchestration service

Publications (1)

Publication Number Publication Date
CN114730258A true CN114730258A (zh) 2022-07-08

Family

ID=76991830

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080081022.9A Pending CN114730258A (zh) 2020-01-20 2020-11-12 用于基础设施编排服务的用户界面技术

Country Status (4)

Country Link
EP (1) EP4094148A1 (zh)
JP (1) JP2023511535A (zh)
CN (1) CN114730258A (zh)
WO (1) WO2021150291A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338423A (zh) * 2021-12-30 2022-04-12 贵州国卫信安科技有限公司 一种持续迭代的自动化网络靶标构建技术

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015184158A1 (en) * 2014-05-28 2015-12-03 New Media Solutions, Inc. Generation and management of computing infrastructure instances
US11366744B2 (en) * 2017-04-07 2022-06-21 Microsoft Technology Licensing, Llc Partitioning and orchestrating infrastructure software deployments for safety and agility across diverse configurations and hardware types
US10769281B2 (en) * 2017-12-07 2020-09-08 International Business Machines Corporation Compliant software component infrastructure deployment
US10990368B2 (en) * 2017-12-26 2021-04-27 Oracle International Corporation On-premises and cloud-based software provisioning

Also Published As

Publication number Publication date
EP4094148A1 (en) 2022-11-30
WO2021150291A1 (en) 2021-07-29
JP2023511535A (ja) 2023-03-20

Similar Documents

Publication Publication Date Title
US20210223923A1 (en) User interface techniques for an infrastructure orchestration service
US10979318B2 (en) Enhancing resource allocation for application deployment
US11755337B2 (en) Techniques for managing dependencies of an orchestration service
JP2023511113A (ja) 宣言型プロビジョニングツールを使用してインフラストラクチャリソースを展開するための技術
CN114787771A (zh) 在分布式版本控制系统中更新代码
JP2023511114A (ja) デプロイ命令のために有向非巡回グラフを利用するための技術
CN114902252A (zh) 用于检测部署编排器中的漂移的技术
CN114730258A (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