JP2023511111A - Techniques for Detecting Drift in Deployment Orchestrators - Google Patents

Techniques for Detecting Drift in Deployment Orchestrators Download PDF

Info

Publication number
JP2023511111A
JP2023511111A JP2022543748A JP2022543748A JP2023511111A JP 2023511111 A JP2023511111 A JP 2023511111A JP 2022543748 A JP2022543748 A JP 2022543748A JP 2022543748 A JP2022543748 A JP 2022543748A JP 2023511111 A JP2023511111 A JP 2023511111A
Authority
JP
Japan
Prior art keywords
safety plan
plan
safety
cios
resources
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
JP2022543748A
Other languages
Japanese (ja)
Other versions
JPWO2021150306A5 (en
Inventor
バルサロウ,エリック・タイラー
グラス,ナサニエル・マーティン
Original Assignee
オラクル・インターナショナル・コーポレイション
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/027,507 external-priority patent/US11816507B2/en
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2023511111A publication Critical patent/JP2023511111A/en
Publication of JPWO2021150306A5 publication Critical patent/JPWO2021150306A5/ja
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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06315Needs-based resource requirements planning or analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

インフラストラクチャオーケストレーションサービスを実行するための技術について説明される。デプロイメント設定ファイルに少なくとも部分的に基づくリソースと動作とのリストを含む安全プランが受信され得る。安全プランの承認が受信されると、リソースのリストの少なくとも1つに対応する動作が、実行されるように準備され得る。動作は、安全プランと比較され得る。動作が安全プランの一部である場合、動作は実行され得る。動作が安全プランの一部でない場合、デプロイメントは停止され得、デプロイメントが安全プランに準拠していないという通知が送信され得る。Techniques for performing infrastructure orchestration services are described. A security plan may be received that includes a list of resources and actions based at least in part on the deployment configuration file. Upon receiving approval of the safety plan, actions corresponding to at least one of the list of resources may be prepared to be performed. Actions can be compared to a safety plan. If the action is part of the safety plan, the action can be performed. If the action is not part of the safety plan, the deployment can be stopped and a notification sent that the deployment is not compliant with the safety plan.

Description

関連出願の参照
本願は、米国特許法第119条(e)に従って、2020年1月20日に出願された「TECHNIQUES FOR DETECTING DRIFT IN A DEPLOYMENT ORCHESTRATOR(デプロイメントオーケストレータにおけるドリフトを検出するための技術)」と題される米国出願番号第62/963,413号、2020年9月21日に出願された「TECHNIQUES FOR DETECTING DRIFT IN A DEPLOYMENT ORCHESTRATOR(デプロイメントオーケストレータにおけるドリフトを検出するための技術)」と題される米国出願番号第17/027,527号、および2020年9月21日に出願された「TECHNIQUES FOR MANAGING DRIFT IN A DEPLOYMENT ORCHESTRATOR(デプロイメントオーケストレータにおけるドリフトを管理するための技術)」と題される米国出願番号第17/027,507号の利益および優先権を主張し、これらの内容全体は、あらゆる目的のために参照により援用される。
REFERENCE TO RELATED APPLICATIONS This application is based on 35 U.S.C. No. 62/963,413, entitled "TECHNIQUES FOR DETECTING DRIFT IN A DEPLOYMENT ORCHESTRATOR," filed September 21, 2020, entitled "TECHNIQUES FOR DETECTING DRIFT IN A DEPLOYMENT ORCHESTRATOR." U.S. Application Serial No. 17/027,527, entitled, and entitled "TECHNIQUES FOR MANAGING DRIFT IN A DEPLOYMENT ORCHESTRATOR," filed September 21, 2020; No. 17/027,507, the entire contents of which are incorporated by reference for all purposes.

背景
今日、クラウドインフラストラクチャサービスでは、多くの個々のサービスが利用されて、クラウドインフラストラクチャサービスの多くの地域にわたって(それぞれ)コードおよび設定がプロビジョニングされ、デプロイされている。これらのツールは、特に、プロビジョニングが概して宣言型であり、コードをデプロイすることが必須であることを考慮すると、使用するためにかなりの手作業が必要になる。くわえて、サービスチームおよび地域の数が増加するにつれて、クラウドインフラストラクチャサービスは、増加し続けなければならない。より多数のより小さい地域にデプロイするクラウドインフラストラクチャサービスのストラテジーの中には、地域ごとの支出を含むものがあるが、これらはうまくスケーリングされないことがある。
Background Today, cloud infrastructure services utilize many individual services to provision and deploy code and configuration (respectively) across many regions of the cloud infrastructure service. These tools require a great deal of manual effort to use, especially considering that provisioning is largely declarative and requires code to be deployed. In addition, cloud infrastructure services must continue to grow as the number of service teams and geographies increases. Some strategies for cloud infrastructure services that deploy to a larger number of smaller geographies involve per-region spending, but these may not scale well.

簡潔な概要
インフラストラクチャオーケストレーションサービスを実行するための技術について説明する。いくつかの例では、デプロイメント設定ファイルに少なくとも部分的に基づくリソースと動作とのリストを含む安全プランが受信され得る。安全プランの承認を受信すると、リソースのリストの少なくとも1つに対応する動作が実行されるように準備可能になり得る。動作が安全プランと比較され得る。動作が安全プランの一部であると判断された場合、動作は実行され得る。動作が安全プランの一部でないと判断された場合、デプロイメントは停止され得、デプロイメントが安全プランに準拠していないという通知が送信され得る。いくつかの例では、ドリフトが生じた場合、動作は安全プランの一部でないことがある。
Brief Overview Describes techniques for implementing infrastructure orchestration services. In some examples, a safety plan may be received that includes a list of resources and actions based at least in part on a deployment configuration file. Upon receiving approval of the safety plan, actions corresponding to at least one of the list of resources may be ready to be performed. Actions can be compared to a safety plan. If the action is determined to be part of the safety plan, the action may be performed. If it is determined that the operation is not part of the safety plan, the deployment can be stopped and a notification can be sent that the deployment does not comply with the safety plan. In some instances, if drift occurs, action may not be part of the safety plan.

他の例では、コンピュータ読取可能記憶媒体は、プロセッサによって実行されると、プロセッサに本明細書で説明するさまざまな動作を実行させることが可能な命令を含み得る。デプロイメント設定ファイルに基づくリソースと動作とのリストを含み得る安全プランが受信され得る。安全プランの承認が受信され得る。デプロイメント設定ファイルに従ったリソースのリストの少なくとも1つに対応する動作が、実行されるように準備され得る。動作が安全プランと比較され得る。動作が安全プランの一部であると判断された場合、動作は実行され得る。動作が安全プランの一部でないと判断された場合、デプロイメントは停止され得、デプロイメントが安全プランに準拠していないという通知が送信され得る。 In another example, a computer-readable storage medium may contain instructions that, when executed by a processor, can cause the processor to perform various operations described herein. A security plan may be received that may include a list of resources and actions based on the deployment configuration file. Approval of the safety plan may be received. An action corresponding to at least one of the list of resources according to the deployment configuration file may be arranged to be performed. Actions can be compared to a safety plan. If the action is determined to be part of the safety plan, the action may be performed. If it is determined that the operation is not part of the safety plan, the deployment can be stopped and a notification can be sent that the deployment is not compliant with the safety plan.

さらに別の例では、システムは、プロセッサと、プロセッサによって実行されると、本明細書で説明する動作を実行するようにシステムを構成することが可能な命令を記憶することができるメモリとを含み得る。デプロイメント設定ファイルに少なくとも部分的に基づくリソースと動作とのリストを含み得る安全プランが受信され得る。安全プランの承認が受信され得る。承認に基づいて、リソースのリストの少なくとも1つに対応する動作が、実行されるように準備され得る。動作が安全プランと比較され得る。動作が安全プランの一部であると判断された場合、動作は実行され得る。動作が安全プランの一部でないと判断された場合、デプロイメントは停止され得、デプロイメントが安全プランに準拠していないという通知が送信され得る。 In yet another example, a system includes a processor and memory capable of storing instructions that, when executed by the processor, configure the system to perform the operations described herein. obtain. A security plan may be received that may include a list of resources and actions based at least in part on the deployment configuration file. Approval of the safety plan may be received. Based on the approval, an action corresponding to at least one of the list of resources can be arranged to be performed. Actions can be compared to a safety plan. If the action is determined to be part of the safety plan, the action may be performed. If it is determined that the operation is not part of the safety plan, the deployment can be stopped and a notification can be sent that the deployment does not comply with the safety plan.

他の例では、方法は、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメント設定ファイルに少なくとも部分的に基づくリソースのリストとそれぞれの動作とを含む安全プランを受信することを備え得る。方法はさらに、安全プランの承認の指示の受信に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行うことを備え得る。方法はさらに、動作を安全プランと比較することを備え得る。方法はさらに、動作が安全プランの一部であるという判断に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、動作を実行することを備え得る。方法はさらに、動作が安全プランの一部でないという判断に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメントを停止することと、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメントが安全プランに準拠していないという通知を送信することとを備え得る。 In another example, the method may comprise at least one of the plurality of computer processors receiving a safety plan including a list of resources and respective actions based at least in part on the deployment configuration file. The method may further comprise preparing at least one of the plurality of computer processors to perform operations corresponding to at least one of the list of resources according to the deployment configuration file upon receiving the indication of approval of the safety plan. . The method may further comprise comparing the action to a safety plan. The method may further comprise performing the action by at least one of the plurality of computer processors in accordance with the determination that the action is part of the safety plan. The method further comprises: at least one of the plurality of computer processors halting deployment pursuant to a determination that the operation is not part of the safety plan; and sending a notification of non-compliance.

他の例では、コンピュータ読取可能記憶媒体は、プロセッサによって実行されると、プロセッサに本明細書で説明するさまざまな動作を実行させることが可能な命令を含み得る。動作は、デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とのリストを含む安全プランを受信することを含み得る。動作はさらに、安全プランの承認の指示の受信に従って、デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行うことと、動作を安全プランと比較することとを含み得る。動作はさらに、動作が安全プランの一部であるという判断に従って、動作を実行することを含み得る。動作はさらに、動作が安全プランの一部でないという判断に従って、デプロイメントを停止することと、デプロイメントが安全プランに準拠していないという通知を送信することとを含み得る。 In another example, a computer-readable storage medium may contain instructions that, when executed by a processor, can cause the processor to perform various operations described herein. The actions may include receiving a safety plan that includes a list of resources and respective actions based at least in part on the deployment configuration file. The actions may further include preparing to perform an action corresponding to at least one of the list of resources according to the deployment configuration file upon receiving an indication of approval of the safety plan and comparing the action to the safety plan. . The action may further include performing the action in accordance with the determination that the action is part of the safety plan. The action may further include stopping the deployment upon determining that the action is not part of the safety plan and sending a notification that the deployment is not compliant with the safety plan.

他の例では、システムは、プロセッサと、プロセッサによって実行されると、本明細書で説明する動作を実行するようにシステムを構成することが可能な命令を記憶可能なメモリとを備え得る。動作は、デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とのリストを含む安全プランを受信することを含み得る。動作はさらに、安全プランの承認の指示の受信に従って、デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行うことを含み得る。動作はさらに、動作を安全プランと比較することを含み得る。動作はさらに、動作が安全プランの一部であるという判断に従って、動作を実行することを含み得る。動作はさらに、動作が安全プランの一部でないという判断に従って、デプロイメントを停止することと、デプロイメントが安全プランに準拠していないという通知を送信することとを含み得る。 In another example, the system may comprise a processor and a memory capable of storing instructions that, when executed by the processor, configure the system to perform the operations described herein. The actions may include receiving a safety plan that includes a list of resources and respective actions based at least in part on the deployment configuration file. The actions may further include preparing to perform actions corresponding to at least one of the list of resources according to the deployment configuration file upon receipt of the indication of approval of the safety plan. The action may further include comparing the action to a safety plan. The action may further include performing the action in accordance with the determination that the action is part of the safety plan. The action may further include stopping the deployment upon determining that the action is not part of the safety plan and sending a notification that the deployment is not compliant with the safety plan.

本明細書に記載の方法のいずれかに記載のステップのための手段を備える装置。
任意の特定の要素または行為の記述を容易に識別するために、参照番号の最上位の数字(単数または複数)は、その要素が最初に導入される図面番号を指す。
An apparatus comprising means for the steps of any of the methods described herein.
To easily identify the description of any particular element or act, the most significant digit(s) of a reference number refer to the figure number in which that element is first introduced.

少なくとも1つの実施形態に係る、クラウドインフラストラクチャオーケストレーションサービスの少なくともいくつかの要素を実装するためのアーキテクチャを示すブロック図である。1 is a block diagram illustrating an architecture for implementing at least some elements of a cloud infrastructure orchestration service, according to at least one embodiment; FIG. 少なくとも1つの実施形態に係る、クラウドインフラストラクチャオーケストレーションサービスの少なくともいくつかの要素を実装するためのアーキテクチャを示すブロック図である。1 is a block diagram illustrating an architecture for implementing at least some elements of a cloud infrastructure orchestration service, according to at least one embodiment; FIG. 少なくとも1つの実施形態に係るフロックの例を説明するためのフロー図である。[0014] Figure 4 is a flow diagram for illustrating an example flock in accordance with at least one embodiment; 少なくとも1つの実施形態に係るフロックの例を説明するためのフロー図である。[0014] Figure 4 is a flow diagram for illustrating an example flock in accordance with at least one embodiment; 少なくとも1つの実施形態に係るクラウドインフラストラクチャオーケストレーションサービスを示すブロック図である。1 is a block diagram illustrating a cloud infrastructure orchestration service in accordance with at least one embodiment; FIG. 少なくとも1つの実施形態に係る、クラウドインフラストラクチャオーケストレーションサービスにおいて安全プランを使用するためのプロセスを説明するためのフローチャートである。[0014] Figure 4 is a flow chart illustrating a process for using secure plans in a cloud infrastructure orchestration service, according to at least one embodiment; 少なくとも1つの実施形態に係る、クラウドインフラストラクチャオーケストレーションサービスにおいて安全プランを生成するためのプロセスを説明するためのフローチャートである。[0014] Figure 4 is a flow chart illustrating a process for generating a safety plan in a cloud infrastructure orchestration service, according to at least one embodiment; 少なくとも1つの実施形態に係る、安全プランが生成および使用される態様を説明するためのスイムレーン図である。FIG. 4 is a swimlane diagram for explaining how safety plans are generated and used in accordance with at least one embodiment; 少なくとも1つの実施形態に係る、切断地域を示すブロック図である。FIG. 12 is a block diagram illustrating a cutting area in accordance with at least one embodiment; 少なくとも1つの実施形態に係る、切断地域において安全プランを使用するためのプロセスを説明するためのフローチャートである。FIG. 11 is a flow chart illustrating a process for using a safety plan in a cutting area, according to at least one embodiment; FIG. 少なくとも1つの実施形態に係る分散型システムを示すブロック図である。1 is a block diagram of a distributed system in accordance with at least one embodiment; FIG. 少なくとも1つの実施形態に係る、実施形態のシステムの1つ以上のコンポーネントによって提供されるサービスがクラウドサービスとして提供され得るシステム環境の1つ以上のコンポーネントを示すブロック図である。1 is a block diagram illustrating one or more components of a system environment in which services provided by one or more components of an embodiment system may be provided as cloud services, in accordance with at least one embodiment; FIG. 本開示のさまざまな実施形態が実装され得るコンピュータシステムの例を示すブロック図である。1 is a block diagram illustrating an example computer system upon which various embodiments of the disclosure may be implemented; FIG.

詳細な説明
いくつかの例では、インフラストラクチャ・アズ・ア・サービス(IaaS)は、1つの特定のタイプのクラウドコンピューティングである。IaaSは、仮想化されたコンピューティングリソースをパブリックネットワーク(たとえば、インターネット)を介して提供するように構成可能である。いくつかの例では、IaaSは、クラウドコンピューティングサービスの3つの主要なカテゴリ(または、サブカテゴリ)のうちの1つである。大抵の人は、他の主要なカテゴリがソフトウェア・アズ・ア・サービス(SaaS)およびプラットフォーム・アズ・ア・サービス(PaaS)であると考えており、SaaSは、PaaSおよびIaaSを両方とも包含するより広いカテゴリであると考えられる場合もあり、さらにIaaSがPaaSのサブカテゴリであると考える人さえいる。
DETAILED DESCRIPTION In some examples, Infrastructure as a Service (IaaS) is one particular type of cloud computing. IaaS can be configured to provide virtualized computing resources over a public network (eg, the Internet). In some examples, IaaS is one of three main categories (or subcategories) of cloud computing services. Most people consider the other major categories to be Software as a Service (SaaS) and Platform as a Service (PaaS), with SaaS encompassing both PaaS and IaaS It is sometimes considered a broader category, and some even consider IaaS to be a subcategory of PaaS.

IaaSモデルでは、クラウドコンピューティングプロバイダは、インフラストラクチャコンポーネント(たとえば、サーバ、ストレージデバイス、ネットワークノード(たとえば、ハードウェア)、デプロイメントソフトウェア、またはプラットフォーム仮想化(たとえば、ハイパーバイザ層)など)をホストすることができる。 In the IaaS model, cloud computing providers host infrastructure components such as servers, storage devices, network nodes (e.g. hardware), deployment software, or platform virtualization (e.g. hypervisor layer). can be done.

場合によっては、IaaSプロバイダは、これらのインフラストラクチャコンポーネントに付随するようにさまざまなサービス(たとえば、請求、監視、ロギング、セキュリティ、ロードバランシングおよびクラスタリングなど)も供給し得る。したがって、これらのサービスがポリシ駆動型であり得るので、IaaSユーザは、ロードバランシングを駆動してアプリケーション可用性および性能を維持するようにポリシを実行可能である。 In some cases, the IaaS provider may also supply various services (eg, billing, monitoring, logging, security, load balancing, clustering, etc.) to accompany these infrastructure components. Thus, these services can be policy driven, enabling IaaS users to enforce policies to drive load balancing and maintain application availability and performance.

いくつかの例では、IaaS顧客は、インターネットなどのワイドエリアネットワーク(WAN)を介してリソースおよびサービスにアクセスすることができ、クラウドプロバイダのサービスを使用して、アプリケーションスタックの残りの要素をインストールすることができる。たとえば、ユーザは、IaaSプラットフォームにログインして、仮想マシン(VM)を作成し、各VMにオペレーティングシステム(OS)をインストールし、ミドルウェア(データベースなど)をデプロイし、ワークロードおよびバックアップのためのストレージバケットを作成し、そのVMに企業ソフトウェアをインストールすることさえできる。次に、顧客は、プロバイダのサービスを使用して、ネットワークトラフィックバランシング、トラブルシューティングアプリケーション問題、性能の監視、ディザスタリカバリの管理といった、さまざまな機能を実行することができる。 In some examples, IaaS customers can access resources and services over a wide area network (WAN), such as the Internet, and use the cloud provider's services to install the rest of the application stack. be able to. For example, a user logs into an IaaS platform, creates virtual machines (VMs), installs an operating system (OS) on each VM, deploys middleware (such as databases), and storage for workloads and backups. You can even create a bucket and install corporate software on that VM. Customers can then use the provider's services to perform a variety of functions such as network traffic balancing, troubleshooting application issues, performance monitoring, and managing disaster recovery.

ほとんどの場合、クラウドコンピューティングモデルは、クラウドプロバイダの参加を必要とする。クラウドプロバイダは、IaaSを提供する(たとえば、販売する)ことを専門とするサード・パーティサービスであり得るが、そうでなくてもよい。エンティティは、それ自体のインフラストラクチャサービスプロバイダになるプライベートクラウドをデプロイすることも選択し得る。 In most cases, cloud computing models require the participation of cloud providers. A cloud provider may or may not be a third party service that specializes in providing (eg, selling) IaaS. An entity may also choose to deploy a private cloud that becomes its own infrastructure service provider.

いくつかの例では、IaaSデプロイメントは、新しいアプリケーションまたは新しいバージョンを、準備されたアプリケーションサーバなどに配置するプロセスである。それは、サーバを準備する(たとえば、ライブラリ、デーモンなどをインストールする)プロセスも含み得る。これは、ハイパーバイザ層(たとえば、サーバ、ストレージ、ネットワークハードウェアおよび仮想化)の下のクラウドプロバイダによって管理されることが多い。したがって、顧客は、(OS)、ミドルウェアおよび/またはアプリケーションデプロイメントなどの(たとえば、セルフサービスの仮想マシン(たとえば、オンデマンドでスピンアップされ得る)上で)処理を担うことができる。 In some examples, IaaS deployment is the process of putting a new application or new version onto a provisioned application server or the like. It may also include the process of preparing the server (eg, installing libraries, daemons, etc.). This is often managed by cloud providers below the hypervisor layer (eg, servers, storage, network hardware and virtualization). Thus, a customer can be responsible for processing such as (OS), middleware and/or application deployment (eg, on a self-service virtual machine (eg, which can be spun up on demand)).

いくつかの例では、IaaSプロビジョニングとは、使用のためにコンピュータまたは仮想ホストを取得すること、および必要なライブラリまたはサービスをそれらにインストールすることさえ意味し得る。ほとんどの場合、デプロイメントはプロビジョニングを含んでおらず、プロビジョニングを最初に実行する必要があることもある。 In some examples, IaaS provisioning may even mean obtaining computers or virtual hosts for use and installing the necessary libraries or services on them. In most cases deployment does not involve provisioning, and sometimes provisioning needs to be performed first.

場合によっては、IaaSプロビジョニングには2つの異なる問題がある。第1に、何かが実行中になる前にインフラストラクチャの初期セットをプロビジョニングするという最初の課題がある。第2に、何もかもがプロビジョニングされると既存のインフラストラクチャを展開する(たとえば、新しいサービスを追加する、サービスを変更する、サービスを除去する、など)という課題がある。場合によっては、これら2つの課題は、インフラストラクチャの構成を宣言型に定義することを可能にすることによって対処することができる。言い換えれば、インフラストラクチャ(たとえば、どのコンポーネントが必要であり、それらがどのように相互作用するか)は、1つ以上の設定ファイルによって定義することができる。したがって、インフラストラクチャの全体トポロジ(たとえば、どのリソースがどれに依存しており、それらの各々がどのように協働するか)は、宣言的に記述することができる。いくつかの例では、トポロジが定義されると、設定ファイルに記載された異なるコンポーネントを作成および/または管理するワークフローを生成することができる。 In some cases, there are two different issues with IaaS provisioning. First, there is the initial challenge of provisioning an initial set of infrastructure before anything is running. Second, there is the challenge of deploying the existing infrastructure once everything is provisioned (eg, adding new services, changing services, removing services, etc.). In some cases, these two challenges can be addressed by allowing the configuration of the infrastructure to be declaratively defined. In other words, the infrastructure (eg, what components are required and how they interact) can be defined by one or more configuration files. Thus, the overall topology of the infrastructure (eg, which resources depend on which and how each of them work together) can be declaratively described. In some examples, once a topology is defined, a workflow can be generated that creates and/or manages the different components listed in the configuration file.

いくつかの例では、インフラストラクチャは、多くの相互接続された要素を有し得る。たとえば、コアネットワークとしても知られている1つ以上の仮想プライベートクラウド(VPC)(たとえば、設定可能なおよび/または共有のコンピューティングリソースの、場合によってはオンデマンドのプール)が存在してもよい。いくつかの例では、ネットワークのセキュリティがどのようにセットアップされるかを定義するようにプロビジョニングされた1つ以上のセキュリティグループルール、および、1つ以上の仮想マシン(VM)も存在する可能性がある。ロードバランサまたはデータベースなどの他のインフラストラクチャ要素もプロビジョニングされてもよい。より多くのインフラストラクチャ要素が求められるおよび/または追加されるにつれて、インフラストラクチャは段階的に展開し得る。 In some examples, an infrastructure may have many interconnected elements. For example, there may be one or more virtual private clouds (VPCs), also known as core networks (eg, pools of configurable and/or shared computing resources, possibly on demand). . In some instances, there may also be one or more security group rules and one or more virtual machines (VMs) provisioned to define how security for the network is set up. be. Other infrastructure elements such as load balancers or databases may also be provisioned. The infrastructure may be deployed in stages as more infrastructure elements are required and/or added.

上述のように、インフラストラクチャをプロビジョニングする1つの方法は、それを宣言型に記述することである。そのため、設定ファイルは、上記のインフラストラクチャコンポーネントの各々およびそれらがどのように相互作用するかを単に記述する宣言ファイルでもよい。設定ファイルは、リソースと、要素を作成するのに必要な関連フィールドとを記述することができるため、前に記述された要素を参照する他の要素も記述することができる。いくつかの例では、プロビジョニングツールは、次に、設定ファイルに記述される要素を作成し管理するためのワークフローを生成することができる。 As mentioned above, one way to provision infrastructure is to describe it declaratively. As such, the configuration file may simply be a declarative file that describes each of the above infrastructure components and how they interact. A configuration file can describe the resources and associated fields needed to create an element, and thus other elements that refer to previously described elements. In some examples, the provisioning tool can then generate workflows to create and manage the elements described in the configuration files.

いくつかの例では、プロビジョニングツールのワークフローは、さまざまなコマンドを実行するように構成可能である。実行可能な1つの機能はビューの調整であり、プロビジョニングツールは、現在のインフラストラクチャのビュー(たとえば、インフラストラクチャの予想される状態)を、インフラストラクチャが実際に実行されている態様と比較することができる。いくつかの例では、ビューの調整機能を実行することは、さまざまなリソースプロバイダまたはインフラストラクチャリソースに照会して、どのリソースが実際に動作しているかを特定することを含み得る。プロビジョニングツールが実行可能な別の機能はプラン生成であり、プロビジョニングツールは、実際に動作しているインフラストラクチャコンポーネントを、プロビジョニングツールがその状態をどのように見せたいか(たとえば、所望の構成)と比較することができる。言い換えれば、プラン生成機能は、リソースを最新の予想に近づけるためにどのような変更を加える必要があるかを判断することができる。いくつかの例では、第3の機能は実行(たとえば、適用)機能であり、プロビジョニングツールは、プラン生成機能によって生成されたプランを実行することができる。 In some examples, provisioning tool workflows are configurable to execute various commands. One function that can be performed is view reconciliation, where the provisioning tool compares the current view of the infrastructure (e.g., the expected state of the infrastructure) with how the infrastructure is actually running. can be done. In some examples, performing the view reconciliation function may include querying various resource providers or infrastructure resources to identify which resources are actually operating. Another function that a provisioner can perform is plan generation, where the provisioner identifies the infrastructure components that are actually working and how the provisioner wants that state to look (e.g., the desired configuration). can be compared. In other words, the plan generator can determine what changes need to be made to bring the resources closer to the latest expectations. In some examples, the third function is an execution (eg, apply) function, and the provisioning tool can execute the plan generated by the plan generation function.

一般に、プロビジョニングツールは、設定ファイルを受け取り、そこに含まれる宣言型情報を解析し、プランを実行するためにリソースをプロビジョニングする必要がある順序をプログラム的に/自動的に決定するように構成可能である。たとえば、セキュリティグループルールおよびVMがブートされる前にVPCをブートする必要がある場合、プロビジョニングツールは、ユーザの介入なしに、および/または、その情報が必ずしも設定ファイルに含まれていなくても、その決定を行ってその順序でブートを実行することができる。 In general, a provisioner can be configured to receive a configuration file, parse the declarative information it contains, and programmatically/automatically determine the order in which resources should be provisioned to execute the plan. is. For example, if the security group rules and the VPC must be booted before the VM is booted, the provisioning tool will be able to set the That decision can be made to perform the boot in that order.

いくつかの例では、さまざまな仮想コンピューティング環境にわたるインフラストラクチャコードのデプロイメントを可能にするために、連続デプロイメント技術が採用される場合がある。さらに、記載されている技術は、これらの環境内でのインフラストラクチャ管理を可能にすることができる。いくつかの例では、サービスチームは、1つ以上の(しかしながら、往々にして多くの)異なる本番環境(たとえば、時には世界全体に及ぶさまざまな異なる地理的位置に及ぶ)にデプロイされることが望まれるコードを書き込むことができる。しかしながら、いくつかの例では、コードがデプロイされることになるインフラストラクチャを最初に設定しなければならない。いくつかの例では、プロビジョニングは手動で行うことができ、プロビジョニングツールを利用してリソースをプロビジョニング可能であり、および/または、インフラストラクチャがプロビジョニングされるとデプロイメントツールを利用してコードをデプロイすることが可能である。 In some examples, continuous deployment techniques may be employed to enable deployment of infrastructure code across various virtual computing environments. Additionally, the described techniques can enable infrastructure management within these environments. In some instances, a service team may want to be deployed in one or more (but often many) different production environments (e.g., in various different geographic locations, sometimes across the world). You can write code that However, in some instances, the infrastructure on which the code will be deployed must first be set up. In some examples, provisioning can be done manually, resources can be provisioned using a provisioning tool, and/or code can be deployed using a deployment tool once the infrastructure is provisioned. is possible.

上述のように、一般に、インフラストラクチャリソースのプロビジョニングおよびインフラストラクチャリソースを制御するためのコードのデプロイメントの各々を処理するために使用される2つの異なるツールがあり、これら2つのツール間のオーケストレーションは手動で行われる。しかしながら、大規模になると、手動での実行は常にずれを生じさせる。したがって、仮想インフラストラクチャのプロビジョニングとデプロイメントとの両方を行うことができる自動ツールによって、仮想クラウド環境を実現するためのより効率的で信頼性のある技術が可能になる。 As noted above, there are generally two different tools used to handle each of the provisioning of infrastructure resources and the deployment of code to control infrastructure resources, and the orchestration between these two tools is done manually. However, at scale, manual execution always introduces lag. Automated tools that can both provision and deploy virtual infrastructure therefore enable a more efficient and reliable technique for realizing virtual cloud environments.

いくつかの例では、2つのツールが使用される場合、ユーザがプロビジョニングフェーズとデプロイメントフェーズとの間に手動でコードに変更を加える際に問題が生じる可能性がある。本明細書に記載されているように、プロビジョニングとデプロイメントとの両方に単一のツールを使用する技術は、手動でのコード変更の機会がないようにプロセスを自動化することによって、その問題を軽減することができる。あるユーザが何かを符号化するやり方に対してわずかな変更を加えると、デプロイメントフェーズにおいて大きな問題が生じる可能性がある場合もある。いくつかの例では、最初にオペレータが新しい領域においてあるアクション(たとえば、コードの誤植)を実行したときには、その誤植で符号化されたオブジェクトは永久にそのままであり得る。その誤植と共にアプリケーションがデプロイされるがアプリケーションがその誤植に影響されない(たとえば、アプリケーションが依然として機能する)場合、今後さらに他のコード変更がその誤植に影響されてシステム全体をクラッシュさせるということが起こり得る。したがって、本明細書において提供されている技術は、しばしば問題を生じさせ得るプロビジョニングとデプロイメントとの間のギャップを除去することができる。 In some instances, when two tools are used, problems can arise when users manually make changes to code between the provisioning and deployment phases. The technique of using a single tool for both provisioning and deployment, as described herein, alleviates that problem by automating the process so there is no opportunity for manual code changes. can do. Small changes to the way one user encodes something can cause big problems in the deployment phase. In some instances, the first time an operator performs an action (eg, a typographical error in code) in a new region, the object encoded with the typographical error may remain forever. If the application is deployed with the typo but the application is not affected by the typo (e.g. the application still works), it is possible that further code changes in the future will be affected by the typo and crash the entire system. . Accordingly, the techniques provided herein can eliminate the gap between provisioning and deployment that can often lead to problems.

一般に、設定ファイルを使用してインフラストラクチャリソースを宣言することができるように、デプロイメントのモデル化は宣言型である。たとえば、一般に、作成・読取・更新・削除(CRUD)命令を使用して、一般的な表現可能な状態の転送(REST)の概念(たとえば、RESTアプリケーションプログラミングインターフェイス(API))を用いて、デプロイメントファイルを生成する。しかしながら、デプロイメント自体は一般に、この概念に従わない。さらに、インフラストラクチャプロビジョニングツールは、非常に強力である、および/または表現的になる傾向があるが、デプロイメントのためのツールは、それらが実行することができる動作に関してはるかに制限的である傾向がある(たとえば、それらは宣言型であるのとは対照的に命令的である)。したがって、クラウド環境内で両方の機能要件(たとえば、インフラストラクチャ要素のプロビジョニングおよびデプロイメント)に対処可能なツールが長年必要とされてきた。 In general, deployment modeling is declarative, such that infrastructure resources can be declared using configuration files. For example, deployment Generate files. However, the deployment itself generally does not follow this concept. Additionally, infrastructure provisioning tools tend to be very powerful and/or expressive, while tools for deployment tend to be far more restrictive in terms of what they can do. (e.g. they are imperative as opposed to declarative). Therefore, there has long been a need for tools that can address both functional requirements (eg provisioning and deployment of infrastructure elements) within a cloud environment.

いくつかの例では、クラウドインフラストラクチャオーケストレーションサービス(CIOS)を実装するための技術について、本明細書で説明する。このような技術は、簡単に上記したように、クラウド環境内のインフラストラクチャアセットのプロビジョニングおよびデプロイメントを両方とも管理するように構成可能である。いくつかの例では、CIOSは、サービスの2つのクラス、すなわち中央コンポーネントおよび地域コンポーネント(たとえば、中央CIOSおよび地域CIOS)を含み得る。明細書を通して以下の用語を使用する。 In some examples, techniques for implementing cloud infrastructure orchestration services (CIOS) are described herein. Such technology, as briefly described above, can be configured to manage both the provisioning and deployment of infrastructure assets within a cloud environment. In some examples, CIOS may include two classes of services: a central component and a regional component (eg, central CIOS and regional CIOS). The following terms are used throughout the specification.

・インフラストラクチャコンポーネント:実行中のコードをサポートするインフラストラクチャの長寿命の部分
例:デプロイメントアプリケーション、ロードバランサ、ドメインネームシステム(DNS)入力、オブジェクトストレージバケットなど。
Infrastructure components: Long-lived pieces of infrastructure that support running code. Examples: deployment applications, load balancers, domain name system (DNS) inputs, object storage buckets, etc.

・アーティファクト:コードは、デプロイメントアプリケーションまたはクバネティスエンジンクラスタにデプロイされる、または、設定情報(以下、「コンフィグ」)は、インフラストラクチャコンポーネントに適用される。これらは、読取専用リソースであり得る。 • Artifacts: Code is deployed to a deployment application or Kubernetes engine cluster, or configuration information (hereinafter "config") is applied to infrastructure components. These may be read-only resources.

・デプロイメントタスク:デプロイまたはテストコードに関連付けられることが多い短寿命のタスク。さらに、デプロイメントタスクは、それらを作成するリリースほど長くは生存しないリソースとしてモデル化される。 Deployment Tasks: Short-lived tasks often associated with deploying or testing code. Additionally, deployment tasks are modeled as resources that do not live as long as the release that creates them.

例:「$アーティファクトを$環境にデプロイしてください(deploy $artifact to $environment)」、「10分間$アラームを注視してください(watch $alarm for 10 minutes)」、「$テストスイートを実行してください(execute $testSuite)」、または「$手動承認を待ってください(wait for $manualApproval)」
たとえば、CIOSは、デプロイメントオーケストレータのデプロイメントを、それが完了したときに利用可能な状態に遷移するリソースの作成としてモデル化することができる。
Examples: "deploy $artifact to $environment", "watch $alarm for 10 minutes", "run $ test suite "execute $testSuite" or "wait for $manualApproval"
For example, CIOS may model the deployment of a deployment orchestrator as the creation of a resource that transitions to an available state when it completes.

CIOSは、その関連する宣言型プロビジョナの状態を維持するので、CIOSは、それがリリースに関連するときにはこれらの短寿命のリソースのライフサイクルを制御可能である。 Since CIOS maintains the state of its associated declarative provisioners, CIOS can control the lifecycle of these short-lived resources when it relates to releases.

・リソース:CRUD可能なリソース
CIOSは、上記の構造の各々をリソースとしてモデル化する。次のセクションでは、このモデル化について詳細に説明する。
Resources: CRUDable Resources CIOS models each of the above constructs as a resource. The next section describes this modeling in detail.

・フロック:CIOSの唯一の制御プレーンリソース。主にインフラストラクチャコンポーネントの所有権をモデル化してインフラストラクチャコンポーネントを示すために存在する。 • Floc: the only control plane resource of the CIOS. It exists primarily to model infrastructure component ownership and represent infrastructure components.

・フロックコンフィグ:単一のサービスに関連する全てのインフラストラクチャコンポーネント、アーティファクトおよびデプロイメントタスクのセットを記載する。 • Flock config: Describes the set of all infrastructure components, artifacts and deployment tasks related to a single service.

各フロックは、厳密に1つのフロックコンフィグを有している。フロックコンフィグは、ソース制御にチェックインされる。 Each floc has exactly one floc config. The block config is checked into source control.

フロックコンフィグは、宣言型である。それらは、CIOSが領域、地域、adおよびアーティファクトバージョンを入力として提供すると予想する。 A floc config is declarative. They expect CIOS to provide region, region, ad and artifact version as input.

フロックは、粒度が細かい。フロックは、単一のサービスおよびサポートインフラストラクチャからなる。 Flocs are fine-grained. A floc consists of a single service and supporting infrastructure.

・状態:フロック内のあらゆるリソースの状態の、特定の時点でのスナップショット。
・リリース:フロックコンフィグの特定のバージョンと、それが参照するあらゆるアーティファクトの特定のバージョンとのタプル
リリースは、まだ存在し得ない状態を記載するものであると考えられる。
State: A snapshot in time of the state of every resource in the block.
• Release: a tuple of a specific version of the flock config and a specific version of any artifact it references A release is considered to describe a state that cannot yet exist.

・リリースプラン:CIOSが全ての地域を現在の状態からリリースによって記載される状態に遷移させるのに取るであろうステップのセット。 Release Plan: The set of steps that CIOS will take to transition all regions from their current states to the states described by the release.

リリースプランは、有限数のステップと、明確に定義された開始時刻および終了時刻とを有する。 A release plan has a finite number of steps and well-defined start and end times.

・適用:これは名詞である。リリースプランを実行する1回の試行である。実行は、フロックの現在の状態を変化させる。 Application: This is a noun. A single attempt to execute a release plan. Execution changes the current state of the block.

CIOSは、(たとえば、世界規模の)ダウンストリームシステムに設定を適用するオーケストレーション層であると言える。それは、サービスチームからの手動労力なしに(たとえば、場合によっては最初の承認を超えて)世界規模のインフラストラクチャプロビジョニングおよびコードデプロイメントを可能にするように設計されている。CIOSの上位の責務は、以下を含むがそれらに限定されない。 CIOS can be said to be an orchestration layer that applies settings to downstream systems (eg, worldwide). It is designed to enable worldwide infrastructure provisioning and code deployment without manual effort from service teams (e.g., possibly beyond initial approval). Senior responsibilities of the CIOS include, but are not limited to:

・いかなる処理中の変更アクティビティも含む、CIOSによって管理されるリソースの現在の状態へのビューをチームに提供すること。 • Providing teams with a view into the current state of resources managed by the CIOS, including any pending change activity.

・チームが新しい変更を計画してリリースするのを支援すること。
・地域内のさまざまなダウンストリームシステムにわたってアクティビティを連携させて、承認されたリリースプランを人間の介入なしに実行すること。
- Help the team plan and release new changes.
• Coordinating activities across various downstream systems in the region to execute approved release plans without human intervention.

・地域/領域にわたってアクティビティを連携させて、承認されたリリースプランを世界規模で実行すること。 • Coordinating activities across geographies/territories to execute approved release plans on a global basis.

情報をCIOSに提供することを可能にすることによって、オンボーディングを処理する。CIOSはさらに、より多くのことを自動化することができるため、これは、以前の実現例よりも負荷が大きいワークである。いくつかの例では、CIOSは、コードを自動的にデプロイしてテストすることができる機能をチームに提供することによって、事前デプロイメントを処理する。いくつかの例では、CIOSは、チームが新しいアーティファクトを構築する際にそれらを(たとえば、世界規模で)展開するためのプランを自動的に生成することを可能にすることによって、変更管理(CM)ポリシの書き込みを処理することができる。これは、各地域の現在の状態および現在のCIOSコンフィグ(それ自体がアーティファクトであり得る)を調べることによって行うことができる。さらに、チームは、これらのプランを調べることができ、CIOSコンフィグを変更して再計画するようにCIOSに求めることによって、それらを繰り返すことができる。チームは、プランに満足すると、そのプランを参照する「リリース」を作成することができる。次に、このプランは、承認されたまたは拒否されたとして印を付けることができる。チームは、依然としてCMを書き込むことができるが、それらは、CIOSプランへのポインタにすぎない。したがって、チームは、このプランについての推論にあまり時間を費やさない。プランは、マシンによって生成されるため、より正確である。プランは、人間が読むには細かすぎるが、高度なユーザインターフェイス(UI)によって表示することができる。 Handles onboarding by allowing information to be provided to the CIOS. CIOS can also automate more things, so this is a heavier task than previous implementations. In some examples, CIOS handles pre-deployment by providing teams with the ability to automatically deploy and test code. In some instances, CIOS improves change management (CM ) can process policy writes. This can be done by examining the current state of each region and the current CIOS config (which itself can be an artifact). Additionally, the team can examine these plans and repeat them by asking the CIOS to change the CIOS config and re-plan. Once the team is satisfied with the plan, they can create a 'release' that references the plan. This plan can then be marked as approved or rejected. Teams can still write CMs, but they are just pointers to the CIOS plan. Therefore, the team does not spend much time reasoning about this plan. Plans are more accurate because they are machine generated. Plans are too detailed for human reading, but can be displayed by a sophisticated user interface (UI).

いくつかの例では、CIOSは、デプロイメントプランを自動的に実行することによって、CMの実行を処理することができる。リリースプランが作成されて承認されると、CIOSがロールバックを開始しない限り、エンジニアがCMに参加することはない。場合によっては、これによって、チームは現在は手動であるタスクを自動化する必要がある。いくつかの例では、CIOSは、CIOSが実行中にサービス正常性の低下を検出すると、フロックをその元の(たとえば、リリース前の)状態に戻すプランを自動的に生成することによって、変更管理(CM)のロールバックを処理することができる。いくつかの例では、CIOSは、CIOSによって管理される地域のサブセットおよび/またはリソースのサブセットにスコープされるリリースプランを受信し、次にそのプランを実行することによって、突発的な/戦術的な変更のデプロイを処理可能である。 In some examples, CIOS can handle CM execution by automatically executing a deployment plan. Once a release plan has been created and approved, engineers will not participate in CM unless CIOS initiates a rollback. In some cases, this requires teams to automate tasks that are currently manual. In some examples, CIOS implements change management by automatically generating a plan to return a block to its original (e.g., pre-release) state when CIOS detects service health degradation while CIOS is running. (CM) rollbacks can be processed. In some examples, the CIOS receives a release plan that is scoped to a subset of geographies and/or a subset of resources managed by the CIOS, and then executes that plan to enable sudden/tactical Can handle deploying changes.

さらに、CIOSは、完全に自動化された世界規模のデプロイメントを定義するのに必要なプリミティブをサポートし得る。たとえば、CIOSは、アラームを監視して統合テストを実行することによって、サービス正常性を測定することができる。CIOSは、サービス低下が発生した場合にチームがロールバック挙動を素早く定義することを支援することができ、次にそれを自動的に実行することができる。CIOSは、リリースプランを自動的に生成して表示することができ、承認を追跡することができる。いくつかの例では、チームが所望のデプロイメント挙動を記述するために使用する言語は、宣言型であり得る。CIOSは、1つのシステム内のコードデプロイメントおよびインフラストラクチャコンフィグ(たとえば、プロビジョニング)の機能を組み合わせることができる。また、CIOSは、地域にわたって、およびある地域内のコンポーネントにわたって、柔軟な順序付けをサポートする。チームは、チェックインされたコンフィグによって順序付けを表現することができる。チームは、CIOSのプランニングを呼び出して、APIをプログラム的にリリースし得る。 Additionally, CIOS can support the primitives necessary to define fully automated worldwide deployments. For example, CIOS can measure service health by monitoring alarms and running integration tests. CIOS can help teams quickly define rollback behavior in the event of a service degradation, which can then be executed automatically. CIOS can automatically generate and display release plans and track approvals. In some examples, the language the team uses to describe the desired deployment behavior can be declarative. CIOS can combine the functions of code deployment and infrastructure configuration (eg, provisioning) within one system. CIOS also supports flexible ordering across regions and across components within a region. Teams can express ordering by checked-in configs. Teams can invoke CIOS planning to programmatically release APIs.

図1は、少なくとも中央CIOS102を実行するための技術を説明するためのアーキテクチャ100を示す図である。いくつかの例では、中央CIOS102は、「フロック」のレベルで動作を処理するサービスであり得る。中央CIOS102は、いくつかの責務を有しており、これらの責務は、以下を含むがそれらに限定されない。 FIG. 1 shows an architecture 100 for describing techniques for running at least central CIOS 102 . In some examples, the central CIOS 102 may be a service that handles operations at the level of "flocks." Central CIOS 102 has several responsibilities, including but not limited to:

・フロックメタデータ変更およびリリース動作のための認証ゲートウェイとしての役割を果たすこと。 • Act as an authentication gateway for floc metadata change and release operations.

・フロックのためのデプロイメントアーティファクトおよびCIOSリポジトリへのフロックメタデータの正式なマッピングを格納すること。 - Storing the deployment artifacts for the floc and the formal mapping of floc metadata to the CIOS repository.

・フェーズおよびターゲットにわたるグローバルなリリースを連携させること。
・「一度に1回だけのフロックへの進行中リリース」のようなポリシを実施するための同期。
• Align global releases across phases and targets.
• Synchronization to enforce policies such as "only one release at a time in progress to flock".

・フロック設定(コンフィグ)およびアーティファクトに対する変更を検出して、このような変更時にリリース生成をトリガすること。 - Detecting changes to flock settings (configs) and artifacts and triggering release generation upon such changes.

いくつかの例では、ソースコードバージョン制御管理サービス(SCVMS)104は、正式なフロック設定を格納するように構成可能であり、アーティファクト通知サービス(ANS)106は、新しいアーティファクトの構築を中央CIOS102に知らせることができるように、中央CIOS102によってサブスクライブされ得る。次に、中央CIOS102は、影響を受けたフロックに対して入来する変更をマッピングし、所望の場合にはリリースプランニングを開始し得る。さらに、いくつかの例では、ターゲットへのリリースの前に中央CIOS102によってアーティファクトプッシュサービス(APS)が呼び出されて、リリースの成功に必要ないかなるアーティファクトもリリースの前にターゲットの地域内に存在するように保証可能である。 In some examples, the Source Code Version Control Management Service (SCVMS) 104 can be configured to store formal flock settings, and the Artifact Notification Service (ANS) 106 informs the central CIOS 102 of new artifact builds. can be subscribed by the central CIOS 102 as it can. Central CIOS 102 may then map incoming changes to affected blocks and initiate release planning if desired. Additionally, in some instances, an Artifact Push Service (APS) is invoked by the central CIOS 102 prior to release to the target to ensure that any artifacts required for a successful release are present within the target region prior to release. can be guaranteed to

いくつかの例では、顧客(たとえば、エンジニア)108は、中央CIOS102を呼び出して、フロックおよび/またはリリースをCRUDして進行中のCIOSアクティビティのステータスを見ることができる。フロック管理サービス110は、フロックを操作するための1つ以上のAPIを含むことができ、ビュー/プラン/承認サービス112は、プランを作成および承認して、全てのCIOSによって管理されるリソースの状態の中央コピーを見るためのCRUD APIを含むことができ、変更監視サービス114は、フロックコンフィグに対する変更についてSCVMS104を注視することができ、他のアーティファクトに対する変更についての通知をANS106から受信することができ、状態インジェスタサービス116は、地域状態のコピーを、ビュー/プラン/承認112がそれらを公開できるように、中央CIOSデータベース(DB)118内に作成することができる。いくつかの例では、中央CIOS DB118は、フロック、プランおよび状態のDBであり得る。フロック情報は、正式なものでもよいが、その他は全て、地域CIOS120からのデータの古いコピーでもよい。 In some examples, a customer (eg, engineer) 108 can call central CIOS 102 to CRUD a block and/or release to view the status of ongoing CIOS activities. The floc management service 110 can include one or more APIs for manipulating flocs, and the view/plan/approval service 112 creates and approves plans to update the state of all CIOS-managed resources. change monitoring service 114 can monitor SCVMS 104 for changes to flock configs and receive notifications from ANS 106 for changes to other artifacts. , the state ingester service 116 can make a copy of the regional state in the central CIOS database (DB) 118 so that the view/plan/approval 112 can publish them. In some examples, the central CIOS DB 118 may be a block, plan and state DB. The flock information may be formal, but all others may be old copies of data from the regional CIOS 120 .

いくつかの例では、エンジニア108は、フロック管理サービス110に対するAPI呼び出しを(たとえば、イングレスプロキシフリート122を介して)実行して、フロックのリストを作成することができる。このようなAPI呼び出しを行うためのプロトコルは、ハイパーテキスト・トランスポート・プロトコル・セキュア(HTTPS)などであり得る。この動作のための関連するアクセス制御リスト(ACL)は、ローカルエリアネットワーク(LAN)124または他のプライベート接続を含み得る。たとえば、CIOSは、顧客のオンプレミスデータセンタまたはネットワークをCIOSと接続するためのパブリックインターネットの使用に取って代わるネットワーク接続(たとえば、専用の接続、リースされた接続および/またはプライベートな接続)を管理/制御し得る。さらに、(たとえば、エンジニア108の)認証および認可は、ユーザがマシンインターフェイス(たとえば、予約サービス)を管理することを可能にする予約システムポータルによって実行可能である。いくつかの例では、中央CIOS102は、Java(登録商標)データベース接続(JDBC)などを使用して、フロックメタデータ、プランおよび状態を中央DB118に格納し得る。いくつかの例では、ANS106は、新しいアーティファクトが公開された場合に変更監視サービス114に通知するように構成可能である。ANS106は、HTTPSを使用可能であり、認証と認可とはどちらも相互トランスポート層セキュリティサービスによって処理可能である。さらに、いくつかの例では、変更監視サービス114は、フロック設定変更についてSCVMS104をポーリングし得る。このポーリングは、セキュアシェル(SSH)または他のプロトコルを使用して実行可能である。変更監視サービス114の認証は、CIOSシステムアカウントによって処理可能であり、認可は、SCVMS104によって処理可能である。 In some examples, engineer 108 may make an API call to floc management service 110 (eg, via ingress proxy fleet 122) to create a list of flocs. A protocol for making such API calls may be Hypertext Transport Protocol Secure (HTTPS), or the like. The associated access control list (ACL) for this operation may include local area network (LAN) 124 or other private connections. For example, the CIOS manages/manages network connections (e.g., dedicated, leased and/or private connections) that replace the use of the public internet to connect the customer's on-premises data center or network with the CIOS. control. Additionally, authentication and authorization (eg, of engineer 108) can be performed by a booking system portal that allows users to manage machine interfaces (eg, booking services). In some examples, central CIOS 102 may store block metadata, plans and states in central DB 118 using Java database connectivity (JDBC) or the like. In some examples, ANS 106 can be configured to notify change monitoring service 114 when new artifacts are published. ANS 106 can use HTTPS and both authentication and authorization can be handled by mutual transport layer security services. Further, in some examples, change monitoring service 114 may poll SCVMS 104 for flock configuration changes. This polling can be done using Secure Shell (SSH) or other protocols. Authentication of change monitoring service 114 can be handled by CIOS system accounts and authorization can be handled by SCVMS 104 .

いくつかの例では、エンジニア108は、ビュー/プラン/承認サービス112を使用して、以下の動作のうちの1つ以上の動作を行うことができる。エンジニア108は、中央CIOS102を呼び出してプランを生成および承認することによって、プランおよび/または承認を行うことができる。エンジニア108は、中央CIOS102を呼び出して世界規模の進行中のCIOSアクティビティのステータスを見ることによって、ビューが可能である。さらに、エンジニア108は、中央CIOS102を用いて、世界規模のCIOSによって管理されるリソースの状態のレプリカを閲覧することができる。これらのAPI呼び出し(または、そのようなもの)は、HTTPSプロトコルまたは同様のプロトコルによって実行可能である。さらに、関連するACLは、LAN124によって制御可能であり、認証も認可も予約サービスによって処理可能である。いくつかの例では、ビュー/プラン/承認サービス112は、(たとえば、HTTPSなどを使用して)プランニングを要求し、プランの承認を地域CIOS120の全ての地域にプッシュし得る。関連するACLは、ワイドエリアネットワーク(WAN)ゲートウェイ126によって管理されるセキュリティリストを使用して制御可能である。認証は、相互トランスポート層セキュリティによって処理可能であり、認可は、さまざまなアイデンティティポリシによって処理可能である。さらに、状態インジェスタサービス116は、CIOSが(たとえば、HTTPSなども使用して)要求時にジョブステータスまたは状態変更のセントラルビューを提供することができるように、それらのジョブステータスまたは状態変更について地域CIOS120を注視し得る。このためのACLSもWANゲートウェイ126によって処理可能であり、認証も認可も相互トランスポート層セキュリティサービスによって処理可能である。 In some examples, engineer 108 may use view/plan/approval service 112 to perform one or more of the following actions. Engineer 108 may plan and/or approve by calling central CIOS 102 to generate and approve the plan. Engineer 108 can view by calling central CIOS 102 to see the status of ongoing worldwide CIOS activities. In addition, engineers 108 can use central CIOS 102 to view replicas of the state of resources managed by the worldwide CIOS. These API calls (or the like) can be made via the HTTPS protocol or a similar protocol. Additionally, associated ACLs can be controlled by the LAN 124 and both authentication and authorization can be handled by the reservation service. In some examples, view/plan/approval service 112 may request planning (eg, using HTTPS, etc.) and push plan approvals to all regions of regional CIOS 120 . Associated ACLs can be controlled using security lists managed by wide area network (WAN) gateway 126 . Authentication can be handled by mutual transport layer security and authorization can be handled by various identity policies. In addition, state ingester service 116 communicates with regional CIOS 120 about those job status or state changes so that CIOS can provide a central view of job status or state changes on demand (e.g., also using HTTPS, etc.). can be observed. ACLS for this can also be handled by the WAN gateway 126, and both authentication and authorization can be handled by mutual transport layer security services.

図2は、少なくとも地域CIOS202を実行するための技術を説明するためのアーキテクチャ200を示す図である。いくつかの例では、地域CIOS202は、宣言型プロビジョニングおよびプランニングのワークの多くの部分、ならびに承認されたリリースアプリケーションが発生し得る場所である。いくつかの例では、地域CIOS202の各インスタンスは、「実行ターゲット」のレベルで動作を処理することができる地域フロントエンドを有し得る。それは、以下を実行するように構成可能である。 FIG. 2 shows an architecture 200 for describing techniques for implementing at least the regional CIOS 202. As shown in FIG. In some examples, the regional CIOS 202 is where much of the declarative provisioning and planning work, as well as approved release applications, can occur. In some examples, each instance of regional CIOS 202 may have a regional front end that can handle operations at the level of "execution targets." It can be configured to do the following:

・中央CIOS102から入来する動作についての全てのCIOS認証を処理すること。 - Handling all CIOS authentication for actions coming from the central CIOS 102;

・所与の実行ターゲットについて、一度に1回の「実行」(プラン/リソースインポート/プランの適用)しか行えないというルールを実施すること。 Enforcing the rule that for a given execution target, only one "execution" (plan/resource import/apply plan) can be done at a time.

・宣言型インフラストラクチャプロビジョニングの実行中に入力および出力に使用される宣言型プロビジョニングアーティファクトのためのバイナリアーティファクトストレージを管理すること。入力の例は、宣言型インフラストラクチャプロビジョニング設定ファイルおよび入力状態ファイルである。典型的な出力は、最終状態ファイルである。 - Managing binary artifact storage for declarative provisioning artifacts used for input and output during declarative infrastructure provisioning. Examples of inputs are declarative infrastructure provisioning configuration files and input state files. A typical output is the final state file.

・任意の所与の実行について、CIOSエクセキュータからのワークおよびCIOSエクセキュータからの結果についてのポーリングを要求すること。 • For any given execution, request polling for work from the CIOS executor and results from the CIOS executor.

いくつかの例では、CIOSフロントエンドは、実際の実行を処理することができるCIOSエクセキュータに依存し得る。いくつかの例では、CIOSエクセキュータは、「実行」のレベルで動作し、それは以下を実行することができる。 In some examples, the CIOS front end may rely on the CIOS executor, which can handle the actual execution. In some examples, the CIOS executor operates at the "execution" level, which can do the following:

・利用可能なワーカノードのプールを追跡すること
・入来するジョブ要求に照会して、それらを利用可能であるとして、資格のあるワーカに割り当てること
・クライアントに報告するためにワーカステータスおよび実行更新を追跡すること
・リースプロトコルによってデッドノードを検出し、タスクステータスに応じて、デッドノードに割り当てられたタスクを失敗させ得ること
・実行をキャンセル/強制終了/一時停止/再開するための機能を提供し、それらを、キャンセル/強制終了/再開情報をワーカノードに渡すための機能にマッピングし得ること
いくつかの例では、CIOSエクセキュータは、CIOSワーカに依存することが可能であり、このCIOSワーカは、実行のためのタスクをワーカに割り当て、ワーカがジョブ進捗を更新するための機能を提供することが可能である。ワーカサービスは、「タスク」の粒度で動作する。各ワーカは、そのワーカに割り当てられたタスクを実行してタスクステータスおよび出力を報告するエージェントである。各ワーカは、以下を実行することができる。
Tracking the pool of available worker nodes Queries incoming job requests and assigns them as available to eligible workers Worker status and execution updates for reporting to clients Detect dead nodes via a leasing protocol and, depending on the task status, can fail tasks assigned to dead nodes Provide functions to cancel/kill/pause/resume execution , that they may be mapped to functions for passing cancel/kill/resume information to worker nodes. In some examples, a CIOS executor may depend on a CIOS worker, which may It is possible to assign tasks to workers for execution and provide functions for workers to update job progress. Worker services operate at the granularity of "tasks". Each worker is an agent that performs tasks assigned to that worker and reports task status and output. Each worker can do the following:

・割り当てられたワークアイテムについてエクセキュータワーカAPIをポーリングし、割り当て状態をそのローカル状態と一致させるためのアクションを行うこと
ローカルに存在しないタスクアイテムのポーリングのためのコンテナを開始すること
対応する割り当てられたタスクアイテムを持たないコンテナをローカルで実行するためのコンテナを強制終了すること
・ジョブのステータスを報告すること
・ジョブコンテナ実行のためのステージ入出力を行うこと
・実行ターゲットのリリースの実際のワークを行うための宣言型インフラストラクチャプロビジョニングコンテナの起動および監視を行うこと
CIOSワーカは、CIOSエクセキュータからのワークをポーリングし結果をCIOSエクセキュータのワーカエンドポイントに報告するために、CIOSエクセキュータに依存し得る。ワーカは、全ての連携についてエクセキュータに依拠し得る。さらに、CIOSワーカは、地域CIOS202にも依存可能であり、地域CIOS202では、ワーカサービスは、地域フロントエンドサービスに関連する1つ以上のAPIからの入力を読み取って、これらの1つ以上のAPIへの出力を書き込む。入力の例は、設定および開始状態ファイル、ならびにマッピングのインポートである。出力の例は、宣言型プロビジョニングプロセス、宣言型プロビジョニング状態ファイルの出力、および結果状態のインポートである。
Poll the execute worker API for assigned work items and take action to match the assignment state with its local state Start a container for polling task items that do not exist locally Corresponding assignments Killing containers for running containers locally that do not have task items assigned to them Reporting job status Doing stage input/output for job container execution Start and monitor declarative infrastructure provisioning containers to do work. CIOS Workers to the CIOS Executor to poll for work from the CIOS Executor and report the results to the CIOS Executor's worker endpoint. can depend. A worker can rely on an executor for all collaborations. In addition, CIOS workers can also depend on regional CIOS 202, where worker services read input from one or more APIs related to regional front-end services and send them to these one or more APIs. Write the output of Examples of inputs are configuration and starting state files, and importing mappings. Examples of outputs are the declarative provisioning process, declarative provisioning state file output, and result state imports.

いくつかの例では、地域CIOS202は、CIOSの地域インスタンス/デプロイメントを管理するための地域サービスであり得る。地域CIOS202は、特定の地域に関連するプランおよび状態を正式に格納して管理する責務をカバーする。地域DB204は、その特定の地域における状態およびプランのためのCIOS DBであり得る。これは、図1の中央DB118の地域のサブセットの正式なコピーである。スケジューラ206は、ワーカフリート容量の管理、タスクのワーカへの割り当て、およびタスク状態の経過の追跡を担当することができる。いくつかの例では、タスクDB208は、タスク状態のための別のCIOS DBである。このDBの中のデータは、大部分が動作目的である。さらに、ワーカ210は、宣言型プロビジョニングイメージを管理するjava仮想マシン(JVM)のフリートであり得る。これらは、スケジューラ206から命令を受信して、結果をスケジューラ206と地域CIOS202との両方に伝達する。CIOSコンテナ212は、それ自体のプライベートドッカー214コンテナにおいて宣言型プロビジョニングアクションを実行することができる。このコンテナは、機密事項を含んでいなくてもよい。さらに、いくつかの例では、署名プロキシ216は、宣言型プロビジョニングイメージに機密事項を入れることを回避するために、宣言型プロビジョニングツールによって機密事項の流出を防止するように構成可能である。その代わりに、CIOSは、署名の要求を実行可能である、またはプロキシにおいて相互トランスポート層セキュリティ(mTLS)サービスを開始可能である。これによって、FIPSに準拠した暗号ライブラリの使用が容易になる。 In some examples, regional CIOS 202 may be a regional service for managing regional instances/deployments of CIOS. Regional CIOS 202 covers responsibility for formally storing and managing plans and states associated with a particular region. Regional DB 204 may be a CIOS DB for conditions and plans in that particular region. This is a formal copy of the regional subset of central DB 118 of FIG. The scheduler 206 may be responsible for managing worker fleet capacity, assigning tasks to workers, and tracking the progress of task states. In some examples, task DB 208 is another CIOS DB for task states. The data in this DB is mostly operational. Additionally, workers 210 can be a fleet of java virtual machines (JVMs) that manage declaratively provisioned images. They receive instructions from scheduler 206 and communicate results to both scheduler 206 and regional CIOS 202 . The CIOS container 212 can perform declarative provisioning actions in its own private docker 214 container. This container may not contain confidential information. Further, in some examples, signing proxy 216 is configurable to prevent exfiltration of secrets by declarative provisioning tools to avoid putting secrets in declaratively provisioned images. Alternatively, the CIOS can perform the signature request or initiate a Mutual Transport Layer Security (mTLS) service at the proxy. This facilitates the use of FIPS compliant cryptographic libraries.

いくつかの例では、中央CIOS102は、地域CIOS202を呼び出して、プランを作成し、承認をプッシュし、ジョブステータス(サービスプリンシパル)を注視し、宣言型プロビジョナ状態(サービスプリンシパル)を抽出することができる。イングレスプロキシ218は、ACLとして構成可能であり、さまざまなアイデンティティポリシが認証と認可との両方に使用され得る。いくつかの例では、地域CIOS202は、スケジューラ206にそのようにするように求めることによって、宣言型プロビジョナを実行し得る。ワーカ210は、それが何を実行しているはずであるかをスケジューラ206に尋ねることができ、完了するとステータスをスケジューラ206に報告することができる。場合によっては、mTLSが地域CIOS202およびワーカ210についての認証と認可との両方を処理してもよい。さらに、ワーカ210は、宣言型プロビジョナを実行する必要がある場合には、ローカルドッカー214と対話することによって、ドッカーコンテナにおいて宣言型プロビジョナを実行する。このフェーズでの認証は、ローカルunix(登録商標)ソケットによって処理可能である。この最後のステップではドッカープロトコルが使用されてもよいが、前のステップではHTTPSが利用されてもよい。 In some examples, the central CIOS 102 can call the regional CIOS 202 to create plans, push approvals, watch job status (service principal), and extract declarative provisioner state (service principal). . Ingress proxy 218 can be configured as an ACL and various identity policies can be used for both authentication and authorization. In some examples, regional CIOS 202 may run a declarative provisioner by asking scheduler 206 to do so. Worker 210 can ask scheduler 206 what it should be doing and report status to scheduler 206 when complete. In some cases, mTLS may handle both authentication and authorization for regional CIOS 202 and workers 210 . Additionally, workers 210 run declarative provisioners in docker containers by interacting with local docker 214 when they need to run declarative provisioners. Authentication in this phase can be handled by a local unix socket. The Docker protocol may be used in this last step, while HTTPS may be utilized in the previous steps.

いくつかの例では、CIOSコンテナ212は、宣言型プロビジョナが署名プロキシ216と(APIを介して)対話することを可能にし、この宣言型プロビジョナは、それがさまざまなCIOSサービスを呼び出していると考える。署名プロキシ216は、宣言型プロビジョナのみが知っている、宣言型プロビジョナのインスタンスの呼び出し当たり1つのエフェメラルポート上で聞く。署名プロキシ216は、署名またはmTLSの要求を開始することができ、宣言型プロビジョナの呼び出しをサービスエンクレーブ内の他のCIOSサービスに渡すことができる。いくつかの例では、署名プロキシ216は、1つ以上のパブリックCIOSサービス220と通信することもできる。たとえば、署名プロキシ216は、可能であればパブリックサービスの内部エンドポイントを使用する。内部エンドポイントを持たないサービスでは、外部エンドポイントに到達するためにエグレスプロキシ222を使用しなければならない。この署名プロキシ216の使用は、地域横断的な通信のためのものではない場合がある。たとえば、各地域のエグレスプロキシホワイトリストは、その地域のパブリックIP範囲のためだけのものでもよい。いくつかの例では、ワーカ210は、次に、地域CIOS202における宣言型プロビジョナからの状態およびログを、中央CIOS102に流出させ得るように、それらの状態およびログを維持し得る。 In some examples, the CIOS container 212 allows a declarative provisioner to interact (via an API) with the signing proxy 216, which the declarative provisioner thinks is calling various CIOS services. . The signing proxy 216 listens on one ephemeral port per invocation of an instance of a declarative provisioner, known only to the declarative provisioner. The signing proxy 216 can initiate signature or mTLS requests and can pass declarative provisioner calls to other CIOS services within the service enclave. In some examples, signing proxy 216 may also communicate with one or more public CIOS services 220 . For example, signing proxy 216 uses internal endpoints of public services whenever possible. Services that do not have internal endpoints must use egress proxy 222 to reach external endpoints. This use of signing proxy 216 may not be for cross-regional communications. For example, each region's egress proxy whitelist may be only for that region's public IP ranges. In some examples, workers 210 may maintain state and logs from declarative provisioners in regional CIOS 202 such that they may then be flushed to central CIOS 102 .

CIOSを使用して、代表的なカスタマエクスペリエンスにはいくつかのフェーズ、すなわちオンボーディング、リリース前、世界規模のリリースおよび戦術的なリリースがある。リリース前フェーズの場合、以下は、新しいアーティファクトの構築とアーティファクトのリリース1(たとえば、R1)へのリリースとの間で起こることの一例である。これは、現在の変更管理プロセスの一部または大半に取って代わるものでなければならない。関連するアーティファクトが構築されると、CIOSは、「フロック内の全ての最新バージョン」を使用して自動的にリリースを生成することができる。リリースは、特定の入力(たとえば、アーティファクトバージョン、領域、地域およびad)を有するフロックコンフィグの特定のバージョンである。リリースは、地域当たり1つのロールフォワードプランと、地域順序付けを記載するメタデータとを含む。各地域プランは、宣言型プロビジョナがその地域においてフロック設定を実現するのに行うであろう一組の動作である。リリース前環境を有するチームは、CIOSを使用して、上記の環境においてソフトウェアを自動的にリリースし、テストすることができる。チームは、ロールバックプランを自動的にテストするようにCIOSを構成することができる。チームは、CIOS UIを介してリリースを調べて承認することが可能になる。チームは、リリース内の地域プランの一部(しかしながら、全てではない)を承認することができる。「全てのものの最新バージョン」が好適なプランをもたらさない場合には、チームは、チェリーピックされたアーティファクトバージョンのためのプランを生成するように、CIOSに求めることができる。 With CIOS, a typical customer experience has several phases: onboarding, pre-release, worldwide release and tactical release. For the pre-release phase, the following is an example of what happens between building a new artifact and releasing the artifact to Release 1 (eg, R1). This should replace some or most of the current change management process. Once the relevant artifacts are built, CIOS can automatically generate a release using the "latest version of everything in the block". A release is a specific version of a flock config with specific inputs (eg, artifact version, region, region and ad). A release contains one roll-forward plan per region and metadata describing the region ordering. Each regional plan is a set of actions that the declarative provisioner will perform to implement the floc configuration in that region. Teams with pre-release environments can use CIOS to automatically release and test their software in these environments. Teams can configure CIOS to automatically test rollback plans. Teams will be able to review and approve releases via the CIOS UI. Teams can approve some (but not all) of the regional plans within a release. If "latest version of everything" does not yield a suitable plan, the team can ask CIOS to generate a plan for the cherry-picked artifact version.

世界規模のリリースのフェーズの場合、以下は、チームが今日の「通常のCM」の明日のバージョンをどのように実行するかの一例である。リリースが承認されると、CIOSは、各々の承認された地域プランをそれぞれの地域にプッシュする。CIOSは、承認されたプランを適用するように各地域内で独立して動作する。CIOSは、その地域のプランに明示的に記載された一組のアクションを実行するのみである。「独立して考える」のではなく、それは失敗することになる。CIOS UIは、チームに実行の進捗を示す。CIOS UIは、手動承認が要求される場合にチームに促す。CIOSまたはダウンストリームサービスにおける停止のために実行が失敗すると、CIOSは、チームに通知することができ、チームに次のステップ(たとえば、アボート、再試行)を促すことができる。CIOSは、再試行を実行するが、ダウンストリームシステムの停止の中には、その再試行の意思を超えるものもある。サービス正常性の低下またはテストの失敗のために実行が失敗すると、CIOSは、フロックをその開始状態にロールバックすることによってチームを支援する。CIOSは、自動ロールバックを開始するとチームに通知(たとえば、ページング)する。チームは、ロールバックプランを承認しなければならず、次に、CIOSはそれを実行する。 For the worldwide release phase, the following is an example of how the team will execute tomorrow's version of today's "regular CM". Once the release is approved, CIOS pushes each approved regional plan to their respective regions. CIOS operates independently within each region to enforce the approved plans. The CIOS only performs the set of actions explicitly listed in the local plan. Instead of 'thinking independently', it will fail. The CIOS UI shows the execution progress to the team. The CIOS UI will prompt the team if manual approval is required. If an execution fails due to an outage in CIOS or a downstream service, CIOS can notify the team and prompt the team for next steps (eg, abort, retry). The CIOS performs retries, but some downstream system outages exceed its retry intentions. If the execution fails due to poor service health or failed tests, the CIOS assists the team by rolling back the block to its starting state. The CIOS will notify (eg, page) the team when it initiates an automatic rollback. The team must approve the rollback plan, which CIOS then implements.

戦術的なリリースのフェーズの場合、以下は、チームが「突発的なCM」の明日のバージョンをどのように実行できるかの一例である。プランを生成する際、チームは、いくつかの方法で、すなわちトポロジ的に(たとえば、領域、地域、ADなど)、リソースタイプ(たとえば、「メトリクスコンフィグのみ」または「デプロイメントオーケストレーションサービスのデプロイメントのみ」など)ごとに、または上記の組み合わせで(たとえば、選言的な態様で)、プランを特定のリソースに向けるようにCIOSに求め得る。チームは、世界規模のリリースと同様に戦術的なリリースを承認する。CIOSは、それらを同様にオーケストレーションする。アクティブな世界規模のリリースがある間にチームが戦術的なリリースをデプロイする必要がある場合、CIOSは、対象となる地域における世界規模のリリースの実行を停止して、次に戦術的なリリースの実行を開始する。 For the tactical release phase, the following is an example of how a team could run tomorrow's version of a "Burst CM". When generating a plan, the team can, in several ways, i.e., topologically (e.g., region, region, AD, etc.), resource types (e.g., "metrics configuration only" or "deployment orchestration service deployment only"). etc.), or a combination of the above (eg, in a disjunctive manner), may ask the CIOS to direct plans to specific resources. The team approves tactical releases as well as global releases. CIOS orchestrates them as well. If a team needs to deploy a Tactical Release while there is an active Worldwide Release, CIOS will stop the execution of the Worldwide Release in the target region and then proceed with the Tactical Release. Start execution.

いくつかの例では、宣言型プロビジョナの状態(たとえば、従来はファイル)は、宣言型プロビジョナによって管理される一組のリソースの正式な記録である。それは、コンフィグからの各リソースの論理識別子とリソースの実際の識別子との間のマッピングを含む。宣言型プロビジョナがリソースを作成する際、ある種類の障害が発生すると、実際の識別子の状態への記録が妨げられることがある。これが起こると、実際の識別子は宣言型プロビジョナから失われる。これらは、「オーファンリソース(orphaned resources)」と呼ばれることがある。 In some examples, a declarative provisioner's state (eg, traditionally a file) is a formal record of a set of resources managed by the declarative provisioner. It contains a mapping between each resource's logical identifier from the config and the resource's actual identifier. When a declarative provisioner creates a resource, certain kinds of failures can prevent the actual identifier from being recorded into the state. When this happens, the actual identifier is lost from the declarative provisioner. These are sometimes called "orphaned resources".

ほとんどのリソースの場合、オーファンは無駄を意味する。宣言型プロビジョナは、(たとえば)忘れていたインスタンスを起動して、次にそれが実行されるときには代わりに別のインスタンスを起動することになる。一意性制約またはクライアントによって供給される識別子を有するリソースの場合、オーファンによって、宣言型プロビジョナの前進が妨げられる。たとえば、宣言型プロビジョナがユーザ「nglass」を作成し、失敗によってそれをオーファンにした場合、宣言型プロビジョナの次回の実行は、そのユーザ名を有するユーザが既に存在しているため、「nglass」を作成しようとして失敗することになる。場合によっては、オーファンが問題になるのは、新しいリソースを状態に追加する場合のみである。いくつかの例では、宣言型プロビジョナのリフレッシュ挙動は、更新と削除の記録の失敗から自然に回復することがある。 For most resources, orphans mean waste. A declarative provisioner will (for example) start the forgotten instance and then start another instance instead the next time it runs. For resources with uniqueness constraints or client-supplied identifiers, orphans prevent declarative provisioners from advancing. For example, if the declarative provisioner creates the user 'nglass' and orphans it by failure, the next run of the declarative provisioner will run 'nglass' because a user with that username already exists. will fail when trying to create a In some cases, orphans only matter when adding new resources to the state. In some instances, the refresh behavior of declarative provisioners may recover naturally from failures to record updates and deletes.

CIOSは、ダウンストリームサービスの停止またはCIOS自体の停止が起きた場合でも、ロバストでなければならない。CIOSは、宣言型プロビジョナを活用して変更を適用することができるので、これは、宣言型プロビジョナを実行して宣言型プロビジョナ状態を維持することに関してロバストでなければならないことを意味する。宣言型プロビジョナプロバイダは、数分間にわたって続く停止を回避するのに十分な「小規模の」再試行を実行する。たとえば、クラウドプロバイダは、最大で30分間、再試行を実行する。30分よりも長くダウンストリームシステムが停止すると、宣言型プロビジョナは失敗する。宣言型プロビジョナは、失敗すると、成功した全ての変更を状態に記録し、終了する。再試行のために、CIOSは、宣言型プロビジョナを再実行する必要がある。宣言型プロビジョナを再実行することにより、CIOS自体が失敗した場合にCIOSは再試行を実行することができる。いくつかの例では、CIOSは、以下の動作をループで実行することができる。 The CIOS must be robust even in the event of downstream service outages or outages of the CIOS itself. Since CIOS can leverage declarative provisioners to apply changes, this means that it must be robust with respect to executing declarative provisioners and maintaining declarative provisioner state. The Declarative Provisioner provider performs enough "small" retries to avoid outages lasting several minutes. For example, the cloud provider performs retries for up to 30 minutes. Declarative provisioners will fail if the downstream system is down for longer than 30 minutes. If the declarative provisioner fails, it records all successful changes to state and exits. To retry, CIOS needs to rerun the declarative provisioner. Rerunning the declarative provisioner allows the CIOS to perform retries if the CIOS itself fails. In some examples, the CIOS may perform the following operations in a loop.

・リフレッシュ:宣言型プロビジョナは、「APIを取得」を呼び出して、その状態に記載されているあらゆるリソースの新しいスナップショットを検索する。 Refresh: The declarative provisioner calls Get API to retrieve new snapshots of any resources listed in its state.

・プラン:宣言型プロビジョナは、最近リフレッシュされた現在の状態を考慮して、所望の状態を実現するプラン(具体的な一組のAPI呼び出し)を生成する。 • Plan: The Declarative Provisioner generates a plan (a concrete set of API calls) that achieves the desired state given the current, recently refreshed state.

・適用:宣言型プロビジョナは、プランにおいて一組のステップを実行する。
CIOSは、宣言型プロビジョナを実行する際に、これらのステップのうちの3つ全てを常に実行し得る。リフレッシュ動作は、記録されなかったいかなる更新または削除からの回復も支援する。CIOSは、プラン動作の結果を調べて、それを承認されたリリースプランと比較する。新たに生成されたプランが、承認されたリリースプランにはなかった動作を含む場合、CIOSは、失敗し、サービスチームに通知される可能性がある。
• Apply: A declarative provisioner executes a set of steps in a plan.
CIOS may always perform all three of these steps when running the declarative provisioner. A refresh operation helps recover from any unrecorded updates or deletions. The CIOS examines the results of the plan operation and compares it with the approved release plan. If the newly created plan contains actions that were not in the approved release plan, the CIOS may fail and notify the service team.

図3は、フロック302の例を説明するための有向非巡回グラフ(DAG)300を示す図である。CIOSにおける一つのフロックコンフィグについて、チェックインから本番までのコード/コンフィグの進捗は、最初のテストデプロイメントから最後のprodデプロイメントまですべて記載することができる。CIOSでは内部的に、進捗における各要素を実行ターゲット(ET)と呼ぶ。これは、我々の内部API全体にわたるが、フロックコンフィグに漏れることはない。CIOSは、フロックコンフィグに定義されたDAG200に基づいてETを実行する。各ET(たとえば、ET-1,ET-2,ET-3,ET-4,ET-5,ET-6およびET-7)は、大まかに言って、フロックコンフィグによって記載されるサービスの1つのコピーである。 FIG. 3 is a diagram showing a directed acyclic graph (DAG) 300 for explaining an example of a block 302. As shown in FIG. For one block config in CIOS, the code/config progress from check-in to production can be described all the way from the first test deployment to the last prod deployment. CIOS internally calls each element in a progress an execution target (ET). This goes all over our internal API, but doesn't leak into the flock config. CIOS executes ET based on the DAG 200 defined in the flocconfig. Each ET (eg, ET-1, ET-2, ET-3, ET-4, ET-5, ET-6 and ET-7) is, broadly speaking, one of the services described by FlockConfig. is a copy.

図4は、フロック402の例を説明するためのDAG400を示す図である。フロックコンフィグにおいて、CIOSは、チームがこの進捗をどのように表現するかについて非常に独断的である。チームは、クラウドインフラストラクチャテナンシおよび地域を使用して、それをモデル化しなければならない。チームは、領域を使用して進捗をモデル化すべきではない。CIOSは、チームが領域内の多くのテナンシおよびテナンシ内の多くの地域を使用することを許可する。しかしながら、CIOSは、チームが同じ地域を1つのテナンシ内で2回使用することを認めていない(ただし、異なるテナンシにおいて1つの領域内で同じ地域を2回使用することは可能である)。DAG400は、テナンシおよび地域と共に表された、図3からのDAG300のあるバージョンを示している。この例は、prod前ETがprod地域内にあるオーバーレイサービスのためのものである。サービスエンクレーブサービスは、リリース1の中に不安定なテナンシおよび安定したテナンシを有するであろう。DAG400では、IADは、ワシントンDCにおけるダレス空港の地方空港コードであり、YYZは、オンタリオ州トロントの地方空港コードであり、PHX、LHRおよびFRAはそれぞれ、フェニックス、ロンドンおよびフランクフルトの地方空港コードであり、LUFおよびLFIは、2つの異なる空軍基地のものである。 FIG. 4 is a diagram showing a DAG 400 for explaining an example of the block 402. As shown in FIG. In flocconfig, CIOS is very arbitrary about how the team expresses this progress. Teams must model it using cloud infrastructure tenancies and regions. Teams should not use areas to model progress. CIOS allows teams to use many tenancies within a region and many regions within a tenancy. However, CIOS does not allow teams to use the same region twice within one tenancy (although it is possible to use the same region twice within one region in different tenancies). DAG 400 shows a version of DAG 300 from FIG. 3 represented with tenancy and region. This example is for an overlay service where the pre-prod ET is within the prod region. A service enclave service will have an unstable tenancy and a stable tenancy in Release 1. In DAG400, IAD is the local airport code for Dulles Airport in Washington DC, YYZ is the local airport code for Toronto, Ontario, and PHX, LHR and FRA are the local airport codes for Phoenix, London and Frankfurt respectively. , LUF and LFI are from two different air force bases.

一実施形態において、本明細書に記載されているCIOSおよび/または他の技術は、Terraform(宣言型プロビジョニングツール)、Tanden(コード生成ツール)およびODO(Oracle Deployment Orchestrator)の各々に対する改良である。さらに、いくつかの例では、本明細書に記載されているCIOSおよび/または他の技術は、Terraform、TandenおよびODOツールの少なくとも一部を使用して実現することができる。 In one embodiment, CIOS and/or other technologies described herein are improvements to each of Terraform (a declarative provisioning tool), Tanden (a code generation tool), and ODO (Oracle Deployment Orchestrator). Further, in some examples, CIOS and/or other techniques described herein may be implemented using at least some of the Terraform, Tanden and ODO tools.

いくつかの例では、安全プランは、ドリフトを安全に取り扱うために生成され得る。設定ファイルは、CIOSがどのように地域(たとえば、クラウドインフラストラクチャが設定される(または既に設定されている)地理的地域)に変更を行うかを指示する情報を含み得る。CIOSは、変更セット(たとえば、クラウドインフラストラクチャの現在の状態と変更後の予想される新しい状態との間の差分)としてクライアントがレビューしたものが地域内で実際に変更されることを検証することができる。クライアントがCIOSと対話して世界規模のプランを生じさせる場合、安全プランは、設定ファイルに記述された世界(たとえば、ターゲット状態)に到達するために、今の世界(たとえば、現在の状態)に基づいてCIOSによってどのような変更が行われると予想されるかを特定する。本明細書で説明されるように、「世界」は、クラウドセットアップの全ての設定および構成を含む、クラウドインフラストラクチャの予期される状態を指す場合もある。場合によっては、ドリフトは、プランが生成される時間と地域のデプロイメントが始まる時間との間で、1つ以上のデバイス構成/設定が変化している可能性があるという考えである(たとえば、仮想マシンは、故障している可能性がある)。その変化がドリフトである。CIOSは、安全プランを作成し、それを世界中でさまざまな地域に送ることができる(たとえば、さまざまな異なる地域CIOSに送信する)。CIOSが変更を実施しようとしているときはいつでも、計画タスクを繰り返すことができる。たとえば、現在の状態を予想することができ、目標状態と比較することができ、2つの間のdiff(たとえば、差分(delta, differenceなど))を生成することができる。そのdiffが安全プランのサブセットである場合、ドリフトは発生しておらず、安全プランを依然として実施することができる。そうでなければ、安全プランに関する問題が検出されており、デプロイメント前に変更を行う必要がある。くわえて、いくつかの例では、CIOSは、(たとえば、フェーズ変化を扱うために)異なる安全プランを比較することができる。たとえば、フェーズへのデプロイメント(たとえば、他のフェーズの前に第1のフェーズにリソースをデプロイする)に関して、安全プランは、検討され承認されてもよく、したがって、デプロイメントが実行されてもよい。次に、後で、フェーズ2のデプロイメントのために、新しい安全プランが生成され、第1の安全プランと比較され得る。新しい安全プランが第1の安全プランのサブセットである場合、新しい安全プランは、設定ファイルを生成したクライアントに何も送信することなく自動的に承認され得る。これにより、新しい安全プランの承認を待つことに関連して遅延が導入されないため、デプロイメントプロセスを加速できるが、このような状況ではドリフトが発生していないため、デプロイメントの完全性も維持されることが理解されるであろう。代替的に、新しい安全プランに新規なもの(たとえば、第1の安全プランには存在しないもの)がある場合、その新規な態様は、ユーザインターフェイス(UI)を介してユーザ(たとえば、クライアント)に提示することができる。次に、ユーザは、新規の態様を承認または拒否する(たとえば、デプロイメント変更が生じることを可能にするか、または可能にしない)ことができる。 In some examples, a safety plan may be generated to handle drift safely. The configuration file may contain information that dictates how the CIOS makes changes to the region (eg, the geographic region in which the cloud infrastructure is (or has already been) set). CIOS validates that what the client has reviewed as a change set (e.g., the delta between the current state of the cloud infrastructure and the expected new state after the change) is actually changed within the region can be done. When a client interacts with the CIOS to generate a global plan, the safety plan must change the current world (e.g. current state) to reach the world described in the configuration file (e.g. target state). Identify what changes are expected to be made by the CIOS based on As described herein, "world" may also refer to the expected state of the cloud infrastructure, including all settings and configurations of the cloud setup. In some cases, drift is the idea that one or more device configurations/settings may have changed between the time the plan was generated and the time the regional deployment began (e.g., virtual machine may be broken). That change is the drift. The CIOS can create a safety plan and send it to different regions around the world (eg, send it to different regional CIOS). The planning task can be repeated whenever the CIOS is about to implement a change. For example, a current state can be predicted, compared to a target state, and a diff (eg, delta, difference, etc.) between the two can be generated. If that diff is a subset of the safety plan, no drift has occurred and the safety plan can still be implemented. Otherwise, a problem with the safety plan has been detected and changes must be made prior to deployment. Additionally, in some examples, the CIOS can compare different safety plans (eg, to handle phase changes). For example, for deployment into phases (eg, deploying resources in a first phase before other phases), a safety plan may be reviewed and approved, and deployment may be performed accordingly. A new safety plan can then be generated and compared with the first safety plan later for Phase 2 deployment. If the new safety plan is a subset of the first safety plan, the new safety plan can be automatically approved without sending anything to the client that generated the configuration file. This accelerates the deployment process as no delays are introduced associated with waiting for approval of new safety plans, but also maintains the integrity of the deployment as drift has not occurred in this situation. will be understood. Alternatively, if there is something new in the new safety plan (e.g., something not present in the first safety plan), the new aspects are presented to the user (e.g., client) via a user interface (UI). can be presented. The user can then approve or reject the new aspect (eg, allow or disallow deployment changes to occur).

インフラストラクチャオーケストレーションサービスを実行するための技術について説明する。いくつかの例では、デプロイメント設定ファイルに少なくとも部分的に基づくリソースと動作とのリストを含む安全プランが受信され得る。安全プランの承認を受信すると、リソースのリストの少なくとも1つに対応する動作が実行されるように準備され得る。動作は安全プランと比較され得る。動作が安全プランの一部であると判断された場合、動作が実行され得る。動作が安全プランの一部でないと判断された場合、デプロイメントは停止され得、デプロイメントが安全プランに準拠していないという通知が送信され得る。いくつかの例では、ドリフトが生じている場合、動作は安全プランの一部でなくてもよい。 Techniques for running infrastructure orchestration services are described. In some examples, a safety plan may be received that includes a list of resources and actions based at least in part on a deployment configuration file. Upon receiving approval of the safety plan, actions corresponding to at least one of the list of resources may be arranged to be performed. Actions can be compared to a safety plan. If the action is determined to be part of the safety plan, the action may be performed. If it is determined that the operation is not part of the safety plan, the deployment can be stopped and a notification can be sent that the deployment does not comply with the safety plan. In some instances, if drift is occurring, action may not be part of the safety plan.

他の例では、コンピュータ読取可能記憶媒体は、プロセッサによって実行されると、プロセッサに本明細書で説明するさまざまな動作を実行させることが可能な命令を含み得る。デプロイメント設定ファイルに基づくリソースと動作とのリストを含み得る安全プランが受信され得る。安全プランの承認が受信され得る。デプロイメント設定ファイルに従ったリソースのリストの少なくとも1つに対応する動作が、実行されるように準備され得る。動作は、安全プランと比較され得る。動作が安全プランの一部であると判断された場合、動作を実行することができる。動作が安全プランの一部でないと判断された場合、デプロイメントは停止され得、デプロイメントが安全プランに準拠していないという通知が送信され得る。 In another example, a computer-readable storage medium may contain instructions that, when executed by a processor, can cause the processor to perform various operations described herein. A security plan may be received that may include a list of resources and actions based on the deployment configuration file. Approval of the safety plan may be received. An action corresponding to at least one of the list of resources according to the deployment configuration file may be arranged to be performed. Actions can be compared to a safety plan. If the action is determined to be part of the safety plan, the action can be taken. If it is determined that the operation is not part of the safety plan, the deployment can be stopped and a notification can be sent that the deployment is not compliant with the safety plan.

]さらに別の例では、システムは、プロセッサと、プロセッサによって実行されると、本明細書で説明する動作を実行するようにシステムを構成することが可能な命令を記憶することが可能なメモリとを備え得る。デプロイメント設定ファイルに少なくとも部分的に基づくリソースと動作とのリストを含み得る安全プランが受信され得る。安全プランの承認が受信され得る。承認に基づいて、リソースのリストの少なくとも1つに対応する動作が実行されるように準備され得る。動作は安全プランと比較され得る。動作が安全プランの一部であると判断された場合、動作を実行することができる。動作が安全プランの一部でないと判断された場合、デプロイメントは停止され得、デプロイメントが安全プランに準拠していないという通知が送信され得る。 ] In yet another example, a system includes a processor and a memory capable of storing instructions that, when executed by the processor, configure the system to perform the operations described herein. can be provided. A security plan may be received that may include a list of resources and actions based at least in part on the deployment configuration file. Approval of the safety plan may be received. Based on the approval, an action corresponding to at least one of the list of resources can be arranged to be performed. Actions can be compared to a safety plan. If the action is determined to be part of the safety plan, the action can be taken. If it is determined that the operation is not part of the safety plan, the deployment can be stopped and a notification can be sent that the deployment does not comply with the safety plan.

他の例では、方法は、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とを含むリストの安全プランを受信することを含み得る。方法はさらに、安全プランの承認の指示の受信に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行うことを備え得る。方法はさらに、動作を安全プランと比較することを備え得る。方法はさらに、動作が安全プランの一部であるという判断に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、動作を実行することを備え得る。方法はさらに、動作が安全プランの一部でないという判断に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメントを停止することと、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメントが安全プランに準拠していないという通知を送信することとを備え得る。 In another example, the method may include at least one of the plurality of computer processors receiving a list of safety plans including resources and respective actions based at least in part on the deployment configuration file. The method may further comprise preparing at least one of the plurality of computer processors to perform operations corresponding to at least one of the list of resources according to the deployment configuration file upon receiving the indication of approval of the safety plan. . The method may further comprise comparing the action to a safety plan. The method may further comprise at least one of the plurality of computer processors performing the action in accordance with the determination that the action is part of the safety plan. The method further comprises: at least one of the plurality of computer processors halting deployment pursuant to a determination that the operation is not part of the safety plan; sending a notification of non-compliance.

他の例では、コンピュータ読取可能記憶媒体は、プロセッサによって実行されると、プロセッサに本明細書で説明するさまざまな動作を実行させることが可能な命令を含み得る。動作は、デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とのリストを含む安全プランを受信することを含み得る。動作はさらに、安全プランの承認の指示の受信に従って、配置設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行うことと、動作を安全プランと比較することとを含み得る。動作はさらに、動作が安全プランの一部であるという判断に従って、動作を実行することを含み得る。動作はさらに、動作が安全プランの一部でないという判断に従って、デプロイメントを停止することと、デプロイメントが安全プランに準拠していないという通知を送信することとを含み得る。 In another example, a computer-readable storage medium may contain instructions that, when executed by a processor, can cause the processor to perform various operations described herein. The actions may include receiving a safety plan that includes a list of resources and respective actions based at least in part on the deployment configuration file. The actions may further include preparing to perform an action corresponding to at least one of the list of resources according to the configuration file upon receiving the indication of approval of the safety plan, and comparing the action to the safety plan. . Actions may further include performing actions in accordance with the determination that the actions are part of the safety plan. The action may further include stopping the deployment upon determining that the action is not part of the safety plan and sending a notification that the deployment is not compliant with the safety plan.

他の例では、システムは、プロセッサと、プロセッサによって実行されると、本明細書で説明される動作を実行するようにシステムを構成することが可能な命令を記憶可能なメモリとを備え得る。動作は、デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とのリストを含む安全プランを受信することを含み得る。動作はさらに、安全プランの承認の指示の受信に従って、デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行うことを含み得る。動作はさらに、動作を安全プランと比較することを含み得る。動作はさらに、動作が安全プランの一部であるという判断に従って、動作を実行することを含み得る。動作はさらに、動作が安全プランの一部でないという判断に従って、デプロイメントを停止することと、デプロイメントが安全プランに準拠していないという通知を送信することとを含み得る。 In another example, the system may comprise a processor and a memory capable of storing instructions that, when executed by the processor, configure the system to perform the operations described herein. The actions may include receiving a safety plan that includes a list of resources and respective actions based at least in part on the deployment configuration file. The actions may further include preparing to perform actions corresponding to at least one of the list of resources according to the deployment configuration file upon receipt of the indication of approval of the safety plan. The action may further include comparing the action to a safety plan. The action may further include performing the action in accordance with the determination that the action is part of the safety plan. The action may further include stopping the deployment upon determining that the action is not part of the safety plan and sending a notification that the deployment is not compliant with the safety plan.

図5は、少なくとも1つの実施形態に係る、安全プランを生成および使用することができるCIOSを示すブロック図500である。いくつかの例では、安全プランは、ユーザによって承認され、かつCIOSによって実行可能である動作のセットであり得る。ブロック図500は、中央制御プレーン502および地域データプレーン504を含み得るCIOSのアーキテクチャの例を示す。中央制御プレーン502は、制御プレーン508、変更管理モジュール510、ビュー/プラン/承認モジュール512、および状態インジェスタ514を含み得る中央CIOS506(たとえば、図1の中央CIOS102と同様である)を含み得る。中央制御プレーン508およびビュー/プラン/承認モジュールモジュール512は、ユーザ518が中央CIOS506と通信するために使用することができるローカルエリアネットワーク(LAN)ゲートウェイ516に通信可能に結合され得る。ビュー/プラン/承認モジュールモジュール512および状態インジェスタ514は、地域データプレーン504に含まれる地域CIOS522(たとえば、図1の地域CIOS120または図2の地域CIOS202と同様である)に通信可能に結合され得るワイドエリアネットワーク(WAN)520(たとえば、インターネット)に通信可能に結合され得る。 FIG. 5 is a block diagram 500 illustrating a CIOS capable of generating and using safety plans in accordance with at least one embodiment. In some examples, a safety plan may be a set of actions that are approved by a user and executable by the CIOS. Block diagram 500 illustrates an example CIOS architecture that may include a central control plane 502 and a regional data plane 504 . Central control plane 502 may include central CIOS 506 (eg, similar to central CIOS 102 of FIG. 1), which may include control plane 508, change management module 510, view/plan/approval module 512, and state ingester 514. Central control plane 508 and view/plan/approval module module 512 may be communicatively coupled to a local area network (LAN) gateway 516 through which users 518 may communicate with central CIOS 506 . View/plan/approval module module 512 and state ingester 514 may be communicatively coupled to regional CIOS 522 included in regional data plane 504 (e.g., similar to regional CIOS 120 of FIG. 1 or regional CIOS 202 of FIG. 2). It may be communicatively coupled to an area network (WAN) 520 (eg, the Internet).

地域CIOS522は、スケジューラノード524およびワーカノード526に通信可能に結合され得る。ワーカ526は、タスクデータベース(DB)528に通信可能に結合され得るスケジューラ524に通信可能に結合され得る。ワーカ526は、CIOSコンテナ532を含み得るドッカー530に通信可能に結合され得る。CIOSコンテナ532は、クラウドサービス536に通信可能に結合され得る署名プロキシ534に通信可能に結合され得る。 Regional CIOS 522 may be communicatively coupled to scheduler node 524 and worker node 526 . Worker 526 may be communicatively coupled to scheduler 524 , which may be communicatively coupled to task database (DB) 528 . Worker 526 may be communicatively coupled to docker 530 , which may include CIOS container 532 . CIOS container 532 may be communicatively coupled to signing proxy 534 , which may be communicatively coupled to cloud service 536 .

地域CIOS522は、中央CIOS506からタスクを受信することができ、タスクをスケジューラ524に送信することができる。タスクは、CRUD動作を実行すること、または実行ターゲット(複数可)の地域にインフラストラクチャリソースをデプロイするための任意の他の適切なタスクを含み得る。スケジューラ524は、タスクをタスクDB528に記録することができ、ワーカフリートに含まれ得るワーカ526にタスクを送信することができる。ワーカフリートは、多くのワーカ526を含むことができ、スケジューラ524は、タスクを割り当てるのに最小量のワークまたは最大量の利用可能なコンピューティングリソースを有するワーカ526を選択することができる。スケジューラ524は、一度に1つのタスクをワーカ526に割り当てることができる。ワーカ526は、タスクを実行することができ、タスクを実行する際に、ワーカは、ドッカー530に含まれるCIOSコンテナ532に呼び出しを行うことができる。CIOSコンテナ532は、インフラストラクチャプロビジョニングおよび/またはデプロイメント命令(たとえば、Terraform命令)を含むタスクを実行することができる。命令は、APIコールをクラウドサービス536に向けることができ、クラウドサービス536は、パブリックネットワーク(たとえば、インターネット)を介して利用可能ではない可能性がある、地域が利用可能なサービスを含み得る。クラウドサービス536へのAPI呼び出しを行うために、CIOSコンテナ532は、API呼び出しを行う要求を署名プロキシ534に送信することが可能であり、署名プロキシ534は、要求が有効であるかどうかを判断することができる。要求が有効であると判断することに応答して、署名プロキシ534は、クラウドサービス536にAPI呼び出しを行い得る。 Regional CIOS 522 can receive tasks from central CIOS 506 and can send tasks to scheduler 524 . Tasks may include executing CRUD operations or any other suitable task for deploying infrastructure resources to the execution target(s) region. The scheduler 524 can log the task to a task DB 528 and can send the task to workers 526, which can be included in a worker fleet. A worker fleet can include many workers 526, and a scheduler 524 can select the worker 526 with the least amount of work or the greatest amount of available computing resources to assign a task. Scheduler 524 can assign tasks to workers 526 one at a time. Workers 526 can perform tasks, and in performing tasks, workers can make calls to a CIOS container 532 contained in Docker 530 . CIOS container 532 can perform tasks including infrastructure provisioning and/or deployment instructions (eg, Terraform instructions). The instructions may direct API calls to cloud services 536, which may include locally available services that may not be available over a public network (eg, the Internet). To make an API call to cloud service 536, CIOS container 532 can send a request to make the API call to signing proxy 534, which determines whether the request is valid. be able to. In response to determining that the request is valid, signing proxy 534 may make an API call to cloud service 536 .

いくつかの例では、ユーザ518は、地域データプレーン504内で実行する動作を含み得る設定ファイルを作成し得る。ユーザ518は、LANゲートウェイ516を介して、中央制御プレーン502に含まれるコンピューティングデバイスであり得る中央CIOS506に、設定ファイルを送信することができる。設定ファイルは、制御プレーン508において、またはビュー/プラン/承認モジュール512において、中央CIOS506によって受信され得る。変更管理モジュール510は、設定ファイルを、地域データプレーン504で使用することができる、地域に依存しない(region-agnostic:RA)設定ファイルにコンパイルすることができる。ビュー/プラン/承認モジュール512または状態インジェスタ514は、WANゲートウェイ520を介して、地域データプレーン504に含まれるコンピューティングデバイスであり得る地域CIOS522に、RA設定ファイルを送信し得る。 In some examples, user 518 may create a configuration file that may include actions to perform within regional data plane 504 . User 518 can send configuration files to central CIOS 506 , which can be a computing device included in central control plane 502 , via LAN gateway 516 . The configuration file may be received by central CIOS 506 at control plane 508 or at view/plan/approval module 512 . Change management module 510 can compile configuration files into region-agnostic (RA) configuration files that can be used by regional data plane 504 . View/plan/approval module 512 or state ingester 514 may send the RA configuration file via WAN gateway 520 to regional CIOS 522 , which may be a computing device included in regional data plane 504 .

地域CIOS522は、中央CIOS506からRA設定ファイルを受信することができ、地域CIOS522は、タスクを作成し、かつタスクをタスクDB528に送信することができるスケジューラ524に、RA設定ファイルを送信し得る。タスクは、実行ターゲットにおいて実行されるべき動作のセットをコンパイルすることを含んでもよく、実行ターゲットにおけるリソースの現在の状態を、実行ターゲットにおけるリソースの所望の状態と比較することを含み得る。タスクは、タスクを実行し得るワーカ526に送信され得る。タスクを実行する際に、ワーカ526は、承認された動作のセットである安全プランの作成を支援することができる。動作は、実行ターゲットにリソースをデプロイすること、または実行ターゲットにおいて実行するための任意の他の適切な動作を含み得る。ワーカ526は、WANゲートウェイ520を介して、安全プランを中央CIOS506に送信することができる地域CIOS522に、安全プランを送信することができる。 Regional CIOS 522 can receive RA configuration files from central CIOS 506 , and regional CIOS 522 can create tasks and send RA configuration files to scheduler 524 , which can send tasks to task DB 528 . A task may include compiling a set of operations to be performed on an execution target, and may include comparing a current state of a resource in the execution target with a desired state of the resource in the execution target. Tasks may be sent to workers 526 who may execute the tasks. In performing tasks, workers 526 can help create a safety plan, which is a set of approved actions. An action may include deploying a resource to an execution target, or any other suitable action for execution on an execution target. Workers 526 may transmit the safety plan to regional CIOS 522 , which may transmit the safety plan to central CIOS 506 via WAN gateway 520 .

中央CIOS506は、地域CIOS522から安全プランを受信し、安全プランに含まれる変更のセットを実行ターゲットにおける動作と比較し得る。変更管理モジュール510は、この比較を実行することができ、動作が安全プランの変更のセットのサブセットであること、または動作が安全プランの変更のセットのサブセットではないことという2つの判断のうちの1つを行うことができる。これら2つの判断のみが詳細に説明されるが、他の判断が行われてもよい(たとえば、変更のセットと安全プランとの間に何パーセントの差があるかなど)。動作が安全プランに含まれる変更のセットのサブセットであると判断したことに応答して、動作が実行されてもよく、これは実行ターゲットにリソースをデプロイすることを含んでもよい。動作が安全プランに含まれる変更のセットのサブセットではないと判断することに応答して、通知をユーザ518に送信することができる。通知は、LANゲートウェイ516を介してユーザ518に送信可能であり、ドリフトが生じているかもしれないこと、または実行ターゲットにおいて実行されるようにスケジュールされ得る動作が安全プランに含まれていないかもしれないことをユーザ518に警告する情報を含み得る。通知を見ることに応答して、ユーザ518は、安全プランに含まれない動作を承認または拒否することができる。ユーザ518が動作を承認する場合、動作が実行され、リソースが実行ターゲットにデプロイされ得る。ユーザ518が動作を拒否する場合、動作は実行されなくてもよく、ユーザ518は、新しい設定ファイルの作成を決定してもよい、または動作の放棄を決定してもよい。したがって、安全プランは、動作が安全プランに含まれる変更のセットのサブセットである場合に動作の実行を許可すること、または動作が安全プランに含まれる変更のサブセットでない場合に動作の実行を中断することのいずれかによって、デプロイメントプロセスを実行するプロセッサ(複数可)の機能を制御するデータ構造であると理解され得る。 The central CIOS 506 may receive the safety plan from the regional CIOS 522 and compare the set of changes contained in the safety plan with the actions on the execution targets. The change management module 510 can perform this comparison and make one of two determinations: that the action is a subset of the set of safety plan changes, or that the action is not a subset of the set of safety plan changes. You can do one. Although only these two decisions are detailed, other decisions may be made (eg, what percentage difference is there between the set of changes and the safety plan). An action may be performed in response to determining that the action is a subset of the set of changes contained in the safety plan, which may include deploying the resource to the execution target. A notification can be sent to the user 518 in response to determining that the action is not a subset of the set of changes included in the safety plan. A notification can be sent to the user 518 via the LAN gateway 516 that drift may have occurred or that an action that may be scheduled to be performed on the execution target may not be included in the safety plan. Information may be included to alert user 518 that there is no In response to viewing the notification, user 518 can approve or reject actions not included in the safety plan. If the user 518 approves the action, the action may be executed and the resource deployed to the execution target. If user 518 declines the action, the action may not be performed, user 518 may decide to create a new configuration file, or may decide to abandon the action. Thus, the safety plan either allows execution of the action if it is a subset of the set of changes contained in the safety plan, or aborts execution of the action if the action is not a subset of the changes contained in the safety plan. By either means, it can be understood to be a data structure that controls the functionality of the processor(s) executing the deployment process.

他の例では、ユーザ518は、地域のセットにおける実行ターゲットのセットのためのリソースの所望の状態を含み得る設定ファイルのセットを作成することができる。設定ファイルは、地域ごとに1つのRA設定ファイルを含むRA設定ファイルのセットに設定ファイルをコンパイルすることが可能な中央CIOS506に送信し得る。RA設定ファイルは、WANゲートウェイ520を介してそれぞれの地域に送信され得、それぞれの地域に含まれる地域CIOS522によって受信され得る。 In another example, user 518 may create a set of configuration files that may contain desired states of resources for a set of execution targets in a set of regions. The configuration files may be sent to central CIOS 506, which may compile the configuration files into a set of RA configuration files, including one RA configuration file per region. The RA configuration file may be sent to each region via the WAN gateway 520 and received by the regional CIOS 522 included in each region.

それぞれの地域において、地域CIOS522は、それぞれのRA設定ファイルを中央CIOS506から受信し得、地域CIOS522は、それぞれのRA設定ファイルを、タスクを作成し、かつタスクをタスクDB528に送信することができるスケジューラ524に送信し得る。タスクは、それぞれの地域内の実行ターゲットにおいて実行されるべき動作のセットをコンパイルすることを含んでもよく、実行ターゲットにおけるリソースの現在の状態を実行ターゲットにおけるリソースの所望の状態と比較することを含み得る。タスクは、タスクを実行可能なワーカ526に送信され得る。タスクを実行する際に、ワーカ526は、承認された動作のセットである安全プランの作成を支援することができる。動作は、実行ターゲットにリソースをデプロイすること、または実行ターゲットにおいて実行するための任意の他の適切な動作を含んでもよい。ワーカ526は、WANゲートウェイ520を介して安全プランを中央CIOS506に送信することが可能な地域CIOS522に、安全プランを送信することができる。 In each region, regional CIOS 522 may receive respective RA configuration files from central CIOS 506, and regional CIOS 522 may create tasks and send tasks to task DB 528 schedulers. 524. The tasks may include compiling a set of operations to be performed on execution targets within each region, including comparing current states of resources in the execution targets to desired states of resources in the execution targets. obtain. Tasks may be sent to workers 526 who can execute the tasks. In performing tasks, workers 526 can help create a safety plan, which is a set of approved actions. An action may include deploying a resource to an execution target, or any other suitable action for execution on an execution target. Workers 526 may transmit the safety plan to regional CIOS 522 , which may transmit the safety plan to central CIOS 506 via WAN gateway 520 .

中央CIOS506は、地域から安全プランのセットを受信することができ、安全プランを、コンパイルされた安全プランとしても説明されるマスタ安全プラン(たとえば、複数の安全プランのうちの1つの安全プラン)にコンパイルすることができる。コンパイルされた安全プランに含まれる各安全プランは、同様の変更を含み得る。コンパイルされた安全プランに含まれる安全プラン間の変化の差は、少なくとも1つの地域においてドリフトが発生したことを示してもよい。中央CIOS506は、コンパイルされた安全プランに含まれる各安全プランに含まれる変更を、それぞれの地域に含まれる実行ターゲットにおける動作と比較することができる。変更管理モジュール510は、この比較を実行することができ、動作がコンパイルされた安全プランの変更のセットのサブセットであるという判断、または動作がコンパイルされた安全プランの変更のセットのサブセットではないという判断の2つの判断のうちの1つを行うことができる。動作がコンパイルされた安全プランに含まれる変更のセットのサブセットであるという判断に応答して、動作を実行することができ、これは、それぞれの地域に含まれる実行ターゲットにリソースをデプロイすることを含んでもよい。動作がコンパイルされた安全プランに含まれる変更のセットのサブセットではないという判断に応答して、通知をユーザ518に送信し得る。通知は、LANゲートウェイ516を介してユーザ518に送信することができ、ドリフトが少なくとも1つの地域で発生した可能性があること、または少なくとも1つの実行ターゲットで実行されるようにスケジュールされ得る動作がコンパイルされた安全プランに含まれない可能性があることをユーザ518に警告する情報を含んでもよい。ユーザ518は、通知を見ることに応答して、安全プランに含まれない動作を承認または拒否することができる。ユーザ518が動作を承認すると、動作が実行され、それぞれの地域に含まれる実行ターゲットにリソースがデプロイされてもよい。ユーザ518が動作を拒否する場合、動作は実行されなくてもよく、ユーザ518は、新しい設定ファイルを作成すると判断してもよい、または動作を放棄すると判断してもよい。 The central CIOS 506 can receive a set of safety plans from the region and convert the safety plans into a master safety plan (e.g., one safety plan of a plurality of safety plans), also referred to as a compiled safety plan. can be compiled. Each safety plan included in the compiled safety plan may contain similar changes. A difference in change between safety plans included in the compiled safety plans may indicate that drift has occurred in at least one region. The central CIOS 506 can compare the changes included in each safety plan included in the compiled safety plans to the behavior in the execution targets included in the respective regions. The change management module 510 can perform this comparison and determine that the action is a subset of the set of compiled safety plan changes, or that the action is not a subset of the set of compiled safety plan changes. One of two decisions can be made. Actions can be executed in response to a determination that the action is a subset of the set of changes contained in the compiled safety plan, which means deploying resources to the execution targets contained in their respective regions. may contain. A notification may be sent to user 518 in response to a determination that the action is not a subset of the set of changes contained in the compiled safety plan. A notification can be sent to the user 518 via the LAN gateway 516 that drift may have occurred in at least one region, or that there is an action that can be scheduled to be performed on at least one execution target. Information may be included to alert user 518 that it may not be included in the compiled safety plan. User 518 can approve or reject actions not included in the safety plan in response to viewing the notification. Once the user 518 approves the action, the action may be executed and the resources deployed to the execution targets contained in the respective regions. If user 518 declines the action, the action may not be performed, user 518 may decide to create a new configuration file, or may decide to abandon the action.

図6および図7は、本開示の特定の実施形態に係る、CIOSの技術を実行するためのプロセス600および700を示すフローチャートの例を示す。これらのプロセスは、論理フロー図として示されており、その各動作は、ハードウェア、コンピュータ命令、またはそれらの組み合わせで実装され得る。コンピュータ命令の文脈では、動作は、1つ以上のプロセッサによって実行されると列挙された動作を実行する、1つ以上のコンピュータ読取可能記憶媒体に記憶されたコンピュータ実行可能命令を表し得る。概して、コンピュータ実行可能命令は、特定の機能を実行する、または特定のデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造などを含む。動作が説明される順序は、限定として解釈されることを意図しておらず、任意の数の説明される動作を、プロセスを実装するために、任意の順序で、および/または並列に組み合わせることができる。 6 and 7 illustrate example flowcharts illustrating processes 600 and 700 for performing CIOS techniques, in accordance with certain embodiments of the present disclosure. These processes are depicted as logic flow diagrams, each act of which may be implemented in hardware, computer instructions, or a combination thereof. In the context of computer instructions, operations may refer to computer-executable instructions stored on one or more computer-readable storage media that perform the recited operations when executed by one or more processors. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform particular functions or implement particular data types. The order in which the acts are described is not intended to be construed as limiting, and any number of the described acts may be combined in any order and/or in parallel to implement a process. can be done.

くわえて、プロセス600および700は、実行可能命令で構成された1つ以上のコンピューティングデバイスまたはコンピュータシステムの制御下で実行されてもよく、1つ以上のプロセッサ上で集合的に実行するコード(たとえば、実行可能命令、1つ以上のコンピュータプログラム、もしくは1つ以上のアプリケーション)として、ハードウェアによって、またはそれらの組み合わせによって実装されてもよい。上述のように、コードは、たとえば、1つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態で、コンピュータ読取可能記憶媒体に記憶されてもよい。いくつかの実施形態では、プロセス600および700は、複数のプロセッサによって並行して実行されてもよい。コンピュータ読取可能記憶媒体は、非一時的なものであってもよい。 In addition, processes 600 and 700 may be executed under the control of one or more computing devices or computer systems made up of executable instructions and code that collectively executes on one or more processors ( For example, it may be implemented as executable instructions, one or more computer programs, or one or more applications), by hardware, or by a combination thereof. As noted above, the code may be stored on a computer-readable storage medium, for example, in the form of a computer program comprising instructions executable by one or more processors. In some embodiments, processes 600 and 700 may be executed in parallel by multiple processors. A computer-readable storage medium may be non-transitory.

図6は、少なくとも1つの実施形態に係る、クラウドインフラストラクチャオーケストレーションサービスにおいて安全プランを使用するためのプロセス600を説明するためのフローチャートである。プロセス600は、ブロック602で開始することができ、中央CIOS(たとえば、図5の中央CIOS506)は、実行ターゲットを含む地域の地域CIOS(たとえば、図5の地域CIOS522)から安全プランを受信する。安全プランは、デプロイメント設定ファイルに基づくリソースと動作とのリストを含み得る。動作は、実行ターゲットにリソースをデプロイする命令を含み得る。いくつかの例では、中央CIOSは、地域のセットに対応する地域CIOSのセットから、安全プランのセットを受信することができる。安全プランは、中央CIOSによって、実行ターゲットに対応するデプロイメント設定ファイルに基づくリソースおよび動作を含み得るコンパイルされた安全プランにコンパイルすることができ、実行ターゲットの各々は異なる地域に含まれる。 FIG. 6 is a flowchart illustrating a process 600 for using safety plans in a cloud infrastructure orchestration service, according to at least one embodiment. Process 600 may begin at block 602, where a central CIOS (eg, central CIOS 506 of FIG. 5) receives a security plan from a regional CIOS (eg, regional CIOS 522 of FIG. 5) of a region containing execution targets. A security plan may include a list of resources and actions based on a deployment configuration file. An action may include instructions to deploy a resource on an execution target. In some examples, the central CIOS may receive a set of safety plans from a set of regional CIOS corresponding to a set of regions. A secure plan can be compiled by a central CIOS into a compiled secure plan that can include resources and actions based on deployment configuration files corresponding to execution targets, each of which is contained in a different region.

ブロック604において、中央CIOSは、デプロイメント設定ファイルに含まれる少なくとも1つのリソースに対応する少なくとも1つの動作を実行する準備を行う。地域CIOSから安全プランを受信することに応答して、中央CIOSは、たとえば、少なくとも1つの動作を含み得るローカルプランをコンパイルすることによって、少なくとも1つの実行ターゲットにおいて少なくとも1つの動作を実行する準備を行うことができる。動作は、実行ターゲットに少なくとも1つのリソースをデプロイすることを含み得る。いくつかの例では、中央CIOSは、デプロイメント設定ファイルのセットに含まれるリソースのセットに対応する動作のセットを実行する準備を行うことができる。この例では、中央CIOSは、地域のセットに対応する安全プランのセットを、地域CIOSのセットから受信することができる。 At block 604, the central CIOS prepares to perform at least one operation corresponding to at least one resource contained in the deployment configuration file. In response to receiving the safety plan from the regional CIOS, the central CIOS prepares to execute at least one operation on at least one execution target by, for example, compiling a local plan that may include the at least one operation. It can be carried out. The action may include deploying at least one resource on the execution target. In some examples, the central CIOS may prepare to perform a set of operations corresponding to a set of resources contained in a set of deployment configuration files. In this example, the central CIOS can receive a set of safety plans corresponding to a set of regions from a set of regional CIOS.

ブロック606において、中央CIOSは、動作を安全プランと比較する。中央CIOSに含まれ得る変更管理モジュール(たとえば、図5の変更管理モジュール510)は、比較を実行し得る。比較は、動作が安全プランのサブセットであるかどうかを判断することを含み得る。動作は、安全プランが動作を含む場合、安全プランのサブセットと見なされ得る。いくつかの例では、動作は、実行ターゲットの現在の状態を変更しなくてもよい。この場合、中央CIOSは動作を実行しなくてもよいが、動作は安全プランのサブセットと見なされてもよい。 At block 606, the central CIOS compares the action to the safety plan. A change management module that may be included in the central CIOS (eg, change management module 510 of FIG. 5) may perform the comparison. A comparison may include determining whether the action is a subset of the safety plan. An action may be considered a subset of a safety plan if the safety plan contains the action. In some examples, the action may not change the current state of the execution target. In this case, the central CIOS may not perform any action, but the action may be considered a subset of the safety plan.

ブロック608において、動作が実行される。変更管理モジュールが、動作が安全プランのサブセットであると判断したことに応答して、中央CIOSは、動作を実行するためのコマンドを送信することができる。コマンドは、中央CIOSによってそれぞれの地域内の地域CIOSに送信されてもよく、デプロイメント設定ファイルに含まれるリソースを実行ターゲットにデプロイすることを含んでもよい。リソースが複数の実行ターゲットにデプロイされることが望まれる例では、複数の安全プランが中央CIOSによって受信されてもよい。この場合、中央CIOSは、動作を実行する準備をしてもよく、変更管理モジュールは、動作を安全プランと比較して、動作が安全プランのサブセットであるかどうかを判断してもよい。変更管理モジュールが、動作が安全プランのサブセットであると判断したことに応答して、中央CIOSは、動作を実行するために各地域にコマンドを送信することができる。コマンドは、中央CIOSから各地域における地域CIOSへ送信されてもよく、デプロイメント設定ファイルに含まれるリソースを各実行ターゲットにデプロイすることを含んでもよい。 At block 608, operations are performed. In response to the change management module determining that the action is a subset of the secure plan, the central CIOS can send commands to perform the action. Commands may be sent by the central CIOS to regional CIOS within their respective regions and may include deploying resources contained in deployment configuration files to execution targets. Multiple safety plans may be received by the central CIOS in instances where a resource is desired to be deployed to multiple execution targets. In this case, the central CIOS may prepare to execute the action, and the change management module may compare the action to the safety plan to determine if the action is a subset of the safety plan. In response to the change management module determining that the action is a subset of the safety plan, the central CIOS can send commands to each region to perform the action. The command may be sent from the central CIOS to the regional CIOS in each region and may include deploying the resources contained in the deployment configuration file to each execution target.

ブロック610において、動作は実行されず、デプロイメントが停止される。変更管理モジュールが、動作が安全プランのサブセットではないと判断したことに応答して、中央CIOSは、動作を実行するためのコマンドを送信しなくてもよく、代わりに、中央CIOSは、デプロイメントを停止してもよい。リソースが複数の実行ターゲットにデプロイされることが望まれる場合、複数の安全プランが中央CIOSによって受信されてもよい。この場合、中央CIOSは、動作を実行する準備をしてもよく、変更管理モジュールは、動作を安全プランと比較して、動作が安全プランのサブセットであるかどうかを判断してもよい。変更管理モジュールが、動作が安全プランのサブセットではないと判断したことに応答して、中央CIOSは、動作を実行するためのコマンドを送信しなくてもよい。代わりに、中央CIOSは、デプロイメントを停止してもよい。他の例では、中央CIOSは、安全プランのサブセットではない動作を停止してもよく、安全プランのサブセットである動作を実行するためのコマンドを送信してもよい。 At block 610, no action is performed and the deployment is stopped. In response to the change management module determining that the action is not a subset of the secure plan, the central CIOS may not send commands to execute the action; You can stop. Multiple safety plans may be received by the central CIOS if a resource is desired to be deployed to multiple execution targets. In this case, the central CIOS may prepare to execute the action, and the change management module may compare the action to the safety plan to determine if the action is a subset of the safety plan. In response to the change management module determining that the action is not a subset of the safety plan, the central CIOS may not send commands to execute the action. Alternatively, the central CIOS may stop the deployment. In other examples, the central CIOS may halt operations that are not a subset of the safety plan and may send commands to perform operations that are a subset of the safety plan.

ブロック612において、中央CIOSは、デプロイメントが安全プランに準拠していないという通知をユーザ(たとえば、図5のユーザ518)に送信する。動作が安全プランのサブセットではないと判断すること(ブロック610で行われるように)に応答して、中央CIOSは、デプロイメントがもはや安全プランに準拠していないという通知を作成し、ユーザに送信してもよい。通知は、動作が安全プランのサブセットではないにもかかわらずデプロイメントを継続することを選択するオプションをユーザに提示し得る。ユーザは、デプロイメントを継続することを選択してもよい、またはデプロイメントを放棄することを選択してもよい。ユーザがデプロイメントを放棄することを選択する場合、ユーザは、別の設定ファイルを作成して、異なるデプロイメントを試みることができる。複数の実行ターゲットにリソースをデプロイしたい場合、ユーザに送信される通知は、安全プランに準拠していないデプロイメントを含んでもよい。中央CIOSは、動作のサブセットであると判断された動作を実行するためのコマンドを送信することができる。 At block 612, the central CIOS sends a notification to the user (eg, user 518 of FIG. 5) that the deployment does not comply with the safety plan. In response to determining that the operation is not a subset of the safety plan (as done at block 610), the central CIOS creates and sends to the user a notification that the deployment is no longer compliant with the safety plan. may The notification may present the user with the option of choosing to continue the deployment even though the action is not a subset of the safety plan. The user may choose to continue the deployment or may choose to abandon the deployment. If the user chooses to abandon the deployment, the user can create another configuration file and attempt a different deployment. Notifications sent to users may include deployments that do not comply with the safety plan if they wish to deploy resources to multiple execution targets. The central CIOS can send commands to perform operations determined to be a subset of operations.

図7は、少なくとも1つの実施形態に係る、クラウドインフラストラクチャオーケストレーションサービスにおいて安全プランを生成するためのプロセス700を説明するためのフローチャートである。ブロック702において、地域に含まれる地域CIOS(たとえば、図5の地域CIOS522)は、インフラストラクチャリソースをデプロイするための設定ファイルを中央CIOS(たとえば、図5の中央CIOS506)から受信する。設定ファイルは、地域に含まれる実行ターゲットにリソースをデプロイする命令を含む動作を含んでもよい。 FIG. 7 is a flowchart illustrating a process 700 for generating safety plans in a cloud infrastructure orchestration service, according to at least one embodiment. At block 702, a regional CIOS included in the region (eg, regional CIOS 522 of FIG. 5) receives a configuration file from the central CIOS (eg, central CIOS 506 of FIG. 5) for deploying infrastructure resources. The configuration file may include actions that include instructions for deploying resources to execution targets contained in the region.

ブロック704において、地域CIOSは、地域内のクラウドインフラストラクチャの新しい現在の状態を特定する。設定ファイルは、地域内のクラウドインフラストラクチャの所望の状態を定義してもよく、設定ファイルの受信に応答して、地域CIOSは、地域内のリソースの現在の状態を特定してもよい。いくつかの例では、現在の状態は、所望の状態と同様または同一でもよい。他の例では、現在の状態はいかなるリソースも含まなくてもよく、所望の状態は、実行ターゲットにデプロイされることが望まれるほとんどのリソースを含んでもよい。 At block 704, the regional CIOS identifies the new current state of the cloud infrastructure within the region. The configuration file may define the desired state of the cloud infrastructure within the region, and in response to receiving the configuration file, the regional CIOS may identify the current state of resources within the region. In some examples, the current state may be similar or identical to the desired state. In other examples, the current state may contain no resources and the desired state may contain most resources desired to be deployed to the execution target.

ブロック706において、地域CIOSは、現在の状態と所望の状態との比較に基づいて、インフラストラクチャリソースをデプロイするための安全プランを生成する。安全プランは、実行ターゲットにおいて実行可能な動作を含んでもよい。動作は、実行ターゲットにインフラストラクチャリソースをデプロイすることを含んでもよい。現在の状態および所望の状態が同様または同一であるいくつかの例では、地域CIOSによってコンパイルされる安全プランは空でもよい、またはいかなる動作も含まなくてもよい。 At block 706, the regional CIOS generates a safety plan for deploying infrastructure resources based on the comparison of the current state and the desired state. A safety plan may include actions that can be performed on an execution target. The actions may include deploying infrastructure resources to execution targets. In some instances where the current state and desired state are similar or identical, the safety plan compiled by the regional CIOS may be empty or may not contain any actions.

ブロック708において、地域CIOSは、インフラストラクチャリソースをデプロイするための安全プランを中央CIOSに送信する。安全プランを作成することに応答して、地域CIOSは、比較を実行するために安全プランを中央CIOSに送信してもよい。中央CIOSは、プロセス600のブロック608と同様に、実行ターゲットにおいて実行されるべき動作が安全プランのサブセットであると判断し得る。この判断に応答して、地域CIOSは、オペレーションを実行し、設定ファイルに含まれるリソースを実行ターゲットにデプロイしてもよい。 At block 708, the regional CIOS sends a security plan for deploying infrastructure resources to the central CIOS. In response to creating the safety plan, the regional CIOS may send the safety plan to the central CIOS for comparison. The central CIOS, similar to block 608 of process 600, may determine that the action to be performed on the execution target is a subset of the safety plan. In response to this determination, the regional CIOS may execute the operation and deploy the resources contained in the configuration file to the execution target.

図8は、本開示の特定の実施形態に係る、CIOSの技術を実行するためのプロセス800を示すスイムレーン図の例を示す。このプロセスは論理フロー図として示されており、その各動作は、ハードウェア、コンピュータ命令、またはそれらの組み合わせで実装され得る。コンピュータ命令の文脈では、動作は、1つ以上のプロセッサによって実行されると列挙された動作を実行する、1つ以上のコンピュータ読取可能記憶媒体に記憶されたコンピュータ実行可能命令を表し得る。概して、コンピュータ実行可能命令は、特定の機能を実行する、または特定のデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネントおよびデータ構造などを含む。動作が説明される順序は、限定として解釈されることを意図しておらず、任意の数の説明される動作を、プロセスを実行するために任意の順序でおよび/または並列に組み合わせることができる。 FIG. 8 illustrates an example swimlane diagram showing a process 800 for performing CIOS techniques, in accordance with certain embodiments of the present disclosure. The process is depicted as a logic flow diagram, each act of which may be implemented in hardware, computer instructions, or a combination thereof. In the context of computer instructions, operations may refer to computer-executable instructions stored on one or more computer-readable storage media that perform the recited operations when executed by one or more processors. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform particular functions or implement particular data types. The order in which the operations are described is not intended to be limiting, and any number of the described operations can be combined in any order and/or in parallel to perform a process. .

さらに、プロセス800は、実行可能な命令で構成された1つ以上のコンピューティングデバイスまたはコンピュータシステムの制御下で実行可能であり、1つ以上のプロセッサ上で集合的に実行されるコード(たとえば、実行可能命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として、ハードウェアによって、またはそれらの組み合わせによって実装され得る。上述のように、コードは、たとえば、1つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態で、コンピュータ読取可能記憶媒体に記憶され得る。いくつかの実施形態では、プロセス800は、複数のプロセッサによって並行して実行可能である。コンピュータ読取可能記憶媒体は、非一時的であり得る。 Further, process 800 can be executed under the control of one or more computing devices or computer systems made up of executable instructions, code collectively executed on one or more processors (e.g., executable instructions, one or more computer programs, or one or more applications), by hardware, or by any combination thereof. As noted above, the code may be stored on a computer-readable storage medium, for example, in the form of a computer program comprising instructions executable by one or more processors. In some embodiments, process 800 can be executed in parallel by multiple processors. Computer-readable storage media may be non-transitory.

図8は、少なくとも1つの実施形態に係る、安全プランがどのように生成され使用されるかを説明するためのプロセス800を説明するためのスイムレーン図である。図は、示されるように、ユーザレーン802、中央レーン804、および地域レーン806の3つのレーンを含む。ユーザレーン802は、ユーザ(たとえば、図5のユーザ518)によって実行される動作、またはユーザによってコンピューティングシステムに与えられるコマンドを含み得る。中央レーン804は、中央CIOS(たとえば、図5の中央CIOS506)によって実行される動作を含み得る。地域レーン806は、地域CIOS(たとえば、図5の地域CIOS522)によって実行される動作を含み得る。 FIG. 8 is a swimlane diagram illustrating a process 800 for describing how safety plans are generated and used, according to at least one embodiment. The diagram includes three lanes, a user lane 802, a central lane 804, and a regional lane 806, as shown. User lane 802 may include actions performed by a user (eg, user 518 in FIG. 5) or commands given to the computing system by a user. Central lane 804 may include operations performed by a central CIOS (eg, central CIOS 506 of FIG. 5). Regional lane 806 may include operations performed by a regional CIOS (eg, regional CIOS 522 of FIG. 5).

プロセス800は、ユーザが設定ファイルを作成するブロック808で開始することができる。ユーザは、地域に含まれる実行ターゲットにインフラストラクチャリソースをデプロイしたい場合がある。この要望に応じて、ユーザは、実行ターゲットの所望の状態を定義可能な設定ファイルを作成することができる。ブロック810において、ユーザは、設定を中央CIOSに送信する。設定ファイルを作成することに応答して、ユーザは、設定ファイルを中央CIOSに送信して、デプロイメントを開始することができる。 Process 800 may begin at block 808 where a user creates a configuration file. A user may wish to deploy infrastructure resources to execution targets contained within a region. In response to this desire, the user can create a configuration file that can define the desired state of the execution target. At block 810, the user sends the settings to the central CIOS. In response to creating the configuration file, the user can send the configuration file to the central CIOS to initiate deployment.

ブロック812において、中央CIOSは、ユーザから設定ファイルを受信する。ユーザから設定ファイルを受信することに応答して、中央CIOSはデプロイメントを開始することができる。ブロック814において、中央CIOSは、地域に依存しない(RA)設定ファイルをコンパイルする。デプロイメントを開始することに応答して、中央CIOSは、RA設定をコンパイルすることができ、RA設定は、RA設定ファイルが送信される地域に依存しなくてもよい設定ファイルとすることができる。ブロック816において、中央CIOSは、RA設定ファイルを地域CIOSに送信する。RA設定ファイルの作成に応答して、中央CIOSは、RA設定ファイルを、リソースがデプロイされることが望まれる地域の地域CIOSに送信することができる。 At block 812, the central CIOS receives the configuration file from the user. In response to receiving the configuration file from the user, the central CIOS can initiate the deployment. At block 814, the central CIOS compiles a region independent (RA) configuration file. In response to initiating the deployment, the central CIOS may compile the RA settings, which may be configuration files that may be independent of the region to which the RA configuration files are sent. At block 816, the central CIOS sends the RA configuration file to the regional CIOS. In response to creating the RA configuration file, the central CIOS can send the RA configuration file to the regional CIOS in the region where the resource is desired to be deployed.

ブロック818において、リソースがデプロイされることが望まれる地域内の地域CIOSは、RA設定ファイルを受信する。RA設定ファイルは、実行ターゲットにインフラストラクチャリソースをデプロイするために実行する動作を含み得る。地域CIOSは、比較を実行することができるワーカノード(たとえば、図5のワーカ526)にRA設定ファイルを送信することができる。ブロック820において、地域CIOSは、新しい現在の状態に基づいて安全プランを作成する。ワーカは、地域内のインフラストラクチャリソースの新しい現在の状態を、RA設定ファイル内で定義されたインフラストラクチャリソースの所望の状態と比較することができる。地域CIOSは、ワーカによって実行される比較に少なくとも部分的に基づいて、安全プランを作成することができる。安全プランは、実行ターゲットにおけるリソースに対する承認された変更を含んでもよい。 At block 818, the regional CIOS within the region where the resource is desired to be deployed receives the RA configuration file. An RA configuration file may contain actions to perform to deploy infrastructure resources to execution targets. The regional CIOS can send the RA configuration file to a worker node (eg, worker 526 in FIG. 5) that can perform the comparison. At block 820, the regional CIOS creates a security plan based on the new current state. Workers can compare the new current state of infrastructure resources in the region to the desired state of infrastructure resources defined in the RA configuration file. The regional CIOS can develop a safety plan based at least in part on comparisons performed by workers. A safety plan may include approved changes to resources in an execution target.

ブロック822において、地域CIOSは安全プランを中央CIOSに送信する。安全プランの作成に応答して、地域CIOSは、動作が実行ターゲットにデプロイされ得るかどうかを判断するために、安全プランを中央CIOSに送信することができる。ブロック824において、中央CIOSは、地域CIOSから安全プランを受信する。リソースが複数の地域にデプロイされることが望まれるいくつかの例では、中央CIOSは、複数の安全プランが受信され得る。この場合、中央CIOSは、複数の安全プランのうちの1つの安全プランをコンパイルすることができ、以下、これをコンパイルされた安全プランと呼ぶ。ブロック826において、中央CIOSは、デプロイメントの動作を安全プランと比較する。デプロイメントの動作は、実行ターゲットにインフラストラクチャリソースをデプロイする命令を含み得る。コンパイルされた安全プランの場合、中央CIOSは、動作をコンパイルされた安全プランと比較され得る。ブロック828において、中央CIOSは、動作が安全プランのサブセットであるかどうかを判断する。コンパイルされた安全プランの場合、中央CIOSは、動作がコンパイルされた安全プランのサブセットであるかどうかを判断することができる。 At block 822, the regional CIOS sends the security plan to the central CIOS. In response to creating the safety plan, the regional CIOS can send the safety plan to the central CIOS to determine if the action can be deployed to execution targets. At block 824, the central CIOS receives the security plan from the regional CIOS. In some instances where resources are desired to be deployed in multiple regions, the central CIOS may receive multiple safety plans. In this case, the central CIOS can compile one of the multiple safety plans, hereinafter referred to as the compiled safety plan. At block 826, the central CIOS compares the behavior of the deployment to the safety plan. A deployment operation may include instructions to deploy infrastructure resources to an execution target. In the case of a compiled safety plan, the central CIOS can compare operations with the compiled safety plan. At block 828, the central CIOS determines whether the action is a subset of the safety plan. In the case of a compiled safety plan, the central CIOS can determine if an action is a subset of the compiled safety plan.

ブロック830において、動作が安全プランのサブセットであると中央CIOSが判断したことに応答して、中央CIOSは、動作を実行するためのコマンドを地域CIOSに送信する。この場合、インフラストラクチャリソースは、実行ターゲットにデプロイされてもよく、コンパイルされた安全プランの場合、リソースは、複数の実行ターゲットにデプロイされてもよい。他の例では、動作は、実行ターゲットの状態を変更しなくてもよく、この場合、中央CIOSはアクションを取らなくてもよい。ブロック832において、動作が安全プランのサブセットではないと中央CIOSが判断したことに応答して、中央CIOSはデプロイメントを停止する。この場合、中央CIOSは、ドリフトが発生したこと、および動作が安全プランに準拠していないことをユーザに知らせることができる通知をユーザに送信する。この通知により、ユーザは、動作の実行を許可することができる。ユーザが、オペレーションの実行を許可しないことを選択した場合、ユーザは、デプロイメントを放棄する、または新しい設定ファイルを作成し、新しい設定ファイルを中央CIOSに送信して、第2のデプロイメントを開始することができる。コンパイルされた安全プランの場合、中央CIOSは、動作がコンパイルされた安全プランのサブセットでない場合、ユーザに通知を送信することができる。 At block 830, in response to the central CIOS determining that the action is a subset of the safety plan, the central CIOS sends a command to the regional CIOS to perform the action. In this case, infrastructure resources may be deployed to execution targets, and in the case of compiled safety plans, resources may be deployed to multiple execution targets. In other examples, the operation may not change the state of the execution target, in which case the central CIOS may take no action. At block 832, the central CIOS stops the deployment in response to the central CIOS determining that the operation is not a subset of the safe plan. In this case, the central CIOS sends a notification to the user that can inform the user that drift has occurred and that the operation is not in compliance with the safety plan. This notification allows the user to authorize the execution of the action. If the user chooses not to allow the operation to run, the user can either abandon the deployment or create a new configuration file, send the new configuration file to the central CIOS, and initiate a second deployment. can be done. For compiled safety plans, the central CIOS can send a notification to the user if the action is not a subset of the compiled safety plan.

図9は、少なくとも1つの実施形態に係る、切断地域900を示すブロック図である。切断地域900は、接続された中央CIOS902(たとえば、図5の中央CIOS506)に通信可能に結合され得る。しかしながら、切断地域900と接続された中央CIOS902との間の接続は、リアルタイムでなくてもよく、遅延されてもよい。切断地域900は、中央CIOS904(たとえば、図5の中央CIOS506)、スケジューラノード906(たとえば、図5のスケジューラ524)、ワーカノード908(たとえば、図5のワーカ526)、CIOSコンテナ912(たとえば、図5のCIOSコンテナ532)を含み得るドッカー910(たとえば、図5のドッカー530)、および署名プロキシ914(たとえば、図5の署名プロキシ534)を含み得る。いくつかの例では、切断地域900は、接続された中央CIOS902から情報/命令を受信することが可能であり得るが、接続された中央CIOS902は、切断地域900からの通信に関して切断されてもよい。言い換えれば、通信は一方向であってもよく、接続された中央CIOS902が情報を送信すると、切断地域900がどの動作を実行するかを確認することができない。 FIG. 9 is a block diagram illustrating a cutting area 900 in accordance with at least one embodiment. Disconnection area 900 may be communicatively coupled to connected central CIOS 902 (eg, central CIOS 506 of FIG. 5). However, the connection between the disconnected area 900 and the connected central CIOS 902 may not be real-time and may be delayed. Disconnection region 900 includes central CIOS 904 (e.g., central CIOS 506 in FIG. 5), scheduler node 906 (e.g., scheduler 524 in FIG. 5), worker node 908 (e.g., worker 526 in FIG. 5), CIOS container 912 (e.g., worker 526 in FIG. 5). Docker 910 (eg, docker 530 of FIG. 5), which may include a CIOS container 532 of FIG. 5), and signing proxy 914 (eg, signing proxy 534 of FIG. 5). In some examples, disconnected area 900 may be able to receive information/instructions from connected central CIOS 902, but connected central CIOS 902 may be disconnected with respect to communications from disconnected area 900. . In other words, the communication may be one-way, and once the connected central CIOS 902 sends information, the disconnected region 900 cannot be sure what action to perform.

中央CIOS904は、接続された中央CIOS902からタスクを受信することができ、タスクをスケジューラ906に送信することができる。タスクは、CRUD動作を実行すること、または実行ターゲット(複数可)の地域内にインフラストラクチャリソースをデプロイするための任意の他の適切なタスクを含み得る。スケジューラ906は、ワーカフリートに含まれ得るワーカ908にタスクを送信し得る。ワーカフリートは、多くのワーカ908を含むことができ、スケジューラ906は、タスクを割り当てるために、最も少ないワーク量または最も多い利用可能量のコンピューティングリソースを有するワーカ908を選択することができる。スケジューラ906は、一度に1つのタスクをワーカ908に割り当てることができる。ワーカ908は、タスクを実行することができ、タスクを実行する際に、ドッカー910に含まれるCIOSコンテナ912に呼び出しを行うことができる。CIOSコンテナ912は、Terraform命令を含むタスクを実行することができる。命令は、API呼び出しをクラウドサービス916に向けることができ、クラウドサービス916は、パブリックネットワーク(たとえば、インターネット)を介して利用可能ではない可能性がある、切断地域900が利用可能なサービスを含み得る。クラウドサービス916へのAPI呼び出しを行うために、CIOSコンテナ912は、API呼び出しを行う要求を署名プロキシ914に送信することができ、署名プロキシ914は、要求が有効であるかどうかを判断することができる。要求が有効であると判断することに応答して、署名プロキシ914は、クラウドサービス916にAPI呼び出しを行い得る。 Central CIOS 904 can receive tasks from connected central CIOS 902 and can send tasks to scheduler 906 . Tasks may include executing CRUD operations or any other suitable task for deploying infrastructure resources within the region of the execution target(s). Scheduler 906 may send tasks to workers 908, which may be included in a worker fleet. A worker fleet can include many workers 908, and a scheduler 906 can select workers 908 with the least amount of work or the most available amount of computing resources to assign tasks. Scheduler 906 can assign tasks to workers 908 one at a time. Worker 908 can perform tasks and, in performing tasks, can make calls to CIOS container 912 contained in docker 910 . The CIOS container 912 is capable of executing tasks that include Terraform instructions. The instructions may direct API calls to cloud services 916, which may include services available to disconnected region 900 that may not be available over a public network (eg, the Internet). . To make an API call to cloud service 916, CIOS container 912 can send a request to make an API call to signing proxy 914, and signing proxy 914 can determine if the request is valid. can. In response to determining that the request is valid, signing proxy 914 may make an API call to cloud service 916 .

接続された中央CIOS902は、切断地域900内の実行ターゲットにおけるインフラストラクチャリソースのデプロイメントのために、第1の安全プランおよび設定ファイルを中央CIOS904に送信することができる。中央CIOS904は、設定ファイルをスケジューラ906に送信することができ、スケジューラ906は、設定ファイルに基づいて第2の安全プランを作成するためにワーカ908にタスクを割り当てることができる。第1の安全プランは、設定ファイルと同様または同一である異なる設定ファイルから作成されてもよい。第2の安全プランの作成に応答して、ワーカ908は、第1の安全プランを第2の安全プランと比較され得る中央CIOS904に、第2の安全プランを送信することができる。中央CIOS904は、比較に応答して、第2の安全プランが第1の安全プランのサブセットであると判断し得る。この場合、第2の安全プランが自動的に承認され、設定ファイルに基づくインフラストラクチャリソースが、切断地域900内の実行ターゲットにデプロイされ得る。中央CIOS904は、第2の安全プランが第1の安全プランのサブセットではないと判断することができる。この場合、デプロイメントは停止され得、ドリフトが生じている可能性があること、およびデプロイメントが第2の安全プランに準拠していないことをユーザに知らせる通知をユーザ(たとえば、図5のユーザ518)に送信することができる。さらに、この例では、第2の安全プランが第1の安全プランのサブセットではない場合、接続された中央CIOS902は、最初に計画された任意のデプロイメントを停止するように、切断地域900に命令を送信することができる。 Connected central CIOS 902 can send a first safety plan and configuration files to central CIOS 904 for deployment of infrastructure resources on execution targets within disconnected region 900 . Central CIOS 904 can send the configuration file to scheduler 906, and scheduler 906 can assign tasks to workers 908 to create a second safety plan based on the configuration file. The first safety plan may be created from a different configuration file that is similar or identical to the configuration file. In response to creating the second safety plan, worker 908 can send the second safety plan to central CIOS 904, which can compare the first safety plan with the second safety plan. Central CIOS 904 may determine that the second safety plan is a subset of the first safety plan in response to the comparison. In this case, the second safety plan can be automatically approved and the infrastructure resources based on the configuration file deployed to execution targets within the cutting region 900 . Central CIOS 904 may determine that the second safety plan is not a subset of the first safety plan. In this case, the deployment may be halted and a notification sent to the user (eg, user 518 in FIG. 5) informing the user that drift may be occurring and that the deployment is not in compliance with the second safety plan. can be sent to Further, in this example, if the second safety plan is not a subset of the first safety plan, the connected central CIOS 902 instructs the disconnected region 900 to stop any originally planned deployments. can be sent.

図10は、本開示の特定の実施形態に係る、CIOSの技術を実行するためのプロセス1000を示すフロー図の例を示す。このプロセスは、論理フロー図として示され、その各動作は、ハードウェア、コンピュータ命令、またはそれらの組み合わせで実装され得る。コンピュータ命令の文脈では、動作は、1つ以上のプロセッサによって実行されると列挙された動作を実行する、1つ以上のコンピュータ読取可能記憶媒体に記憶されたコンピュータ実行可能命令を表し得る。概して、コンピュータ実行可能命令は、特定の機能を実行する、または特定のデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネントおよびデータ構造などを含む。動作が説明される順序は、限定として解釈されることを意図しておらず、任意の数の説明される動作を、プロセスを実装するために、任意の順序で、および/または並列に組み合わせることができる。 FIG. 10 illustrates an example flow diagram illustrating a process 1000 for performing CIOS techniques, in accordance with certain embodiments of the present disclosure. The process is depicted as a logic flow diagram, each act of which may be implemented in hardware, computer instructions, or a combination thereof. In the context of computer instructions, operations may refer to computer-executable instructions stored on one or more computer-readable storage media that perform the recited operations when executed by one or more processors. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform particular functions or implement particular data types. The order in which the acts are described is not intended to be limiting, and any number of the described acts may be combined in any order and/or in parallel to implement a process. can be done.

くわえて、プロセス1000は、実行可能命令で構成された1つ以上のコンピューティングデバイスまたはコンピュータシステムの制御下で実行可能であり、1つ以上のプロセッサ上で集合的に実行するコード(たとえば、実行可能命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として、ハードウェアによって、またはそれらの組み合わせによって実装され得る。上述したように、コードは、コンピュータ読取可能媒体上に、1つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態で記憶されてもよい。いくつかの実施形態では、プロセス1000は、複数のプロセッサによって並行して実行可能である。コンピュータ読取可能記憶媒体は、非一時的であり得る。 In addition, process 1000 can be executed under the control of one or more computing devices or computer systems made up of executable instructions and code that collectively executes on one or more processors (e.g., execution executable instructions, one or more computer programs, or one or more applications), by hardware, or by any combination thereof. As noted above, the code may be stored on a computer readable medium in the form of a computer program comprising instructions executable by one or more processors. In some embodiments, process 1000 can be executed in parallel by multiple processors. Computer-readable storage media may be non-transitory.

図10は、少なくとも1つの実施形態に係る、切断地域において安全プランを使用するためのプロセス1000を説明するためのフローチャートである。ブロック1002において、インフラストラクチャリソースを第1の実行ターゲットおよび第2の実行ターゲットにデプロイするための設定ファイルが受信される。設定ファイルは、ユーザ(たとえば、図5のユーザ518)が第1の実行ターゲットおよび第2の実行ターゲットにデプロイしたいと望むインフラストラクチャリソースを含み得る。いくつかの例では、設定ファイルは、第1の実行ターゲットにおけるデプロイメントのためのリソースを含んでもよく、第2の設定ファイルは、第2の実行ターゲットにおけるデプロイメントのためのリソースを含んでもよい。 FIG. 10 is a flowchart illustrating a process 1000 for using a safety plan in a cutting area, according to at least one embodiment. At block 1002, a configuration file is received for deploying infrastructure resources to a first execution target and a second execution target. The configuration file may include infrastructure resources that a user (eg, user 518 of FIG. 5) wishes to deploy to the first execution target and the second execution target. In some examples, a configuration file may include resources for deployment at a first execution target and a second configuration file may include resources for deployment at a second execution target.

ブロック1004において、設定ファイルに基づいて第1の安全プランが生成される。安全プランは、ユーザが第1の実行ターゲットで実行したいと望む承認された変更のリストを含み得る。第1の安全プランは、中央CIOS(たとえば、図5の中央CIOS506)によって生成されてもよい。第1の実行ターゲットは、接続地域に含まれてもよい。第1の安全プランは、第1の実行ターゲットにおけるリソースの現在の状態と、設定ファイルにおいて定義され得る第1の実行ターゲットにおけるリソースの所望の状態との比較に基づいて作成されてもよい。 At block 1004, a first safety plan is generated based on the configuration file. A safety plan may include a list of approved changes that the user wishes to execute on the first execution target. The first safety plan may be generated by a central CIOS (eg, central CIOS 506 of FIG. 5). The first execution target may be included in the coverage area. A first safety plan may be created based on a comparison of a current state of the resource in the first execution target and a desired state of the resource in the first execution target that may be defined in a configuration file.

ブロック1006において、第1の安全プランの承認が受信される。ユーザには、第1の安全プランを承認するオプションが与えられてもよい、または第1の安全プランは、第1の実行ターゲットにおいて実行される動作に基づいて自動的に承認されてもよい。ブロック1006における承認に応答して、インフラストラクチャリソースは、設定ファイルに基づいて実行ターゲットにデプロイされ得る。 At block 1006, approval of the first safety plan is received. The user may be given the option of approving the first safety plan, or the first safety plan may be automatically approved based on actions performed on the first execution target. In response to approval at block 1006, infrastructure resources may be deployed to execution targets based on the configuration files.

ブロック1008において、第2の安全プランが、設定ファイルに基づいて第2の実行ターゲットのために生成される。第2の安全プランは、切断地域(たとえば、図9の切断地域900)に含まれ得る中央CIOSによって生成され得る。また、第2の実行ターゲットは、切断地域に含まれてもよい。いくつかの例では、第2の安全プランは、第2の設定ファイルに基づいて第2の実行ターゲットのために作成されてもよい。いくつかの例では、第1の実行ターゲットおよび第2の実行ターゲットは、同様または同一でもよく、第1の安全プランおよび第2の安全プランは、同様または同一でもよい。 At block 1008, a second safety plan is generated for a second execution target based on the configuration file. A second safety plan may be generated by a central CIOS, which may be included in a disconnection zone (eg, disconnection zone 900 in FIG. 9). A second execution target may also be included in the cutting region. In some examples, a second safety plan may be created for the second execution target based on the second configuration file. In some examples, the first execution target and the second execution target may be similar or identical, and the first safety plan and the second safety plan may be similar or identical.

ブロック1010において、中央CIOSは、第2の安全プランが第1の安全プランのサブセットであるかどうかを判断する。中央CIOSは、切断地域に含めることができ、第2の安全プランの承認された変更を第1の安全プランの承認された変更と比較することができる。中央CIOSは、第2の安全プランが第1の安全プランのサブセットである、または第2の安全プランが第1の安全プランのサブセットではないと判断し得る。 At block 1010, the central CIOS determines whether the second safety plan is a subset of the first safety plan. A central CIOS can be included in the disconnection area and can compare the approved changes to the second safety plan with the approved changes to the first safety plan. The central CIOS may determine that the second safety plan is a subset of the first safety plan or that the second safety plan is not a subset of the first safety plan.

ブロック1012において、第2の安全プランが第1の安全プランのサブセットであると中央CIOSが判断したことに従って、第2の安全プランは、第1の安全プランの承認に基づいて自動的に承認される。中央CIOSは、この場合、第1の安全プランが既に承認されており、かつ、第1の安全プランの実行に成功している可能性があるので、ユーザからの入力なしで第2の安全プランを自動的に承認することができる。いくつかの例では、第2の実行ターゲットの現在の状態は、設定ファイルにおいて定義された第2の実行ターゲットの所望の状態と同様または同じでもよい。この例では、第2の安全プランは、第2の実行ターゲットにおいて実行する変更を含まなくてもよい。この場合の第2の安全プランは、空の第2の安全プランが第1の安全プランのサブセットであるため、中央CIOSによって自動的に承認されてもよい。 At block 1012, the second safety plan is automatically approved based on the approval of the first safety plan in accordance with the central CIOS' determination that the second safety plan is a subset of the first safety plan. be. The central CIOS will in this case execute the second safety plan without input from the user, as the first safety plan has already been approved and may have successfully executed the first safety plan. can be automatically approved. In some examples, the current state of the second execution target may be similar or the same as the desired state of the second execution target defined in the configuration file. In this example, the second safety plan may not include changes to execute on the second execution target. The second safety plan in this case may be automatically approved by the central CIOS because the empty second safety plan is a subset of the first safety plan.

ブロック1014において、第2の安全プランが第1の安全プランのサブセットではないと中央CIOSが判断することに従って、中央CIOSは、第2の実行ターゲットにおけるデプロイメントを停止し、第2の安全プランが非準拠であるとユーザに通知する。中央CIOSは、第2の実行ターゲットにおけるインフラストラクチャリソースのデプロイメントは停止してもよく、ドリフトが生じている可能性があること、および、第2の安全プランが第1の安全プランのサブセットでないことをユーザに知らせる通知を、ユーザに送信することができる。通知は、第1の安全プランと第2の安全プランとの少なくとも1つの差を提示し得るユーザインターフェイスにおいて、ユーザに提示され得る。通知は、ユーザが、(i)第2の安全プランが非準拠であると中央CIOS判断したにもかかわらず、リソースをデプロイすることを選択すること、(ii)第2の実行ターゲットにおけるデプロイメントを放棄すること、(iii)第2の実行ターゲットにおける新しいデプロイメントを開始するための新しい設定ファイルを提出すること、またはそれらの組み合わせを可能にし得る。 At block 1014, upon the central CIOS determining that the second safety plan is not a subset of the first safety plan, the central CIOS stops deployment on the second execution target and the second safety plan is non-subset. Notify users that they are compliant. The central CIOS confirms that the deployment of infrastructure resources on the second execution target may be stopped, that drift may have occurred, and that the second safety plan is not a subset of the first safety plan. A notification can be sent to the user informing the user of the The notification can be presented to the user at a user interface that can present at least one difference between the first safety plan and the second safety plan. The notification indicates that the user (i) elected to deploy the resource despite the central CIOS determining that the second safety plan was non-compliant; (iii) submitting a new configuration file to initiate a new deployment in the second execution target, or a combination thereof.

ブロック1016において、中央CIOSによる第2の安全プランの承認に応答して、中央CIOSは、インフラストラクチャリソースをデプロイするための第2の実行ターゲットに、第2の安全プランを送信する。中央CIOSおよび第2の実行ターゲットは、切断地域に含まれ得る。第2の安全プランは、第2の実行ターゲットにリソースをデプロイする命令を含み得る。いくつかの例では、第2の実行ターゲットの現在の状態は、設定ファイルによって定義される実行ターゲットの所望の状態と同様または同一でもよいため、第2の安全プランは、リソースをデプロイする命令を含まない場合がある。この場合、中央CIOSはアクションを行わなくてもよい。 At block 1016, in response to approval of the second safety plan by the central CIOS, the central CIOS transmits the second safety plan to a second execution target for deploying infrastructure resources. A central CIOS and a second execution target may be included in the disconnection region. A second safety plan may include instructions for deploying resources on a second execution target. In some examples, the current state of the second execution target may be similar or identical to the desired state of the execution target defined by the configuration file, so the second safety plan provides instructions to deploy the resource. may not be included. In this case, the central CIOS may take no action.

例示的なシステム
図11~図13は、さまざまな実施形態に係る、本開示の局面を実現するための環境の例の態様を示す図である。図11は、本開示の一実施形態を実現するための分散型システム1100を示す簡略図である。示されている実施形態において、分散型システム1100は、1つ以上のクライアントコンピューティングデバイス1102,1104,1106および1108を含み、それらは、1つ以上のネットワーク1110を介して、ウェブブラウザ、プロプライエタリクライアント(たとえば、オラクルフォームズ)などのクライアントアプリケーションを実行して動作させるように構成されている。サーバ1112は、ネットワーク1110を介してリモートクライアントコンピューティングデバイス1102,11104,1106および1108と通信可能に結合され得る。
Exemplary Systems FIGS. 11-13 illustrate aspects of example environments for implementing aspects of the present disclosure, in accordance with various embodiments. FIG. 11 is a simplified diagram of a distributed system 1100 for implementing an embodiment of the present disclosure. In the illustrated embodiment, distributed system 1100 includes one or more client computing devices 1102 , 1104 , 1106 and 1108 , which are connected via one or more networks 1110 to web browsers, proprietary client (for example, Oracle Forms) is configured to run and operate. Server 1112 can be communicatively coupled to remote client computing devices 1102 , 11104 , 1106 and 1108 via network 1110 .

さまざまな実施形態において、サーバ1112は、アイデンティティ管理サービスを提供するサービスおよびアプリケーションなどの1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。特定の実施形態において、サーバ1112は、非仮想環境および仮想環境を含み得る他のサービスまたはソフトウェアアプリケーションも提供し得る。いくつかの実施形態において、これらのサービスは、ウェブベースのサービスもしくはクラウドサービスとして、またはソフトウェア・アズ・ア・サービス(SaaS)モデル下で、クライアントコンピューティングデバイス1102,1104,1106および/または1108のユーザに対して提供され得る。そして、クライアントコンピューティングデバイス11102,1104,1106および/または1108を動作させるユーザは、1つ以上のクライアントアプリケーションを利用してサーバ1112と対話して、これらのコンポーネントによって提供されるサービスを利用し得る。 In various embodiments, server 1112 may be adapted to run one or more services or software applications, such as services and applications that provide identity management services. In particular embodiments, server 1112 may also provide other services or software applications, which may include non-virtual and virtual environments. In some embodiments, these services are provided to client computing devices 1102, 1104, 1106 and/or 1108 as web-based or cloud services, or under a Software as a Service (SaaS) model. provided to the user. Users operating client computing devices 11102, 1104, 1106 and/or 1108 may then utilize one or more client applications to interact with server 1112 and utilize the services provided by these components. .

図11に示される構成では、システム1100のソフトウェアコンポーネント1118,1120および1122は、サーバ1112上で実行されるものとして示されている。他の実施形態では、システム1100のコンポーネントのうちの1つ以上のコンポーネントおよび/またはこれらのコンポーネントによって提供されるサービスも、クライアントコンピューティングデバイス1102,11104,1106および/または1108のうちの1つ以上のクライアントコンピューティングデバイスによって実行可能である。次に、これらのクライアントコンピューティングデバイスを動作させるユーザは、1つ以上のクライアントアプリケーションを利用して、これらのコンポーネントによって提供されるサービスを使用し得る。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現されてもよい。さまざまな異なるシステム構成が可能であり、これらは分散型システム1100とは異なっていてもよいことが理解されるべきである。図11に示される実施形態は、したがって、実施形態のシステムを実現するための分散型システムの一例であり、限定的であるよう意図されるものではない。 In the configuration shown in FIG. 11, software components 1118 , 1120 and 1122 of system 1100 are shown running on server 1112 . In other embodiments, one or more of the components of system 1100 and/or the services provided by those components are also provided by one or more of client computing devices 1102, 11104, 1106 and/or 1108. client computing device. Users operating these client computing devices can then utilize one or more client applications to use the services provided by these components. These components may be implemented in hardware, firmware, software, or a combination thereof. It should be appreciated that a variety of different system configurations are possible and may differ from distributed system 1100 . The embodiment shown in FIG. 11 is thus an example of a distributed system for implementing the system of embodiments and is not intended to be limiting.

クライアントコンピューティングデバイス1102,1104,1106および/または1108は、さまざまなタイプのコンピューティングシステムを含み得る。たとえば、クライアントコンピューティングデバイスは、ソフトウェア(マイクロソフトウィンドウズ(登録商標)モバイルなど)および/またはさまざまなモバイルオペレーティングシステム(iOS、ウィンドウズフォン、アンドロイド(登録商標)、ブラックベリー10、パームOSなど)を実行する携帯型の手持ち式デバイス(たとえば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、パーソナルデジタルアシスタント(PDA))またはウェアラブルデバイス(たとえば、グーグルグラス(登録商標)頭部装着型ディスプレイ)を含み得る。これらのクライアントコンピューティングデバイスは、さまざまなアプリケーション(さまざまなインターネット関連アプリ、電子メール、ショートメッセージサービス(SMS)アプリケーションなど)をサポート可能であり、さまざまな他の通信プロトコルを使用可能である。クライアントコンピューティングデバイスは、汎用パーソナルコンピュータも含んでもよく、これらの汎用パーソナルコンピュータは、一例として、マイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/またはLinux(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む。クライアントコンピューティングデバイスは、さまざまな市販のUNIX(登録商標)またはUNIX系オペレーティングシステムのうちのいずれかを実行するワークステーションコンピュータでもよく、これらのUNIX(登録商標)またはUNIX系オペレーティングシステムは、さまざまなGNU/Linuxオペレーティングシステム(たとえば、グーグルクロームOSなど)を含むが、それらに限定されない。また、クライアントコンピューティングデバイスは、ネットワーク(複数可)1110を介して通信することができる、シンクライアントコンピュータ、インターネット対応ゲームシステム(たとえば、キネクト(登録商標)ジェスチャ入力デバイスを有するもしくは有さないマイクロソフトXboxゲーム機)および/またはパーソナルメッセージングデバイスといった、電子デバイスも含み得る。 Client computing devices 1102, 1104, 1106 and/or 1108 may include various types of computing systems. For example, client computing devices run software (such as Microsoft Windows Mobile) and/or various mobile operating systems (such as iOS, Windows Phone, Android, Blackberry 10, Palm OS, etc.). Portable handheld devices (e.g. iPhones, mobile phones, iPads, computing tablets, personal digital assistants (PDAs)) or wearable devices (e.g. Google Glass head-mounted) type display). These client computing devices are capable of supporting a variety of applications (such as various Internet-related applications, e-mail, short message service (SMS) applications, etc.) and using various other communication protocols. The client computing devices may also include general-purpose personal computers, which may include various versions of Microsoft Windows®, Apple Macintosh® and/or Linux® operating systems, by way of example. including personal and/or laptop computers running versions. A client computing device may be a workstation computer running any of a variety of commercially available UNIX or UNIX-like operating systems, which may run on a variety of Including but not limited to GNU/Linux operating systems (eg, Google Chrome OS, etc.). Client computing devices may also be thin client computers, Internet-enabled gaming systems (e.g., Microsoft Xbox with or without a Kinect® gesture input device) capable of communicating over network(s) 1110 . gaming consoles) and/or personal messaging devices.

図11の分散型システム1100は、4つのクライアントコンピューティングデバイスと共に示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを有するデバイスなどの他のデバイスが、サーバ1112と対話してもよい。 Although the distributed system 1100 of FIG. 11 is shown with four client computing devices, any number of client computing devices may be supported. Other devices, such as devices with sensors, may interact with server 1112 .

分散型システム1100におけるネットワーク(複数可)1110は、さまざまな入手可能なプロトコルのうちのいずれかを使用したデータ通信をサポートすることができる、当業者になじみのある任意のタイプのネットワークでもよく、これらのプロトコルは、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、アップルトークなどを含むが、それらに限定されない。単に一例として、ネットワーク(複数可)1110は、ローカルエリアネットワーク(LAN)、イーサネット(登録商標)に基づくネットワーク、トークンリング、ワイドエリアネットワーク、インターネット、仮想ネットワーク、仮想プライベートネットワーク(VPN)、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、ワイヤレスネットワーク(たとえば、米国電気電子学会(IEEE)1002.11のプロトコル一式、ブルートゥース(登録商標)および/もしくはその他のワイヤレスプロトコルのうちのいずれかの下で動作するネットワーク)、ならびに/または、これらのいずれかの組み合わせおよび/もしくは他のネットワークでもよい。 Network(s) 1110 in distributed system 1100 may be any type of network familiar to those skilled in the art capable of supporting data communication using any of a variety of available protocols; These protocols include, but are not limited to, TCP/IP (Transmission Control Protocol/Internet Protocol), SNA (Systems Network Architecture), IPX (Internet Packet Exchange), AppleTalk, and the like. Solely by way of example, network(s) 1110 can be a local area network (LAN), an Ethernet-based network, a token ring, a wide area network, the Internet, a virtual network, a virtual private network (VPN), an intranet, an extra network. Internet, public switched telephone network (PSTN), infrared network, wireless network (e.g., any of the Institute of Electrical and Electronics Engineers (IEEE) 1002.11 protocol suite, Bluetooth® and/or other wireless protocols) network it operates under), and/or any combination of these and/or other networks.

サーバ1112は、1つ以上の複数の汎用コンピュータ、専用のサーバコンピュータ(一例として、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む)、サーバファーム、サーバクラスタ、または、その他の適切な配置および/もしくは組み合わせで構成可能である。サーバ1112は、仮想オペレーティングシステムを実行する1つ以上の仮想マシン、または、仮想化を含む他のコンピューティングアーキテクチャを含み得る。論理ストレージデバイスの1つ以上のフレキシブルなプールは、サーバのために仮想ストレージデバイスを維持するように仮想化され得る。仮想ネットワークは、ソフトウェアによって定義されるネットワーキングを使用して、サーバ1112によって制御可能である。さまざまな実施形態において、サーバ1112は、前述の開示に記載されている1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。たとえば、サーバ1112は、本開示の一実施形態に従って上記の処理を実行するためのサーバに対応し得る。 Server 1112 includes one or more of a plurality of general purpose computers, dedicated server computers (examples include PC (personal computer) servers, UNIX servers, midrange servers, mainframe computers, rack mount servers, etc.). ), server farms, server clusters, or any other suitable arrangement and/or combination. Server 1112 may include one or more virtual machines running virtual operating systems or other computing architectures that include virtualization. One or more flexible pools of logical storage devices may be virtualized to maintain virtual storage devices for servers. The virtual network can be controlled by the server 1112 using software defined networking. In various embodiments, server 1112 may be adapted to run one or more services or software applications described in the foregoing disclosures. For example, server 1112 may correspond to a server for performing the above processing according to one embodiment of the present disclosure.

サーバ1112は、上記のもののうちのいずれかを含むオペレーティングシステム、および、任意の市販のサーバオペレーティングシステムを実行し得る。また、サーバ1112は、多様なさらに他のサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかも実行可能であり、これらのアプリケーションは、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(コモンゲートウェイインターフェイス)サーバ、JAVA(登録商標)サーバ、およびデータベースサーバなどを含む。データベースサーバの例は、オラクル社、マイクロソフト社、サイベース社、IBM社(International Business Machines)などによって市販されるものを含むが、それらに限定されない。 Server 1112 may run an operating system, including any of those listed above, and any commercially available server operating system. Server 1112 may also run any of a variety of additional server applications and/or middle-tier applications, such as HTTP (Hypertext Transfer Protocol) servers, FTP (File Transfer Protocol) servers, , CGI (Common Gateway Interface) servers, JAVA servers, and database servers. Examples of database servers include, but are not limited to, those marketed by Oracle, Microsoft, Sybase, International Business Machines (IBM), and the like.

いくつかの実現例において、サーバ1112は、クライアントコンピューティングデバイス1102,1104,1106および1108のユーザから受信されるデータフィードおよび/またはイベント更新情報を解析および整理統合するための1つ以上のアプリケーションを含み得る。一例として、データフィードおよび/またはイベント更新情報は、1つ以上のサード・パーティ情報源および連続データストリームから受信される、ツイッター(登録商標)フィード、フェイスブック(登録商標)更新情報またはリアルタイムの更新情報を含み得るが、それらに限定されるものではなく、これらは、センサデータアプリケーション、株式相場表示機、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などに関連するリアルタイムのイベントを含み得る。サーバ1112は、データフィードおよび/またはリアルタイムのイベントをクライアントコンピューティングデバイス1102,1104,11106および1108の1つ以上のディスプレイデバイスを介して表示するための1つ以上のアプリケーションも含み得る。 In some implementations, server 1112 runs one or more applications for parsing and consolidating data feeds and/or event updates received from users of client computing devices 1102, 1104, 1106 and 1108. can contain. As an example, data feeds and/or event updates are received from one or more third party sources and continuous data streams, Twitter feeds, Facebook updates or real-time updates. These may include, but are not limited to, sensor data applications, stock tickers, network performance measurement tools (e.g. network monitoring and traffic management applications), clickstream analysis tools, automotive traffic monitoring may include real-time events related to Server 1112 may also include one or more applications for displaying data feeds and/or real-time events via one or more display devices of client computing devices 1102 , 1104 , 11106 and 1108 .

分散型システム1100は、1つ以上のデータベース1114および1116も含み得る。これらのデータベースは、アイデンティティ情報などの情報、および、本開示の実施形態によって使用される他の情報を格納するための機構を提供し得る。データベース1114および1116は、さまざまな場所に存在し得る。一例として、データベース1114および1116のうちの1つ以上は、サーバ1112にローカルな(および/または、サーバ1112内に存在する)非一時的な記憶媒体上に存在してもよい。代替的に、データベース1114および1116は、サーバ1112から離れていて、ネットワークベースのまたは専用の接続を介して、サーバ1112と通信してもよい。一組の実施形態では、データベース1114および1116は、ストレージエリアネットワーク(SAN)内に存在してもよい。同様に、サーバ1112に帰属する機能を実行するために必要な任意のファイルは、適宜、サーバ1112上にローカルにおよび/またはリモートで格納され得る。一組の実施形態において、データベース1114および1116は、SQLによってフォーマットされたコマンドに応答してデータを格納、更新および検索するように適合された、オラクル社によって提供されるデータベースなどのリレーショナルデータベースを含み得る。 Distributed system 1100 may also include one or more databases 1114 and 1116 . These databases may provide mechanisms for storing information such as identity information and other information used by embodiments of the present disclosure. Databases 1114 and 1116 may reside in various locations. As an example, one or more of databases 1114 and 1116 may reside on non-transitory storage media local to (and/or residing within) server 1112 . Alternatively, databases 1114 and 1116 may be remote from server 1112 and communicate with server 1112 via network-based or dedicated connections. In one set of embodiments, databases 1114 and 1116 may reside within a storage area network (SAN). Similarly, any files necessary to perform functions attributable to server 1112 may be stored locally and/or remotely on server 1112, as appropriate. In one set of embodiments, databases 1114 and 1116 comprise relational databases, such as those provided by Oracle Corporation, adapted to store, update and retrieve data in response to SQL formatted commands. obtain.

図12は、本開示の一実施形態を実現するために使用され得るコンピュータシステム1200の例を示す図である。いくつかの実施形態において、コンピュータシステム1200は、上記のさまざまなサーバおよびコンピュータシステムのうちのいずれかを実現するために使用され得る。図12に示されるように、コンピュータシステム1200は、処理サブシステム1204を含むさまざまなサブシステムを含み、処理サブシステム1204は、バスサブシステム1202を介して複数の周辺サブシステムと通信する。これらの周辺サブシステムは、処理加速ユニット1206と、入出力サブシステム1208と、ストレージサブシステム1218と、通信サブシステム1224とを含み得る。ストレージサブシステム1218は、有形のコンピュータ読取可能記憶媒体1622と、システムメモリ1210とを含み得る。 FIG. 12 is a diagram illustrating an example computer system 1200 that can be used to implement an embodiment of the present disclosure. In some embodiments, computer system 1200 may be used to implement any of the various servers and computer systems described above. As shown in FIG. 12, computer system 1200 includes various subsystems, including processing subsystem 1204 , which communicates with multiple peripheral subsystems via bus subsystem 1202 . These peripheral subsystems may include processing acceleration unit 1206 , input/output subsystem 1208 , storage subsystem 1218 and communication subsystem 1224 . Storage subsystem 1218 may include tangible computer-readable storage media 1622 and system memory 1210 .

バスサブシステム1202は、コンピュータシステム1200のさまざまなコンポーネントおよびサブシステムに意図した通りに互いに通信させるための機構を提供する。バスサブシステム1202は、単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は、複数のバスを利用してもよい。バスサブシステム1202は、いくつかのタイプのバス構造のうちのいずれかでもよく、これらのバス構造は、さまざまなバスアーキテクチャのうちのいずれかを用いるメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む。たとえば、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカルバス、およびIEEE P1386.1規格に従って製造される中二階バスとして実現可能な周辺コンポーネントインターコネクト(PCI)バスなどを含み得る。 Bus subsystem 1202 provides a mechanism for allowing the various components and subsystems of computer system 1200 to communicate with each other as intended. Although bus subsystem 1202 is shown schematically as a single bus, alternate embodiments of the bus subsystem may utilize multiple buses. Bus subsystem 1202 can be any of several types of bus structures, including memory buses or memory controllers, peripheral buses, and local buses using any of a variety of bus architectures. including. For example, such architectures include the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MCA) bus, the Enhanced ISA (EISA) bus, the Video Electronics Standards Association (VESA) local bus, and the IEEE P1386.1 standard. such as a Peripheral Component Interconnect (PCI) bus, which can be implemented as a mezzanine bus manufactured in accordance with US Pat.

処理サブシステム1204は、コンピュータシステム1200の動作を制御し、1つ以上の処理ユニット1232,1234などを含み得る。処理ユニットは、シングルコアもしくはマルチコアプロセッサを含む1つ以上のプロセッサ、プロセッサの1つ以上のコア、またはそれらの組み合わせを含み得る。いくつかの実施形態において、処理サブシステム1204は、グラフィックスプロセッサまたはデジタル信号プロセッサ(DSP)などの1つ以上の特別目的コプロセッサを含み得る。いくつかの実施形態において、処理サブシステム1204の処理ユニットの一部または全ては、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などのカスタマイズされた回路を使用して実現可能である。 Processing subsystem 1204 controls the operation of computer system 1200 and may include one or more processing units 1232, 1234, and the like. A processing unit may include one or more processors, including single-core or multi-core processors, one or more cores of processors, or combinations thereof. In some embodiments, processing subsystem 1204 may include one or more special purpose co-processors such as graphics processors or digital signal processors (DSPs). In some embodiments, some or all of the processing units of processing subsystem 1204 can be implemented using customized circuitry such as an application specific integrated circuit (ASIC) or field programmable gate array (FPGA). be.

いくつかの実施形態では、処理サブシステム1204内の処理ユニットは、システムメモリ1210内またはコンピュータ読取可能記憶媒体1222上に格納された命令を実行することができる。さまざまな実施形態において、処理ユニットは、さまざまなプログラムまたはコード命令を実行することができ、複数の同時実行プログラムまたはプロセスを維持することができる。どんなときでも、実行されるプログラムコードの一部または全ては、システムメモリ1210内に、および/または、場合によっては、1つ以上のストレージデバイス上を含むコンピュータ読取可能記憶媒体1222上に常駐することができる。好適なプログラミングによって、処理サブシステム1204は、使用パターンに応答してドキュメント(たとえば、ウェブページ)を動的に変更するための上記のさまざまな機能を提供することができる。 In some embodiments, the processing units within processing subsystem 1204 can execute instructions stored within system memory 1210 or on computer-readable storage media 1222 . In various embodiments, the processing unit may execute various programs or code instructions and may maintain multiple concurrently executing programs or processes. At any given time, some or all of the executed program code may reside in system memory 1210 and/or on computer readable storage media 1222, including on one or more storage devices, as the case may be. can be done. Through suitable programming, processing subsystem 1204 can provide the various functions described above for dynamically modifying documents (eg, web pages) in response to usage patterns.

特定の実施形態において、処理加速ユニット1206は、コンピュータシステム1200によって実行される処理全体を加速させるように、カスタマイズされた処理を実行するために、または、処理サブシステム1204によって実行される処理の一部をオフロードするために設けられてもよい。 In particular embodiments, processing acceleration unit 1206 is used to accelerate the overall processing performed by computer system 1200, to perform customized processing, or to perform one of the processing performed by processing subsystem 1204. may be provided for offloading units.

入出力サブシステム1208は、情報をコンピュータシステム1200に入力するための、および/または、情報をコンピュータシステム1200からもしくはコンピュータシステム1200を介して出力するためのデバイスおよび機構を含み得る。一般に、「入力デバイス」という用語の使用は、情報をコンピュータシステム1200に入力するための全ての可能なタイプのデバイスおよび機構を含むように意図されている。ユーザインターフェイス入力デバイスは、たとえば、キーボード、ポインティングデバイス(マウスまたはトラックボールなど)、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを有するオーディオ入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含み得る。ユーザインターフェイス入力デバイスは、ユーザが入力デバイスを制御して入力デバイスと対話することを可能にするモーション感知および/またはジェスチャ認識デバイス(マイクロソフトキネクト(登録商標)モーションセンサなど)、マイクロソフトXbox(登録商標)360ゲームコントローラ、ジェスチャおよび口頭のコマンドを使用して入力を受信するためのインターフェイスを提供するデバイスも含み得る。ユーザインターフェイス入力デバイスは、ユーザから目の動き(たとえば、写真を撮っている間および/またはメニュー選択を行なっている間の「まばたき」)を検出してアイジェスチャを入力デバイス(たとえば、グーグルグラス(登録商標))への入力として変換するアイジェスチャ認識デバイス(グーグルグラス(登録商標)瞬き検出器など)も含み得る。さらに、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム(たとえば、Siri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含み得る。 Input/output subsystem 1208 may include devices and mechanisms for inputting information into computer system 1200 and/or for outputting information from or through computer system 1200 . In general, use of the term “input device” is intended to include all possible types of devices and mechanisms for entering information into computer system 1200 . User interface input devices are, for example, keyboards, pointing devices (such as mice or trackballs), touchpads or touchscreens built into displays, scroll wheels, click wheels, dials, buttons, switches, keypads, voice command recognition systems , microphones, and other types of input devices. User interface input devices include motion-sensing and/or gesture-recognition devices that allow users to control and interact with input devices (such as the Microsoft Kinect® motion sensor), Microsoft Xbox® 360 game controllers, devices that provide an interface for receiving input using gestures and verbal commands. A user interface input device detects eye movements from a user (e.g., "blinking" while taking a picture and/or making a menu selection) and recognizes eye gestures as an input device (e.g., Google Glass). It may also include an eye gesture recognition device (such as the Google Glass® Blink Detector) that translates as input to the . Additionally, user interface input devices may include voice recognition sensing devices that allow users to interact with a voice recognition system (eg, Siri® navigator) via voice commands.

ユーザインターフェイス入力デバイスの他の例としては、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにオーディオ/ビジュアルデバイス(スピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなど)が挙げられるが、それらに限定されない。さらに、ユーザインターフェイス入力デバイスは、たとえば、コンピュータ断層撮影、磁気共鳴撮像、ポジションエミッショントモグラフィー、医療用超音波検査デバイスなどの医療用画像化入力デバイスを含み得る。ユーザインターフェイス入力デバイスは、たとえば、MIDIキーボードおよびデジタル楽器などのオーディオ入力デバイスも含み得る。 Other examples of user interface input devices include three-dimensional (3D) mice, joysticks or pointing sticks, gamepads and graphics tablets, and audio/visual devices (speakers, digital cameras, digital camcorders, portable media players, webcams, image scanners, fingerprint scanners, bar code readers 3D scanners, 3D printers, laser range finders, eye tracking devices, etc.). Further, user interface input devices may include medical imaging input devices such as computed tomography, magnetic resonance imaging, position emission tomography, medical ultrasonography devices, and the like. User interface input devices may also include audio input devices such as, for example, MIDI keyboards and digital musical instruments.

ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または非ビジュアルディスプレイ(オーディオ出力デバイスなど)を含み得る。ディスプレイサブシステムは、陰極線管(CRT)、フラットパネルデバイス(液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するものなど)、投影デバイス、およびタッチスクリーンなどであり得る。一般に、「出力デバイス」という用語の使用は、情報をコンピュータシステム1200からユーザまたは他のコンピュータに出力するための全ての可能なタイプのデバイスおよび機構を含むように意図されている。たとえば、ユーザインターフェイス出力デバイスは、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまなディスプレイデバイス(モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなど)を含み得るが、それらに限定されない。 User interface output devices may include display subsystems, indicator lights, or non-visual displays (such as audio output devices). Display subsystems can be cathode ray tubes (CRTs), flat panel devices (such as those that use liquid crystal displays (LCDs) or plasma displays), projection devices, touch screens, and the like. In general, use of the term "output device" is intended to include all possible types of devices and mechanisms for outputting information from computer system 1200 to a user or other computer. For example, user interface output devices include various display devices such as monitors, printers, speakers, headphones, automotive navigation systems, plotters, audio output devices and modems that visually convey text, graphics and audio/visual information. obtain, but are not limited to.

ストレージサブシステム1218は、コンピュータシステム1200によって使用される情報を格納するためのリポジトリまたはデータストアを提供する。ストレージサブシステム1218は、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形の非一時的なコンピュータ読取可能記憶媒体を提供する。処理サブシステム1204によって実行されると上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム1218に格納され得る。このソフトウェアは、処理サブシステム1204の1つ以上の処理ユニットによって実行可能である。ストレージサブシステム1218は、本開示に従って使用されるデータを格納するためのリポジトリも提供し得る。 Storage subsystem 1218 provides a repository or data store for storing information used by computer system 1200 . Storage subsystem 1218 provides tangible, non-transitory computer-readable storage media for storing the basic programming and data structures that provide the functionality of some embodiments. Software (programs, code modules, instructions) that provide the functions described above when executed by processing subsystem 1204 may be stored in storage subsystem 1218 . This software is executable by one or more processing units of processing subsystem 1204 . Storage subsystem 1218 may also provide a repository for storing data used in accordance with this disclosure.

ストレージサブシステム1218は、揮発性および不揮発性メモリデバイスを含む1つ以上の非一時的なメモリデバイスを含み得る。図12に示されるように、ストレージサブシステム1218は、システムメモリ1210と、コンピュータ読取可能記憶媒体1222とを含む。システムメモリ1210は、いくつかのメモリを含んでもよく、これらのメモリは、プログラム実行中に命令およびデータを格納するための揮発性メインランダムアクセスメモリ(RAM)、および、固定命令が格納される不揮発性リードオンリメモリ(ROM)またはフラッシュメモリを含む。いくつかの実現例において、起動中などにコンピュータシステム1200内の要素間で情報を転送するのを支援する基本的なルーチンを含む基本入出力システム(BIOS)は、ROMに格納され得る。RAMは、処理サブシステム1204によって現在動作および実行されているデータならびに/またはプログラムモジュールを含み得る。いくつかの実現例において、システムメモリ1210は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)などの、複数の異なるタイプのメモリを含み得る。 Storage subsystem 1218 may include one or more non-transitory memory devices, including volatile and non-volatile memory devices. As shown in FIG. 12, storage subsystem 1218 includes system memory 1210 and computer readable storage media 1222 . System memory 1210 may include a number of memories, including volatile main random access memory (RAM) for storing instructions and data during program execution, and non-volatile main random access memory (RAM) in which fixed instructions are stored. includes permanent read-only memory (ROM) or flash memory. In some implementations, the basic input/output system (BIOS), containing the basic routines that help to transfer information between elements within computer system 1200, such as during start-up, can be stored in ROM. The RAM may contain data and/or program modules currently being operated on and executed by processing subsystem 1204 . In some implementations, system memory 1210 may include multiple different types of memory, such as static random access memory (SRAM) or dynamic random access memory (DRAM).

限定ではなく例として、図12に示すように、システムメモリ1210は、アプリケーションプログラム1212(クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得る)と、プログラムデータ1214と、オペレーティングシステム1216とを格納し得る。一例として、オペレーティングシステム1216は、マイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/もしくはLinuxオペレーティングシステムのさまざまなバージョン、さまざまな市販のUNIX(登録商標)もしくはUNIX系オペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、グーグルクローム(登録商標)OSなどを含むが、それらに限定されない)、ならびに/または、モバイルオペレーティングシステム(iOS、ウィンドウズ(登録商標)フォン、アンドロイド(登録商標)OS、ブラックベリー(登録商標)10OS、およびパーム(登録商標)OSオペレーティングシステム)を含み得る。 By way of example, and not limitation, as shown in FIG. 12, system memory 1210 includes application programs 1212 (which may include client applications, web browsers, middle-tier applications, relational database management systems (RDBMS), etc.); program data 1214; , operating system 1216 . By way of example, operating system 1216 may include various versions of Microsoft Windows®, Apple Macintosh® and/or Linux operating systems, various commercially available UNIX or UNIX-like operating systems (including various GNU /Linux operating systems, Google Chrome OS, etc.) and/or mobile operating systems (iOS, Windows phones, Android OS, Blackberry ( 10 OS, and Palm ® OS operating systems).

コンピュータ読取可能記憶媒体1222は、いくつかの実施形態の機能を提供するプログラミングおよびデータ構造を格納し得る。処理サブシステム1204によって実行されるとプロセッサが上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム1218に格納され得る。一例として、コンピュータ読取可能記憶媒体1222は、ハードディスクドライブ、磁気ディスクドライブ、光ディスクドライブ(CD ROM、DVD、ブルーレイ(登録商標)ディスクなど)、または他の光学メディアなどの不揮発性メモリを含み得る。コンピュータ読取可能記憶媒体1222は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、およびデジタルビデオテープなどを含み得るが、それらに限定されない。コンピュータ読取可能記憶媒体1222は、不揮発性メモリに基づくソリッドステートドライブ(SSD)(フラッシュメモリベースのSSD、企業フラッシュドライブ、ソリッドステートROMなど)、揮発性メモリに基づくSSD(ソリッドステートRAM、ダイナミックRAM、スタティックRAMなど)、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMベースのSSDとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDも含み得る。コンピュータ読取可能媒体1222は、コンピュータシステム1200のためのコンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータのストレージを提供し得る。 Computer-readable storage media 1222 may store programming and data structures that provide the functionality of some embodiments. Software (programs, code modules, instructions) that, when executed by processing subsystem 1204 causes the processor to provide the functions described above, may be stored in storage subsystem 1218 . By way of example, computer-readable storage medium 1222 may include non-volatile memory such as a hard disk drive, magnetic disk drive, optical disk drive (such as CD ROM, DVD, Blu-ray disc, etc.), or other optical media. Computer readable storage media 1222 can include Zip drives, flash memory cards, Universal Serial Bus (USB) flash drives, Secure Digital (SD) cards, DVD discs, digital video tapes, and the like, including but not limited to Not limited. The computer readable storage medium 1222 includes solid state drives (SSDs) based on nonvolatile memory (such as flash memory based SSDs, enterprise flash drives, solid state ROM, etc.), SSDs based on volatile memory (such as solid state RAM, dynamic RAM, static RAM, etc.), DRAM-based SSDs, magnetoresistive RAM (MRAM) SSDs, and hybrid SSDs that use a combination of DRAM-based SSDs and flash memory-based SSDs. Computer readable media 1222 may provide storage of computer readable instructions, data structures, program modules and other data for computer system 1200 .

特定の実施形態において、ストレージサブシステム1200は、コンピュータ読取可能記憶媒体1222にさらに接続可能なコンピュータ読取可能記憶媒体リーダ1220も含み得る。システムメモリ1210と共に、および任意にシステムメモリ1210と組み合わせて、コンピュータ読取可能記憶媒体1222は、コンピュータ読取可能情報を格納するための、リモートの、ローカルの、固定された、および/または、取り外し可能なストレージデバイスと記憶媒体とを包括的に表し得る。 In particular embodiments, the storage subsystem 1200 may also include a computer readable storage media reader 1220 that may further connect to computer readable storage media 1222 . Along with and optionally in combination with system memory 1210, computer-readable storage media 1222 are remote, local, fixed, and/or removable media for storing computer-readable information. Storage devices and storage media may be collectively referred to.

特定の実施形態では、コンピュータシステム1200は、1つ以上の仮想マシンを実行するためのサポートを提供してもよい。コンピュータシステム1200は、仮想マシンの設定および管理を容易にするためのハイパーバイザなどのプログラムを実行することができる。各仮想マシンは、メモリ、計算(たとえば、プロセッサ、コア)、入出力、およびネットワーキングリソースを割り当てられ得る。各仮想マシンは、コンピュータシステム1200によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同じであっても異なっていてもよい独自のオペレーティングシステムを実行してもよい。したがって、複数のオペレーティングシステムがコンピュータシステム1200によって同時に実行される可能性がある。各仮想マシンは、概して、他の仮想マシンから独立して動作する。 In particular embodiments, computer system 1200 may provide support for running one or more virtual machines. Computer system 1200 can execute programs such as a hypervisor to facilitate configuration and management of virtual machines. Each virtual machine may be allocated memory, computation (eg, processors, cores), input/output, and networking resources. Each virtual machine may run its own operating system, which may be the same as or different from the operating systems run by other virtual machines run by computer system 1200 . Thus, multiple operating systems may be run by computer system 1200 at the same time. Each virtual machine generally operates independently of other virtual machines.

通信サブシステム1224は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム1224は、他のシステムとコンピュータシステム1200との間のデータの送受信のためのインターフェイスとしての役割を果たす。たとえば、通信サブシステム1224は、コンピュータシステム1200が、クライアントデバイスとの間での情報の送受信のための、インターネットを介した1つ以上のクライアントデバイスに対する通信チャネルを確立することを可能にし得る。さらに、通信サブシステム1224は、ログインが成功したことの通知、または、特権が付与されているアカウントマネージャから要求元のユーザにパスワードを再入力するための通知を伝達するために使用され得る。 Communications subsystem 1224 provides an interface to other computer systems and networks. Communications subsystem 1224 serves as an interface for sending and receiving data between other systems and computer system 1200 . For example, communications subsystem 1224 may enable computer system 1200 to establish a communications channel to one or more client devices over the Internet for sending and receiving information to and from the client devices. Additionally, the communications subsystem 1224 may be used to convey notification of a successful login or notification from a privileged account manager to the requesting user to re-enter the password.

通信サブシステム1224は、有線および/または無線通信プロトコルを両方ともサポートし得る。たとえば、特定の実施形態において、通信サブシステム1224は、(たとえば、セルラー電話技術、先進データネットワーク技術(3G、4GもしくはEDGE(enhanced data rates for global evolution)など)、WiFi(IEEE802.11ファミリー規格)、または他のモバイル通信技術、またはそれらの任意の組み合わせを使用して)無線音声および/またはデータネットワークにアクセスするための無線周波数(RF)送受信機コンポーネント、グローバルポジショニングシステム(GPS)受信機コンポーネント、ならびに/または、他のコンポーネントを含み得る。いくつかの実施形態において、通信サブシステム1224は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続(たとえば、イーサネット)を提供することができる。 Communication subsystem 1224 may support both wired and/or wireless communication protocols. For example, in certain embodiments, the communications subsystem 1224 may include (eg, cellular telephony, advanced data network technologies such as 3G, 4G or enhanced data rates for global evolution (EDGE)), WiFi (IEEE 802.11 family of standards) radio frequency (RF) transceiver components, global positioning system (GPS) receiver components for accessing wireless voice and/or data networks, using other mobile communication technologies, or any combination thereof; and/or may include other components. In some embodiments, communication subsystem 1224 may provide a wired network connection (eg, Ethernet) in addition to or instead of a wireless interface.

通信サブシステム1224は、データをさまざまな形式で送受信することができる。たとえば、いくつかの実施形態において、通信サブシステム1224は、構造化されたおよび/または構造化されていないデータフィード1226、イベントストリーム1228、およびイベント更新情報1230などの形式で入力通信を受信し得る。たとえば、通信サブシステム1224は、ソーシャルメディアネットワークのユーザからリアルタイムでデータフィード1226および/または他の通信サービス(ツイッター(登録商標)フィード、フェイスブック(登録商標)更新情報、ウェブフィード(リッチ・サイト・サマリ(RSS)フィードなど)、および/または、1つ以上のサード・パーティ情報源からのリアルタイム更新情報など)を受信(または、送信)するように構成可能である。 Communication subsystem 1224 can send and receive data in a variety of formats. For example, in some embodiments, communications subsystem 1224 may receive input communications in the form of structured and/or unstructured data feeds 1226, event streams 1228, event updates 1230, and the like. . For example, the communication subsystem 1224 may receive data feeds 1226 and/or other communication services (Twitter® feeds, Facebook® updates, web feeds (rich sites) in real-time from users of social media networks. summary (RSS) feeds) and/or real-time updates from one or more third party sources).

特定の実施形態において、通信サブシステム1224は、連続データストリームの形式でデータを受信するように構成されてもよく、この連続データストリームは、明確な終端を持たない、事実上連続的または無限であり得るリアルタイムイベントのイベントストリーム1228および/またはイベント更新情報1230を含み得る。連続データを生成するアプリケーションの例としては、たとえば、センサデータアプリケーション、株式相場表示機、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、および自動車交通監視などを挙げることができる。 In certain embodiments, the communications subsystem 1224 may be configured to receive data in the form of a continuous data stream, which is continuous or infinite in nature with no definite end. An event stream 1228 of possible real-time events and/or event updates 1230 may be included. Examples of applications that generate continuous data include, for example, sensor data applications, stock tickers, network performance measurement tools (eg, network monitoring and traffic management applications), clickstream analysis tools, and automotive traffic monitoring. can be done.

通信サブシステム1224はまた、コンピュータシステム1200に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに、構造化されたおよび/または構造化されていないデータフィード1226、イベントストリーム1228、およびイベント更新情報1230などを出力するように構成可能である。 Communication subsystem 1224 also stores structured and/or unstructured data feeds 1226, event It can be configured to output streams 1228, event update information 1230, and the like.

コンピュータシステム1200は、手持ち式の携帯型デバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、グーグルグラス(登録商標)頭部装着型ディスプレイ)、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含むものなど、さまざまなタイプのもののうちの1つであり得る。 Computer system 1200 can be used for handheld portable devices (eg, iPhone® mobile phones, iPad® computing tablets, PDAs), wearable devices (eg, Google Glass® head-mounted displays). ), personal computers, workstations, mainframes, kiosks, server racks, or other data processing systems.

コンピュータおよびネットワークの性質は常に変化するため、図12に示されるコンピュータシステム1200の記載は、具体例であることが意図されているに過ぎない。図12に示されているシステムよりも多くのコンポーネントまたは少ないコンポーネントを有する多くの他の構成が可能である。本明細書において提供されている開示および教示に基づいて、当業者は、さまざまな実施形態を実現するための他の態様および/または方法を理解するであろう。 Due to the ever-changing nature of computers and networks, the description of computer system 1200 shown in FIG. 12 is intended to be exemplary only. Many other configurations are possible, having more or fewer components than the system shown in FIG. Based on the disclosure and teachings provided herein, a person of ordinary skill in the art will appreciate other aspects and/or methods for implementing various embodiments.

いくつかの図面に示されているシステムは、さまざまな構成で提供されてもよい。いくつかの実施形態において、これらのシステムは、システムの1つ以上のコンポーネントが1つ以上のクラウドインフラストラクチャシステム内の1つ以上のネットワークにわたって分散される分散型システムとして構成されてもよい。 The system shown in some figures may be provided in various configurations. In some embodiments, these systems may be configured as distributed systems in which one or more components of the system are distributed across one or more networks within one or more cloud infrastructure systems.

クラウドインフラストラクチャシステムは、1つ以上のサーバコンピューティングデバイス、ネットワークデバイスおよび/またはストレージデバイスの集合である。これらのリソースは、クラウドサービスプロバイダによって分割されて、その顧客に何らかの方法で割り当てられてもよい。たとえば、クラウドサービスプロバイダ(カリフォルニア州レッドウッドショアーズのオラクル社など)は、ソフトウェア・アズ・ア・サービス(SaaS)カテゴリ下で提供される1つ以上のサービス、プラットフォーム・アズ・ア・サービス(PaaS)カテゴリ下で提供されるサービス、インフラストラクチャ・アズ・ア・サービス(IaaS)カテゴリ下で提供されるサービス、またはハイブリッドサービスを含むサービスの他のカテゴリのサービスを含むが、それらに限定されない、さまざまなタイプのクラウドサービスを提供し得る。SaaSサービスの例としては、Oracle Fusionアプリケーションなどのオンデマンドアプリケーション一式を構築して提供する機能が挙げられるが、それに限定されない。SaaSサービスによって、顧客は、クラウドインフラストラクチャシステム上で実行されるアプリケーションのためのソフトウェアを購入する必要なく、これらのアプリケーションを利用することが可能になる。PaaSサービスの例としては、組織(Oracleなど)が既存のアプリケーションを共有の共通アーキテクチャ上に統合するためのサービス、ならびにオラクルJavaクラウドサービス(JCS)およびオラクルデータベースクラウドサービス(DBCS)といった、プラットフォームによって提供される共有サービスを活用した新しいアプリケーションを構築する機能などがあるが、これらに限定されない。IaaSサービスは、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のために、ストレージ、ネットワークおよび他の基本的なコンピューティングリソースなどの基本的なコンピューティングリソースの管理および制御を容易にし得る。 A cloud infrastructure system is a collection of one or more server computing devices, network devices and/or storage devices. These resources may be divided by the cloud service provider and allocated in some way to its customers. For example, a cloud service provider (such as Oracle Corporation of Redwood Shores, Calif.) offers one or more services offered under the Software as a Service (SaaS) category, the Platform as a Service (PaaS) services provided under the Infrastructure as a Service (IaaS) category, or other categories of services, including hybrid services. type of cloud services. Examples of SaaS services include, but are not limited to, the ability to build and deliver a suite of on-demand applications such as Oracle Fusion applications. SaaS services allow customers to take advantage of applications running on cloud infrastructure systems without having to purchase the software for those applications. Examples of PaaS services include services for organizations (such as Oracle) to integrate existing applications onto a shared common architecture, as well as services provided by platforms such as Oracle Java Cloud Services (JCS) and Oracle Database Cloud Services (DBCS). These include, but are not limited to, the ability to build new applications that leverage shared services provided by IaaS services can facilitate management and control of basic computing resources such as storage, networks and other basic computing resources for customers who utilize services provided by SaaS and PaaS platforms. .

図13は、本開示の一実施形態に係る、実施形態のシステムの1つ以上のコンポーネントによって提供されるサービスがクラウドサービスとして提供され得るシステム環境1300の1つ以上のコンポーネントを示す簡略ブロック図である。示されている実施形態において、システム環境1300は、1つ以上のクライアントコンピューティングデバイス1304,1306および1308を含み、これらのクライアントコンピューティングデバイスは、クラウドサービスを提供するクラウドインフラストラクチャシステム1302と対話するために、ユーザによって使用され得る。これらのクライアントコンピューティングデバイスは、ウェブブラウザ、プロプライエタリクライアントアプリケーション(たとえば、オラクルフォームズなどのクライアントアプリケーション、または何らかの他のアプリケーションなど)を動作させるように構成され得、このクライアントアプリケーションは、クラウドインフラストラクチャシステム1302と対話して、クラウドインフラストラクチャシステム1302によって提供されるサービスを使用するためにクライアントコンピューティングデバイスのユーザによって使用され得る。 FIG. 13 is a simplified block diagram illustrating one or more components of a system environment 1300 in which services provided by one or more components of the system of embodiments may be provided as cloud services, in accordance with one embodiment of the present disclosure. be. In the illustrated embodiment, the system environment 1300 includes one or more client computing devices 1304, 1306, and 1308 that interact with a cloud infrastructure system 1302 that provides cloud services. can be used by the user to These client computing devices may be configured to run a web browser, a proprietary client application (eg, a client application such as Oracle Forms, or some other application, etc.), which may be used by cloud infrastructure system 1302. can be used by users of client computing devices to interact with and use services provided by cloud infrastructure system 1302 .

図に示されているクラウドインフラストラクチャシステム1302は、示されているコンポーネント以外のコンポーネントを有してもよいということが理解されるべきである。さらに、図に示されている実施形態は、本開示の一実施形態を組み込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態では、クラウドインフラストラクチャシステム1302は、図に示されているよりも多くのコンポーネントもしくは少ないコンポーネントを有していてもよい、2つ以上のコンポーネントを組み合わせてもよい、またはコンポーネントの異なる構成もしくは配置を有してもよい。 It should be appreciated that the illustrated cloud infrastructure system 1302 may have components other than those shown. Additionally, the illustrated embodiment is only one example of a cloud infrastructure system that may incorporate an embodiment of the present disclosure. In some other embodiments, cloud infrastructure system 1302 may have more or fewer components than those shown in the figure, may combine two or more components, or It may have different configurations or arrangements of components.

クライアントコンピューティングデバイス1304,1306および1308は、クライアントコンピューティングデバイス1102,1104,1106および1108について上述したものと同様のデバイスであり得る。 Client computing devices 1304 , 1306 and 1308 can be devices similar to those described above for client computing devices 1102 , 1104 , 1106 and 1108 .

システム環境1300の例は3つのクライアントコンピューティングデバイスと共に示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを有するデバイスなどの他のデバイスが、クラウドインフラストラクチャシステム1302と対話してもよい。 Although the example system environment 1300 is shown with three client computing devices, any number of client computing devices may be supported. Other devices, such as devices with sensors, may interact with cloud infrastructure system 1302 .

ネットワーク(複数可)1310は、クライアント1304,1306および1308とクラウドインフラストラクチャシステム1302との間におけるデータの通信および交換を容易にし得る。各ネットワークは、ネットワーク(複数可)1110について上記したものを含む、さまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポート可能な、当業者になじみのある任意のタイプのネットワークであり得る。 Network(s) 1310 may facilitate communication and exchange of data between clients 1304 , 1306 and 1308 and cloud infrastructure system 1302 . Each network is any type of network familiar to those skilled in the art capable of supporting data communication using any of a variety of commercially available protocols, including those described above for network(s) 1110. obtain.

クラウドインフラストラクチャシステム1302は、1つ以上のコンピュータ、および/または、サーバ1112について上記したものを含み得るサーバを備え得る。 Cloud infrastructure system 1302 may comprise one or more computers and/or servers, which may include those described above for server 1112 .

特定の実施形態において、クラウドインフラストラクチャシステムによって提供されるサービスは、オンデマンドでクラウドインフラストラクチャシステムのユーザに利用可能にされる多数のサービス(オンラインデータストレージおよびバックアップソリューション、ウェブベースの電子メールサービス、ホスト型オフィススイートおよび文書コラボレーションサービス、データベース処理、管理された技術サポートサービスなど)を含み得る。クラウドインフラストラクチャシステムによって提供されるサービスは、動的にスケーリングしてそのユーザのニーズを満たすことができる。クラウドインフラストラクチャシステムによって提供されるサービスのある具体的なインスタンス化は、本明細書では「サービスインスタンス」と称される。一般に、クラウドサービスプロバイダのシステムからインターネットなどの通信ネットワークを介してユーザに利用可能にされる任意のサービスは、「クラウドサービス」と称される。パブリックなクラウド環境においては、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスのサーバおよびシステムとは異なる。たとえば、クラウドサービスプロバイダのシステムは、アプリケーションをホスト可能であり、ユーザは、インターネットなどの通信ネットワークを介して、オンデマンドで、アプリケーションのオーダーおよび使用が可能である。 In certain embodiments, the services provided by the cloud infrastructure system include a number of services made available to users of the cloud infrastructure system on demand (online data storage and backup solutions, web-based email services, hosted office suite and document collaboration services, database processing, managed technical support services, etc.). Services provided by cloud infrastructure systems can be dynamically scaled to meet the needs of their users. A specific instantiation of a service provided by a cloud infrastructure system is referred to herein as a "service instance." Generally, any service that is made available to users from a cloud service provider's system over a communication network such as the Internet is referred to as a "cloud service." In a public cloud environment, the servers and systems that make up a cloud service provider's system are distinct from the customer's own on-premises servers and systems. For example, a cloud service provider's system can host the application, and users can order and use the application on demand over a communication network such as the Internet.

いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、ストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーション、またはクラウドベンダによってユーザに提供される他のサービス、またはそうでなければ当該技術分野において公知であるような他のサービスに対する保護されたコンピュータネットワークアクセスを含み得る。たとえば、サービスは、インターネットを介した、クラウド上のリモートストレージに対するパスワード保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク接続された開発者による個人的な使用のための、ウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダのウェブサイトにおいてホストされる電子メールソフトウェアアプリケーションに対するアクセスを含み得る。 In some examples, the services in the computer network cloud infrastructure are storage, hosted databases, hosted web servers, software applications, or other services provided to users by cloud vendors or otherwise in the art. may include protected computer network access to other services such as those known in . For example, a service may include password-protected access to remote storage on the cloud over the Internet. As another example, a service may include a web services-based hosted relational database and scripting language middleware engine for personal use by networked developers. As another example, a service may include access to an email software application hosted at a cloud vendor's website.

特定の実施形態において、クラウドインフラストラクチャシステム1302は、セルフサービスの、サブスクリプションベースの、弾性的にスケーラブルで、信頼性があり、高可用性の、安全な態様で顧客に対して提供される一式のアプリケーション、ミドルウェア、およびデータベースサービス提供を含み得る。このようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクルパブリッククラウド(Oracle Public Cloud)である。 In particular embodiments, cloud infrastructure system 1302 is a set of cloud infrastructures provided to customers in a self-service, subscription-based, elastically scalable, reliable, highly available, and secure manner. May include application, middleware, and database service offerings. An example of such a cloud infrastructure system is the Oracle Public Cloud provided by the Assignee.

さまざまな実施形態において、クラウドインフラストラクチャシステム1302は、クラウドインフラストラクチャシステム1302によって提供されるサービスに対する顧客のサブスクリプションを自動的にプロビジョニングし、管理し、および追跡するように適合され得る。クラウドインフラストラクチャシステム1302は、クラウドサービスを異なるデプロイメントモデルを介して提供し得る。たとえば、サービスは、クラウドインフラストラクチャシステム1302が(たとえばオラクル社によって所有される)クラウドサービスを販売する組織によって所有され、サービスが一般大衆または異なる業界企業に利用可能にされるパブリッククラウドモデルの下で提供されてもよい。別の例として、サービスは、クラウドインフラストラクチャシステム1302がもっぱら単一の組織について動作され、その組織内における1つ以上のエンティティのためのサービスを提供し得るプライベートクラウドモデルの下で提供されてもよい。また、クラウドサービスは、クラウドインフラストラクチャシステム1302およびクラウドインフラストラクチャシステム1302によって提供されるサービスが、関連するコミュニティにおけるいくつかの組織によって共有されるコミュニティクラウドモデルの下で提供されてもよい。また、クラウドサービスは、2つ以上の異なるモデルの組み合わせであるハイブリッドクラウドモデルの下で提供されてもよい。 In various embodiments, cloud infrastructure system 1302 may be adapted to automatically provision, manage, and track customer subscriptions to services provided by cloud infrastructure system 1302 . Cloud infrastructure system 1302 may provide cloud services via different deployment models. For example, services may be under a public cloud model where the cloud infrastructure system 1302 is owned by an organization that sells cloud services (e.g., owned by Oracle Corporation) and the services are made available to the general public or to companies in different industries. may be provided. As another example, services may be provided under a private cloud model where cloud infrastructure system 1302 may operate solely for a single organization and may provide services for one or more entities within that organization. good. Cloud services may also be provided under a community cloud model in which the cloud infrastructure system 1302 and the services provided by the cloud infrastructure system 1302 are shared by several organizations in related communities. Cloud services may also be provided under a hybrid cloud model, which is a combination of two or more different models.

いくつかの実施形態では、クラウドインフラストラクチャシステム1302によって提供されるサービスは、ソフトウェア・アズ・ア・サービス(SaaS)カテゴリ、プラットフォーム・アズ・ア・サービス(PaaS)カテゴリ、インフラストラクチャ・アズ・ア・サービス(IaaS)カテゴリ、またはハイブリッドサービスを含む他のサービスのカテゴリの下で提供される1つ以上のサービスを含み得る。顧客は、サブスクリプションオーダーを介して、クラウドインフラストラクチャシステム1302によって提供される1つ以上のサービスをオーダーし得る。クラウドインフラストラクチャシステム1302は、次に、処理を実行して、顧客のサブスクリプションオーダーにおけるサービスを提供する。 In some embodiments, the services provided by the cloud infrastructure system 1302 are in the Software as a Service (SaaS) category, the Platform as a Service (PaaS) category, the Infrastructure as a Service (PaaS) category, It may include one or more services provided under a service (IaaS) category, or other categories of service, including hybrid services. A customer may order one or more services provided by cloud infrastructure system 1302 via a subscription order. Cloud infrastructure system 1302 then performs processing to provide the service in the customer's subscription order.

いくつかの実施形態において、クラウドインフラストラクチャシステム1302によって提供されるサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含み得るが、それらに限定されない。いくつかの例では、アプリケーションサービスは、クラウドインフラストラクチャシステムによってSaaSプラットフォームを介して提供され得る。SaaSプラットフォームは、SaaSカテゴリに該当するクラウドサービスを提供するように構成可能である。たとえば、SaaSプラットフォームは、統合された開発およびデプロイメントプラットフォーム上で一式のオンデマンドアプリケーションを構築して提供する機能を提供し得る。SaaSプラットフォームは、SaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理ならびに制御し得る。SaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムにおいて実行されるアプリケーションを利用することができる。顧客は、別個のライセンスおよびサポートを購入する必要なくアプリケーションサービスを取得することができる。さまざまな異なるSaaSサービスが提供されてもよい。その例としては、大組織向けの販売実績管理、企業統合、およびビジネスの柔軟性のためのソリューションを提供するサービスが挙げられるが、それらに限定されない。 In some embodiments, services provided by cloud infrastructure system 1302 may include, but are not limited to, application services, platform services, and infrastructure services. In some examples, application services may be provided via a SaaS platform by a cloud infrastructure system. A SaaS platform can be configured to provide cloud services that fall under the SaaS category. For example, a SaaS platform may provide the ability to build and deliver a suite of on-demand applications on an integrated development and deployment platform. A SaaS platform may manage and control the underlying software and infrastructure for providing SaaS services. By using the services provided by the SaaS platform, customers can take advantage of applications running on cloud infrastructure systems. Customers can acquire application services without having to purchase separate licenses and support. A variety of different SaaS services may be offered. Examples include, but are not limited to, services that provide solutions for sales performance management, enterprise consolidation, and business flexibility for large organizations.

いくつかの実施形態において、プラットフォームサービスは、クラウドインフラストラクチャシステムによってPaaSプラットフォームを介して提供され得る。PaaSプラットフォームは、PaaSカテゴリに該当するクラウドサービスを提供するように構成可能である。プラットフォームサービスの例としては、組織(オラクル社など)が既存のアプリケーションを共有の共通のアーキテクチャ上で統合することを可能にするサービス、およびプラットフォームによって提供される共有のサービスを活用する新しいアプリケーションを構築する機能を挙げることができるが、それらに限定されない。PaaSプラットフォームは、PaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理ならびに制御し得る。顧客は、クラウドインフラストラクチャシステムによって提供されるPaaSサービスを、別個のライセンスおよびサポートを購入する必要なく取得することができる。プラットフォームサービスの例としては、オラクルJavaクラウドサービス(JCS)およびオラクルデータベースクラウドサービス(DBCS)などが挙げられるが、それらに限定されない。 In some embodiments, platform services may be provided via a PaaS platform by a cloud infrastructure system. A PaaS platform can be configured to provide cloud services that fall under the PaaS category. Examples of platform services include services that enable organizations (such as Oracle) to integrate existing applications on a shared common architecture, and build new applications that leverage shared services provided by the platform. This includes, but is not limited to, functions that A PaaS platform may manage and control the underlying software and infrastructure for providing PaaS services. Customers can acquire PaaS services provided by cloud infrastructure systems without having to purchase separate licenses and support. Examples of platform services include, but are not limited to, Oracle Java Cloud Services (JCS) and Oracle Database Cloud Services (DBCS).

PaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを使用することができ、デプロイされたサービスを制御することもできる。いくつかの実施形態において、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス(たとえば、オラクル・フュージョン・ミドルウェアサービス)、およびJavaクラウドサービスを含み得る。一実施形態において、データベースクラウドサービスは、組織がデータベースリソースをプールし、顧客にデータベース・アズ・ア・サービスをデータベースクラウドの形式で提供することを可能にする共有のサービスデプロイメントモデルをサポートし得る。クラウドインフラストラクチャシステムにおいて、ミドルウェアクラウドサービスは、顧客がさまざまなビジネスアプリケーションを開発およびデプロイするためのプラットフォームを提供することが可能であり、Javaクラウドサービスは、顧客がJavaアプリケーションをデプロイするためのプラットフォームを、クラウドインフラストラクチャシステムにおいて提供することが可能である。 By utilizing the services provided by the PaaS platform, customers can use programming languages and tools supported by the cloud infrastructure system and also control the deployed services. In some embodiments, platform services provided by the cloud infrastructure system may include database cloud services, middleware cloud services (eg, Oracle Fusion middleware services), and Java cloud services. In one embodiment, the database cloud service may support a shared service deployment model that allows an organization to pool database resources and offer customers a database-as-a-service in the form of a database cloud. In the cloud infrastructure system, middleware cloud services can provide a platform for customers to develop and deploy various business applications, and Java cloud services can provide a platform for customers to deploy Java applications. , can be provided in a cloud infrastructure system.

さまざまな異なるインフラストラクチャサービスが、IaaSプラットフォームによってクラウドインフラストラクチャシステムにおいて提供され得る。インフラストラクチャサービスは、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のために、基本的なコンピューティングリソース(ストレージ、ネットワークおよび他の基本的なコンピューティングリソースなど)の管理および制御を容易にする。 Various different infrastructure services can be provided in the cloud infrastructure system by the IaaS platform. Infrastructure services facilitate the management and control of basic computing resources (such as storage, networks and other basic computing resources) for customers using services provided by SaaS and PaaS platforms. to

特定の実施形態において、クラウドインフラストラクチャシステム1302は、クラウドインフラストラクチャシステムの顧客に対してさまざまなサービスを提供するために用いられるリソースを提供するためのインフラストラクチャリソース1330も含み得る。一実施形態において、インフラストラクチャリソース1330は、PaaSプラットフォームおよびSaaSプラットフォームによって提供されるサービスを実行するためのハードウェア(サーバ、ストレージおよびネットワーキングリソースなど)の予め統合され最適化された組み合わせを含み得る。 In particular embodiments, cloud infrastructure system 1302 may also include infrastructure resources 1330 for providing resources used to provide various services to customers of the cloud infrastructure system. In one embodiment, infrastructure resources 1330 may include a pre-integrated and optimized combination of hardware (such as servers, storage and networking resources) for running the PaaS platform and services provided by the SaaS platform.

いくつかの実施形態において、クラウドインフラストラクチャシステム1302内のリソースは、複数のユーザによって共有され、要求ごとに動的に再割り当てされ得る。さらに、リソースは、ユーザに対してさまざまな時間ゾーンで割り当てることができる。たとえば、クラウドインフラストラクチャシステム1302は、第1の時間ゾーンにおけるユーザの第1の組がクラウドインフラストラクチャシステムのリソースをある特定の時間の間利用することを可能にし、次に、異なる時間ゾーンに位置するユーザの別の組に対する同じリソースの再割り当てを可能にして、リソースの利用を最大化し得る。 In some embodiments, resources within the cloud infrastructure system 1302 can be shared by multiple users and dynamically reallocated on a per demand basis. Additionally, resources can be allocated to users in different time zones. For example, cloud infrastructure system 1302 allows a first set of users in a first time zone to utilize resources of the cloud infrastructure system for a certain amount of time and then It may allow reassignment of the same resource to different sets of users who want to maximize resource utilization.

特定の実施形態において、複数の内部共有サービス1332が提供され、これらのサービスは、クラウドインフラストラクチャシステム1302のさまざまなコンポーネントまたはモジュールによって共有され、クラウドインフラストラクチャシステム1302によって提供されるサービスによって共有される。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性、バックアップおよび回復サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、およびファイル転送サービスなどを含み得るが、それらに限定されない。 In certain embodiments, multiple internal shared services 1332 are provided that are shared by various components or modules of the cloud infrastructure system 1302 and shared by services provided by the cloud infrastructure system 1302. . These internal shared services are security and identity services, integration services, enterprise repository services, enterprise manager services, virus scanning and whitelisting services, high availability, backup and recovery services, services to enable cloud support, email It may include, but is not limited to, services, notification services, file transfer services, and the like.

特定の実施形態において、クラウドインフラストラクチャシステム1302は、クラウドインフラストラクチャシステムにおいてクラウドサービス(たとえば、SaaS、PaaS、およびIaaSサービス)の包括的な管理を提供し得る。一実施形態において、クラウド管理機能は、クラウドインフラストラクチャシステム1302によって受信される顧客のサブスクリプションをプロビジョニングし、管理し、および追跡する機能などを含み得る。 In particular embodiments, cloud infrastructure system 1302 may provide comprehensive management of cloud services (eg, SaaS, PaaS, and IaaS services) in cloud infrastructure systems. In one embodiment, cloud management functions may include functions such as provisioning, managing, and tracking customer subscriptions received by cloud infrastructure system 1302 .

一実施形態において、図に示されるように、クラウド管理機能は、オーダー管理モジュール1320、オーダーオーケストレーションモジュール1322、オーダープロビジョニングモジュール1324、オーダー管理・監視モジュール1326およびアイデンティティ管理モジュール1328などの1つ以上のモジュールによって提供され得る。これらのモジュールは、1つ以上のコンピュータおよび/もしくはサーバを含んでもよく、またはそれらを用いて提供されてもよく、それらは、汎用コンピュータ、専用のサーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な配列および/もしくは組み合わせでもよい。 In one embodiment, as shown, the cloud management function includes one or more modules such as an order management module 1320, an order orchestration module 1322, an order provisioning module 1324, an order management and monitoring module 1326, and an identity management module 1328. can be provided by a module. These modules may include or be provided with one or more computers and/or servers, which may be general purpose computers, dedicated server computers, server farms, server clusters, or other Any suitable arrangement and/or combination may be used.

動作1334の例において、顧客は、クラウドインフラストラクチャシステム1302によって提供される1つ以上のサービスを要求し、クラウドインフラストラクチャシステム1302によって提供される1つ以上のサービスのサブスクリプションに対するオーダーを行なうことによって、クライアントデバイス1304,1306または1308などのクライアントデバイスを用いて、クラウドインフラストラクチャシステム1302と対話し得る。特定の実施形態において、顧客は、クラウドユーザインターフェイス(UI)、すなわちクラウドUI1312、クラウドUI1314および/またはクラウドUI1316にアクセスし、サブスクリプションオーダーをこれらのUIを介して行ない得る。顧客がオーダーを行なうことに応答してクラウドインフラストラクチャシステム1302によって受信されるオーダー情報は、顧客、およびその顧客がサブスクライブしようとする、クラウドインフラストラクチャシステム1302によって提供される1つ以上のサービスを識別する情報を含み得る。 In example operation 1334 , a customer requests one or more services provided by cloud infrastructure system 1302 by placing an order for a subscription to one or more services provided by cloud infrastructure system 1302 . , client devices 1304 , 1306 or 1308 may be used to interact with cloud infrastructure system 1302 . In certain embodiments, a customer may access cloud user interfaces (UIs), namely cloud UI 1312, cloud UI 1314 and/or cloud UI 1316, and place subscription orders through these UIs. The order information received by cloud infrastructure system 1302 in response to the customer placing an order identifies the customer and one or more services provided by cloud infrastructure system 1302 to which the customer wishes to subscribe. It may contain identifying information.

オーダーが顧客によって行われた後、オーダー情報は、クラウドUI1312,1314および/または1316を介して受信される。 After the order is placed by the customer, the order information is received via cloud UI 1312, 1314 and/or 1316.

動作1336において、オーダーは、オーダーデータベース1318に保存される。オーダーデータベース1318は、クラウドインフラストラクチャシステム1302によって動作され他のシステム要素と連携して動作されるいくつかのデータベースのうちの1つであり得る。 At operation 1336 , the order is saved in order database 1318 . Order database 1318 may be one of several databases operated by cloud infrastructure system 1302 and operated in conjunction with other system elements.

動作1338において、オーダー情報は、オーダー管理モジュール1320に転送される。いくつかの例では、オーダー管理モジュール1320は、オーダーを検証し、検証時にオーダーを予約するといった、オーダーに関連する請求および課金機能を実行するように構成可能である。 At operation 1338 the order information is transferred to order management module 1320 . In some examples, the order management module 1320 is configurable to perform order-related billing and accounting functions, such as validating an order and reserving the order upon validation.

動作1340において、オーダーに関する情報は、オーダーオーケストレーションモジュール1322に伝達される。オーダーオーケストレーションモジュール1322は、オーダー情報を利用して、顧客が出したオーダーに対してサービスおよびリソースのプロビジョニングをオーケストレーションし得る。いくつかの例では、オーダーオーケストレーションモジュール1322は、オーダープロビジョニングモジュール1324のサービスを使用して、サブスクライブされたサービスをサポートするように、リソースのプロビジョニングをオーケストレーションし得る。 At operation 1340 information about the order is communicated to order orchestration module 1322 . Order orchestration module 1322 may utilize order information to orchestrate the provisioning of services and resources to orders placed by customers. In some examples, order orchestration module 1322 may use the services of order provisioning module 1324 to orchestrate provisioning of resources to support subscribed services.

特定の実施形態において、オーダーオーケストレーションモジュール1322は、各オーダーに関連するビジネスプロセスの管理を可能にし、ビジネス論理を適用して、オーダーがプロビジョニングに進むべきか否かを判断する。動作1342において、新しいサブスクリプションに対するオーダーを受信すると、オーダーオーケストレーションモジュール1322は、リソースを割り当てて、サブスクリプションオーダーを満たすのに必要とされるそれらのリソースを構成するように、オーダープロビジョニングモジュール1324に対して要求を送信する。オーダープロビジョニングモジュール1324は、顧客によってオーダーされたサービスに対するリソースの割り当てを可能にする。オーダープロビジョニングモジュール1324は、クラウドインフラストラクチャシステム1302によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために用いられる物理的実装層との間の抽象化レベルを提供する。これにより、サービスおよびリソースが実際にオンザフライでプロビジョニングされるか、サービスおよびリソースが予めプロビジョニングされて要求時に割り振る/割り当てるのみであるかといった実現の詳細から、オーダーオーケストレーションモジュール1322を分離することができる。 In particular embodiments, order orchestration module 1322 enables management of business processes associated with each order and applies business logic to determine whether an order should proceed to provisioning. At operation 1342, upon receiving an order for a new subscription, the order orchestration module 1322 directs the order provisioning module 1324 to allocate resources and configure those resources needed to fulfill the subscription order. Send a request to The order provisioning module 1324 enables allocation of resources for services ordered by customers. Order provisioning module 1324 provides a level of abstraction between the cloud services provided by cloud infrastructure system 1302 and the physical implementation layer used to provision the resources to provide the requested service. . This allows the order orchestration module 1322 to be decoupled from implementation details such as whether services and resources are actually provisioned on-the-fly, or whether services and resources are pre-provisioned and only allocated/allocated on demand. .

動作1344において、サービスおよびリソースがプロビジョニングされると、提供されたサービスの通知が、クラウドインフラストラクチャシステム1302のオーダープロビジョニングモジュール1324によって、クライアントデバイス1304,1306および/または1308上の顧客に送信され得る。動作1346において、顧客のサブスクリプションオーダーは、オーダー管理・監視モジュール1326によって管理および追跡され得る。いくつかの例では、オーダー管理・監視モジュール1326は、使用されるストレージの量、転送されるデータの量、ユーザの人数、ならびにシステムアップ時間およびシステムダウン時間の量といった、サブスクリプションオーダーにおけるサービスの使用統計を収集するように構成可能である。 At operation 1344 , once the services and resources are provisioned, a notification of the services provided may be sent by the order provisioning module 1324 of the cloud infrastructure system 1302 to the customer on the client device 1304 , 1306 and/or 1308 . At operation 1346 , the customer's subscription orders may be managed and tracked by order management and monitoring module 1326 . In some examples, the order management and monitoring module 1326 monitors the service availability in the subscription order, such as the amount of storage used, the amount of data transferred, the number of users, and the amount of system uptime and system downtime. Configurable to collect usage statistics.

特定の実施形態において、クラウドインフラストラクチャシステム1302は、アイデンティティ管理モジュール1328を含み得る。アイデンティティ管理モジュール1328は、クラウドインフラストラクチャシステム1302におけるアクセス管理および認可サービスなどのアイデンティティサービスを提供するように構成可能である。いくつかの実施形態において、アイデンティティ管理モジュール1328は、クラウドインフラストラクチャシステム1302によって提供されるサービスを利用することを望む顧客についての情報を制御し得る。そのような情報は、このような顧客のアイデンティティを認証する情報、およびそれらの顧客がさまざまなシステムリソース(たとえば、ファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してどのアクションを実行することが認可されるかを記述する情報を含み得る。アイデンティティ管理モジュール1328は、各顧客についての記述的情報ならびにその記述的情報がどのように誰によってアクセスおよび修正可能であるかについての情報の管理も含み得る。 In particular embodiments, cloud infrastructure system 1302 may include identity management module 1328 . Identity management module 1328 is configurable to provide identity services such as access management and authorization services in cloud infrastructure system 1302 . In some embodiments, identity management module 1328 may control information about customers who desire to use services provided by cloud infrastructure system 1302 . Such information includes information that authenticates the identities of such customers and what actions those customers perform on various system resources (e.g., files, directories, applications, communication ports, memory segments, etc.). may contain information describing what is authorized. Identity management module 1328 may also include management of descriptive information about each customer and how and by whom that descriptive information can be accessed and modified.

本開示の特定の実施形態について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物も本開示の範囲内に包含される。本開示の実施形態は、特定の具体的なデータ処理環境内での動作に限定されるものではなく、複数のデータ処理環境内で自由に動作できる。さらに、特定の一連のトランザクションおよびステップを使用して本開示の実施形態について説明してきたが、本開示の範囲は記載されている一連のトランザクションおよびステップに限定されないということが当業者に明らかであるはずである。上記の実施形態のさまざまな特徴および局面は、個々に使用されてもよい、または一緒に使用されてもよい。 Although specific embodiments of the disclosure have been described, various modifications, alterations, alternative constructions and equivalents are also encompassed within the scope of the disclosure. Embodiments of the present disclosure are not limited to operation within any particular specific data processing environment, but are free to operate within multiple data processing environments. Furthermore, while embodiments of the present disclosure have been described using a particular series of transactions and steps, it will be apparent to those skilled in the art that the scope of the present disclosure is not limited to the described series of transactions and steps. should be. Various features and aspects of the above-described embodiments may be used individually or together.

さらに、ハードウェアとソフトウェアとの特定の組み合わせを使用して本開示の実施形態について説明してきたが、ハードウェアとソフトウェアとの他の組み合わせも本開示の範囲内であるということが認識されるはずである。本開示の実施形態は、ハードウェアのみで実現されてもよい、ソフトウェアのみで実現されてもよい、またはそれらの組み合わせを使用して実現されてもよい。本明細書に記載されているさまざまなプロセスは、同一のプロセッサ上で実現されてもよい、または任意の組み合わせの異なるプロセッサ上で実現されてもよい。したがって、コンポーネントまたはモジュールは、特定の動作を実行するように構成されるものとして説明されているが、このような構成は、たとえば、動作を実行するように電子回路を設計することによって、動作を実行するようにプログラム可能電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの任意の組み合わせによって、達成することができる。プロセスは、プロセス間通信のための従来の技術を含むがそれに限定されないさまざまな技術を使用して通信することができ、異なるプロセスペアは異なる技術を使用してもよい、または同じプロセスペアが異なるタイミングで異なる技術を使用してもよい。 Furthermore, although embodiments of the present disclosure have been described using a particular combination of hardware and software, it should be recognized that other combinations of hardware and software are within the scope of the present disclosure. is. Embodiments of the present disclosure may be implemented in hardware only, may be implemented in software only, or may be implemented using a combination thereof. The various processes described herein may be implemented on the same processor or may be implemented on different processors in any combination. Thus, although a component or module is described as being configured to perform a particular operation, such configuration may be accomplished by designing electronic circuitry to perform the operation, for example. It can be accomplished by programming a programmable electronic circuit (such as a microprocessor) to do so, or by any combination thereof. Processes can communicate using a variety of techniques including, but not limited to, conventional techniques for interprocess communication, and different process pairs may use different techniques, or the same process pair may communicate using different techniques. Different techniques may be used for timing.

したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかしながら、特許請求の範囲に記載されているより広い精神および範囲から逸脱することなく、追加、減算、削除ならびに他の変形および変更がなされてもよいことは明らかであろう。したがって、本開示の特定の実施形態について説明してきたが、これらは限定的であるよう意図されるものではない。さまざまな変形例および等価物は、以下の特許請求の範囲内である。これらの変形例は、開示されている特徴の任意の関連する組み合わせを含む。 The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. It will, however, be evident that additions, subtractions, deletions and other variations and modifications may be made without departing from the broader spirit and scope of the claims. Accordingly, while specific embodiments of the disclosure have been described, they are not intended to be limiting. Various modifications and equivalents are within the scope of the following claims. These variations include any relevant combination of the disclosed features.

本開示のいくつかの例示的な項目について、以下で説明する。
項目1:方法であって、
複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とのリストを含む安全プランを受信することと、
安全プランの承認の指示の受信に従って、
複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行するように準備することと、
動作を安全プランと比較することとを備え、
動作が安全プランの一部であるという判断に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、動作を実行することと、
動作が安全プランの一部でないという判断に従って、
複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメントを停止することと、
複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメントが安全プランに準拠していないという通知を送信することとを備える、方法。
A number of illustrative items of this disclosure are described below.
Item 1: A method comprising:
at least one of the plurality of computer processors receiving a safety plan including a list of resources and respective actions based at least in part on the deployment configuration file;
Upon receipt of instructions for approval of the safety plan,
preparing at least one of the plurality of computer processors to perform operations corresponding to at least one of the list of resources according to the deployment configuration file;
comparing the operation to a safety plan;
at least one of the plurality of computer processors performing an action according to the determination that the action is part of the safety plan;
Subject to the determination that the action is not part of the safety plan,
stopping the deployment on at least one of the plurality of computer processors;
at least one of a plurality of computer processors sending a notification that the deployment is not in compliance with the safety plan.

項目2。複数のプロセッサは、実行ターゲットに関連付けられている、項目1に記載の方法。 Item two. The method of item 1, wherein multiple processors are associated with the execution target.

項目3。実行ターゲットは地理的地域を含む、項目2に記載の方法。
項目4。デプロイメント設定ファイルは、中央クラウドインフラストラクチャオーケストレーションサービスから受信される、項目1に記載の方法。
Item 3. 3. The method of item 2, wherein the execution targets include geographic regions.
Item 4. The method of item 1, wherein the deployment configuration file is received from a central cloud infrastructure orchestration service.

項目5。デプロイメント設定ファイルは、中央クラウドインフラストラクチャオーケストレーションサービスのユーザによって生成される、項目4に記載の方法。 Item 5. 5. The method of item 4, wherein the deployment configuration file is generated by a user of a central cloud infrastructure orchestration service.

項目6。それぞれの動作は、リソースのリストの少なくとも1つのリソース上で実行される、またはリソースのリストの少なくとも1つのリソースに関連付けられる、作成動作、更新動作、または削除動作のうちの少なくとも1つを含む、項目1に記載の方法。 Item 6. each operation comprises at least one of a create operation, an update operation, or a delete operation performed on or associated with at least one resource of the list of resources; The method of item 1.

項目7。安全プランの不承認の受信または安全プランの承認の非受信に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメントを停止することをさらに備える、項目1に記載の方法。 Item 7. The method of claim 1, further comprising at least one of the plurality of computer processors halting deployment upon receipt of safety plan disapproval or non-receipt of safety plan approval.

項目8。複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメント設定ファイルに従うローカル動作を有するローカルプランを生成することをさらに備え、動作を安全プランと比較することは、ローカル動作のうちの1つを安全プランと比較することを含む、項目1に記載の方法。 Item 8. At least one of the plurality of computer processors further comprising generating a local plan having local actions according to the deployment configuration file, wherein comparing the actions to the safety plan compares one of the local actions to the safety plan. The method of item 1, comprising comparing.

項目9。コンピュータ読取可能記憶媒体であって、コンピュータ読取可能記憶媒体は、コンピュータプロセッサによって実行されると、コンピュータプロセッサに動作を実行させる命令が書き込まれており、動作は、
デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とのリストを含む安全プランを受信することと、
安全プランの承認の指示の受信に従って、
デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行うことと、
動作を安全プランと比較することと、
動作が安全プランの一部であるという判断に従って、動作を実行することと、
動作が安全プランの一部でないという判断に従って、デプロイメントを停止すること、
デプロイメントが安全プランに準拠していないという通知を送信することとを含む、コンピュータ読取可能記憶媒体。
Item 9. A computer-readable storage medium having instructions written thereon that, when executed by a computer processor, cause the computer processor to perform an action, the action comprising:
receiving a safety plan including a list of resources and their respective actions based at least in part on a deployment configuration file;
Upon receipt of instructions for approval of the safety plan,
preparing to perform an action corresponding to at least one of the list of resources according to the deployment configuration file;
comparing the action to a safety plan; and
performing the action according to the determination that the action is part of the safety plan;
stop the deployment following a determination that the operation is not part of the safety plan;
sending a notification that the deployment is not in compliance with the safety plan.

項目10。デプロイメント設定ファイルは、中央クラウドインフラストラクチャオーケストレーションサービスによって生成される、項目9に記載のコンピュータ読取可能記憶媒体。 Item ten. 10. The computer-readable storage medium of item 9, wherein the deployment configuration file is generated by a central cloud infrastructure orchestration service.

項目11。中央クラウドインフラストラクチャオーケストレーションサービスは、安全プランのリストを生成するように構成され、安全プランのリストの各安全プランは、特定の実行ターゲットまたは特定のデプロイメントフェーズに対応する、項目10に記載のコンピュータ読取可能記憶媒体。 Item eleven. 11. The computer of item 10, wherein the central cloud infrastructure orchestration service is configured to generate a list of safety plans, each safety plan in the list of safety plans corresponding to a particular execution target or a particular deployment phase. readable storage medium.

項目12。中央クラウドインフラストラクチャオーケストレーションサービスはさらに、安全プランのリストの承認または不承認の受信に先立って、同時に安全プランのリストを生成するように構成されている、項目11に記載のコンピュータ読取可能記憶媒体。 Item 12. 12. The computer-readable storage medium of item 11, wherein the central cloud infrastructure orchestration service is further configured to concurrently generate the list of safety plans prior to receiving approval or disapproval of the list of safety plans.

項目13。中央クラウドインフラストラクチャオーケストレーションサービスは、複数のデプロイメント設定ファイルを生成するように構成され、複数のデプロイメント設定ファイルの各デプロイメント設定ファイルは、安全プランのリスト上のそれぞれの実行ターゲットごとに解釈される、項目12に記載のコンピュータ読取可能記憶媒体。 Item thirteen. the central cloud infrastructure orchestration service is configured to generate a plurality of deployment configuration files, each deployment configuration file of the plurality of deployment configuration files being interpreted for each execution target on the list of safety plans; 13. The computer-readable storage medium of item 12.

項目14。動作はさらに、安全プランを中央クラウドインフラストラクチャオーケストレーションサービスに送信することを含む、項目10に記載のコンピュータ読取可能記憶媒体。 Item 14. 11. The computer-readable storage medium of item 10, the action further comprising sending the safety plan to a central cloud infrastructure orchestration service.

項目15。中央クラウドインフラストラクチャオーケストレーションサービスは、
安全プランをユーザコンピュータのユーザインターフェイス上にレンダリングし、
安全プランの承認または不承認を受信するように構成されている、項目14に記載のコンピュータ読取可能記憶媒体。
Item 15. A central cloud infrastructure orchestration service
Rendering the safety plan on the user computer user interface,
15. The computer readable storage medium of item 14, configured to receive approval or disapproval of the safety plan.

項目16。システムであって、
プロセッサと、
命令を記憶したメモリとを備え、命令は、プロセッサによって実行されると、システムを、
デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とのリストを含む安全プランを受信し、
安全プランの承認の指示の受信に従って、
デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行い、
動作を安全プランと比較し、
動作が安全プランの一部であるという判断に従って、動作を実行し、
動作が安全プランの一部でないという判断に従って、
デプロイメントを停止し、
デプロイメントが安全プランに準拠していないという通知を送信するように構成されている、システム。
Item 16. a system,
a processor;
a memory storing instructions which, when executed by the processor, cause the system to:
receiving a safety plan including a list of resources and their respective actions based at least in part on a deployment configuration file;
Upon receipt of instructions for approval of the safety plan,
preparing to perform an action corresponding to at least one of the list of resources according to the deployment configuration file;
compare the operation to the safety plan,
perform the action according to the determination that the action is part of the safety plan;
Subject to the determination that the action is not part of the safety plan,
stop the deployment,
A system that is configured to send notifications that a deployment is out of compliance with the safety plan.

項目17。動作は、デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する複数の動作のうちの1つであり、複数の動作の各動作は、少なくともデプロイメントが完了するまで、またはデプロイメントの停止が生じるまで、安全プランと比較される、項目16に記載のシステム。 Item 17. The action is one of a plurality of actions corresponding to at least one of the list of resources according to the deployment configuration file, each action of the plurality of actions being performed at least until the deployment is complete or until a stoppage of the deployment occurs. , is compared with the safety plan.

項目18。動作は、動作が実行される前にリソースのうちの1つで生じた動作変化に少なくとも部分的に基づく安全プランの一部でない、項目16のシステム。 Item 18. 17. The system of item 16, wherein the action is not part of a safety plan based at least in part on a change in action that occurred in one of the resources before the action was performed.

項目19。デプロイメント設定ファイルは、中央クラウドインフラストラクチャオーケストレーションサービスによって生成される、項目16に記載のシステム。 Item 19. 17. The system of item 16, wherein the deployment configuration files are generated by a central cloud infrastructure orchestration service.

項目20。通知は、中央クラウドインフラストラクチャオーケストレーションサービスのユーザに送信される、項目19に記載のシステム。 Item 20. 20. The system of item 19, wherein notifications are sent to users of a central cloud infrastructure orchestration service.

項目21。項目1~8のいずれか1つに記載のステップのための手段を備える、装置。
項目22。方法であって、
複数のコンピュータプロセッサのうちの少なくとも1つが、第1の実行ターゲットおよび第2の実行ターゲットへのデプロイメントのための設定ファイルを受信することと、
複数のコンピュータプロセッサのうちの少なくとも1つが、第1の実行ターゲットの第1の安全プランを生成することとを備え、第1の安全プランは、設定ファイルに少なくとも部分的に基づく第1の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第1のリストを含み、方法はさらに、
複数のコンピュータプロセッサのうちの少なくとも1つが、第1の安全プランの承認を受信することと、
複数のコンピュータプロセッサのうちの少なくとも1つが、第2の実行ターゲットの第2の安全プランを生成することとを備え、第2の安全プランは、設定ファイルに少なくとも部分的に基づく第2の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第2のリストを含み、方法はさらに、
複数のコンピュータプロセッサのうちの少なくとも1つが、第2の安全プランが第1の安全プランのサブセットであるかどうかを判断することと、
第2の安全プランが第1の安全プランのサブセットであるという判断に従って、
複数のコンピュータプロセッサのうちの少なくとも1つが、第1の安全プランの承認に少なくとも部分的に基づいて、第2の安全プランを自動的に承認することと、
複数のコンピュータプロセッサのうちの少なくとも1つが、自動的に承認された第2の安全プランを第2の実行ターゲットに送信することとを備える、方法。
Item 21. Apparatus comprising means for the steps according to any one of items 1-8.
Item 22. a method,
at least one of the plurality of computer processors receiving a configuration file for deployment to the first execution target and the second execution target;
at least one of the plurality of computer processors generating a first safety plan for the first execution target, the first safety plan being based at least in part on the configuration file for the first execution target. including a first list of resources and respective operations associated with the deployment in the method, the method further comprising:
at least one of the plurality of computer processors receiving approval of the first safety plan;
at least one of the plurality of computer processors generating a second safety plan for a second execution target, the second safety plan based at least in part on the configuration file for the second execution target. including a second list of resources and respective actions associated with the deployment in the method, the method further comprising:
at least one of the plurality of computer processors determining whether the second safety plan is a subset of the first safety plan;
According to a determination that the second safety plan is a subset of the first safety plan,
at least one of the plurality of computer processors automatically approving a second safety plan based at least in part on approval of the first safety plan;
at least one of the plurality of computer processors sending the automatically approved second safety plan to the second execution target.

項目23。第2の安全プランが第1の安全プランのサブセットではないという判断に従って、
第2の安全プランが第1の安全プランのサブセットではないと示す通知と、
第2の安全プランに関連するリソースとそれぞれの動作との第2のリストとを提示するためのユーザインターフェイスを準備することをさらに備える、項目22に記載の方法。
Item 23. Following a determination that the second safety plan is not a subset of the first safety plan,
a notification indicating that the second safety plan is not a subset of the first safety plan;
23. The method of clause 22, further comprising providing a user interface for presenting a second list of resources and respective actions associated with the second safety plan.

項目24。第2の安全プランのリソースとそれぞれの動作との第2のリストと、第1の安全プランのリソースとそれぞれの動作との第1のリストとの少なくとも1つの差を決定することをさらに備える、項目23に記載の方法。 Item 24. further comprising determining at least one difference between the second list of resources and respective actions of the second safety plan and the first list of resources and respective actions of the first safety plan; 24. The method of item 23.

項目25。第2の安全プランのリソースとそれぞれの動作との第2のリストの他のすべての視覚的表現の上に、少なくとも1つの差を提示するためのユーザインターフェイスを準備することをさらに備える、項目24に記載の方法。 Item 25. Item 24, further comprising providing a user interface for presenting at least one difference above all other visual representations of the second list of resources and respective actions of the second safety plan. The method described in .

項目26。第2の安全プランが第1の安全プランのサブセットであるかどうかを判断することは、複数のコンピュータプロセッサのうちの少なくとも1つが、第2の安全プランのリソースとそれぞれの動作との第2のリストの各リソースとそれぞれの動作とが、第1の安全プランのリソースとそれぞれの動作との第1のリストにリストされているかどうかを判断することを含む、項目22に記載の方法。 Item 26. Determining whether the second safety plan is a subset of the first safety plan includes determining whether at least one of the plurality of computer processors performs a second safety plan on the resources of the second safety plan and the respective operations. 23. The method of item 22, comprising determining whether each resource and respective operation of the list is listed in the first list of resources and respective operations of the first safety plan.

項目27。第1の実行ターゲットは、クラウドインフラストラクチャオーケストレーションサービスの接続地域である、項目22に記載の方法。 Item 27. 23. The method of item 22, wherein the first execution target is a connectivity region of a cloud infrastructure orchestration service.

項目28。第2の実行ターゲットは、クラウドインフラストラクチャオーケストレーションサービスの切断地域である、項目27に記載の方法
項目29。切断地域は、切断地域にデプロイする命令を受信するように構成された環境を含み、切断地域はさらに、切断地域の外側でいかなるデータも送信しないように構成されている、項目28に記載の方法。
Item 28. Item 29. The method of item 27, wherein the second execution target is a disconnected region of the cloud infrastructure orchestration service. 29. The method of clause 28, wherein the cutting zone includes an environment configured to receive instructions to deploy to the cutting zone, and wherein the cutting zone is further configured not to transmit any data outside the cutting zone. .

項目30。第2の安全プランは、第2の実行ターゲットでのデプロイメントのためのものである、項目28に記載の方法。 Item 30. 29. The method of item 28, wherein the second secure plan is for deployment on the second execution target.

項目31。第2の安全プランは、第1の安全プランに少なくとも部分的に基づく第1の実行ターゲットにおけるデプロイメントが成功したという判断にさらに従って、自動的に承認される、項目30に記載の方法。 Item 31. 31. The method of item 30, wherein the second safety plan is automatically approved further pursuant to a determination that deployment at the first execution target based at least in part on the first safety plan was successful.

項目32。コンピュータ読取可能記憶媒体であって、コンピュータ読取可能記憶媒体は、コンピュータプロセッサによって実行されると、コンピュータプロセッサに命令を実行させる命令が書き込まれており、命令は、
第1の実行ターゲットおよび第2の実行ターゲットへのデプロイメントのための設定ファイルを受信することと、
第1の実行ターゲットの第1の安全プランを生成することとを含み、第1の安全プランは、設定ファイルに少なくとも部分的に基づく第1の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第1のリストを含み、命令はさらに、
第1の安全プランの承認を受信することと、
第2の実行ターゲットの第2の安全プランを生成することとを含み、第2の安全プランは、設定ファイルに少なくとも部分的に基づく第2の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第2のリストを含み、命令はさらに、
第2の安全プランが第1の安全プランのサブセットであるかどうかを判断することと、
第2の安全プランが第1の安全プランのサブセットであるという判断に従って、
第1の安全プランの承認に少なくとも部分的に基づいて、第2の安全プランを自動的に承認することと、
自動的に承認された第2の安全プランを第2の実行ターゲットに送信することとを含む、コンピュータ読取可能記憶媒体。
Item 32. A computer-readable storage medium having instructions written thereon which, when executed by a computer processor, cause the computer processor to execute instructions, the instructions comprising:
receiving a configuration file for deployment to the first execution target and the second execution target;
generating a first safety plan for the first execution target, the first safety plan including resources and respective behaviors associated with deployment in the first execution target based at least in part on the configuration file; The instruction further includes a first list of
receiving approval of the first safety plan;
and generating a second safety plan for the second execution target, the second safety plan based at least in part on the configuration file with resources and respective behaviors associated with deployment in the second execution target. The instruction further includes a second list of
determining whether the second safety plan is a subset of the first safety plan;
According to a determination that the second safety plan is a subset of the first safety plan,
automatically approving a second safety plan based at least in part on approval of the first safety plan;
sending the automatically approved second safety plan to the second execution target.

項目33。命令はさらに、第2の安全プランが第1の安全プランのサブセットではないという判断に従って、
第2の安全プランが第1の安全プランのサブセットではないと示す通知と、
第2の安全プランに関連するリソースとそれぞれの動作との第2のリストとを提示するためのユーザインターフェイスを準備することを含む、項目32に記載のコンピュータ読取可能記憶媒体。
Item 33. The instructions further follow a determination that the second safety plan is not a subset of the first safety plan,
a notification indicating that the second safety plan is not a subset of the first safety plan;
33. The computer-readable storage medium of item 32, including providing a user interface for presenting a second list of resources and respective actions associated with the second safety plan.

項目34。命令はさらに、第2の安全プランのリソースとそれぞれの動作との第2のリストと、第1の安全プランのリソースとそれぞれの動作との第1のリストとの少なくとも1つの差を決定することを含む、項目33に記載のコンピュータ読取可能記憶媒体。 Item 34. The instructions further determine at least one difference between the second list of resources and respective actions of the second safety plan and the first list of resources and respective actions of the first safety plan. 34. The computer-readable storage medium of item 33, comprising:

項目35。命令はさらに、第2の安全プランのリソースとそれぞれの動作との第2のリストの他のすべての視覚的表現の上に、少なくとも1つの差を提示するためのユーザインターフェイスを準備することを含む、項目34に記載のコンピュータ読取可能記憶媒体。 Item 35. The instructions further include providing a user interface for presenting at least one difference above all other visual representations of the second list of resources and respective actions of the second safety plan. 35. The computer-readable storage medium of claim 34, item 34.

項目36。第2の実行ターゲットは、クラウドインフラストラクチャオーケストレーションサービスの切断地域であり、切断地域は、切断地域にデプロイする命令を受信するように構成された環境を含み、切断地域はさらに、切断地域の外側でいかなるデータも送信しないように構成されている、項目32に記載のコンピュータ読取可能記憶媒体。 Item 36. The second execution target is a disconnection region of the cloud infrastructure orchestration service, the disconnection region including an environment configured to receive instructions to deploy to the disconnection region, the disconnection region further outside the disconnection region 33. The computer-readable storage medium of item 32, configured not to transmit any data at.

項目37。第2の安全プランは、第2の実行ターゲットにおけるデプロイメントのためのものであり、第2の安全プランは、第1の安全プランに少なくとも部分的に基づく第1の実行ターゲットにおけるデプロイメントが成功したという判断にさらに従って、自動的に承認される、項目36に記載のコンピュータ読取可能記憶媒体。 Item 37. The second safety plan is for deployment at the second execution target, the second safety plan being based at least in part on the first safety plan for successful deployment at the first execution target. 37. The computer-readable storage medium of item 36, which is automatically approved further according to the determination.

項目38。システムであって、
プロセッサと、
命令を格納したメモリとを備え、命令は、プロセッサによって実行されると、
第1の実行ターゲットおよび第2の実行ターゲットへのデプロイメントのための設定ファイルを受信し、
第1の実行ターゲットの第1の安全プランを生成するようにシステムを構成し、第1の安全プランは、設定ファイルに少なくとも部分的に基づく第1の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第1のリストを含み、命令はさらに、
第1の安全プランの承認を受信し、
第2の実行ターゲットの第2の安全プランを生成するようにシステムを構成し、第2の安全プランは、設定ファイルに少なくとも部分的に基づく第2の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第2のリストを含み、命令はさらに、
第2の安全プランが第1の安全プランのサブセットであるかどうかを判断し、
第2の安全プランが第1の安全プランのサブセットであるという判断に従って、
第1の安全プランの承認に少なくとも部分的に基づいて、第2の安全プランを自動的に承認し、
自動的に承認された第2の安全プランを第2の実行ターゲットに送信するようにシステムを構成する、システム。
Item 38. a system,
a processor;
a memory storing instructions, the instructions being executed by the processor to:
receiving a configuration file for deployment to the first execution target and the second execution target;
Configuring the system to generate a first safety plan for the first execution target, the first safety plan including resources associated with deployment at the first execution target based at least in part on the configuration file and respective The instruction further includes a first list of actions and
receiving approval of the first safety plan;
Configuring the system to generate a second safety plan for the second execution target, the second safety plan including resources associated with deployment at the second execution target based at least in part on the configuration file and respective including a second list of actions, the instruction further comprising:
determining if the second safety plan is a subset of the first safety plan;
According to a determination that the second safety plan is a subset of the first safety plan,
automatically approving a second safety plan based at least in part on approval of the first safety plan;
A system that configures the system to send the automatically approved second safety plan to a second execution target.

項目39。システムは、第2の安全プランが第1の安全プランのサブセットではないという判断に従って、
第2の安全プランが第1の安全プランのサブセットではないと示す通知を提示し、
第2の安全プランに関連するリソースとそれぞれの動作との第2のリストを提示するためのユーザインターフェイスを準備するように構成されている、項目38に記載のシステム。
Item 39. The system follows a determination that the second safety plan is not a subset of the first safety plan,
presenting a notice indicating that the second safety plan is not a subset of the first safety plan;
39. The system of item 38, configured to provide a user interface for presenting a second list of resources and respective actions associated with the second safety plan.

項目40。システムはさらに、
第2の安全プランのリソースとそれぞれの動作との第2のリストと、第1の安全プランのリソースとそれぞれの動作との第1のリストとの少なくとも1つの差を決定し、
第2の安全プランのリソースとそれぞれの動作との第2のリストの他のすべての視覚的表現の上に、少なくとも1つの差を提示するためのユーザインターフェイスを準備するように構成されている、項目39に記載のシステム。
Item 40. The system further
determining at least one difference between a second list of resources and respective actions of the second safety plan and a first list of resources and respective actions of the first safety plan;
configured to provide a user interface for presenting at least one difference above all other visual representations of the second list of resources and respective actions of the second safety plan; 40. The system of item 39.

項目41。第2の実行ターゲットは、クラウドインフラストラクチャオーケストレーションサービスの切断地域であり、切断地域は、切断地域にデプロイする命令を受信するように構成された環境を含み、切断地域はさらに、切断地域の外側でいかなるデータも送信しないように構成され、第2の安全プランは、第2の実行ターゲットにおけるデプロイメントのためのものであり、第2の安全プランは、第1の安全プランに少なくとも部分的に基づく第1の実行ターゲットにおけるデプロイメントが成功したという判断にさらに従って、自動的に承認される、項目38に記載のシステム。 Item 41. The second execution target is a disconnection region of the cloud infrastructure orchestration service, the disconnection region including an environment configured to receive instructions to deploy to the disconnection region, the disconnection region further outside the disconnection region and the second safety plan is for deployment at the second execution target, the second safety plan being based at least in part on the first safety plan 39. The system of item 38, wherein the system is automatically approved further pursuant to the determination that the deployment at the first execution target was successful.

項目42。項目22~31のいずれか1つに記載のステップのための手段を備える装置。 Item 42. Apparatus comprising means for the steps according to any one of items 22-31.

Claims (21)

方法であって、
複数のコンピュータプロセッサのうちの少なくとも1つが、第1の実行ターゲットおよび第2の実行ターゲットへのデプロイメントのための設定ファイルを受信することと、
前記複数のコンピュータプロセッサのうちの少なくとも1つが、前記第1の実行ターゲットの第1の安全プランを生成することとを備え、前記第1の安全プランは、前記設定ファイルに少なくとも部分的に基づく前記第1の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第1のリストを含み、前記方法はさらに、
前記複数のコンピュータプロセッサのうちの少なくとも1つが、前記第1の安全プランの承認を受信することと、
前記複数のコンピュータプロセッサのうちの少なくとも1つが、前記第2の実行ターゲットの第2の安全プランを生成することとを備え、前記第2の安全プランは、前記設定ファイルに少なくとも部分的に基づく前記第2の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第2のリストを含み、前記方法はさらに、
前記複数のコンピュータプロセッサのうちの少なくとも1つが、前記第2の安全プランが前記第1の安全プランのサブセットであるかどうかを判断することと、
前記第2の安全プランが前記第1の安全プランのサブセットであるという判断に従って、
前記複数のコンピュータプロセッサのうちの少なくとも1つが、前記第1の安全プランの承認に少なくとも部分的に基づいて、前記第2の安全プランを自動的に承認することと、
前記複数のコンピュータプロセッサのうちの少なくとも1つが、自動的に承認された前記第2の安全プランを前記第2の実行ターゲットに送信することとを備える、方法。
a method,
at least one of the plurality of computer processors receiving a configuration file for deployment to the first execution target and the second execution target;
at least one of the plurality of computer processors generating a first safety plan for the first execution target, the first safety plan being based at least in part on the configuration file; including a first list of resources and respective operations associated with deployment on the first execution target, the method further comprising:
at least one of the plurality of computer processors receiving approval of the first safety plan;
at least one of the plurality of computer processors generating a second safety plan for the second execution target, the second safety plan being based at least in part on the configuration file. including a second list of resources and respective operations associated with deployment on the second execution target, the method further comprising:
at least one of the plurality of computer processors determining whether the second safety plan is a subset of the first safety plan;
Following a determination that the second safety plan is a subset of the first safety plan,
at least one of the plurality of computer processors automatically approving the second safety plan based at least in part on approval of the first safety plan;
at least one of the plurality of computer processors transmitting the automatically approved second safety plan to the second execution target.
前記第2の安全プランが前記第1の安全プランのサブセットではないという判断に従って、
前記第2の安全プランが前記第1の安全プランのサブセットではないと示す通知と、
前記第2の安全プランに関連するリソースとそれぞれの動作との前記第2のリストとを提示するためのユーザインターフェイスを準備することをさらに備える、請求項1に記載の方法。
Following a determination that the second safety plan is not a subset of the first safety plan,
a notification indicating that the second safety plan is not a subset of the first safety plan;
2. The method of claim 1, further comprising providing a user interface for presenting the second list of resources and respective actions associated with the second safety plan.
前記第2の安全プランのリソースとそれぞれの動作との前記第2のリストと、前記第1の安全プランのリソースとそれぞれの動作との前記第1のリストとの少なくとも1つの差を決定することをさらに備える、請求項2に記載の方法。 determining at least one difference between the second list of resources and respective actions of the second safety plan and the first list of resources and respective actions of the first safety plan; 3. The method of claim 2, further comprising: 前記第2の安全プランのリソースとそれぞれの動作との前記第2のリストの他のすべての視覚的表現の上に、前記少なくとも1つの差を提示するための前記ユーザインターフェイスを準備することをさらに備える、請求項3に記載の方法。 Further providing the user interface for presenting the at least one difference above all other visual representations of the second list of resources and respective actions of the second safety plan. 4. The method of claim 3, comprising: 前記第2の安全プランが前記第1の安全プランのサブセットであるかどうかを判断することは、前記複数のコンピュータプロセッサのうちの少なくとも1つが、前記第2の安全プランのリソースとそれぞれの動作との前記第2のリストの各リソースとそれぞれの動作とが、前記第1の安全プランのリソースとそれぞれの動作との前記第1のリストにリストされているかどうかを判断することを含む、先行する請求項のいずれか1項に記載の方法。 Determining whether the second safety plan is a subset of the first safety plan includes: determining whether at least one of the plurality of computer processors uses the resources of the second safety plan and their respective operations; determining whether each resource and respective action of the second list of is listed in the first list of resources and respective actions of the first safety plan. A method according to any one of the preceding claims. 前記第1の実行ターゲットは、クラウドインフラストラクチャオーケストレーションサービスの接続地域である、先行する請求項のいずれか1項に記載の方法。 4. A method according to any one of the preceding claims, wherein said first execution target is a connectivity region of a cloud infrastructure orchestration service. 前記第2の実行ターゲットは、前記クラウドインフラストラクチャオーケストレーションサービスの切断地域である、請求項6に記載の方法。 7. The method of claim 6, wherein the second execution target is a disconnected region of the cloud infrastructure orchestration service. 前記切断地域は、前記切断地域にデプロイする命令を受信するように構成された環境を含み、前記切断地域はさらに、前記切断地域の外側でいかなるデータも送信しないように構成されている、請求項7に記載の方法。 12. The disconnection zone comprises an environment configured to receive instructions to deploy in the disconnection zone, the disconnection zone further configured not to transmit any data outside of the disconnection zone. 7. The method according to 7. 前記第2の安全プランは、前記第2の実行ターゲットでのデプロイメントのためのものである、請求項7または8に記載の方法。 9. The method of claim 7 or 8, wherein said second secure plan is for deployment on said second execution target. 前記第2の安全プランは、前記第1の安全プランに少なくとも部分的に基づく前記第1の実行ターゲットにおけるデプロイメントが成功したという判断にさらに従って、自動的に承認される、請求項9に記載の方法。 10. The second safety plan of claim 9, wherein the second safety plan is automatically approved further following a determination that deployment at the first execution target based at least in part on the first safety plan was successful. Method. コンピュータ読取可能記憶媒体であって、前記コンピュータ読取可能記憶媒体は、コンピュータプロセッサによって実行されると、前記コンピュータプロセッサに命令を実行させる命令が書き込まれており、前記命令は、
第1の実行ターゲットおよび第2の実行ターゲットへのデプロイメントのための設定ファイルを受信することと、
前記第1の実行ターゲットの第1の安全プランを生成することとを含み、前記第1の安全プランは、前記設定ファイルに少なくとも部分的に基づく前記第1の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第1のリストを含み、前記命令はさらに、
前記第1の安全プランの承認を受信することと、
前記第2の実行ターゲットの第2の安全プランを生成することとを含み、前記第2の安全プランは、前記設定ファイルに少なくとも部分的に基づく前記第2の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第2のリストを含み、前記命令はさらに、
前記第2の安全プランが前記第1の安全プランのサブセットであるかどうかを判断することと、
前記第2の安全プランが前記第1の安全プランのサブセットであるという判断に従って、
前記第1の安全プランの承認に少なくとも部分的に基づいて、前記第2の安全プランを自動的に承認することと、
自動的に承認された前記第2の安全プランを前記第2の実行ターゲットに送信することとを含む、コンピュータ読取可能記憶媒体。
A computer-readable storage medium having instructions written thereon that, when executed by a computer processor, cause the computer processor to execute instructions, the instructions comprising:
receiving a configuration file for deployment to the first execution target and the second execution target;
and generating a first safety plan for the first execution target, the first safety plan based at least in part on the configuration file with resources associated with deployment in the first execution target. a first list with respective actions, the instructions further comprising:
receiving approval of the first safety plan;
and generating a second safety plan for the second execution target, the second safety plan based at least in part on the configuration file with resources associated with deployment in the second execution target. a second list with respective actions, the instructions further comprising:
determining whether the second safety plan is a subset of the first safety plan;
Following a determination that the second safety plan is a subset of the first safety plan,
automatically approving the second safety plan based at least in part on approval of the first safety plan;
and sending the automatically approved second safety plan to the second execution target.
前記命令はさらに、前記第2の安全プランが前記第1の安全プランのサブセットではないという判断に従って、
前記第2の安全プランが前記第1の安全プランのサブセットではないと示す通知と、
前記第2の安全プランに関連するリソースとそれぞれの動作との前記第2のリストとを提示するためのユーザインターフェイスを準備することを含む、請求項11に記載のコンピュータ読取可能記憶媒体。
The instructions further follow a determination that the second safety plan is not a subset of the first safety plan.
a notification indicating that the second safety plan is not a subset of the first safety plan;
12. The computer-readable storage medium of claim 11, comprising providing a user interface for presenting the second list of resources and respective actions associated with the second safety plan.
前記命令はさらに、前記第2の安全プランのリソースとそれぞれの動作との前記第2のリストと、前記第1の安全プランのリソースとそれぞれの動作との前記第1のリストとの少なくとも1つの差を決定することを含む、請求項12に記載のコンピュータ読取可能記憶媒体。 The instructions further comprise at least one of the second list of the second safety plan resources and respective actions and the first list of the first safety plan resources and respective actions. 13. The computer-readable storage medium of claim 12, comprising determining a difference. 前記命令はさらに、前記第2の安全プランのリソースとそれぞれの動作との前記第2のリストの他のすべての視覚的表現の上に、前記少なくとも1つの差を提示するための前記ユーザインターフェイスを準備することを含む、請求項13に記載のコンピュータ読取可能記憶媒体。 The instructions further display the user interface for presenting the at least one difference above all other visual representations of the second list of resources and respective actions of the second safety plan. 14. The computer-readable storage medium of claim 13, comprising preparing. 前記第2の実行ターゲットは、前記クラウドインフラストラクチャオーケストレーションサービスの切断地域であり、前記切断地域は、前記切断地域にデプロイする命令を受信するように構成された環境を含み、前記切断地域はさらに、前記切断地域の外側でいかなるデータも送信しないように構成されている、請求項11~14のいずれか1項に記載のコンピュータ読取可能記憶媒体。 The second execution target is a disconnected region of the cloud infrastructure orchestration service, the disconnected region includes an environment configured to receive instructions to deploy to the disconnected region, and the disconnected region further comprises: , is configured not to transmit any data outside the cutting zone. 前記第2の安全プランは、前記第2の実行ターゲットにおける前記デプロイメントのためのものであり、前記第2の安全プランは、前記第1の安全プランに少なくとも部分的に基づく前記第1の実行ターゲットにおけるデプロイメントが成功したという判断にさらに従って、自動的に承認される、請求項15に記載のコンピュータ読取可能記憶媒体。 the second safety plan is for the deployment at the second execution target, the second safety plan being based at least in part on the first safety plan at the first execution target 16. The computer-readable storage medium of claim 15, wherein the computer-readable storage medium of claim 15 is automatically approved further according to a determination that the deployment in has been successful. システムであって、
プロセッサと、
命令を格納したメモリとを備え、前記命令は、前記プロセッサによって実行されると、
第1の実行ターゲットおよび第2の実行ターゲットへのデプロイメントのための設定ファイルを受信し、
前記第1の実行ターゲットの第1の安全プランを生成するように前記システムを構成し、前記第1の安全プランは、前記設定ファイルに少なくとも部分的に基づく前記第1の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第1のリストを含み、前記命令はさらに、
前記第1の安全プランの承認を受信し、
前記第2の実行ターゲットの第2の安全プランを生成するように前記システムを構成し、前記第2の安全プランは、前記設定ファイルに少なくとも部分的に基づく前記第2の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第2のリストを含み、前記命令はさらに、
前記第2の安全プランが前記第1の安全プランのサブセットであるかどうかを判断し、
前記第2の安全プランが前記第1の安全プランのサブセットであるという判断に従って、
前記第1の安全プランの承認に少なくとも部分的に基づいて、前記第2の安全プランを自動的に承認し、
自動的に承認された前記第2の安全プランを前記第2の実行ターゲットに送信するように前記システムを構成する、システム。
a system,
a processor;
a memory storing instructions, the instructions being executed by the processor to:
receiving a configuration file for deployment to the first execution target and the second execution target;
configuring the system to generate a first safety plan for the first execution target, the first safety plan relating to deployment in the first execution target based at least in part on the configuration file; a first list of resources and respective operations to be performed, the instructions further comprising:
receiving approval of the first safety plan;
configuring the system to generate a second safety plan for the second execution target, the second safety plan relating to deployment in the second execution target based at least in part on the configuration file; including a second list of resources and respective operations to perform, the instructions further comprising:
determining whether the second safety plan is a subset of the first safety plan;
Following a determination that the second safety plan is a subset of the first safety plan,
automatically approving the second safety plan based at least in part on approval of the first safety plan;
and configuring the system to transmit the automatically approved second safety plan to the second execution target.
前記システムはさらに、前記第2の安全プランが前記第1の安全プランのサブセットではないという判断に従って、
前記第2の安全プランが前記第1の安全プランのサブセットではないと示す通知を提示し、
前記第2の安全プランに関連するリソースとそれぞれの動作との前記第2のリストを提示するためのユーザインターフェイスを準備するように構成されている、請求項17に記載のシステム。
The system further, according to a determination that the second safety plan is not a subset of the first safety plan,
presenting a notification indicating that the second safety plan is not a subset of the first safety plan;
18. The system of claim 17, configured to provide a user interface for presenting the second list of resources and respective actions associated with the second safety plan.
前記システムはさらに、
前記第2の安全プランのリソースとそれぞれの動作との前記第2のリストと、前記第1の安全プランのリソースとそれぞれの動作との前記第1のリストとの少なくとも1つの差を決定し、
前記第2の安全プランのリソースとそれぞれの動作との前記第2のリストの他のすべての視覚的表現の上に、前記少なくとも1つの差を提示するための前記ユーザインターフェイスを準備するように構成されている、請求項18に記載のシステム。
The system further includes:
determining at least one difference between the second list of resources and respective actions of the second safety plan and the first list of resources and respective actions of the first safety plan;
configured to provide the user interface for presenting the at least one difference above all other visual representations of the second list of resources and respective actions of the second safety plan; 19. The system of claim 18, wherein:
前記第2の実行ターゲットは、前記クラウドインフラストラクチャオーケストレーションサービスの切断地域であり、前記切断地域は、前記切断地域にデプロイする命令を受信するように構成された環境を含み、前記切断地域はさらに、前記切断地域の外側でいかなるデータも送信しないように構成され、前記第2の安全プランは、前記第2の実行ターゲットにおけるデプロイメントのためのものであり、前記第2の安全プランは、前記第1の安全プランに少なくとも部分的に基づく前記第1の実行ターゲットにおけるデプロイメントが成功したという判断にさらに従って、自動的に承認される、請求項17~19のいずれか1項に記載のシステム。 The second execution target is a disconnected region of the cloud infrastructure orchestration service, the disconnected region includes an environment configured to receive instructions to deploy to the disconnected region, and the disconnected region further comprises: , wherein the second safety plan is for deployment at the second execution target, and the second safety plan is configured to not transmit any data outside the disconnection zone; 20. The system of any one of claims 17-19, automatically approved further pursuant to a determination that deployment at the first execution target based at least in part on one safety plan was successful. 請求項1~10のいずれか1項に記載のステップのための手段を備える、装置。 Apparatus comprising means for the steps of any one of claims 1-10.
JP2022543748A 2020-01-20 2020-11-25 Techniques for Detecting Drift in Deployment Orchestrators Pending JP2023511111A (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US202062963413P 2020-01-20 2020-01-20
US62/963,413 2020-01-20
US17/027,507 US11816507B2 (en) 2020-01-20 2020-09-21 Techniques for managing drift in a deployment orchestrator
US17/027,507 2020-09-21
US17/027,527 US11397619B2 (en) 2020-01-20 2020-09-21 Techniques for detecting drift in a deployment orchestrator
US17/027,527 2020-09-21
PCT/US2020/062290 WO2021150306A1 (en) 2020-01-20 2020-11-25 Techniques for detecting drift in a deployment orchestrator

Publications (2)

Publication Number Publication Date
JP2023511111A true JP2023511111A (en) 2023-03-16
JPWO2021150306A5 JPWO2021150306A5 (en) 2023-07-25

Family

ID=76993196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022543748A Pending JP2023511111A (en) 2020-01-20 2020-11-25 Techniques for Detecting Drift in Deployment Orchestrators

Country Status (4)

Country Link
EP (1) EP4094208A1 (en)
JP (1) JP2023511111A (en)
CN (1) CN114902252A (en)
WO (1) WO2021150306A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11989542B2 (en) * 2021-11-04 2024-05-21 Red Hat, Inc. Enhancing operator installation and upgrade management and verification
US20230297918A1 (en) * 2022-02-25 2023-09-21 Dell Products L.P. Drift remediation of outcome-based configurations for information technology environments

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11481239B2 (en) * 2016-12-07 2022-10-25 Vmware, Inc. Apparatus and methods to incorporate external system to approve deployment provisioning
US11108655B2 (en) * 2018-07-06 2021-08-31 International Business Machines Corporation Automated application deployment in a managed services domain

Also Published As

Publication number Publication date
EP4094208A1 (en) 2022-11-30
CN114902252A (en) 2022-08-12
WO2021150306A1 (en) 2021-07-29

Similar Documents

Publication Publication Date Title
US11726830B2 (en) Techniques for detecting drift in a deployment orchestrator
US11755337B2 (en) Techniques for managing dependencies of an orchestration service
WO2021150307A1 (en) Techniques for deploying infrastructure resources with a declarative provisioning tool
EP4094155A1 (en) Techniques for utilizing directed acyclic graphs for deployment instructions
JP2023511111A (en) Techniques for Detecting Drift in Deployment Orchestrators
WO2021150366A1 (en) Updating code in distributed version control system
JP2023511535A (en) User interface technology for infrastructure orchestration services

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230714

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230714