IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特開2024-174932デプロイメントオーケストレータにおけるドリフトを検出するための技術
<>
  • 特開-デプロイメントオーケストレータにおけるドリフトを検出するための技術 図1
  • 特開-デプロイメントオーケストレータにおけるドリフトを検出するための技術 図2
  • 特開-デプロイメントオーケストレータにおけるドリフトを検出するための技術 図3
  • 特開-デプロイメントオーケストレータにおけるドリフトを検出するための技術 図4
  • 特開-デプロイメントオーケストレータにおけるドリフトを検出するための技術 図5
  • 特開-デプロイメントオーケストレータにおけるドリフトを検出するための技術 図6
  • 特開-デプロイメントオーケストレータにおけるドリフトを検出するための技術 図7
  • 特開-デプロイメントオーケストレータにおけるドリフトを検出するための技術 図8
  • 特開-デプロイメントオーケストレータにおけるドリフトを検出するための技術 図9
  • 特開-デプロイメントオーケストレータにおけるドリフトを検出するための技術 図10
  • 特開-デプロイメントオーケストレータにおけるドリフトを検出するための技術 図11
  • 特開-デプロイメントオーケストレータにおけるドリフトを検出するための技術 図12
  • 特開-デプロイメントオーケストレータにおけるドリフトを検出するための技術 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024174932
(43)【公開日】2024-12-17
(54)【発明の名称】デプロイメントオーケストレータにおけるドリフトを検出するための技術
(51)【国際特許分類】
   G06F 9/50 20060101AFI20241210BHJP
   G06F 8/60 20180101ALI20241210BHJP
【FI】
G06F9/50 150Z
G06F8/60
【審査請求】有
【請求項の数】12
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024152075
(22)【出願日】2024-09-04
(62)【分割の表示】P 2022543748の分割
【原出願日】2020-11-25
(31)【優先権主張番号】62/963,413
(32)【優先日】2020-01-20
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/027,527
(32)【優先日】2020-09-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/027,507
(32)【優先日】2020-09-21
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】バルサロウ,エリック・タイラー
(72)【発明者】
【氏名】グラス,ナサニエル・マーティン
(57)【要約】      (修正有)
【課題】クラウドインフラストラクチャオーケストレーションサービス(CIOS)を実行する方法、記憶媒体、システム及び装置を提供する。
【解決手段】CIOSを実行する方法は、デプロイメント設定ファイルに少なくとも部分的すると、リソースと動作とのリストを含む安全プランを受信し、安全プランの承認を受信すると、リソースのリストの少なくとも1つに対応する動作を実行するように準備する。動作は、安全プランと比較され、動作が安全プランの一部である場合、動作は実行され、動作が安全プランの一部でない場合、デプロイメントは停止され、デプロイメントが安全プランに準拠していないという通知を送信する。
【選択図】図6
【特許請求の範囲】
【請求項1】
方法であって、
複数のコンピュータプロセッサのうちの少なくとも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の実行ターゲットに送信することとを備える、方法。
【請求項2】
前記第2の安全プランが前記第1の安全プランのサブセットではないという判断に従って、
前記第2の安全プランが前記第1の安全プランのサブセットではないと示す通知と、
前記第2の安全プランに関連するリソースとそれぞれの動作との前記第2のリストとを提示するためのユーザインターフェイスを準備することをさらに備える、請求項1に記載の方法。
【請求項3】
前記第2の安全プランのリソースとそれぞれの動作との前記第2のリストと、前記第1の安全プランのリソースとそれぞれの動作との前記第1のリストとの少なくとも1つの差を決定することをさらに備える、請求項2に記載の方法。
【請求項4】
前記第2の安全プランのリソースとそれぞれの動作との前記第2のリストの他のすべての視覚的表現の上に、前記少なくとも1つの差を提示するための前記ユーザインターフェイスを準備することをさらに備える、請求項3に記載の方法。
【請求項5】
前記第2の安全プランが前記第1の安全プランのサブセットであるかどうかを判断することは、前記複数のコンピュータプロセッサのうちの少なくとも1つが、前記第2の安全プランのリソースとそれぞれの動作との前記第2のリストの各リソースとそれぞれの動作とが、前記第1の安全プランのリソースとそれぞれの動作との前記第1のリストにリストされているかどうかを判断することを含む、先行する請求項のいずれか1項に記載の方法。
【請求項6】
前記第1の実行ターゲットは、クラウドインフラストラクチャオーケストレーションサービスの接続地域である、先行する請求項のいずれか1項に記載の方法。
【請求項7】
前記第2の実行ターゲットは、前記クラウドインフラストラクチャオーケストレーションサービスの切断地域である、請求項6に記載の方法。
【請求項8】
前記切断地域は、前記切断地域にデプロイする命令を受信するように構成された環境を含み、前記切断地域はさらに、前記切断地域の外側でいかなるデータも送信しないように構成されている、請求項7に記載の方法。
【請求項9】
前記第2の安全プランは、前記第2の実行ターゲットでのデプロイメントのためのものである、請求項7または8に記載の方法。
【請求項10】
前記第2の安全プランは、前記第1の安全プランに少なくとも部分的に基づく前記第1の実行ターゲットにおけるデプロイメントが成功したという判断にさらに従って、自動的に承認される、請求項9に記載の方法。
【請求項11】
コンピュータ読取可能記憶媒体であって、前記コンピュータ読取可能記憶媒体は、コンピュータプロセッサによって実行されると、前記コンピュータプロセッサに命令を実行させる命令が書き込まれており、前記命令は、
第1の実行ターゲットおよび第2の実行ターゲットへのデプロイメントのための設定ファイルを受信することと、
前記第1の実行ターゲットの第1の安全プランを生成することとを含み、前記第1の安全プランは、前記設定ファイルに少なくとも部分的に基づく前記第1の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第1のリストを含み、前記命令はさらに、
前記第1の安全プランの承認を受信することと、
前記第2の実行ターゲットの第2の安全プランを生成することとを含み、前記第2の安全プランは、前記設定ファイルに少なくとも部分的に基づく前記第2の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第2のリストを含み、前記命令はさらに、
前記第2の安全プランが前記第1の安全プランのサブセットであるかどうかを判断することと、
前記第2の安全プランが前記第1の安全プランのサブセットであるという判断に従って、
前記第1の安全プランの承認に少なくとも部分的に基づいて、前記第2の安全プランを自動的に承認することと、
自動的に承認された前記第2の安全プランを前記第2の実行ターゲットに送信することとを含む、コンピュータ読取可能記憶媒体。
【請求項12】
前記命令はさらに、前記第2の安全プランが前記第1の安全プランのサブセットではないという判断に従って、
前記第2の安全プランが前記第1の安全プランのサブセットではないと示す通知と、
前記第2の安全プランに関連するリソースとそれぞれの動作との前記第2のリストとを提示するためのユーザインターフェイスを準備することを含む、請求項11に記載のコンピュータ読取可能記憶媒体。
【請求項13】
前記命令はさらに、前記第2の安全プランのリソースとそれぞれの動作との前記第2のリストと、前記第1の安全プランのリソースとそれぞれの動作との前記第1のリストとの少なくとも1つの差を決定することを含む、請求項12に記載のコンピュータ読取可能記憶媒体。
【請求項14】
前記命令はさらに、前記第2の安全プランのリソースとそれぞれの動作との前記第2の
リストの他のすべての視覚的表現の上に、前記少なくとも1つの差を提示するための前記ユーザインターフェイスを準備することを含む、請求項13に記載のコンピュータ読取可能記憶媒体。
【請求項15】
前記第2の実行ターゲットは、前記クラウドインフラストラクチャオーケストレーションサービスの切断地域であり、前記切断地域は、前記切断地域にデプロイする命令を受信するように構成された環境を含み、前記切断地域はさらに、前記切断地域の外側でいかなるデータも送信しないように構成されている、請求項11~14のいずれか1項に記載のコンピュータ読取可能記憶媒体。
【請求項16】
前記第2の安全プランは、前記第2の実行ターゲットにおける前記デプロイメントのためのものであり、前記第2の安全プランは、前記第1の安全プランに少なくとも部分的に基づく前記第1の実行ターゲットにおけるデプロイメントが成功したという判断にさらに従って、自動的に承認される、請求項15に記載のコンピュータ読取可能記憶媒体。
【請求項17】
システムであって、
プロセッサと、
命令を格納したメモリとを備え、前記命令は、前記プロセッサによって実行されると、
第1の実行ターゲットおよび第2の実行ターゲットへのデプロイメントのための設定ファイルを受信し、
前記第1の実行ターゲットの第1の安全プランを生成するように前記システムを構成し、前記第1の安全プランは、前記設定ファイルに少なくとも部分的に基づく前記第1の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第1のリストを含み、前記命令はさらに、
前記第1の安全プランの承認を受信し、
前記第2の実行ターゲットの第2の安全プランを生成するように前記システムを構成し、前記第2の安全プランは、前記設定ファイルに少なくとも部分的に基づく前記第2の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第2のリストを含み、前記命令はさらに、
前記第2の安全プランが前記第1の安全プランのサブセットであるかどうかを判断し、
前記第2の安全プランが前記第1の安全プランのサブセットであるという判断に従って、
前記第1の安全プランの承認に少なくとも部分的に基づいて、前記第2の安全プランを自動的に承認し、
自動的に承認された前記第2の安全プランを前記第2の実行ターゲットに送信するように前記システムを構成する、システム。
【請求項18】
前記システムはさらに、前記第2の安全プランが前記第1の安全プランのサブセットではないという判断に従って、
前記第2の安全プランが前記第1の安全プランのサブセットではないと示す通知を提示し、
前記第2の安全プランに関連するリソースとそれぞれの動作との前記第2のリストを提示するためのユーザインターフェイスを準備するように構成されている、請求項17に記載のシステム。
【請求項19】
前記システムはさらに、
前記第2の安全プランのリソースとそれぞれの動作との前記第2のリストと、前記第1の安全プランのリソースとそれぞれの動作との前記第1のリストとの少なくとも1つの差を決定し、
前記第2の安全プランのリソースとそれぞれの動作との前記第2のリストの他のすべての視覚的表現の上に、前記少なくとも1つの差を提示するための前記ユーザインターフェイスを準備するように構成されている、請求項18に記載のシステム。
【請求項20】
前記第2の実行ターゲットは、前記クラウドインフラストラクチャオーケストレーションサービスの切断地域であり、前記切断地域は、前記切断地域にデプロイする命令を受信するように構成された環境を含み、前記切断地域はさらに、前記切断地域の外側でいかなるデータも送信しないように構成され、前記第2の安全プランは、前記第2の実行ターゲットにおけるデプロイメントのためのものであり、前記第2の安全プランは、前記第1の安全プランに少なくとも部分的に基づく前記第1の実行ターゲットにおけるデプロイメントが成功したという判断にさらに従って、自動的に承認される、請求項17~19のいずれか1項に記載のシステム。
【請求項21】
請求項1~10のいずれか1項に記載のステップのための手段を備える、装置。
【発明の詳細な説明】
【背景技術】
【0001】
関連出願の参照
本願は、米国特許法第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号の利益および優先権を主張し、これらの内容全体は、あらゆる目的のために参照により援用される。
【0002】
背景
今日、クラウドインフラストラクチャサービスでは、多くの個々のサービスが利用されて、クラウドインフラストラクチャサービスの多くの地域にわたって(それぞれ)コードおよび設定がプロビジョニングされ、デプロイされている。これらのツールは、特に、プロビジョニングが概して宣言型であり、コードをデプロイすることが必須であることを考慮すると、使用するためにかなりの手作業が必要になる。くわえて、サービスチームおよび地域の数が増加するにつれて、クラウドインフラストラクチャサービスは、増加し続けなければならない。より多数のより小さい地域にデプロイするクラウドインフラストラクチャサービスのストラテジーの中には、地域ごとの支出を含むものがあるが、これらはうまくスケーリングされないことがある。
【発明の概要】
【0003】
簡潔な概要
インフラストラクチャオーケストレーションサービスを実行するための技術について説明する。いくつかの例では、デプロイメント設定ファイルに少なくとも部分的に基づくリソースと動作とのリストを含む安全プランが受信され得る。安全プランの承認を受信すると、リソースのリストの少なくとも1つに対応する動作が実行されるように準備可能になり得る。動作が安全プランと比較され得る。動作が安全プランの一部であると判断された場合、動作は実行され得る。動作が安全プランの一部でないと判断された場合、デプロイメントは停止され得、デプロイメントが安全プランに準拠していないという通知が送信され得る。いくつかの例では、ドリフトが生じた場合、動作は安全プランの一部でないことがある。
【0004】
他の例では、コンピュータ読取可能記憶媒体は、プロセッサによって実行されると、プロセッサに本明細書で説明するさまざまな動作を実行させることが可能な命令を含み得る。デプロイメント設定ファイルに基づくリソースと動作とのリストを含み得る安全プランが受信され得る。安全プランの承認が受信され得る。デプロイメント設定ファイルに従ったリソースのリストの少なくとも1つに対応する動作が、実行されるように準備され得る。動作が安全プランと比較され得る。動作が安全プランの一部であると判断された場合、動作は実行され得る。動作が安全プランの一部でないと判断された場合、デプロイメントは停止され得、デプロイメントが安全プランに準拠していないという通知が送信され得る。
【0005】
さらに別の例では、システムは、プロセッサと、プロセッサによって実行されると、本
明細書で説明する動作を実行するようにシステムを構成することが可能な命令を記憶することができるメモリとを含み得る。デプロイメント設定ファイルに少なくとも部分的に基づくリソースと動作とのリストを含み得る安全プランが受信され得る。安全プランの承認が受信され得る。承認に基づいて、リソースのリストの少なくとも1つに対応する動作が、実行されるように準備され得る。動作が安全プランと比較され得る。動作が安全プランの一部であると判断された場合、動作は実行され得る。動作が安全プランの一部でないと判断された場合、デプロイメントは停止され得、デプロイメントが安全プランに準拠していないという通知が送信され得る。
【0006】
他の例では、方法は、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメント設定ファイルに少なくとも部分的に基づくリソースのリストとそれぞれの動作とを含む安全プランを受信することを備え得る。方法はさらに、安全プランの承認の指示の受信に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行うことを備え得る。方法はさらに、動作を安全プランと比較することを備え得る。方法はさらに、動作が安全プランの一部であるという判断に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、動作を実行することを備え得る。方法はさらに、動作が安全プランの一部でないという判断に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメントを停止することと、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメントが安全プランに準拠していないという通知を送信することとを備え得る。
【0007】
他の例では、コンピュータ読取可能記憶媒体は、プロセッサによって実行されると、プロセッサに本明細書で説明するさまざまな動作を実行させることが可能な命令を含み得る。動作は、デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とのリストを含む安全プランを受信することを含み得る。動作はさらに、安全プランの承認の指示の受信に従って、デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行うことと、動作を安全プランと比較することとを含み得る。動作はさらに、動作が安全プランの一部であるという判断に従って、動作を実行することを含み得る。動作はさらに、動作が安全プランの一部でないという判断に従って、デプロイメントを停止することと、デプロイメントが安全プランに準拠していないという通知を送信することとを含み得る。
【0008】
他の例では、システムは、プロセッサと、プロセッサによって実行されると、本明細書で説明する動作を実行するようにシステムを構成することが可能な命令を記憶可能なメモリとを備え得る。動作は、デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とのリストを含む安全プランを受信することを含み得る。動作はさらに、安全プランの承認の指示の受信に従って、デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行うことを含み得る。動作はさらに、動作を安全プランと比較することを含み得る。動作はさらに、動作が安全プランの一部であるという判断に従って、動作を実行することを含み得る。動作はさらに、動作が安全プランの一部でないという判断に従って、デプロイメントを停止することと、デプロイメントが安全プランに準拠していないという通知を送信することとを含み得る。
【0009】
本明細書に記載の方法のいずれかに記載のステップのための手段を備える装置。
任意の特定の要素または行為の記述を容易に識別するために、参照番号の最上位の数字(単数または複数)は、その要素が最初に導入される図面番号を指す。
【図面の簡単な説明】
【0010】
図1】少なくとも1つの実施形態に係る、クラウドインフラストラクチャオーケストレーションサービスの少なくともいくつかの要素を実装するためのアーキテクチャを示すブロック図である。
図2】少なくとも1つの実施形態に係る、クラウドインフラストラクチャオーケストレーションサービスの少なくともいくつかの要素を実装するためのアーキテクチャを示すブロック図である。
図3】少なくとも1つの実施形態に係るフロックの例を説明するためのフロー図である。
図4】少なくとも1つの実施形態に係るフロックの例を説明するためのフロー図である。
図5】少なくとも1つの実施形態に係るクラウドインフラストラクチャオーケストレーションサービスを示すブロック図である。
図6】少なくとも1つの実施形態に係る、クラウドインフラストラクチャオーケストレーションサービスにおいて安全プランを使用するためのプロセスを説明するためのフローチャートである。
図7】少なくとも1つの実施形態に係る、クラウドインフラストラクチャオーケストレーションサービスにおいて安全プランを生成するためのプロセスを説明するためのフローチャートである。
図8】少なくとも1つの実施形態に係る、安全プランが生成および使用される態様を説明するためのスイムレーン図である。
図9】少なくとも1つの実施形態に係る、切断地域を示すブロック図である。
図10】少なくとも1つの実施形態に係る、切断地域において安全プランを使用するためのプロセスを説明するためのフローチャートである。
図11】少なくとも1つの実施形態に係る分散型システムを示すブロック図である。
図12】少なくとも1つの実施形態に係る、実施形態のシステムの1つ以上のコンポーネントによって提供されるサービスがクラウドサービスとして提供され得るシステム環境の1つ以上のコンポーネントを示すブロック図である。
図13】本開示のさまざまな実施形態が実装され得るコンピュータシステムの例を示すブロック図である。
【発明を実施するための形態】
【0011】
詳細な説明
いくつかの例では、インフラストラクチャ・アズ・ア・サービス(IaaS)は、1つの特定のタイプのクラウドコンピューティングである。IaaSは、仮想化されたコンピューティングリソースをパブリックネットワーク(たとえば、インターネット)を介して提供するように構成可能である。いくつかの例では、IaaSは、クラウドコンピューティングサービスの3つの主要なカテゴリ(または、サブカテゴリ)のうちの1つである。大抵の人は、他の主要なカテゴリがソフトウェア・アズ・ア・サービス(SaaS)およびプラットフォーム・アズ・ア・サービス(PaaS)であると考えており、SaaSは、PaaSおよびIaaSを両方とも包含するより広いカテゴリであると考えられる場合もあり、さらにIaaSがPaaSのサブカテゴリであると考える人さえいる。
【0012】
IaaSモデルでは、クラウドコンピューティングプロバイダは、インフラストラクチャコンポーネント(たとえば、サーバ、ストレージデバイス、ネットワークノード(たとえば、ハードウェア)、デプロイメントソフトウェア、またはプラットフォーム仮想化(たとえば、ハイパーバイザ層)など)をホストすることができる。
【0013】
場合によっては、IaaSプロバイダは、これらのインフラストラクチャコンポーネントに付随するようにさまざまなサービス(たとえば、請求、監視、ロギング、セキュリティ、ロードバランシングおよびクラスタリングなど)も供給し得る。したがって、これら
のサービスがポリシ駆動型であり得るので、IaaSユーザは、ロードバランシングを駆動してアプリケーション可用性および性能を維持するようにポリシを実行可能である。
【0014】
いくつかの例では、IaaS顧客は、インターネットなどのワイドエリアネットワーク(WAN)を介してリソースおよびサービスにアクセスすることができ、クラウドプロバイダのサービスを使用して、アプリケーションスタックの残りの要素をインストールすることができる。たとえば、ユーザは、IaaSプラットフォームにログインして、仮想マシン(VM)を作成し、各VMにオペレーティングシステム(OS)をインストールし、ミドルウェア(データベースなど)をデプロイし、ワークロードおよびバックアップのためのストレージバケットを作成し、そのVMに企業ソフトウェアをインストールすることさえできる。次に、顧客は、プロバイダのサービスを使用して、ネットワークトラフィックバランシング、トラブルシューティングアプリケーション問題、性能の監視、ディザスタリカバリの管理といった、さまざまな機能を実行することができる。
【0015】
ほとんどの場合、クラウドコンピューティングモデルは、クラウドプロバイダの参加を必要とする。クラウドプロバイダは、IaaSを提供する(たとえば、販売する)ことを専門とするサード・パーティサービスであり得るが、そうでなくてもよい。エンティティは、それ自体のインフラストラクチャサービスプロバイダになるプライベートクラウドをデプロイすることも選択し得る。
【0016】
いくつかの例では、IaaSデプロイメントは、新しいアプリケーションまたは新しいバージョンを、準備されたアプリケーションサーバなどに配置するプロセスである。それは、サーバを準備する(たとえば、ライブラリ、デーモンなどをインストールする)プロセスも含み得る。これは、ハイパーバイザ層(たとえば、サーバ、ストレージ、ネットワークハードウェアおよび仮想化)の下のクラウドプロバイダによって管理されることが多い。したがって、顧客は、(OS)、ミドルウェアおよび/またはアプリケーションデプロイメントなどの(たとえば、セルフサービスの仮想マシン(たとえば、オンデマンドでスピンアップされ得る)上で)処理を担うことができる。
【0017】
いくつかの例では、IaaSプロビジョニングとは、使用のためにコンピュータまたは仮想ホストを取得すること、および必要なライブラリまたはサービスをそれらにインストールすることさえ意味し得る。ほとんどの場合、デプロイメントはプロビジョニングを含んでおらず、プロビジョニングを最初に実行する必要があることもある。
【0018】
場合によっては、IaaSプロビジョニングには2つの異なる問題がある。第1に、何かが実行中になる前にインフラストラクチャの初期セットをプロビジョニングするという最初の課題がある。第2に、何もかもがプロビジョニングされると既存のインフラストラクチャを展開する(たとえば、新しいサービスを追加する、サービスを変更する、サービスを除去する、など)という課題がある。場合によっては、これら2つの課題は、インフラストラクチャの構成を宣言型に定義することを可能にすることによって対処することができる。言い換えれば、インフラストラクチャ(たとえば、どのコンポーネントが必要であり、それらがどのように相互作用するか)は、1つ以上の設定ファイルによって定義することができる。したがって、インフラストラクチャの全体トポロジ(たとえば、どのリソースがどれに依存しており、それらの各々がどのように協働するか)は、宣言的に記述することができる。いくつかの例では、トポロジが定義されると、設定ファイルに記載された異なるコンポーネントを作成および/または管理するワークフローを生成することができる。
【0019】
いくつかの例では、インフラストラクチャは、多くの相互接続された要素を有し得る。たとえば、コアネットワークとしても知られている1つ以上の仮想プライベートクラウド
(VPC)(たとえば、設定可能なおよび/または共有のコンピューティングリソースの、場合によってはオンデマンドのプール)が存在してもよい。いくつかの例では、ネットワークのセキュリティがどのようにセットアップされるかを定義するようにプロビジョニングされた1つ以上のセキュリティグループルール、および、1つ以上の仮想マシン(VM)も存在する可能性がある。ロードバランサまたはデータベースなどの他のインフラストラクチャ要素もプロビジョニングされてもよい。より多くのインフラストラクチャ要素が求められるおよび/または追加されるにつれて、インフラストラクチャは段階的に展開し得る。
【0020】
上述のように、インフラストラクチャをプロビジョニングする1つの方法は、それを宣言型に記述することである。そのため、設定ファイルは、上記のインフラストラクチャコンポーネントの各々およびそれらがどのように相互作用するかを単に記述する宣言ファイルでもよい。設定ファイルは、リソースと、要素を作成するのに必要な関連フィールドとを記述することができるため、前に記述された要素を参照する他の要素も記述することができる。いくつかの例では、プロビジョニングツールは、次に、設定ファイルに記述される要素を作成し管理するためのワークフローを生成することができる。
【0021】
いくつかの例では、プロビジョニングツールのワークフローは、さまざまなコマンドを実行するように構成可能である。実行可能な1つの機能はビューの調整であり、プロビジョニングツールは、現在のインフラストラクチャのビュー(たとえば、インフラストラクチャの予想される状態)を、インフラストラクチャが実際に実行されている態様と比較することができる。いくつかの例では、ビューの調整機能を実行することは、さまざまなリソースプロバイダまたはインフラストラクチャリソースに照会して、どのリソースが実際に動作しているかを特定することを含み得る。プロビジョニングツールが実行可能な別の機能はプラン生成であり、プロビジョニングツールは、実際に動作しているインフラストラクチャコンポーネントを、プロビジョニングツールがその状態をどのように見せたいか(たとえば、所望の構成)と比較することができる。言い換えれば、プラン生成機能は、リソースを最新の予想に近づけるためにどのような変更を加える必要があるかを判断することができる。いくつかの例では、第3の機能は実行(たとえば、適用)機能であり、プロビジョニングツールは、プラン生成機能によって生成されたプランを実行することができる。
【0022】
一般に、プロビジョニングツールは、設定ファイルを受け取り、そこに含まれる宣言型情報を解析し、プランを実行するためにリソースをプロビジョニングする必要がある順序をプログラム的に/自動的に決定するように構成可能である。たとえば、セキュリティグループルールおよびVMがブートされる前にVPCをブートする必要がある場合、プロビジョニングツールは、ユーザの介入なしに、および/または、その情報が必ずしも設定ファイルに含まれていなくても、その決定を行ってその順序でブートを実行することができる。
【0023】
いくつかの例では、さまざまな仮想コンピューティング環境にわたるインフラストラクチャコードのデプロイメントを可能にするために、連続デプロイメント技術が採用される場合がある。さらに、記載されている技術は、これらの環境内でのインフラストラクチャ管理を可能にすることができる。いくつかの例では、サービスチームは、1つ以上の(しかしながら、往々にして多くの)異なる本番環境(たとえば、時には世界全体に及ぶさまざまな異なる地理的位置に及ぶ)にデプロイされることが望まれるコードを書き込むことができる。しかしながら、いくつかの例では、コードがデプロイされることになるインフラストラクチャを最初に設定しなければならない。いくつかの例では、プロビジョニングは手動で行うことができ、プロビジョニングツールを利用してリソースをプロビジョニング可能であり、および/または、インフラストラクチャがプロビジョニングされるとデプ
ロイメントツールを利用してコードをデプロイすることが可能である。
【0024】
上述のように、一般に、インフラストラクチャリソースのプロビジョニングおよびインフラストラクチャリソースを制御するためのコードのデプロイメントの各々を処理するために使用される2つの異なるツールがあり、これら2つのツール間のオーケストレーションは手動で行われる。しかしながら、大規模になると、手動での実行は常にずれを生じさせる。したがって、仮想インフラストラクチャのプロビジョニングとデプロイメントとの両方を行うことができる自動ツールによって、仮想クラウド環境を実現するためのより効率的で信頼性のある技術が可能になる。
【0025】
いくつかの例では、2つのツールが使用される場合、ユーザがプロビジョニングフェーズとデプロイメントフェーズとの間に手動でコードに変更を加える際に問題が生じる可能性がある。本明細書に記載されているように、プロビジョニングとデプロイメントとの両方に単一のツールを使用する技術は、手動でのコード変更の機会がないようにプロセスを自動化することによって、その問題を軽減することができる。あるユーザが何かを符号化するやり方に対してわずかな変更を加えると、デプロイメントフェーズにおいて大きな問題が生じる可能性がある場合もある。いくつかの例では、最初にオペレータが新しい領域においてあるアクション(たとえば、コードの誤植)を実行したときには、その誤植で符号化されたオブジェクトは永久にそのままであり得る。その誤植と共にアプリケーションがデプロイされるがアプリケーションがその誤植に影響されない(たとえば、アプリケーションが依然として機能する)場合、今後さらに他のコード変更がその誤植に影響されてシステム全体をクラッシュさせるということが起こり得る。したがって、本明細書において提供されている技術は、しばしば問題を生じさせ得るプロビジョニングとデプロイメントとの間のギャップを除去することができる。
【0026】
一般に、設定ファイルを使用してインフラストラクチャリソースを宣言することができるように、デプロイメントのモデル化は宣言型である。たとえば、一般に、作成・読取・更新・削除(CRUD)命令を使用して、一般的な表現可能な状態の転送(REST)の概念(たとえば、RESTアプリケーションプログラミングインターフェイス(API))を用いて、デプロイメントファイルを生成する。しかしながら、デプロイメント自体は一般に、この概念に従わない。さらに、インフラストラクチャプロビジョニングツールは、非常に強力である、および/または表現的になる傾向があるが、デプロイメントのためのツールは、それらが実行することができる動作に関してはるかに制限的である傾向がある(たとえば、それらは宣言型であるのとは対照的に命令的である)。したがって、クラウド環境内で両方の機能要件(たとえば、インフラストラクチャ要素のプロビジョニングおよびデプロイメント)に対処可能なツールが長年必要とされてきた。
【0027】
いくつかの例では、クラウドインフラストラクチャオーケストレーションサービス(CIOS)を実装するための技術について、本明細書で説明する。このような技術は、簡単に上記したように、クラウド環境内のインフラストラクチャアセットのプロビジョニングおよびデプロイメントを両方とも管理するように構成可能である。いくつかの例では、CIOSは、サービスの2つのクラス、すなわち中央コンポーネントおよび地域コンポーネント(たとえば、中央CIOSおよび地域CIOS)を含み得る。明細書を通して以下の用語を使用する。
【0028】
・インフラストラクチャコンポーネント:実行中のコードをサポートするインフラストラクチャの長寿命の部分
例:デプロイメントアプリケーション、ロードバランサ、ドメインネームシステム(DNS)入力、オブジェクトストレージバケットなど。
【0029】
・アーティファクト:コードは、デプロイメントアプリケーションまたはクバネティスエンジンクラスタにデプロイされる、または、設定情報(以下、「コンフィグ」)は、インフラストラクチャコンポーネントに適用される。これらは、読取専用リソースであり得る。
【0030】
・デプロイメントタスク:デプロイまたはテストコードに関連付けられることが多い短寿命のタスク。さらに、デプロイメントタスクは、それらを作成するリリースほど長くは生存しないリソースとしてモデル化される。
【0031】
例:「$アーティファクトを$環境にデプロイしてください(deploy $artifact to $environment)」、「10分間$アラームを注視してください(watch $alarm for 10 minutes)」、「$テストスイートを実行してください(execute $testSuite)」、または
「$手動承認を待ってください(wait for $manualApproval)」
たとえば、CIOSは、デプロイメントオーケストレータのデプロイメントを、それが完了したときに利用可能な状態に遷移するリソースの作成としてモデル化することができる。
【0032】
CIOSは、その関連する宣言型プロビジョナの状態を維持するので、CIOSは、それがリリースに関連するときにはこれらの短寿命のリソースのライフサイクルを制御可能である。
【0033】
・リソース:CRUD可能なリソース
CIOSは、上記の構造の各々をリソースとしてモデル化する。次のセクションでは、このモデル化について詳細に説明する。
【0034】
・フロック:CIOSの唯一の制御プレーンリソース。主にインフラストラクチャコンポーネントの所有権をモデル化してインフラストラクチャコンポーネントを示すために存在する。
【0035】
・フロックコンフィグ:単一のサービスに関連する全てのインフラストラクチャコンポーネント、アーティファクトおよびデプロイメントタスクのセットを記載する。
【0036】
各フロックは、厳密に1つのフロックコンフィグを有している。フロックコンフィグは、ソース制御にチェックインされる。
【0037】
フロックコンフィグは、宣言型である。それらは、CIOSが領域、地域、adおよびアーティファクトバージョンを入力として提供すると予想する。
【0038】
フロックは、粒度が細かい。フロックは、単一のサービスおよびサポートインフラストラクチャからなる。
【0039】
・状態:フロック内のあらゆるリソースの状態の、特定の時点でのスナップショット。
・リリース:フロックコンフィグの特定のバージョンと、それが参照するあらゆるアーティファクトの特定のバージョンとのタプル
リリースは、まだ存在し得ない状態を記載するものであると考えられる。
【0040】
・リリースプラン:CIOSが全ての地域を現在の状態からリリースによって記載される状態に遷移させるのに取るであろうステップのセット。
【0041】
リリースプランは、有限数のステップと、明確に定義された開始時刻および終了時刻
とを有する。
【0042】
・適用:これは名詞である。リリースプランを実行する1回の試行である。実行は、フロックの現在の状態を変化させる。
【0043】
CIOSは、(たとえば、世界規模の)ダウンストリームシステムに設定を適用するオーケストレーション層であると言える。それは、サービスチームからの手動労力なしに(たとえば、場合によっては最初の承認を超えて)世界規模のインフラストラクチャプロビジョニングおよびコードデプロイメントを可能にするように設計されている。CIOSの上位の責務は、以下を含むがそれらに限定されない。
【0044】
・いかなる処理中の変更アクティビティも含む、CIOSによって管理されるリソースの現在の状態へのビューをチームに提供すること。
【0045】
・チームが新しい変更を計画してリリースするのを支援すること。
・地域内のさまざまなダウンストリームシステムにわたってアクティビティを連携させて、承認されたリリースプランを人間の介入なしに実行すること。
【0046】
・地域/領域にわたってアクティビティを連携させて、承認されたリリースプランを世界規模で実行すること。
【0047】
情報をCIOSに提供することを可能にすることによって、オンボーディングを処理する。CIOSはさらに、より多くのことを自動化することができるため、これは、以前の実現例よりも負荷が大きいワークである。いくつかの例では、CIOSは、コードを自動的にデプロイしてテストすることができる機能をチームに提供することによって、事前デプロイメントを処理する。いくつかの例では、CIOSは、チームが新しいアーティファクトを構築する際にそれらを(たとえば、世界規模で)展開するためのプランを自動的に生成することを可能にすることによって、変更管理(CM)ポリシの書き込みを処理することができる。これは、各地域の現在の状態および現在のCIOSコンフィグ(それ自体がアーティファクトであり得る)を調べることによって行うことができる。さらに、チームは、これらのプランを調べることができ、CIOSコンフィグを変更して再計画するようにCIOSに求めることによって、それらを繰り返すことができる。チームは、プランに満足すると、そのプランを参照する「リリース」を作成することができる。次に、このプランは、承認されたまたは拒否されたとして印を付けることができる。チームは、依然としてCMを書き込むことができるが、それらは、CIOSプランへのポインタにすぎない。したがって、チームは、このプランについての推論にあまり時間を費やさない。プランは、マシンによって生成されるため、より正確である。プランは、人間が読むには細かすぎるが、高度なユーザインターフェイス(UI)によって表示することができる。
【0048】
いくつかの例では、CIOSは、デプロイメントプランを自動的に実行することによって、CMの実行を処理することができる。リリースプランが作成されて承認されると、CIOSがロールバックを開始しない限り、エンジニアがCMに参加することはない。場合によっては、これによって、チームは現在は手動であるタスクを自動化する必要がある。いくつかの例では、CIOSは、CIOSが実行中にサービス正常性の低下を検出すると、フロックをその元の(たとえば、リリース前の)状態に戻すプランを自動的に生成することによって、変更管理(CM)のロールバックを処理することができる。いくつかの例では、CIOSは、CIOSによって管理される地域のサブセットおよび/またはリソースのサブセットにスコープされるリリースプランを受信し、次にそのプランを実行することによって、突発的な/戦術的な変更のデプロイを処理可能である。
【0049】
さらに、CIOSは、完全に自動化された世界規模のデプロイメントを定義するのに必要なプリミティブをサポートし得る。たとえば、CIOSは、アラームを監視して統合テストを実行することによって、サービス正常性を測定することができる。CIOSは、サービス低下が発生した場合にチームがロールバック挙動を素早く定義することを支援することができ、次にそれを自動的に実行することができる。CIOSは、リリースプランを自動的に生成して表示することができ、承認を追跡することができる。いくつかの例では、チームが所望のデプロイメント挙動を記述するために使用する言語は、宣言型であり得る。CIOSは、1つのシステム内のコードデプロイメントおよびインフラストラクチャコンフィグ(たとえば、プロビジョニング)の機能を組み合わせることができる。また、CIOSは、地域にわたって、およびある地域内のコンポーネントにわたって、柔軟な順序付けをサポートする。チームは、チェックインされたコンフィグによって順序付けを表現することができる。チームは、CIOSのプランニングを呼び出して、APIをプログラム的にリリースし得る。
【0050】
図1は、少なくとも中央CIOS102を実行するための技術を説明するためのアーキテクチャ100を示す図である。いくつかの例では、中央CIOS102は、「フロック」のレベルで動作を処理するサービスであり得る。中央CIOS102は、いくつかの責務を有しており、これらの責務は、以下を含むがそれらに限定されない。
【0051】
・フロックメタデータ変更およびリリース動作のための認証ゲートウェイとしての役割を果たすこと。
【0052】
・フロックのためのデプロイメントアーティファクトおよびCIOSリポジトリへのフロックメタデータの正式なマッピングを格納すること。
【0053】
・フェーズおよびターゲットにわたるグローバルなリリースを連携させること。
・「一度に1回だけのフロックへの進行中リリース」のようなポリシを実施するための同期。
【0054】
・フロック設定(コンフィグ)およびアーティファクトに対する変更を検出して、このような変更時にリリース生成をトリガすること。
【0055】
いくつかの例では、ソースコードバージョン制御管理サービス(SCVMS)104は、正式なフロック設定を格納するように構成可能であり、アーティファクト通知サービス(ANS)106は、新しいアーティファクトの構築を中央CIOS102に知らせることができるように、中央CIOS102によってサブスクライブされ得る。次に、中央CIOS102は、影響を受けたフロックに対して入来する変更をマッピングし、所望の場合にはリリースプランニングを開始し得る。さらに、いくつかの例では、ターゲットへのリリースの前に中央CIOS102によってアーティファクトプッシュサービス(APS)が呼び出されて、リリースの成功に必要ないかなるアーティファクトもリリースの前にターゲットの地域内に存在するように保証可能である。
【0056】
いくつかの例では、顧客(たとえば、エンジニア)108は、中央CIOS102を呼び出して、フロックおよび/またはリリースをCRUDして進行中のCIOSアクティビティのステータスを見ることができる。フロック管理サービス110は、フロックを操作するための1つ以上のAPIを含むことができ、ビュー/プラン/承認サービス112は、プランを作成および承認して、全てのCIOSによって管理されるリソースの状態の中央コピーを見るためのCRUD APIを含むことができ、変更監視サービス114は、フロックコンフィグに対する変更についてSCVMS104を注視することができ、他のアーティファクトに対する変更についての通知をANS106から受信することができ、
状態インジェスタサービス116は、地域状態のコピーを、ビュー/プラン/承認112がそれらを公開できるように、中央CIOSデータベース(DB)118内に作成することができる。いくつかの例では、中央CIOS DB118は、フロック、プランおよび状態のDBであり得る。フロック情報は、正式なものでもよいが、その他は全て、地域CIOS120からのデータの古いコピーでもよい。
【0057】
いくつかの例では、エンジニア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によって処理可能である。
【0058】
いくつかの例では、エンジニア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によって処理可能であり、認証も認可も相互トランスポート層セキュリティサービスによって処理可能である。
【0059】
図2は、少なくとも地域CIOS202を実行するための技術を説明するためのアーキテクチャ200を示す図である。いくつかの例では、地域CIOS202は、宣言型プロビジョニングおよびプランニングのワークの多くの部分、ならびに承認されたリリースアプリケーションが発生し得る場所である。いくつかの例では、地域CIOS202の各インスタンスは、「実行ターゲット」のレベルで動作を処理することができる地域フロントエンドを有し得る。それは、以下を実行するように構成可能である。
【0060】
・中央CIOS102から入来する動作についての全てのCIOS認証を処理すること。
【0061】
・所与の実行ターゲットについて、一度に1回の「実行」(プラン/リソースインポート/プランの適用)しか行えないというルールを実施すること。
【0062】
・宣言型インフラストラクチャプロビジョニングの実行中に入力および出力に使用される宣言型プロビジョニングアーティファクトのためのバイナリアーティファクトストレージを管理すること。入力の例は、宣言型インフラストラクチャプロビジョニング設定ファイルおよび入力状態ファイルである。典型的な出力は、最終状態ファイルである。
【0063】
・任意の所与の実行について、CIOSエクセキュータからのワークおよびCIOSエクセキュータからの結果についてのポーリングを要求すること。
【0064】
いくつかの例では、CIOSフロントエンドは、実際の実行を処理することができるCIOSエクセキュータに依存し得る。いくつかの例では、CIOSエクセキュータは、「実行」のレベルで動作し、それは以下を実行することができる。
【0065】
・利用可能なワーカノードのプールを追跡すること
・入来するジョブ要求に照会して、それらを利用可能であるとして、資格のあるワーカに割り当てること
・クライアントに報告するためにワーカステータスおよび実行更新を追跡すること
・リースプロトコルによってデッドノードを検出し、タスクステータスに応じて、デッドノードに割り当てられたタスクを失敗させ得ること
・実行をキャンセル/強制終了/一時停止/再開するための機能を提供し、それらを、キャンセル/強制終了/再開情報をワーカノードに渡すための機能にマッピングし得ること
いくつかの例では、CIOSエクセキュータは、CIOSワーカに依存することが可能であり、このCIOSワーカは、実行のためのタスクをワーカに割り当て、ワーカがジョブ進捗を更新するための機能を提供することが可能である。ワーカサービスは、「タスク」の粒度で動作する。各ワーカは、そのワーカに割り当てられたタスクを実行してタスクステータスおよび出力を報告するエージェントである。各ワーカは、以下を実行することができる。
【0066】
・割り当てられたワークアイテムについてエクセキュータワーカAPIをポーリングし、割り当て状態をそのローカル状態と一致させるためのアクションを行うこと
ローカルに存在しないタスクアイテムのポーリングのためのコンテナを開始すること
対応する割り当てられたタスクアイテムを持たないコンテナをローカルで実行するためのコンテナを強制終了すること
・ジョブのステータスを報告すること
・ジョブコンテナ実行のためのステージ入出力を行うこと
・実行ターゲットのリリースの実際のワークを行うための宣言型インフラストラクチャプロビジョニングコンテナの起動および監視を行うこと
CIOSワーカは、CIOSエクセキュータからのワークをポーリングし結果をCIOSエクセキュータのワーカエンドポイントに報告するために、CIOSエクセキュータに依存し得る。ワーカは、全ての連携についてエクセキュータに依拠し得る。さらに、CIOSワーカは、地域CIOS202にも依存可能であり、地域CIOS202では、ワーカサービスは、地域フロントエンドサービスに関連する1つ以上のAPIからの入力を読み取って、これらの1つ以上のAPIへの出力を書き込む。入力の例は、設定および開始状態ファイル、ならびにマッピングのインポートである。出力の例は、宣言型プロビジョニングプロセス、宣言型プロビジョニング状態ファイルの出力、および結果状態のインポートである。
【0067】
いくつかの例では、地域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に準拠した暗号ライブラリの使用が容易になる。
【0068】
いくつかの例では、中央CIOS102は、地域CIOS202を呼び出して、プランを作成し、承認をプッシュし、ジョブステータス(サービスプリンシパル)を注視し、宣言型プロビジョナ状態(サービスプリンシパル)を抽出することができる。イングレスプロキシ218は、ACLとして構成可能であり、さまざまなアイデンティティポリシが認証と認可との両方に使用され得る。いくつかの例では、地域CIOS202は、スケジューラ206にそのようにするように求めることによって、宣言型プロビジョナを実行し得る。ワーカ210は、それが何を実行しているはずであるかをスケジューラ206に尋ねることができ、完了するとステータスをスケジューラ206に報告することができる。場合によっては、mTLSが地域CIOS202およびワーカ210についての認証と認可との両方を処理してもよい。さらに、ワーカ210は、宣言型プロビジョナを実行する必要がある場合には、ローカルドッカー214と対話することによって、ドッカーコンテナにおいて宣言型プロビジョナを実行する。このフェーズでの認証は、ローカルunix(登録商標)ソケットによって処理可能である。この最後のステップではドッカープロトコルが使用されてもよいが、前のステップではHTTPSが利用されてもよい。
【0069】
いくつかの例では、CIOSコンテナ212は、宣言型プロビジョナが署名プロキシ216と(APIを介して)対話することを可能にし、この宣言型プロビジョナは、それがさまざまなCIOSサービスを呼び出していると考える。署名プロキシ216は、宣言型プロビジョナのみが知っている、宣言型プロビジョナのインスタンスの呼び出し当たり1つのエフェメラルポート上で聞く。署名プロキシ216は、署名またはmTLSの要求を
開始することができ、宣言型プロビジョナの呼び出しをサービスエンクレーブ内の他のCIOSサービスに渡すことができる。いくつかの例では、署名プロキシ216は、1つ以上のパブリックCIOSサービス220と通信することもできる。たとえば、署名プロキシ216は、可能であればパブリックサービスの内部エンドポイントを使用する。内部エンドポイントを持たないサービスでは、外部エンドポイントに到達するためにエグレスプロキシ222を使用しなければならない。この署名プロキシ216の使用は、地域横断的な通信のためのものではない場合がある。たとえば、各地域のエグレスプロキシホワイトリストは、その地域のパブリックIP範囲のためだけのものでもよい。いくつかの例では、ワーカ210は、次に、地域CIOS202における宣言型プロビジョナからの状態およびログを、中央CIOS102に流出させ得るように、それらの状態およびログを維持し得る。
【0070】
CIOSを使用して、代表的なカスタマエクスペリエンスにはいくつかのフェーズ、すなわちオンボーディング、リリース前、世界規模のリリースおよび戦術的なリリースがある。リリース前フェーズの場合、以下は、新しいアーティファクトの構築とアーティファクトのリリース1(たとえば、R1)へのリリースとの間で起こることの一例である。これは、現在の変更管理プロセスの一部または大半に取って代わるものでなければならない。関連するアーティファクトが構築されると、CIOSは、「フロック内の全ての最新バージョン」を使用して自動的にリリースを生成することができる。リリースは、特定の入力(たとえば、アーティファクトバージョン、領域、地域およびad)を有するフロックコンフィグの特定のバージョンである。リリースは、地域当たり1つのロールフォワードプランと、地域順序付けを記載するメタデータとを含む。各地域プランは、宣言型プロビジョナがその地域においてフロック設定を実現するのに行うであろう一組の動作である。リリース前環境を有するチームは、CIOSを使用して、上記の環境においてソフトウェアを自動的にリリースし、テストすることができる。チームは、ロールバックプランを自動的にテストするようにCIOSを構成することができる。チームは、CIOS UIを介してリリースを調べて承認することが可能になる。チームは、リリース内の地域プランの一部(しかしながら、全てではない)を承認することができる。「全てのものの最新バージョン」が好適なプランをもたらさない場合には、チームは、チェリーピックされたアーティファクトバージョンのためのプランを生成するように、CIOSに求めることができる。
【0071】
世界規模のリリースのフェーズの場合、以下は、チームが今日の「通常のCM」の明日のバージョンをどのように実行するかの一例である。リリースが承認されると、CIOSは、各々の承認された地域プランをそれぞれの地域にプッシュする。CIOSは、承認されたプランを適用するように各地域内で独立して動作する。CIOSは、その地域のプランに明示的に記載された一組のアクションを実行するのみである。「独立して考える」のではなく、それは失敗することになる。CIOS UIは、チームに実行の進捗を示す。CIOS UIは、手動承認が要求される場合にチームに促す。CIOSまたはダウンストリームサービスにおける停止のために実行が失敗すると、CIOSは、チームに通知することができ、チームに次のステップ(たとえば、アボート、再試行)を促すことができる。CIOSは、再試行を実行するが、ダウンストリームシステムの停止の中には、その再試行の意思を超えるものもある。サービス正常性の低下またはテストの失敗のために実行が失敗すると、CIOSは、フロックをその開始状態にロールバックすることによってチームを支援する。CIOSは、自動ロールバックを開始するとチームに通知(たとえば、ページング)する。チームは、ロールバックプランを承認しなければならず、次に、CIOSはそれを実行する。
【0072】
戦術的なリリースのフェーズの場合、以下は、チームが「突発的なCM」の明日のバージョンをどのように実行できるかの一例である。プランを生成する際、チームは、いくつ
かの方法で、すなわちトポロジ的に(たとえば、領域、地域、ADなど)、リソースタイプ(たとえば、「メトリクスコンフィグのみ」または「デプロイメントオーケストレーションサービスのデプロイメントのみ」など)ごとに、または上記の組み合わせで(たとえば、選言的な態様で)、プランを特定のリソースに向けるようにCIOSに求め得る。チームは、世界規模のリリースと同様に戦術的なリリースを承認する。CIOSは、それらを同様にオーケストレーションする。アクティブな世界規模のリリースがある間にチームが戦術的なリリースをデプロイする必要がある場合、CIOSは、対象となる地域における世界規模のリリースの実行を停止して、次に戦術的なリリースの実行を開始する。
【0073】
いくつかの例では、宣言型プロビジョナの状態(たとえば、従来はファイル)は、宣言型プロビジョナによって管理される一組のリソースの正式な記録である。それは、コンフィグからの各リソースの論理識別子とリソースの実際の識別子との間のマッピングを含む。宣言型プロビジョナがリソースを作成する際、ある種類の障害が発生すると、実際の識別子の状態への記録が妨げられることがある。これが起こると、実際の識別子は宣言型プロビジョナから失われる。これらは、「オーファンリソース(orphaned resources)」と呼ばれることがある。
【0074】
ほとんどのリソースの場合、オーファンは無駄を意味する。宣言型プロビジョナは、(たとえば)忘れていたインスタンスを起動して、次にそれが実行されるときには代わりに別のインスタンスを起動することになる。一意性制約またはクライアントによって供給される識別子を有するリソースの場合、オーファンによって、宣言型プロビジョナの前進が妨げられる。たとえば、宣言型プロビジョナがユーザ「nglass」を作成し、失敗によってそれをオーファンにした場合、宣言型プロビジョナの次回の実行は、そのユーザ名を有するユーザが既に存在しているため、「nglass」を作成しようとして失敗することになる。場合によっては、オーファンが問題になるのは、新しいリソースを状態に追加する場合のみである。いくつかの例では、宣言型プロビジョナのリフレッシュ挙動は、更新と削除の記録の失敗から自然に回復することがある。
【0075】
CIOSは、ダウンストリームサービスの停止またはCIOS自体の停止が起きた場合でも、ロバストでなければならない。CIOSは、宣言型プロビジョナを活用して変更を適用することができるので、これは、宣言型プロビジョナを実行して宣言型プロビジョナ状態を維持することに関してロバストでなければならないことを意味する。宣言型プロビジョナプロバイダは、数分間にわたって続く停止を回避するのに十分な「小規模の」再試行を実行する。たとえば、クラウドプロバイダは、最大で30分間、再試行を実行する。30分よりも長くダウンストリームシステムが停止すると、宣言型プロビジョナは失敗する。宣言型プロビジョナは、失敗すると、成功した全ての変更を状態に記録し、終了する。再試行のために、CIOSは、宣言型プロビジョナを再実行する必要がある。宣言型プロビジョナを再実行することにより、CIOS自体が失敗した場合にCIOSは再試行を実行することができる。いくつかの例では、CIOSは、以下の動作をループで実行することができる。
【0076】
・リフレッシュ:宣言型プロビジョナは、「APIを取得」を呼び出して、その状態に記載されているあらゆるリソースの新しいスナップショットを検索する。
【0077】
・プラン:宣言型プロビジョナは、最近リフレッシュされた現在の状態を考慮して、所望の状態を実現するプラン(具体的な一組のAPI呼び出し)を生成する。
【0078】
・適用:宣言型プロビジョナは、プランにおいて一組のステップを実行する。
CIOSは、宣言型プロビジョナを実行する際に、これらのステップのうちの3つ全てを常に実行し得る。リフレッシュ動作は、記録されなかったいかなる更新または削除から
の回復も支援する。CIOSは、プラン動作の結果を調べて、それを承認されたリリースプランと比較する。新たに生成されたプランが、承認されたリリースプランにはなかった動作を含む場合、CIOSは、失敗し、サービスチームに通知される可能性がある。
【0079】
図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つのコピーである。
【0080】
図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つの異なる空軍基地のものである。
【0081】
一実施形態において、本明細書に記載されているCIOSおよび/または他の技術は、Terraform(宣言型プロビジョニングツール)、Tanden(コード生成ツール)およびODO(Oracle Deployment Orchestrator)の各々に対する改良である。さらに、いくつかの例では、本明細書に記載されているCIOSおよび/または他の技術は、Terraform、TandenおよびODOツールの少なくとも一部を使用して実現することができる。
【0082】
いくつかの例では、安全プランは、ドリフトを安全に取り扱うために生成され得る。設定ファイルは、CIOSがどのように地域(たとえば、クラウドインフラストラクチャが設定される(または既に設定されている)地理的地域)に変更を行うかを指示する情報を含み得る。CIOSは、変更セット(たとえば、クラウドインフラストラクチャの現在の状態と変更後の予想される新しい状態との間の差分)としてクライアントがレビューしたものが地域内で実際に変更されることを検証することができる。クライアントがCIOSと対話して世界規模のプランを生じさせる場合、安全プランは、設定ファイルに記述された世界(たとえば、ターゲット状態)に到達するために、今の世界(たとえば、現在の状態)に基づいてCIOSによってどのような変更が行われると予想されるかを特定する。本明細書で説明されるように、「世界」は、クラウドセットアップの全ての設定および構成を含む、クラウドインフラストラクチャの予期される状態を指す場合もある。場合によっては、ドリフトは、プランが生成される時間と地域のデプロイメントが始まる時間との間で、1つ以上のデバイス構成/設定が変化している可能性があるという考えである(た
とえば、仮想マシンは、故障している可能性がある)。その変化がドリフトである。CIOSは、安全プランを作成し、それを世界中でさまざまな地域に送ることができる(たとえば、さまざまな異なる地域CIOSに送信する)。CIOSが変更を実施しようとしているときはいつでも、計画タスクを繰り返すことができる。たとえば、現在の状態を予想することができ、目標状態と比較することができ、2つの間のdiff(たとえば、差分(delta, differenceなど))を生成することができる。そのdiffが安全プランのサ
ブセットである場合、ドリフトは発生しておらず、安全プランを依然として実施することができる。そうでなければ、安全プランに関する問題が検出されており、デプロイメント前に変更を行う必要がある。くわえて、いくつかの例では、CIOSは、(たとえば、フェーズ変化を扱うために)異なる安全プランを比較することができる。たとえば、フェーズへのデプロイメント(たとえば、他のフェーズの前に第1のフェーズにリソースをデプロイする)に関して、安全プランは、検討され承認されてもよく、したがって、デプロイメントが実行されてもよい。次に、後で、フェーズ2のデプロイメントのために、新しい安全プランが生成され、第1の安全プランと比較され得る。新しい安全プランが第1の安全プランのサブセットである場合、新しい安全プランは、設定ファイルを生成したクライアントに何も送信することなく自動的に承認され得る。これにより、新しい安全プランの承認を待つことに関連して遅延が導入されないため、デプロイメントプロセスを加速できるが、このような状況ではドリフトが発生していないため、デプロイメントの完全性も維持されることが理解されるであろう。代替的に、新しい安全プランに新規なもの(たとえば、第1の安全プランには存在しないもの)がある場合、その新規な態様は、ユーザインターフェイス(UI)を介してユーザ(たとえば、クライアント)に提示することができる。次に、ユーザは、新規の態様を承認または拒否する(たとえば、デプロイメント変更が生じることを可能にするか、または可能にしない)ことができる。
【0083】
インフラストラクチャオーケストレーションサービスを実行するための技術について説明する。いくつかの例では、デプロイメント設定ファイルに少なくとも部分的に基づくリソースと動作とのリストを含む安全プランが受信され得る。安全プランの承認を受信すると、リソースのリストの少なくとも1つに対応する動作が実行されるように準備され得る。動作は安全プランと比較され得る。動作が安全プランの一部であると判断された場合、動作が実行され得る。動作が安全プランの一部でないと判断された場合、デプロイメントは停止され得、デプロイメントが安全プランに準拠していないという通知が送信され得る。いくつかの例では、ドリフトが生じている場合、動作は安全プランの一部でなくてもよい。
【0084】
他の例では、コンピュータ読取可能記憶媒体は、プロセッサによって実行されると、プロセッサに本明細書で説明するさまざまな動作を実行させることが可能な命令を含み得る。デプロイメント設定ファイルに基づくリソースと動作とのリストを含み得る安全プランが受信され得る。安全プランの承認が受信され得る。デプロイメント設定ファイルに従ったリソースのリストの少なくとも1つに対応する動作が、実行されるように準備され得る。動作は、安全プランと比較され得る。動作が安全プランの一部であると判断された場合、動作を実行することができる。動作が安全プランの一部でないと判断された場合、デプロイメントは停止され得、デプロイメントが安全プランに準拠していないという通知が送信され得る。
【0085】
]さらに別の例では、システムは、プロセッサと、プロセッサによって実行されると、
本明細書で説明する動作を実行するようにシステムを構成することが可能な命令を記憶することが可能なメモリとを備え得る。デプロイメント設定ファイルに少なくとも部分的に基づくリソースと動作とのリストを含み得る安全プランが受信され得る。安全プランの承認が受信され得る。承認に基づいて、リソースのリストの少なくとも1つに対応する動作が実行されるように準備され得る。動作は安全プランと比較され得る。動作が安全プラン
の一部であると判断された場合、動作を実行することができる。動作が安全プランの一部でないと判断された場合、デプロイメントは停止され得、デプロイメントが安全プランに準拠していないという通知が送信され得る。
【0086】
他の例では、方法は、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とを含むリストの安全プランを受信することを含み得る。方法はさらに、安全プランの承認の指示の受信に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行うことを備え得る。方法はさらに、動作を安全プランと比較することを備え得る。方法はさらに、動作が安全プランの一部であるという判断に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、動作を実行することを備え得る。方法はさらに、動作が安全プランの一部でないという判断に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメントを停止することと、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメントが安全プランに準拠していないという通知を送信することとを備え得る。
【0087】
他の例では、コンピュータ読取可能記憶媒体は、プロセッサによって実行されると、プロセッサに本明細書で説明するさまざまな動作を実行させることが可能な命令を含み得る。動作は、デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とのリストを含む安全プランを受信することを含み得る。動作はさらに、安全プランの承認の指示の受信に従って、配置設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行うことと、動作を安全プランと比較することとを含み得る。動作はさらに、動作が安全プランの一部であるという判断に従って、動作を実行することを含み得る。動作はさらに、動作が安全プランの一部でないという判断に従って、デプロイメントを停止することと、デプロイメントが安全プランに準拠していないという通知を送信することとを含み得る。
【0088】
他の例では、システムは、プロセッサと、プロセッサによって実行されると、本明細書で説明される動作を実行するようにシステムを構成することが可能な命令を記憶可能なメモリとを備え得る。動作は、デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とのリストを含む安全プランを受信することを含み得る。動作はさらに、安全プランの承認の指示の受信に従って、デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行うことを含み得る。動作はさらに、動作を安全プランと比較することを含み得る。動作はさらに、動作が安全プランの一部であるという判断に従って、動作を実行することを含み得る。動作はさらに、動作が安全プランの一部でないという判断に従って、デプロイメントを停止することと、デプロイメントが安全プランに準拠していないという通知を送信することとを含み得る。
【0089】
図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(たとえば、インターネット)に通信可能に結合され得る。
【0090】
地域CIOS522は、スケジューラノード524およびワーカノード526に通信可能に結合され得る。ワーカ526は、タスクデータベース(DB)528に通信可能に結合され得るスケジューラ524に通信可能に結合され得る。ワーカ526は、CIOSコンテナ532を含み得るドッカー530に通信可能に結合され得る。CIOSコンテナ532は、クラウドサービス536に通信可能に結合され得る署名プロキシ534に通信可能に結合され得る。
【0091】
地域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呼び出しを行い得る。
【0092】
いくつかの例では、ユーザ518は、地域データプレーン504内で実行する動作を含み得る設定ファイルを作成し得る。ユーザ518は、LANゲートウェイ516を介して、中央制御プレーン502に含まれるコンピューティングデバイスであり得る中央CIOS506に、設定ファイルを送信することができる。設定ファイルは、制御プレーン508において、またはビュー/プラン/承認モジュール512において、中央CIOS506によって受信され得る。変更管理モジュール510は、設定ファイルを、地域データプレーン504で使用することができる、地域に依存しない(region-agnostic:RA)設
定ファイルにコンパイルすることができる。ビュー/プラン/承認モジュール512または状態インジェスタ514は、WANゲートウェイ520を介して、地域データプレーン504に含まれるコンピューティングデバイスであり得る地域CIOS522に、RA設定ファイルを送信し得る。
【0093】
地域CIOS522は、中央CIOS506からRA設定ファイルを受信することができ、地域CIOS522は、タスクを作成し、かつタスクをタスクDB528に送信することができるスケジューラ524に、RA設定ファイルを送信し得る。タスクは、実行ターゲットにおいて実行されるべき動作のセットをコンパイルすることを含んでもよく、実
行ターゲットにおけるリソースの現在の状態を、実行ターゲットにおけるリソースの所望の状態と比較することを含み得る。タスクは、タスクを実行し得るワーカ526に送信され得る。タスクを実行する際に、ワーカ526は、承認された動作のセットである安全プランの作成を支援することができる。動作は、実行ターゲットにリソースをデプロイすること、または実行ターゲットにおいて実行するための任意の他の適切な動作を含み得る。ワーカ526は、WANゲートウェイ520を介して、安全プランを中央CIOS506に送信することができる地域CIOS522に、安全プランを送信することができる。
【0094】
中央CIOS506は、地域CIOS522から安全プランを受信し、安全プランに含まれる変更のセットを実行ターゲットにおける動作と比較し得る。変更管理モジュール510は、この比較を実行することができ、動作が安全プランの変更のセットのサブセットであること、または動作が安全プランの変更のセットのサブセットではないことという2つの判断のうちの1つを行うことができる。これら2つの判断のみが詳細に説明されるが、他の判断が行われてもよい(たとえば、変更のセットと安全プランとの間に何パーセントの差があるかなど)。動作が安全プランに含まれる変更のセットのサブセットであると判断したことに応答して、動作が実行されてもよく、これは実行ターゲットにリソースをデプロイすることを含んでもよい。動作が安全プランに含まれる変更のセットのサブセットではないと判断することに応答して、通知をユーザ518に送信することができる。通知は、LANゲートウェイ516を介してユーザ518に送信可能であり、ドリフトが生じているかもしれないこと、または実行ターゲットにおいて実行されるようにスケジュールされ得る動作が安全プランに含まれていないかもしれないことをユーザ518に警告する情報を含み得る。通知を見ることに応答して、ユーザ518は、安全プランに含まれない動作を承認または拒否することができる。ユーザ518が動作を承認する場合、動作が実行され、リソースが実行ターゲットにデプロイされ得る。ユーザ518が動作を拒否する場合、動作は実行されなくてもよく、ユーザ518は、新しい設定ファイルの作成を決定してもよい、または動作の放棄を決定してもよい。したがって、安全プランは、動作が安全プランに含まれる変更のセットのサブセットである場合に動作の実行を許可すること、または動作が安全プランに含まれる変更のサブセットでない場合に動作の実行を中断することのいずれかによって、デプロイメントプロセスを実行するプロセッサ(複数可)の機能を制御するデータ構造であると理解され得る。
【0095】
他の例では、ユーザ518は、地域のセットにおける実行ターゲットのセットのためのリソースの所望の状態を含み得る設定ファイルのセットを作成することができる。設定ファイルは、地域ごとに1つのRA設定ファイルを含むRA設定ファイルのセットに設定ファイルをコンパイルすることが可能な中央CIOS506に送信し得る。RA設定ファイルは、WANゲートウェイ520を介してそれぞれの地域に送信され得、それぞれの地域に含まれる地域CIOS522によって受信され得る。
【0096】
それぞれの地域において、地域CIOS522は、それぞれのRA設定ファイルを中央CIOS506から受信し得、地域CIOS522は、それぞれのRA設定ファイルを、タスクを作成し、かつタスクをタスクDB528に送信することができるスケジューラ524に送信し得る。タスクは、それぞれの地域内の実行ターゲットにおいて実行されるべき動作のセットをコンパイルすることを含んでもよく、実行ターゲットにおけるリソースの現在の状態を実行ターゲットにおけるリソースの所望の状態と比較することを含み得る。タスクは、タスクを実行可能なワーカ526に送信され得る。タスクを実行する際に、ワーカ526は、承認された動作のセットである安全プランの作成を支援することができる。動作は、実行ターゲットにリソースをデプロイすること、または実行ターゲットにおいて実行するための任意の他の適切な動作を含んでもよい。ワーカ526は、WANゲートウェイ520を介して安全プランを中央CIOS506に送信することが可能な地域CIOS522に、安全プランを送信することができる。
【0097】
中央CIOS506は、地域から安全プランのセットを受信することができ、安全プランを、コンパイルされた安全プランとしても説明されるマスタ安全プラン(たとえば、複数の安全プランのうちの1つの安全プラン)にコンパイルすることができる。コンパイルされた安全プランに含まれる各安全プランは、同様の変更を含み得る。コンパイルされた安全プランに含まれる安全プラン間の変化の差は、少なくとも1つの地域においてドリフトが発生したことを示してもよい。中央CIOS506は、コンパイルされた安全プランに含まれる各安全プランに含まれる変更を、それぞれの地域に含まれる実行ターゲットにおける動作と比較することができる。変更管理モジュール510は、この比較を実行することができ、動作がコンパイルされた安全プランの変更のセットのサブセットであるという判断、または動作がコンパイルされた安全プランの変更のセットのサブセットではないという判断の2つの判断のうちの1つを行うことができる。動作がコンパイルされた安全プランに含まれる変更のセットのサブセットであるという判断に応答して、動作を実行することができ、これは、それぞれの地域に含まれる実行ターゲットにリソースをデプロイすることを含んでもよい。動作がコンパイルされた安全プランに含まれる変更のセットのサブセットではないという判断に応答して、通知をユーザ518に送信し得る。通知は、LANゲートウェイ516を介してユーザ518に送信することができ、ドリフトが少なくとも1つの地域で発生した可能性があること、または少なくとも1つの実行ターゲットで実行されるようにスケジュールされ得る動作がコンパイルされた安全プランに含まれない可能性があることをユーザ518に警告する情報を含んでもよい。ユーザ518は、通知を見ることに応答して、安全プランに含まれない動作を承認または拒否することができる。ユーザ518が動作を承認すると、動作が実行され、それぞれの地域に含まれる実行ターゲットにリソースがデプロイされてもよい。ユーザ518が動作を拒否する場合、動作は実行されなくてもよく、ユーザ518は、新しい設定ファイルを作成すると判断してもよい、または動作を放棄すると判断してもよい。
【0098】
図6および図7は、本開示の特定の実施形態に係る、CIOSの技術を実行するためのプロセス600および700を示すフローチャートの例を示す。これらのプロセスは、論理フロー図として示されており、その各動作は、ハードウェア、コンピュータ命令、またはそれらの組み合わせで実装され得る。コンピュータ命令の文脈では、動作は、1つ以上のプロセッサによって実行されると列挙された動作を実行する、1つ以上のコンピュータ読取可能記憶媒体に記憶されたコンピュータ実行可能命令を表し得る。概して、コンピュータ実行可能命令は、特定の機能を実行する、または特定のデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造などを含む。動作が説明される順序は、限定として解釈されることを意図しておらず、任意の数の説明される動作を、プロセスを実装するために、任意の順序で、および/または並列に組み合わせることができる。
【0099】
くわえて、プロセス600および700は、実行可能命令で構成された1つ以上のコンピューティングデバイスまたはコンピュータシステムの制御下で実行されてもよく、1つ以上のプロセッサ上で集合的に実行するコード(たとえば、実行可能命令、1つ以上のコンピュータプログラム、もしくは1つ以上のアプリケーション)として、ハードウェアによって、またはそれらの組み合わせによって実装されてもよい。上述のように、コードは、たとえば、1つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態で、コンピュータ読取可能記憶媒体に記憶されてもよい。いくつかの実施形態では、プロセス600および700は、複数のプロセッサによって並行して実行されてもよい。コンピュータ読取可能記憶媒体は、非一時的なものであってもよい。
【0100】
図6は、少なくとも1つの実施形態に係る、クラウドインフラストラクチャオーケストレーションサービスにおいて安全プランを使用するためのプロセス600を説明するため
のフローチャートである。プロセス600は、ブロック602で開始することができ、中央CIOS(たとえば、図5の中央CIOS506)は、実行ターゲットを含む地域の地域CIOS(たとえば、図5の地域CIOS522)から安全プランを受信する。安全プランは、デプロイメント設定ファイルに基づくリソースと動作とのリストを含み得る。動作は、実行ターゲットにリソースをデプロイする命令を含み得る。いくつかの例では、中央CIOSは、地域のセットに対応する地域CIOSのセットから、安全プランのセットを受信することができる。安全プランは、中央CIOSによって、実行ターゲットに対応するデプロイメント設定ファイルに基づくリソースおよび動作を含み得るコンパイルされた安全プランにコンパイルすることができ、実行ターゲットの各々は異なる地域に含まれる。
【0101】
ブロック604において、中央CIOSは、デプロイメント設定ファイルに含まれる少なくとも1つのリソースに対応する少なくとも1つの動作を実行する準備を行う。地域CIOSから安全プランを受信することに応答して、中央CIOSは、たとえば、少なくとも1つの動作を含み得るローカルプランをコンパイルすることによって、少なくとも1つの実行ターゲットにおいて少なくとも1つの動作を実行する準備を行うことができる。動作は、実行ターゲットに少なくとも1つのリソースをデプロイすることを含み得る。いくつかの例では、中央CIOSは、デプロイメント設定ファイルのセットに含まれるリソースのセットに対応する動作のセットを実行する準備を行うことができる。この例では、中央CIOSは、地域のセットに対応する安全プランのセットを、地域CIOSのセットから受信することができる。
【0102】
ブロック606において、中央CIOSは、動作を安全プランと比較する。中央CIOSに含まれ得る変更管理モジュール(たとえば、図5の変更管理モジュール510)は、比較を実行し得る。比較は、動作が安全プランのサブセットであるかどうかを判断することを含み得る。動作は、安全プランが動作を含む場合、安全プランのサブセットと見なされ得る。いくつかの例では、動作は、実行ターゲットの現在の状態を変更しなくてもよい。この場合、中央CIOSは動作を実行しなくてもよいが、動作は安全プランのサブセットと見なされてもよい。
【0103】
ブロック608において、動作が実行される。変更管理モジュールが、動作が安全プランのサブセットであると判断したことに応答して、中央CIOSは、動作を実行するためのコマンドを送信することができる。コマンドは、中央CIOSによってそれぞれの地域内の地域CIOSに送信されてもよく、デプロイメント設定ファイルに含まれるリソースを実行ターゲットにデプロイすることを含んでもよい。リソースが複数の実行ターゲットにデプロイされることが望まれる例では、複数の安全プランが中央CIOSによって受信されてもよい。この場合、中央CIOSは、動作を実行する準備をしてもよく、変更管理モジュールは、動作を安全プランと比較して、動作が安全プランのサブセットであるかどうかを判断してもよい。変更管理モジュールが、動作が安全プランのサブセットであると判断したことに応答して、中央CIOSは、動作を実行するために各地域にコマンドを送信することができる。コマンドは、中央CIOSから各地域における地域CIOSへ送信されてもよく、デプロイメント設定ファイルに含まれるリソースを各実行ターゲットにデプロイすることを含んでもよい。
【0104】
ブロック610において、動作は実行されず、デプロイメントが停止される。変更管理モジュールが、動作が安全プランのサブセットではないと判断したことに応答して、中央CIOSは、動作を実行するためのコマンドを送信しなくてもよく、代わりに、中央CIOSは、デプロイメントを停止してもよい。リソースが複数の実行ターゲットにデプロイされることが望まれる場合、複数の安全プランが中央CIOSによって受信されてもよい。この場合、中央CIOSは、動作を実行する準備をしてもよく、変更管理モジュールは
、動作を安全プランと比較して、動作が安全プランのサブセットであるかどうかを判断してもよい。変更管理モジュールが、動作が安全プランのサブセットではないと判断したことに応答して、中央CIOSは、動作を実行するためのコマンドを送信しなくてもよい。代わりに、中央CIOSは、デプロイメントを停止してもよい。他の例では、中央CIOSは、安全プランのサブセットではない動作を停止してもよく、安全プランのサブセットである動作を実行するためのコマンドを送信してもよい。
【0105】
ブロック612において、中央CIOSは、デプロイメントが安全プランに準拠していないという通知をユーザ(たとえば、図5のユーザ518)に送信する。動作が安全プランのサブセットではないと判断すること(ブロック610で行われるように)に応答して、中央CIOSは、デプロイメントがもはや安全プランに準拠していないという通知を作成し、ユーザに送信してもよい。通知は、動作が安全プランのサブセットではないにもかかわらずデプロイメントを継続することを選択するオプションをユーザに提示し得る。ユーザは、デプロイメントを継続することを選択してもよい、またはデプロイメントを放棄することを選択してもよい。ユーザがデプロイメントを放棄することを選択する場合、ユーザは、別の設定ファイルを作成して、異なるデプロイメントを試みることができる。複数の実行ターゲットにリソースをデプロイしたい場合、ユーザに送信される通知は、安全プランに準拠していないデプロイメントを含んでもよい。中央CIOSは、動作のサブセットであると判断された動作を実行するためのコマンドを送信することができる。
【0106】
図7は、少なくとも1つの実施形態に係る、クラウドインフラストラクチャオーケストレーションサービスにおいて安全プランを生成するためのプロセス700を説明するためのフローチャートである。ブロック702において、地域に含まれる地域CIOS(たとえば、図5の地域CIOS522)は、インフラストラクチャリソースをデプロイするための設定ファイルを中央CIOS(たとえば、図5の中央CIOS506)から受信する。設定ファイルは、地域に含まれる実行ターゲットにリソースをデプロイする命令を含む動作を含んでもよい。
【0107】
ブロック704において、地域CIOSは、地域内のクラウドインフラストラクチャの新しい現在の状態を特定する。設定ファイルは、地域内のクラウドインフラストラクチャの所望の状態を定義してもよく、設定ファイルの受信に応答して、地域CIOSは、地域内のリソースの現在の状態を特定してもよい。いくつかの例では、現在の状態は、所望の状態と同様または同一でもよい。他の例では、現在の状態はいかなるリソースも含まなくてもよく、所望の状態は、実行ターゲットにデプロイされることが望まれるほとんどのリソースを含んでもよい。
【0108】
ブロック706において、地域CIOSは、現在の状態と所望の状態との比較に基づいて、インフラストラクチャリソースをデプロイするための安全プランを生成する。安全プランは、実行ターゲットにおいて実行可能な動作を含んでもよい。動作は、実行ターゲットにインフラストラクチャリソースをデプロイすることを含んでもよい。現在の状態および所望の状態が同様または同一であるいくつかの例では、地域CIOSによってコンパイルされる安全プランは空でもよい、またはいかなる動作も含まなくてもよい。
【0109】
ブロック708において、地域CIOSは、インフラストラクチャリソースをデプロイするための安全プランを中央CIOSに送信する。安全プランを作成することに応答して、地域CIOSは、比較を実行するために安全プランを中央CIOSに送信してもよい。中央CIOSは、プロセス600のブロック608と同様に、実行ターゲットにおいて実行されるべき動作が安全プランのサブセットであると判断し得る。この判断に応答して、地域CIOSは、オペレーションを実行し、設定ファイルに含まれるリソースを実行ターゲットにデプロイしてもよい。
【0110】
図8は、本開示の特定の実施形態に係る、CIOSの技術を実行するためのプロセス800を示すスイムレーン図の例を示す。このプロセスは論理フロー図として示されており、その各動作は、ハードウェア、コンピュータ命令、またはそれらの組み合わせで実装され得る。コンピュータ命令の文脈では、動作は、1つ以上のプロセッサによって実行されると列挙された動作を実行する、1つ以上のコンピュータ読取可能記憶媒体に記憶されたコンピュータ実行可能命令を表し得る。概して、コンピュータ実行可能命令は、特定の機能を実行する、または特定のデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネントおよびデータ構造などを含む。動作が説明される順序は、限定として解釈されることを意図しておらず、任意の数の説明される動作を、プロセスを実行するために任意の順序でおよび/または並列に組み合わせることができる。
【0111】
さらに、プロセス800は、実行可能な命令で構成された1つ以上のコンピューティングデバイスまたはコンピュータシステムの制御下で実行可能であり、1つ以上のプロセッサ上で集合的に実行されるコード(たとえば、実行可能命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として、ハードウェアによって、またはそれらの組み合わせによって実装され得る。上述のように、コードは、たとえば、1つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態で、コンピュータ読取可能記憶媒体に記憶され得る。いくつかの実施形態では、プロセス800は、複数のプロセッサによって並行して実行可能である。コンピュータ読取可能記憶媒体は、非一時的であり得る。
【0112】
図8は、少なくとも1つの実施形態に係る、安全プランがどのように生成され使用されるかを説明するためのプロセス800を説明するためのスイムレーン図である。図は、示されるように、ユーザレーン802、中央レーン804、および地域レーン806の3つのレーンを含む。ユーザレーン802は、ユーザ(たとえば、図5のユーザ518)によって実行される動作、またはユーザによってコンピューティングシステムに与えられるコマンドを含み得る。中央レーン804は、中央CIOS(たとえば、図5の中央CIOS506)によって実行される動作を含み得る。地域レーン806は、地域CIOS(たとえば、図5の地域CIOS522)によって実行される動作を含み得る。
【0113】
プロセス800は、ユーザが設定ファイルを作成するブロック808で開始することができる。ユーザは、地域に含まれる実行ターゲットにインフラストラクチャリソースをデプロイしたい場合がある。この要望に応じて、ユーザは、実行ターゲットの所望の状態を定義可能な設定ファイルを作成することができる。ブロック810において、ユーザは、設定を中央CIOSに送信する。設定ファイルを作成することに応答して、ユーザは、設定ファイルを中央CIOSに送信して、デプロイメントを開始することができる。
【0114】
ブロック812において、中央CIOSは、ユーザから設定ファイルを受信する。ユーザから設定ファイルを受信することに応答して、中央CIOSはデプロイメントを開始することができる。ブロック814において、中央CIOSは、地域に依存しない(RA)設定ファイルをコンパイルする。デプロイメントを開始することに応答して、中央CIOSは、RA設定をコンパイルすることができ、RA設定は、RA設定ファイルが送信される地域に依存しなくてもよい設定ファイルとすることができる。ブロック816において、中央CIOSは、RA設定ファイルを地域CIOSに送信する。RA設定ファイルの作成に応答して、中央CIOSは、RA設定ファイルを、リソースがデプロイされることが望まれる地域の地域CIOSに送信することができる。
【0115】
ブロック818において、リソースがデプロイされることが望まれる地域内の地域CIOSは、RA設定ファイルを受信する。RA設定ファイルは、実行ターゲットにインフラ
ストラクチャリソースをデプロイするために実行する動作を含み得る。地域CIOSは、比較を実行することができるワーカノード(たとえば、図5のワーカ526)にRA設定ファイルを送信することができる。ブロック820において、地域CIOSは、新しい現在の状態に基づいて安全プランを作成する。ワーカは、地域内のインフラストラクチャリソースの新しい現在の状態を、RA設定ファイル内で定義されたインフラストラクチャリソースの所望の状態と比較することができる。地域CIOSは、ワーカによって実行される比較に少なくとも部分的に基づいて、安全プランを作成することができる。安全プランは、実行ターゲットにおけるリソースに対する承認された変更を含んでもよい。
【0116】
ブロック822において、地域CIOSは安全プランを中央CIOSに送信する。安全プランの作成に応答して、地域CIOSは、動作が実行ターゲットにデプロイされ得るかどうかを判断するために、安全プランを中央CIOSに送信することができる。ブロック824において、中央CIOSは、地域CIOSから安全プランを受信する。リソースが複数の地域にデプロイされることが望まれるいくつかの例では、中央CIOSは、複数の安全プランが受信され得る。この場合、中央CIOSは、複数の安全プランのうちの1つの安全プランをコンパイルすることができ、以下、これをコンパイルされた安全プランと呼ぶ。ブロック826において、中央CIOSは、デプロイメントの動作を安全プランと比較する。デプロイメントの動作は、実行ターゲットにインフラストラクチャリソースをデプロイする命令を含み得る。コンパイルされた安全プランの場合、中央CIOSは、動作をコンパイルされた安全プランと比較され得る。ブロック828において、中央CIOSは、動作が安全プランのサブセットであるかどうかを判断する。コンパイルされた安全プランの場合、中央CIOSは、動作がコンパイルされた安全プランのサブセットであるかどうかを判断することができる。
【0117】
ブロック830において、動作が安全プランのサブセットであると中央CIOSが判断したことに応答して、中央CIOSは、動作を実行するためのコマンドを地域CIOSに送信する。この場合、インフラストラクチャリソースは、実行ターゲットにデプロイされてもよく、コンパイルされた安全プランの場合、リソースは、複数の実行ターゲットにデプロイされてもよい。他の例では、動作は、実行ターゲットの状態を変更しなくてもよく、この場合、中央CIOSはアクションを取らなくてもよい。ブロック832において、動作が安全プランのサブセットではないと中央CIOSが判断したことに応答して、中央CIOSはデプロイメントを停止する。この場合、中央CIOSは、ドリフトが発生したこと、および動作が安全プランに準拠していないことをユーザに知らせることができる通知をユーザに送信する。この通知により、ユーザは、動作の実行を許可することができる。ユーザが、オペレーションの実行を許可しないことを選択した場合、ユーザは、デプロイメントを放棄する、または新しい設定ファイルを作成し、新しい設定ファイルを中央CIOSに送信して、第2のデプロイメントを開始することができる。コンパイルされた安全プランの場合、中央CIOSは、動作がコンパイルされた安全プランのサブセットでない場合、ユーザに通知を送信することができる。
【0118】
図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がどの動作を実行するかを確認することができない。
【0119】
中央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呼び出しを行い得る。
【0120】
接続された中央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に命令を送信することができる。
【0121】
図10は、本開示の特定の実施形態に係る、CIOSの技術を実行するためのプロセス1000を示すフロー図の例を示す。このプロセスは、論理フロー図として示され、その各動作は、ハードウェア、コンピュータ命令、またはそれらの組み合わせで実装され得る。コンピュータ命令の文脈では、動作は、1つ以上のプロセッサによって実行されると列挙された動作を実行する、1つ以上のコンピュータ読取可能記憶媒体に記憶されたコンピ
ュータ実行可能命令を表し得る。概して、コンピュータ実行可能命令は、特定の機能を実行する、または特定のデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネントおよびデータ構造などを含む。動作が説明される順序は、限定として解釈されることを意図しておらず、任意の数の説明される動作を、プロセスを実装するために、任意の順序で、および/または並列に組み合わせることができる。
【0122】
くわえて、プロセス1000は、実行可能命令で構成された1つ以上のコンピューティングデバイスまたはコンピュータシステムの制御下で実行可能であり、1つ以上のプロセッサ上で集合的に実行するコード(たとえば、実行可能命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として、ハードウェアによって、またはそれらの組み合わせによって実装され得る。上述したように、コードは、コンピュータ読取可能媒体上に、1つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態で記憶されてもよい。いくつかの実施形態では、プロセス1000は、複数のプロセッサによって並行して実行可能である。コンピュータ読取可能記憶媒体は、非一時的であり得る。
【0123】
図10は、少なくとも1つの実施形態に係る、切断地域において安全プランを使用するためのプロセス1000を説明するためのフローチャートである。ブロック1002において、インフラストラクチャリソースを第1の実行ターゲットおよび第2の実行ターゲットにデプロイするための設定ファイルが受信される。設定ファイルは、ユーザ(たとえば、図5のユーザ518)が第1の実行ターゲットおよび第2の実行ターゲットにデプロイしたいと望むインフラストラクチャリソースを含み得る。いくつかの例では、設定ファイルは、第1の実行ターゲットにおけるデプロイメントのためのリソースを含んでもよく、第2の設定ファイルは、第2の実行ターゲットにおけるデプロイメントのためのリソースを含んでもよい。
【0124】
ブロック1004において、設定ファイルに基づいて第1の安全プランが生成される。安全プランは、ユーザが第1の実行ターゲットで実行したいと望む承認された変更のリストを含み得る。第1の安全プランは、中央CIOS(たとえば、図5の中央CIOS506)によって生成されてもよい。第1の実行ターゲットは、接続地域に含まれてもよい。第1の安全プランは、第1の実行ターゲットにおけるリソースの現在の状態と、設定ファイルにおいて定義され得る第1の実行ターゲットにおけるリソースの所望の状態との比較に基づいて作成されてもよい。
【0125】
ブロック1006において、第1の安全プランの承認が受信される。ユーザには、第1の安全プランを承認するオプションが与えられてもよい、または第1の安全プランは、第1の実行ターゲットにおいて実行される動作に基づいて自動的に承認されてもよい。ブロック1006における承認に応答して、インフラストラクチャリソースは、設定ファイルに基づいて実行ターゲットにデプロイされ得る。
【0126】
ブロック1008において、第2の安全プランが、設定ファイルに基づいて第2の実行ターゲットのために生成される。第2の安全プランは、切断地域(たとえば、図9の切断地域900)に含まれ得る中央CIOSによって生成され得る。また、第2の実行ターゲットは、切断地域に含まれてもよい。いくつかの例では、第2の安全プランは、第2の設定ファイルに基づいて第2の実行ターゲットのために作成されてもよい。いくつかの例では、第1の実行ターゲットおよび第2の実行ターゲットは、同様または同一でもよく、第1の安全プランおよび第2の安全プランは、同様または同一でもよい。
【0127】
ブロック1010において、中央CIOSは、第2の安全プランが第1の安全プランのサブセットであるかどうかを判断する。中央CIOSは、切断地域に含めることができ、
第2の安全プランの承認された変更を第1の安全プランの承認された変更と比較することができる。中央CIOSは、第2の安全プランが第1の安全プランのサブセットである、または第2の安全プランが第1の安全プランのサブセットではないと判断し得る。
【0128】
ブロック1012において、第2の安全プランが第1の安全プランのサブセットであると中央CIOSが判断したことに従って、第2の安全プランは、第1の安全プランの承認に基づいて自動的に承認される。中央CIOSは、この場合、第1の安全プランが既に承認されており、かつ、第1の安全プランの実行に成功している可能性があるので、ユーザからの入力なしで第2の安全プランを自動的に承認することができる。いくつかの例では、第2の実行ターゲットの現在の状態は、設定ファイルにおいて定義された第2の実行ターゲットの所望の状態と同様または同じでもよい。この例では、第2の安全プランは、第2の実行ターゲットにおいて実行する変更を含まなくてもよい。この場合の第2の安全プランは、空の第2の安全プランが第1の安全プランのサブセットであるため、中央CIOSによって自動的に承認されてもよい。
【0129】
ブロック1014において、第2の安全プランが第1の安全プランのサブセットではないと中央CIOSが判断することに従って、中央CIOSは、第2の実行ターゲットにおけるデプロイメントを停止し、第2の安全プランが非準拠であるとユーザに通知する。中央CIOSは、第2の実行ターゲットにおけるインフラストラクチャリソースのデプロイメントは停止してもよく、ドリフトが生じている可能性があること、および、第2の安全プランが第1の安全プランのサブセットでないことをユーザに知らせる通知を、ユーザに送信することができる。通知は、第1の安全プランと第2の安全プランとの少なくとも1つの差を提示し得るユーザインターフェイスにおいて、ユーザに提示され得る。通知は、ユーザが、(i)第2の安全プランが非準拠であると中央CIOS判断したにもかかわらず、リソースをデプロイすることを選択すること、(ii)第2の実行ターゲットにおけるデプロイメントを放棄すること、(iii)第2の実行ターゲットにおける新しいデプロイメントを開始するための新しい設定ファイルを提出すること、またはそれらの組み合わせを可能にし得る。
【0130】
ブロック1016において、中央CIOSによる第2の安全プランの承認に応答して、中央CIOSは、インフラストラクチャリソースをデプロイするための第2の実行ターゲットに、第2の安全プランを送信する。中央CIOSおよび第2の実行ターゲットは、切断地域に含まれ得る。第2の安全プランは、第2の実行ターゲットにリソースをデプロイする命令を含み得る。いくつかの例では、第2の実行ターゲットの現在の状態は、設定ファイルによって定義される実行ターゲットの所望の状態と同様または同一でもよいため、第2の安全プランは、リソースをデプロイする命令を含まない場合がある。この場合、中央CIOSはアクションを行わなくてもよい。
【0131】
例示的なシステム
図11図13は、さまざまな実施形態に係る、本開示の局面を実現するための環境の例の態様を示す図である。図11は、本開示の一実施形態を実現するための分散型システム1100を示す簡略図である。示されている実施形態において、分散型システム1100は、1つ以上のクライアントコンピューティングデバイス1102,1104,1106および1108を含み、それらは、1つ以上のネットワーク1110を介して、ウェブブラウザ、プロプライエタリクライアント(たとえば、オラクルフォームズ)などのクライアントアプリケーションを実行して動作させるように構成されている。サーバ1112は、ネットワーク1110を介してリモートクライアントコンピューティングデバイス1102,11104,1106および1108と通信可能に結合され得る。
【0132】
さまざまな実施形態において、サーバ1112は、アイデンティティ管理サービスを提
供するサービスおよびアプリケーションなどの1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。特定の実施形態において、サーバ1112は、非仮想環境および仮想環境を含み得る他のサービスまたはソフトウェアアプリケーションも提供し得る。いくつかの実施形態において、これらのサービスは、ウェブベースのサービスもしくはクラウドサービスとして、またはソフトウェア・アズ・ア・サービス(SaaS)モデル下で、クライアントコンピューティングデバイス1102,1104,1106および/または1108のユーザに対して提供され得る。そして、クライアントコンピューティングデバイス11102,1104,1106および/または1108を動作させるユーザは、1つ以上のクライアントアプリケーションを利用してサーバ1112と対話して、これらのコンポーネントによって提供されるサービスを利用し得る。
【0133】
図11に示される構成では、システム1100のソフトウェアコンポーネント1118,1120および1122は、サーバ1112上で実行されるものとして示されている。他の実施形態では、システム1100のコンポーネントのうちの1つ以上のコンポーネントおよび/またはこれらのコンポーネントによって提供されるサービスも、クライアントコンピューティングデバイス1102,11104,1106および/または1108のうちの1つ以上のクライアントコンピューティングデバイスによって実行可能である。次に、これらのクライアントコンピューティングデバイスを動作させるユーザは、1つ以上のクライアントアプリケーションを利用して、これらのコンポーネントによって提供されるサービスを使用し得る。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現されてもよい。さまざまな異なるシステム構成が可能であり、これらは分散型システム1100とは異なっていてもよいことが理解されるべきである。図11に示される実施形態は、したがって、実施形態のシステムを実現するための分散型システムの一例であり、限定的であるよう意図されるものではない。
【0134】
クライアントコンピューティングデバイス1102,1104,1106および/または1108は、さまざまなタイプのコンピューティングシステムを含み得る。たとえば、クライアントコンピューティングデバイスは、ソフトウェア(マイクロソフトウィンドウズ(登録商標)モバイルなど)および/またはさまざまなモバイルオペレーティングシステム(iOS、ウィンドウズフォン、アンドロイド(登録商標)、ブラックベリー10、パームOSなど)を実行する携帯型の手持ち式デバイス(たとえば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、パーソナルデジタルアシスタント(PDA))またはウェアラブルデバイス(たとえば、グーグルグラス(登録商標)頭部装着型ディスプレイ)を含み得る。これらのクライアントコンピューティングデバイスは、さまざまなアプリケーション(さまざまなインターネット関連アプリ、電子メール、ショートメッセージサービス(SMS)アプリケーションなど)をサポート可能であり、さまざまな他の通信プロトコルを使用可能である。クライアントコンピューティングデバイスは、汎用パーソナルコンピュータも含んでもよく、これらの汎用パーソナルコンピュータは、一例として、マイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/またはLinux(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む。クライアントコンピューティングデバイスは、さまざまな市販のUNIX(登録商標)またはUNIX系オペレーティングシステムのうちのいずれかを実行するワークステーションコンピュータでもよく、これらのUNIX(登録商標)またはUNIX系オペレーティングシステムは、さまざまなGNU/Linuxオペレーティングシステム(たとえば、グーグルクロームOSなど)を含むが、それらに限定されない。また、クライアントコンピューティングデバイスは、ネットワーク(複数可)1110を介して通信することができる、シンクライアントコンピュータ、インターネット対応ゲームシステム(たとえば、キネクト(登録商標)ジェスチャ入力デバイスを有
するもしくは有さないマイクロソフトXboxゲーム機)および/またはパーソナルメッセージングデバイスといった、電子デバイスも含み得る。
【0135】
図11の分散型システム1100は、4つのクライアントコンピューティングデバイスと共に示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを有するデバイスなどの他のデバイスが、サーバ1112と対話してもよい。
【0136】
分散型システム1100におけるネットワーク(複数可)1110は、さまざまな入手可能なプロトコルのうちのいずれかを使用したデータ通信をサポートすることができる、当業者になじみのある任意のタイプのネットワークでもよく、これらのプロトコルは、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、アップルトークなどを含むが、それらに限定されない。単に一例として、ネットワーク(複数可)1110は、ローカルエリアネットワーク(LAN)、イーサネット(登録商標)に基づくネットワーク、トークンリング、ワイドエリアネットワーク、インターネット、仮想ネットワーク、仮想プライベートネットワーク(VPN)、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、ワイヤレスネットワーク(たとえば、米国電気電子学会(IEEE)1002.11のプロトコル一式、ブルートゥース(登録商標)および/もしくはその他のワイヤレスプロトコルのうちのいずれかの下で動作するネットワーク)、ならびに/または、これらのいずれかの組み合わせおよび/もしくは他のネットワークでもよい。
【0137】
サーバ1112は、1つ以上の複数の汎用コンピュータ、専用のサーバコンピュータ(一例として、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む)、サーバファーム、サーバクラスタ、または、その他の適切な配置および/もしくは組み合わせで構成可能である。サーバ1112は、仮想オペレーティングシステムを実行する1つ以上の仮想マシン、または、仮想化を含む他のコンピューティングアーキテクチャを含み得る。論理ストレージデバイスの1つ以上のフレキシブルなプールは、サーバのために仮想ストレージデバイスを維持するように仮想化され得る。仮想ネットワークは、ソフトウェアによって定義されるネットワーキングを使用して、サーバ1112によって制御可能である。さまざまな実施形態において、サーバ1112は、前述の開示に記載されている1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。たとえば、サーバ1112は、本開示の一実施形態に従って上記の処理を実行するためのサーバに対応し得る。
【0138】
サーバ1112は、上記のもののうちのいずれかを含むオペレーティングシステム、および、任意の市販のサーバオペレーティングシステムを実行し得る。また、サーバ1112は、多様なさらに他のサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかも実行可能であり、これらのアプリケーションは、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(コモンゲートウェイインターフェイス)サーバ、JAVA(登録商標)サーバ、およびデータベースサーバなどを含む。データベースサーバの例は、オラクル社、マイクロソフト社、サイベース社、IBM社(International Business Machines)などによって市販さ
れるものを含むが、それらに限定されない。
【0139】
いくつかの実現例において、サーバ1112は、クライアントコンピューティングデバイス1102,1104,1106および1108のユーザから受信されるデータフィードおよび/またはイベント更新情報を解析および整理統合するための1つ以上のアプリケ
ーションを含み得る。一例として、データフィードおよび/またはイベント更新情報は、1つ以上のサード・パーティ情報源および連続データストリームから受信される、ツイッター(登録商標)フィード、フェイスブック(登録商標)更新情報またはリアルタイムの更新情報を含み得るが、それらに限定されるものではなく、これらは、センサデータアプリケーション、株式相場表示機、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などに関連するリアルタイムのイベントを含み得る。サーバ1112は、データフィードおよび/またはリアルタイムのイベントをクライアントコンピューティングデバイス1102,1104,11106および1108の1つ以上のディスプレイデバイスを介して表示するための1つ以上のアプリケーションも含み得る。
【0140】
分散型システム1100は、1つ以上のデータベース1114および1116も含み得る。これらのデータベースは、アイデンティティ情報などの情報、および、本開示の実施形態によって使用される他の情報を格納するための機構を提供し得る。データベース1114および1116は、さまざまな場所に存在し得る。一例として、データベース1114および1116のうちの1つ以上は、サーバ1112にローカルな(および/または、サーバ1112内に存在する)非一時的な記憶媒体上に存在してもよい。代替的に、データベース1114および1116は、サーバ1112から離れていて、ネットワークベースのまたは専用の接続を介して、サーバ1112と通信してもよい。一組の実施形態では、データベース1114および1116は、ストレージエリアネットワーク(SAN)内に存在してもよい。同様に、サーバ1112に帰属する機能を実行するために必要な任意のファイルは、適宜、サーバ1112上にローカルにおよび/またはリモートで格納され得る。一組の実施形態において、データベース1114および1116は、SQLによってフォーマットされたコマンドに応答してデータを格納、更新および検索するように適合された、オラクル社によって提供されるデータベースなどのリレーショナルデータベースを含み得る。
【0141】
図12は、本開示の一実施形態を実現するために使用され得るコンピュータシステム1200の例を示す図である。いくつかの実施形態において、コンピュータシステム1200は、上記のさまざまなサーバおよびコンピュータシステムのうちのいずれかを実現するために使用され得る。図12に示されるように、コンピュータシステム1200は、処理サブシステム1204を含むさまざまなサブシステムを含み、処理サブシステム1204は、バスサブシステム1202を介して複数の周辺サブシステムと通信する。これらの周辺サブシステムは、処理加速ユニット1206と、入出力サブシステム1208と、ストレージサブシステム1218と、通信サブシステム1224とを含み得る。ストレージサブシステム1218は、有形のコンピュータ読取可能記憶媒体1622と、システムメモリ1210とを含み得る。
【0142】
バスサブシステム1202は、コンピュータシステム1200のさまざまなコンポーネントおよびサブシステムに意図した通りに互いに通信させるための機構を提供する。バスサブシステム1202は、単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は、複数のバスを利用してもよい。バスサブシステム1202は、いくつかのタイプのバス構造のうちのいずれかでもよく、これらのバス構造は、さまざまなバスアーキテクチャのうちのいずれかを用いるメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む。たとえば、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカルバス、およびIEEE P1386.1規格に従って製造される中二階バスとして実現可能な周辺コンポーネントインターコネクト(PCI)バスなどを含み得る。
【0143】
処理サブシステム1204は、コンピュータシステム1200の動作を制御し、1つ以上の処理ユニット1232,1234などを含み得る。処理ユニットは、シングルコアもしくはマルチコアプロセッサを含む1つ以上のプロセッサ、プロセッサの1つ以上のコア、またはそれらの組み合わせを含み得る。いくつかの実施形態において、処理サブシステム1204は、グラフィックスプロセッサまたはデジタル信号プロセッサ(DSP)などの1つ以上の特別目的コプロセッサを含み得る。いくつかの実施形態において、処理サブシステム1204の処理ユニットの一部または全ては、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などのカスタマイズされた回路を使用して実現可能である。
【0144】
いくつかの実施形態では、処理サブシステム1204内の処理ユニットは、システムメモリ1210内またはコンピュータ読取可能記憶媒体1222上に格納された命令を実行することができる。さまざまな実施形態において、処理ユニットは、さまざまなプログラムまたはコード命令を実行することができ、複数の同時実行プログラムまたはプロセスを維持することができる。どんなときでも、実行されるプログラムコードの一部または全ては、システムメモリ1210内に、および/または、場合によっては、1つ以上のストレージデバイス上を含むコンピュータ読取可能記憶媒体1222上に常駐することができる。好適なプログラミングによって、処理サブシステム1204は、使用パターンに応答してドキュメント(たとえば、ウェブページ)を動的に変更するための上記のさまざまな機能を提供することができる。
【0145】
特定の実施形態において、処理加速ユニット1206は、コンピュータシステム1200によって実行される処理全体を加速させるように、カスタマイズされた処理を実行するために、または、処理サブシステム1204によって実行される処理の一部をオフロードするために設けられてもよい。
【0146】
入出力サブシステム1208は、情報をコンピュータシステム1200に入力するための、および/または、情報をコンピュータシステム1200からもしくはコンピュータシステム1200を介して出力するためのデバイスおよび機構を含み得る。一般に、「入力デバイス」という用語の使用は、情報をコンピュータシステム1200に入力するための全ての可能なタイプのデバイスおよび機構を含むように意図されている。ユーザインターフェイス入力デバイスは、たとえば、キーボード、ポインティングデバイス(マウスまたはトラックボールなど)、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを有するオーディオ入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含み得る。ユーザインターフェイス入力デバイスは、ユーザが入力デバイスを制御して入力デバイスと対話することを可能にするモーション感知および/またはジェスチャ認識デバイス(マイクロソフトキネクト(登録商標)モーションセンサなど)、マイクロソフトXbox(登録商標)360ゲームコントローラ、ジェスチャおよび口頭のコマンドを使用して入力を受信するためのインターフェイスを提供するデバイスも含み得る。ユーザインターフェイス入力デバイスは、ユーザから目の動き(たとえば、写真を撮っている間および/またはメニュー選択を行なっている間の「まばたき」)を検出してアイジェスチャを入力デバイス(たとえば、グーグルグラス(登録商標))への入力として変換するアイジェスチャ認識デバイス(グーグルグラス(登録商標)瞬き検出器など)も含み得る。さらに、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム(たとえば、Siri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含み得る。
【0147】
ユーザインターフェイス入力デバイスの他の例としては、三次元(3D)マウス、ジョ
イスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにオーディオ/ビジュアルデバイス(スピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなど)が挙げられるが、それらに限定されない。さらに、ユーザインターフェイス入力デバイスは、たとえば、コンピュータ断層撮影、磁気共鳴撮像、ポジションエミッショントモグラフィー、医療用超音波検査デバイスなどの医療用画像化入力デバイスを含み得る。ユーザインターフェイス入力デバイスは、たとえば、MIDIキーボードおよびデジタル楽器などのオーディオ入力デバイスも含み得る。
【0148】
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または非ビジュアルディスプレイ(オーディオ出力デバイスなど)を含み得る。ディスプレイサブシステムは、陰極線管(CRT)、フラットパネルデバイス(液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するものなど)、投影デバイス、およびタッチスクリーンなどであり得る。一般に、「出力デバイス」という用語の使用は、情報をコンピュータシステム1200からユーザまたは他のコンピュータに出力するための全ての可能なタイプのデバイスおよび機構を含むように意図されている。たとえば、ユーザインターフェイス出力デバイスは、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまなディスプレイデバイス(モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなど)を含み得るが、それらに限定されない。
【0149】
ストレージサブシステム1218は、コンピュータシステム1200によって使用される情報を格納するためのリポジトリまたはデータストアを提供する。ストレージサブシステム1218は、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形の非一時的なコンピュータ読取可能記憶媒体を提供する。処理サブシステム1204によって実行されると上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム1218に格納され得る。このソフトウェアは、処理サブシステム1204の1つ以上の処理ユニットによって実行可能である。ストレージサブシステム1218は、本開示に従って使用されるデータを格納するためのリポジトリも提供し得る。
【0150】
ストレージサブシステム1218は、揮発性および不揮発性メモリデバイスを含む1つ以上の非一時的なメモリデバイスを含み得る。図12に示されるように、ストレージサブシステム1218は、システムメモリ1210と、コンピュータ読取可能記憶媒体1222とを含む。システムメモリ1210は、いくつかのメモリを含んでもよく、これらのメモリは、プログラム実行中に命令およびデータを格納するための揮発性メインランダムアクセスメモリ(RAM)、および、固定命令が格納される不揮発性リードオンリメモリ(ROM)またはフラッシュメモリを含む。いくつかの実現例において、起動中などにコンピュータシステム1200内の要素間で情報を転送するのを支援する基本的なルーチンを含む基本入出力システム(BIOS)は、ROMに格納され得る。RAMは、処理サブシステム1204によって現在動作および実行されているデータならびに/またはプログラムモジュールを含み得る。いくつかの実現例において、システムメモリ1210は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)などの、複数の異なるタイプのメモリを含み得る。
【0151】
限定ではなく例として、図12に示すように、システムメモリ1210は、アプリケーションプログラム1212(クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得る)と、プログラムデータ1214と、オペレーティングシステム1216とを格納し得
る。一例として、オペレーティングシステム1216は、マイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/もしくはLinuxオペレーティングシステムのさまざまなバージョン、さまざまな市販のUNIX(登録商標)もしくはUNIX系オペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、グーグルクローム(登録商標)OSなどを含むが、それらに限定されない)、ならびに/または、モバイルオペレーティングシステム(iOS、ウィンドウズ(登録商標)フォン、アンドロイド(登録商標)OS、ブラックベリー(登録商標)10OS、およびパーム(登録商標)OSオペレーティングシステム)を含み得る。
【0152】
コンピュータ読取可能記憶媒体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のためのコンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータのストレージを提供し得る。
【0153】
特定の実施形態において、ストレージサブシステム1200は、コンピュータ読取可能記憶媒体1222にさらに接続可能なコンピュータ読取可能記憶媒体リーダ1220も含み得る。システムメモリ1210と共に、および任意にシステムメモリ1210と組み合わせて、コンピュータ読取可能記憶媒体1222は、コンピュータ読取可能情報を格納するための、リモートの、ローカルの、固定された、および/または、取り外し可能なストレージデバイスと記憶媒体とを包括的に表し得る。
【0154】
特定の実施形態では、コンピュータシステム1200は、1つ以上の仮想マシンを実行するためのサポートを提供してもよい。コンピュータシステム1200は、仮想マシンの設定および管理を容易にするためのハイパーバイザなどのプログラムを実行することができる。各仮想マシンは、メモリ、計算(たとえば、プロセッサ、コア)、入出力、およびネットワーキングリソースを割り当てられ得る。各仮想マシンは、コンピュータシステム1200によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同じであっても異なっていてもよい独自のオペレーティングシステムを実行してもよい。したがって、複数のオペレーティングシステムがコンピュータシステム1200によって同時に実行される可能性がある。各仮想マシンは、概して、他の仮想マシンから独立して動作する。
【0155】
通信サブシステム1224は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム1224は、他のシステムとコンピュータシステム1200との間のデータの送受信のためのインターフェイスとしての役割を果たす。たとえば、通信サブシステム1224は、コンピュータシステム1200が、クラ
イアントデバイスとの間での情報の送受信のための、インターネットを介した1つ以上のクライアントデバイスに対する通信チャネルを確立することを可能にし得る。さらに、通信サブシステム1224は、ログインが成功したことの通知、または、特権が付与されているアカウントマネージャから要求元のユーザにパスワードを再入力するための通知を伝達するために使用され得る。
【0156】
通信サブシステム1224は、有線および/または無線通信プロトコルを両方ともサポートし得る。たとえば、特定の実施形態において、通信サブシステム1224は、(たとえば、セルラー電話技術、先進データネットワーク技術(3G、4GもしくはEDGE(enhanced data rates for global evolution)など)、WiFi(IEEE802.11ファミリー規格)、または他のモバイル通信技術、またはそれらの任意の組み合わせを使用して)無線音声および/またはデータネットワークにアクセスするための無線周波数(RF)送受信機コンポーネント、グローバルポジショニングシステム(GPS)受信機コンポーネント、ならびに/または、他のコンポーネントを含み得る。いくつかの実施形態において、通信サブシステム1224は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続(たとえば、イーサネット)を提供することができる。
【0157】
通信サブシステム1224は、データをさまざまな形式で送受信することができる。たとえば、いくつかの実施形態において、通信サブシステム1224は、構造化されたおよび/または構造化されていないデータフィード1226、イベントストリーム1228、およびイベント更新情報1230などの形式で入力通信を受信し得る。たとえば、通信サブシステム1224は、ソーシャルメディアネットワークのユーザからリアルタイムでデータフィード1226および/または他の通信サービス(ツイッター(登録商標)フィード、フェイスブック(登録商標)更新情報、ウェブフィード(リッチ・サイト・サマリ(RSS)フィードなど)、および/または、1つ以上のサード・パーティ情報源からのリアルタイム更新情報など)を受信(または、送信)するように構成可能である。
【0158】
特定の実施形態において、通信サブシステム1224は、連続データストリームの形式でデータを受信するように構成されてもよく、この連続データストリームは、明確な終端を持たない、事実上連続的または無限であり得るリアルタイムイベントのイベントストリーム1228および/またはイベント更新情報1230を含み得る。連続データを生成するアプリケーションの例としては、たとえば、センサデータアプリケーション、株式相場表示機、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、および自動車交通監視などを挙げることができる。
【0159】
通信サブシステム1224はまた、コンピュータシステム1200に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに、構造化されたおよび/または構造化されていないデータフィード1226、イベントストリーム1228、およびイベント更新情報1230などを出力するように構成可能である。
【0160】
コンピュータシステム1200は、手持ち式の携帯型デバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、グーグルグラス(登録商標)頭部装着型ディスプレイ)、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含むものなど、さまざまなタイプのもののうちの1つであり得る。
【0161】
コンピュータおよびネットワークの性質は常に変化するため、図12に示されるコンピ
ュータシステム1200の記載は、具体例であることが意図されているに過ぎない。図12に示されているシステムよりも多くのコンポーネントまたは少ないコンポーネントを有する多くの他の構成が可能である。本明細書において提供されている開示および教示に基づいて、当業者は、さまざまな実施形態を実現するための他の態様および/または方法を理解するであろう。
【0162】
いくつかの図面に示されているシステムは、さまざまな構成で提供されてもよい。いくつかの実施形態において、これらのシステムは、システムの1つ以上のコンポーネントが1つ以上のクラウドインフラストラクチャシステム内の1つ以上のネットワークにわたって分散される分散型システムとして構成されてもよい。
【0163】
クラウドインフラストラクチャシステムは、1つ以上のサーバコンピューティングデバイス、ネットワークデバイスおよび/またはストレージデバイスの集合である。これらのリソースは、クラウドサービスプロバイダによって分割されて、その顧客に何らかの方法で割り当てられてもよい。たとえば、クラウドサービスプロバイダ(カリフォルニア州レッドウッドショアーズのオラクル社など)は、ソフトウェア・アズ・ア・サービス(SaaS)カテゴリ下で提供される1つ以上のサービス、プラットフォーム・アズ・ア・サービス(PaaS)カテゴリ下で提供されるサービス、インフラストラクチャ・アズ・ア・サービス(IaaS)カテゴリ下で提供されるサービス、またはハイブリッドサービスを含むサービスの他のカテゴリのサービスを含むが、それらに限定されない、さまざまなタイプのクラウドサービスを提供し得る。SaaSサービスの例としては、Oracle Fusion
アプリケーションなどのオンデマンドアプリケーション一式を構築して提供する機能が挙げられるが、それに限定されない。SaaSサービスによって、顧客は、クラウドインフラストラクチャシステム上で実行されるアプリケーションのためのソフトウェアを購入する必要なく、これらのアプリケーションを利用することが可能になる。PaaSサービスの例としては、組織(Oracleなど)が既存のアプリケーションを共有の共通アーキテクチャ上に統合するためのサービス、ならびにオラクルJavaクラウドサービス(JCS)およびオラクルデータベースクラウドサービス(DBCS)といった、プラットフォームによって提供される共有サービスを活用した新しいアプリケーションを構築する機能などがあるが、これらに限定されない。IaaSサービスは、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のために、ストレージ、ネットワークおよび他の基本的なコンピューティングリソースなどの基本的なコンピューティングリソースの管理および制御を容易にし得る。
【0164】
図13は、本開示の一実施形態に係る、実施形態のシステムの1つ以上のコンポーネントによって提供されるサービスがクラウドサービスとして提供され得るシステム環境1300の1つ以上のコンポーネントを示す簡略ブロック図である。示されている実施形態において、システム環境1300は、1つ以上のクライアントコンピューティングデバイス1304,1306および1308を含み、これらのクライアントコンピューティングデバイスは、クラウドサービスを提供するクラウドインフラストラクチャシステム1302と対話するために、ユーザによって使用され得る。これらのクライアントコンピューティングデバイスは、ウェブブラウザ、プロプライエタリクライアントアプリケーション(たとえば、オラクルフォームズなどのクライアントアプリケーション、または何らかの他のアプリケーションなど)を動作させるように構成され得、このクライアントアプリケーションは、クラウドインフラストラクチャシステム1302と対話して、クラウドインフラストラクチャシステム1302によって提供されるサービスを使用するためにクライアントコンピューティングデバイスのユーザによって使用され得る。
【0165】
図に示されているクラウドインフラストラクチャシステム1302は、示されているコンポーネント以外のコンポーネントを有してもよいということが理解されるべきである。
さらに、図に示されている実施形態は、本開示の一実施形態を組み込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態では、クラウドインフラストラクチャシステム1302は、図に示されているよりも多くのコンポーネントもしくは少ないコンポーネントを有していてもよい、2つ以上のコンポーネントを組み合わせてもよい、またはコンポーネントの異なる構成もしくは配置を有してもよい。
【0166】
クライアントコンピューティングデバイス1304,1306および1308は、クライアントコンピューティングデバイス1102,1104,1106および1108について上述したものと同様のデバイスであり得る。
【0167】
システム環境1300の例は3つのクライアントコンピューティングデバイスと共に示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを有するデバイスなどの他のデバイスが、クラウドインフラストラクチャシステム1302と対話してもよい。
【0168】
ネットワーク(複数可)1310は、クライアント1304,1306および1308とクラウドインフラストラクチャシステム1302との間におけるデータの通信および交換を容易にし得る。各ネットワークは、ネットワーク(複数可)1110について上記したものを含む、さまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポート可能な、当業者になじみのある任意のタイプのネットワークであり得る。
【0169】
クラウドインフラストラクチャシステム1302は、1つ以上のコンピュータ、および/または、サーバ1112について上記したものを含み得るサーバを備え得る。
【0170】
特定の実施形態において、クラウドインフラストラクチャシステムによって提供されるサービスは、オンデマンドでクラウドインフラストラクチャシステムのユーザに利用可能にされる多数のサービス(オンラインデータストレージおよびバックアップソリューション、ウェブベースの電子メールサービス、ホスト型オフィススイートおよび文書コラボレーションサービス、データベース処理、管理された技術サポートサービスなど)を含み得る。クラウドインフラストラクチャシステムによって提供されるサービスは、動的にスケーリングしてそのユーザのニーズを満たすことができる。クラウドインフラストラクチャシステムによって提供されるサービスのある具体的なインスタンス化は、本明細書では「サービスインスタンス」と称される。一般に、クラウドサービスプロバイダのシステムからインターネットなどの通信ネットワークを介してユーザに利用可能にされる任意のサービスは、「クラウドサービス」と称される。パブリックなクラウド環境においては、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスのサーバおよびシステムとは異なる。たとえば、クラウドサービスプロバイダのシステムは、アプリケーションをホスト可能であり、ユーザは、インターネットなどの通信ネットワークを介して、オンデマンドで、アプリケーションのオーダーおよび使用が可能である。
【0171】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、ストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーション、またはクラウドベンダによってユーザに提供される他のサービス、またはそうでなければ当該技術分野において公知であるような他のサービスに対する保護されたコンピュータネットワークアクセスを含み得る。たとえば、サービスは、インターネットを介した、クラウド上のリモートストレージに対するパスワード保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク接続された開発者による個人的な使用のための、ウェブサービスベースのホスト型リレーショナルデータベースおよびスク
リプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダのウェブサイトにおいてホストされる電子メールソフトウェアアプリケーションに対するアクセスを含み得る。
【0172】
特定の実施形態において、クラウドインフラストラクチャシステム1302は、セルフサービスの、サブスクリプションベースの、弾性的にスケーラブルで、信頼性があり、高可用性の、安全な態様で顧客に対して提供される一式のアプリケーション、ミドルウェア、およびデータベースサービス提供を含み得る。このようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクルパブリッククラウド(Oracle
Public Cloud)である。
【0173】
さまざまな実施形態において、クラウドインフラストラクチャシステム1302は、クラウドインフラストラクチャシステム1302によって提供されるサービスに対する顧客のサブスクリプションを自動的にプロビジョニングし、管理し、および追跡するように適合され得る。クラウドインフラストラクチャシステム1302は、クラウドサービスを異なるデプロイメントモデルを介して提供し得る。たとえば、サービスは、クラウドインフラストラクチャシステム1302が(たとえばオラクル社によって所有される)クラウドサービスを販売する組織によって所有され、サービスが一般大衆または異なる業界企業に利用可能にされるパブリッククラウドモデルの下で提供されてもよい。別の例として、サービスは、クラウドインフラストラクチャシステム1302がもっぱら単一の組織について動作され、その組織内における1つ以上のエンティティのためのサービスを提供し得るプライベートクラウドモデルの下で提供されてもよい。また、クラウドサービスは、クラウドインフラストラクチャシステム1302およびクラウドインフラストラクチャシステム1302によって提供されるサービスが、関連するコミュニティにおけるいくつかの組織によって共有されるコミュニティクラウドモデルの下で提供されてもよい。また、クラウドサービスは、2つ以上の異なるモデルの組み合わせであるハイブリッドクラウドモデルの下で提供されてもよい。
【0174】
いくつかの実施形態では、クラウドインフラストラクチャシステム1302によって提供されるサービスは、ソフトウェア・アズ・ア・サービス(SaaS)カテゴリ、プラットフォーム・アズ・ア・サービス(PaaS)カテゴリ、インフラストラクチャ・アズ・ア・サービス(IaaS)カテゴリ、またはハイブリッドサービスを含む他のサービスのカテゴリの下で提供される1つ以上のサービスを含み得る。顧客は、サブスクリプションオーダーを介して、クラウドインフラストラクチャシステム1302によって提供される1つ以上のサービスをオーダーし得る。クラウドインフラストラクチャシステム1302は、次に、処理を実行して、顧客のサブスクリプションオーダーにおけるサービスを提供する。
【0175】
いくつかの実施形態において、クラウドインフラストラクチャシステム1302によって提供されるサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含み得るが、それらに限定されない。いくつかの例では、アプリケーションサービスは、クラウドインフラストラクチャシステムによってSaaSプラットフォームを介して提供され得る。SaaSプラットフォームは、SaaSカテゴリに該当するクラウドサービスを提供するように構成可能である。たとえば、SaaSプラットフォームは、統合された開発およびデプロイメントプラットフォーム上で一式のオンデマンドアプリケーションを構築して提供する機能を提供し得る。SaaSプラットフォームは、SaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理ならびに制御し得る。SaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムにおいて実行されるアプリケーションを利用することができる。顧客は、別個のライセンスおよ
びサポートを購入する必要なくアプリケーションサービスを取得することができる。さまざまな異なるSaaSサービスが提供されてもよい。その例としては、大組織向けの販売実績管理、企業統合、およびビジネスの柔軟性のためのソリューションを提供するサービスが挙げられるが、それらに限定されない。
【0176】
いくつかの実施形態において、プラットフォームサービスは、クラウドインフラストラクチャシステムによってPaaSプラットフォームを介して提供され得る。PaaSプラットフォームは、PaaSカテゴリに該当するクラウドサービスを提供するように構成可能である。プラットフォームサービスの例としては、組織(オラクル社など)が既存のアプリケーションを共有の共通のアーキテクチャ上で統合することを可能にするサービス、およびプラットフォームによって提供される共有のサービスを活用する新しいアプリケーションを構築する機能を挙げることができるが、それらに限定されない。PaaSプラットフォームは、PaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理ならびに制御し得る。顧客は、クラウドインフラストラクチャシステムによって提供されるPaaSサービスを、別個のライセンスおよびサポートを購入する必要なく取得することができる。プラットフォームサービスの例としては、オラクルJavaクラウドサービス(JCS)およびオラクルデータベースクラウドサービス(DBCS)などが挙げられるが、それらに限定されない。
【0177】
PaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを使用することができ、デプロイされたサービスを制御することもできる。いくつかの実施形態において、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス(たとえば、オラクル・フュージョン・ミドルウェアサービス)、およびJavaクラウドサービスを含み得る。一実施形態において、データベースクラウドサービスは、組織がデータベースリソースをプールし、顧客にデータベース・アズ・ア・サービスをデータベースクラウドの形式で提供することを可能にする共有のサービスデプロイメントモデルをサポートし得る。クラウドインフラストラクチャシステムにおいて、ミドルウェアクラウドサービスは、顧客がさまざまなビジネスアプリケーションを開発およびデプロイするためのプラットフォームを提供することが可能であり、Javaクラウドサービスは、顧客がJavaアプリケーションをデプロイするためのプラットフォームを、クラウドインフラストラクチャシステムにおいて提供することが可能である。
【0178】
さまざまな異なるインフラストラクチャサービスが、IaaSプラットフォームによってクラウドインフラストラクチャシステムにおいて提供され得る。インフラストラクチャサービスは、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のために、基本的なコンピューティングリソース(ストレージ、ネットワークおよび他の基本的なコンピューティングリソースなど)の管理および制御を容易にする。
【0179】
特定の実施形態において、クラウドインフラストラクチャシステム1302は、クラウドインフラストラクチャシステムの顧客に対してさまざまなサービスを提供するために用いられるリソースを提供するためのインフラストラクチャリソース1330も含み得る。一実施形態において、インフラストラクチャリソース1330は、PaaSプラットフォームおよびSaaSプラットフォームによって提供されるサービスを実行するためのハードウェア(サーバ、ストレージおよびネットワーキングリソースなど)の予め統合され最適化された組み合わせを含み得る。
【0180】
いくつかの実施形態において、クラウドインフラストラクチャシステム1302内のリ
ソースは、複数のユーザによって共有され、要求ごとに動的に再割り当てされ得る。さらに、リソースは、ユーザに対してさまざまな時間ゾーンで割り当てることができる。たとえば、クラウドインフラストラクチャシステム1302は、第1の時間ゾーンにおけるユーザの第1の組がクラウドインフラストラクチャシステムのリソースをある特定の時間の間利用することを可能にし、次に、異なる時間ゾーンに位置するユーザの別の組に対する同じリソースの再割り当てを可能にして、リソースの利用を最大化し得る。
【0181】
特定の実施形態において、複数の内部共有サービス1332が提供され、これらのサービスは、クラウドインフラストラクチャシステム1302のさまざまなコンポーネントまたはモジュールによって共有され、クラウドインフラストラクチャシステム1302によって提供されるサービスによって共有される。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性、バックアップおよび回復サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、およびファイル転送サービスなどを含み得るが、それらに限定されない。
【0182】
特定の実施形態において、クラウドインフラストラクチャシステム1302は、クラウドインフラストラクチャシステムにおいてクラウドサービス(たとえば、SaaS、PaaS、およびIaaSサービス)の包括的な管理を提供し得る。一実施形態において、クラウド管理機能は、クラウドインフラストラクチャシステム1302によって受信される顧客のサブスクリプションをプロビジョニングし、管理し、および追跡する機能などを含み得る。
【0183】
一実施形態において、図に示されるように、クラウド管理機能は、オーダー管理モジュール1320、オーダーオーケストレーションモジュール1322、オーダープロビジョニングモジュール1324、オーダー管理・監視モジュール1326およびアイデンティティ管理モジュール1328などの1つ以上のモジュールによって提供され得る。これらのモジュールは、1つ以上のコンピュータおよび/もしくはサーバを含んでもよく、またはそれらを用いて提供されてもよく、それらは、汎用コンピュータ、専用のサーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な配列および/もしくは組み合わせでもよい。
【0184】
動作1334の例において、顧客は、クラウドインフラストラクチャシステム1302によって提供される1つ以上のサービスを要求し、クラウドインフラストラクチャシステム1302によって提供される1つ以上のサービスのサブスクリプションに対するオーダーを行なうことによって、クライアントデバイス1304,1306または1308などのクライアントデバイスを用いて、クラウドインフラストラクチャシステム1302と対話し得る。特定の実施形態において、顧客は、クラウドユーザインターフェイス(UI)、すなわちクラウドUI1312、クラウドUI1314および/またはクラウドUI1316にアクセスし、サブスクリプションオーダーをこれらのUIを介して行ない得る。顧客がオーダーを行なうことに応答してクラウドインフラストラクチャシステム1302によって受信されるオーダー情報は、顧客、およびその顧客がサブスクライブしようとする、クラウドインフラストラクチャシステム1302によって提供される1つ以上のサービスを識別する情報を含み得る。
【0185】
オーダーが顧客によって行われた後、オーダー情報は、クラウドUI1312,1314および/または1316を介して受信される。
【0186】
動作1336において、オーダーは、オーダーデータベース1318に保存される。オ
ーダーデータベース1318は、クラウドインフラストラクチャシステム1302によって動作され他のシステム要素と連携して動作されるいくつかのデータベースのうちの1つであり得る。
【0187】
動作1338において、オーダー情報は、オーダー管理モジュール1320に転送される。いくつかの例では、オーダー管理モジュール1320は、オーダーを検証し、検証時にオーダーを予約するといった、オーダーに関連する請求および課金機能を実行するように構成可能である。
【0188】
動作1340において、オーダーに関する情報は、オーダーオーケストレーションモジュール1322に伝達される。オーダーオーケストレーションモジュール1322は、オーダー情報を利用して、顧客が出したオーダーに対してサービスおよびリソースのプロビジョニングをオーケストレーションし得る。いくつかの例では、オーダーオーケストレーションモジュール1322は、オーダープロビジョニングモジュール1324のサービスを使用して、サブスクライブされたサービスをサポートするように、リソースのプロビジョニングをオーケストレーションし得る。
【0189】
特定の実施形態において、オーダーオーケストレーションモジュール1322は、各オーダーに関連するビジネスプロセスの管理を可能にし、ビジネス論理を適用して、オーダーがプロビジョニングに進むべきか否かを判断する。動作1342において、新しいサブスクリプションに対するオーダーを受信すると、オーダーオーケストレーションモジュール1322は、リソースを割り当てて、サブスクリプションオーダーを満たすのに必要とされるそれらのリソースを構成するように、オーダープロビジョニングモジュール1324に対して要求を送信する。オーダープロビジョニングモジュール1324は、顧客によってオーダーされたサービスに対するリソースの割り当てを可能にする。オーダープロビジョニングモジュール1324は、クラウドインフラストラクチャシステム1302によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために用いられる物理的実装層との間の抽象化レベルを提供する。これにより、サービスおよびリソースが実際にオンザフライでプロビジョニングされるか、サービスおよびリソースが予めプロビジョニングされて要求時に割り振る/割り当てるのみであるかといった実現の詳細から、オーダーオーケストレーションモジュール1322を分離することができる。
【0190】
動作1344において、サービスおよびリソースがプロビジョニングされると、提供されたサービスの通知が、クラウドインフラストラクチャシステム1302のオーダープロビジョニングモジュール1324によって、クライアントデバイス1304,1306および/または1308上の顧客に送信され得る。動作1346において、顧客のサブスクリプションオーダーは、オーダー管理・監視モジュール1326によって管理および追跡され得る。いくつかの例では、オーダー管理・監視モジュール1326は、使用されるストレージの量、転送されるデータの量、ユーザの人数、ならびにシステムアップ時間およびシステムダウン時間の量といった、サブスクリプションオーダーにおけるサービスの使用統計を収集するように構成可能である。
【0191】
特定の実施形態において、クラウドインフラストラクチャシステム1302は、アイデンティティ管理モジュール1328を含み得る。アイデンティティ管理モジュール1328は、クラウドインフラストラクチャシステム1302におけるアクセス管理および認可サービスなどのアイデンティティサービスを提供するように構成可能である。いくつかの実施形態において、アイデンティティ管理モジュール1328は、クラウドインフラストラクチャシステム1302によって提供されるサービスを利用することを望む顧客についての情報を制御し得る。そのような情報は、このような顧客のアイデンティティを認証す
る情報、およびそれらの顧客がさまざまなシステムリソース(たとえば、ファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してどのアクションを実行することが認可されるかを記述する情報を含み得る。アイデンティティ管理モジュール1328は、各顧客についての記述的情報ならびにその記述的情報がどのように誰によってアクセスおよび修正可能であるかについての情報の管理も含み得る。
【0192】
本開示の特定の実施形態について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物も本開示の範囲内に包含される。本開示の実施形態は、特定の具体的なデータ処理環境内での動作に限定されるものではなく、複数のデータ処理環境内で自由に動作できる。さらに、特定の一連のトランザクションおよびステップを使用して本開示の実施形態について説明してきたが、本開示の範囲は記載されている一連のトランザクションおよびステップに限定されないということが当業者に明らかであるはずである。上記の実施形態のさまざまな特徴および局面は、個々に使用されてもよい、または一緒に使用されてもよい。
【0193】
さらに、ハードウェアとソフトウェアとの特定の組み合わせを使用して本開示の実施形態について説明してきたが、ハードウェアとソフトウェアとの他の組み合わせも本開示の範囲内であるということが認識されるはずである。本開示の実施形態は、ハードウェアのみで実現されてもよい、ソフトウェアのみで実現されてもよい、またはそれらの組み合わせを使用して実現されてもよい。本明細書に記載されているさまざまなプロセスは、同一のプロセッサ上で実現されてもよい、または任意の組み合わせの異なるプロセッサ上で実現されてもよい。したがって、コンポーネントまたはモジュールは、特定の動作を実行するように構成されるものとして説明されているが、このような構成は、たとえば、動作を実行するように電子回路を設計することによって、動作を実行するようにプログラム可能電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの任意の組み合わせによって、達成することができる。プロセスは、プロセス間通信のための従来の技術を含むがそれに限定されないさまざまな技術を使用して通信することができ、異なるプロセスペアは異なる技術を使用してもよい、または同じプロセスペアが異なるタイミングで異なる技術を使用してもよい。
【0194】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかしながら、特許請求の範囲に記載されているより広い精神および範囲から逸脱することなく、追加、減算、削除ならびに他の変形および変更がなされてもよいことは明らかであろう。したがって、本開示の特定の実施形態について説明してきたが、これらは限定的であるよう意図されるものではない。さまざまな変形例および等価物は、以下の特許請求の範囲内である。これらの変形例は、開示されている特徴の任意の関連する組み合わせを含む。
【0195】
本開示のいくつかの例示的な項目について、以下で説明する。
項目1:方法であって、
複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とのリストを含む安全プランを受信することと、
安全プランの承認の指示の受信に従って、
複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行するように準備することと、
動作を安全プランと比較することとを備え、
動作が安全プランの一部であるという判断に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、動作を実行することと、
動作が安全プランの一部でないという判断に従って、
複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメントを停止することと、
複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメントが安全プランに準拠していないという通知を送信することとを備える、方法。
【0196】
項目2。複数のプロセッサは、実行ターゲットに関連付けられている、項目1に記載の方法。
【0197】
項目3。実行ターゲットは地理的地域を含む、項目2に記載の方法。
項目4。デプロイメント設定ファイルは、中央クラウドインフラストラクチャオーケストレーションサービスから受信される、項目1に記載の方法。
【0198】
項目5。デプロイメント設定ファイルは、中央クラウドインフラストラクチャオーケストレーションサービスのユーザによって生成される、項目4に記載の方法。
【0199】
項目6。それぞれの動作は、リソースのリストの少なくとも1つのリソース上で実行される、またはリソースのリストの少なくとも1つのリソースに関連付けられる、作成動作、更新動作、または削除動作のうちの少なくとも1つを含む、項目1に記載の方法。
【0200】
項目7。安全プランの不承認の受信または安全プランの承認の非受信に従って、複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメントを停止することをさらに備える、項目1に記載の方法。
【0201】
項目8。複数のコンピュータプロセッサのうちの少なくとも1つが、デプロイメント設定ファイルに従うローカル動作を有するローカルプランを生成することをさらに備え、動作を安全プランと比較することは、ローカル動作のうちの1つを安全プランと比較することを含む、項目1に記載の方法。
【0202】
項目9。コンピュータ読取可能記憶媒体であって、コンピュータ読取可能記憶媒体は、コンピュータプロセッサによって実行されると、コンピュータプロセッサに動作を実行させる命令が書き込まれており、動作は、
デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とのリストを含む安全プランを受信することと、
安全プランの承認の指示の受信に従って、
デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行うことと、
動作を安全プランと比較することと、
動作が安全プランの一部であるという判断に従って、動作を実行することと、
動作が安全プランの一部でないという判断に従って、デプロイメントを停止すること、
デプロイメントが安全プランに準拠していないという通知を送信することとを含む、コンピュータ読取可能記憶媒体。
【0203】
項目10。デプロイメント設定ファイルは、中央クラウドインフラストラクチャオーケストレーションサービスによって生成される、項目9に記載のコンピュータ読取可能記憶媒体。
【0204】
項目11。中央クラウドインフラストラクチャオーケストレーションサービスは、安全プランのリストを生成するように構成され、安全プランのリストの各安全プランは、特定の実行ターゲットまたは特定のデプロイメントフェーズに対応する、項目10に記載のコ
ンピュータ読取可能記憶媒体。
【0205】
項目12。中央クラウドインフラストラクチャオーケストレーションサービスはさらに、安全プランのリストの承認または不承認の受信に先立って、同時に安全プランのリストを生成するように構成されている、項目11に記載のコンピュータ読取可能記憶媒体。
【0206】
項目13。中央クラウドインフラストラクチャオーケストレーションサービスは、複数のデプロイメント設定ファイルを生成するように構成され、複数のデプロイメント設定ファイルの各デプロイメント設定ファイルは、安全プランのリスト上のそれぞれの実行ターゲットごとに解釈される、項目12に記載のコンピュータ読取可能記憶媒体。
【0207】
項目14。動作はさらに、安全プランを中央クラウドインフラストラクチャオーケストレーションサービスに送信することを含む、項目10に記載のコンピュータ読取可能記憶媒体。
【0208】
項目15。中央クラウドインフラストラクチャオーケストレーションサービスは、
安全プランをユーザコンピュータのユーザインターフェイス上にレンダリングし、
安全プランの承認または不承認を受信するように構成されている、項目14に記載のコンピュータ読取可能記憶媒体。
【0209】
項目16。システムであって、
プロセッサと、
命令を記憶したメモリとを備え、命令は、プロセッサによって実行されると、システムを、
デプロイメント設定ファイルに少なくとも部分的に基づくリソースとそれぞれの動作とのリストを含む安全プランを受信し、
安全プランの承認の指示の受信に従って、
デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する動作を実行する準備を行い、
動作を安全プランと比較し、
動作が安全プランの一部であるという判断に従って、動作を実行し、
動作が安全プランの一部でないという判断に従って、
デプロイメントを停止し、
デプロイメントが安全プランに準拠していないという通知を送信するように構成されている、システム。
【0210】
項目17。動作は、デプロイメント設定ファイルに従うリソースのリストの少なくとも1つに対応する複数の動作のうちの1つであり、複数の動作の各動作は、少なくともデプロイメントが完了するまで、またはデプロイメントの停止が生じるまで、安全プランと比較される、項目16に記載のシステム。
【0211】
項目18。動作は、動作が実行される前にリソースのうちの1つで生じた動作変化に少なくとも部分的に基づく安全プランの一部でない、項目16のシステム。
【0212】
項目19。デプロイメント設定ファイルは、中央クラウドインフラストラクチャオーケストレーションサービスによって生成される、項目16に記載のシステム。
【0213】
項目20。通知は、中央クラウドインフラストラクチャオーケストレーションサービスのユーザに送信される、項目19に記載のシステム。
【0214】
項目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の実行ターゲットに送信することとを備える、方法。
【0215】
項目23。第2の安全プランが第1の安全プランのサブセットではないという判断に従って、
第2の安全プランが第1の安全プランのサブセットではないと示す通知と、
第2の安全プランに関連するリソースとそれぞれの動作との第2のリストとを提示するためのユーザインターフェイスを準備することをさらに備える、項目22に記載の方法。
【0216】
項目24。第2の安全プランのリソースとそれぞれの動作との第2のリストと、第1の安全プランのリソースとそれぞれの動作との第1のリストとの少なくとも1つの差を決定することをさらに備える、項目23に記載の方法。
【0217】
項目25。第2の安全プランのリソースとそれぞれの動作との第2のリストの他のすべての視覚的表現の上に、少なくとも1つの差を提示するためのユーザインターフェイスを準備することをさらに備える、項目24に記載の方法。
【0218】
項目26。第2の安全プランが第1の安全プランのサブセットであるかどうかを判断することは、複数のコンピュータプロセッサのうちの少なくとも1つが、第2の安全プランのリソースとそれぞれの動作との第2のリストの各リソースとそれぞれの動作とが、第1の安全プランのリソースとそれぞれの動作との第1のリストにリストされているかどうかを判断することを含む、項目22に記載の方法。
【0219】
項目27。第1の実行ターゲットは、クラウドインフラストラクチャオーケストレーションサービスの接続地域である、項目22に記載の方法。
【0220】
項目28。第2の実行ターゲットは、クラウドインフラストラクチャオーケストレーションサービスの切断地域である、項目27に記載の方法
項目29。切断地域は、切断地域にデプロイする命令を受信するように構成された環境を含み、切断地域はさらに、切断地域の外側でいかなるデータも送信しないように構成さ
れている、項目28に記載の方法。
【0221】
項目30。第2の安全プランは、第2の実行ターゲットでのデプロイメントのためのものである、項目28に記載の方法。
【0222】
項目31。第2の安全プランは、第1の安全プランに少なくとも部分的に基づく第1の実行ターゲットにおけるデプロイメントが成功したという判断にさらに従って、自動的に承認される、項目30に記載の方法。
【0223】
項目32。コンピュータ読取可能記憶媒体であって、コンピュータ読取可能記憶媒体は、コンピュータプロセッサによって実行されると、コンピュータプロセッサに命令を実行させる命令が書き込まれており、命令は、
第1の実行ターゲットおよび第2の実行ターゲットへのデプロイメントのための設定ファイルを受信することと、
第1の実行ターゲットの第1の安全プランを生成することとを含み、第1の安全プランは、設定ファイルに少なくとも部分的に基づく第1の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第1のリストを含み、命令はさらに、
第1の安全プランの承認を受信することと、
第2の実行ターゲットの第2の安全プランを生成することとを含み、第2の安全プランは、設定ファイルに少なくとも部分的に基づく第2の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第2のリストを含み、命令はさらに、
第2の安全プランが第1の安全プランのサブセットであるかどうかを判断することと、
第2の安全プランが第1の安全プランのサブセットであるという判断に従って、
第1の安全プランの承認に少なくとも部分的に基づいて、第2の安全プランを自動的に承認することと、
自動的に承認された第2の安全プランを第2の実行ターゲットに送信することとを含む、コンピュータ読取可能記憶媒体。
【0224】
項目33。命令はさらに、第2の安全プランが第1の安全プランのサブセットではないという判断に従って、
第2の安全プランが第1の安全プランのサブセットではないと示す通知と、
第2の安全プランに関連するリソースとそれぞれの動作との第2のリストとを提示するためのユーザインターフェイスを準備することを含む、項目32に記載のコンピュータ読取可能記憶媒体。
【0225】
項目34。命令はさらに、第2の安全プランのリソースとそれぞれの動作との第2のリストと、第1の安全プランのリソースとそれぞれの動作との第1のリストとの少なくとも1つの差を決定することを含む、項目33に記載のコンピュータ読取可能記憶媒体。
【0226】
項目35。命令はさらに、第2の安全プランのリソースとそれぞれの動作との第2のリストの他のすべての視覚的表現の上に、少なくとも1つの差を提示するためのユーザインターフェイスを準備することを含む、項目34に記載のコンピュータ読取可能記憶媒体。
【0227】
項目36。第2の実行ターゲットは、クラウドインフラストラクチャオーケストレーションサービスの切断地域であり、切断地域は、切断地域にデプロイする命令を受信するように構成された環境を含み、切断地域はさらに、切断地域の外側でいかなるデータも送信しないように構成されている、項目32に記載のコンピュータ読取可能記憶媒体。
【0228】
項目37。第2の安全プランは、第2の実行ターゲットにおけるデプロイメントのため
のものであり、第2の安全プランは、第1の安全プランに少なくとも部分的に基づく第1の実行ターゲットにおけるデプロイメントが成功したという判断にさらに従って、自動的に承認される、項目36に記載のコンピュータ読取可能記憶媒体。
【0229】
項目38。システムであって、
プロセッサと、
命令を格納したメモリとを備え、命令は、プロセッサによって実行されると、
第1の実行ターゲットおよび第2の実行ターゲットへのデプロイメントのための設定ファイルを受信し、
第1の実行ターゲットの第1の安全プランを生成するようにシステムを構成し、第1の安全プランは、設定ファイルに少なくとも部分的に基づく第1の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第1のリストを含み、命令はさらに、
第1の安全プランの承認を受信し、
第2の実行ターゲットの第2の安全プランを生成するようにシステムを構成し、第2の安全プランは、設定ファイルに少なくとも部分的に基づく第2の実行ターゲットにおけるデプロイメントに関連するリソースとそれぞれの動作との第2のリストを含み、命令はさらに、
第2の安全プランが第1の安全プランのサブセットであるかどうかを判断し、
第2の安全プランが第1の安全プランのサブセットであるという判断に従って、
第1の安全プランの承認に少なくとも部分的に基づいて、第2の安全プランを自動的に承認し、
自動的に承認された第2の安全プランを第2の実行ターゲットに送信するようにシステムを構成する、システム。
【0230】
項目39。システムは、第2の安全プランが第1の安全プランのサブセットではないという判断に従って、
第2の安全プランが第1の安全プランのサブセットではないと示す通知を提示し、
第2の安全プランに関連するリソースとそれぞれの動作との第2のリストを提示するためのユーザインターフェイスを準備するように構成されている、項目38に記載のシステム。
【0231】
項目40。システムはさらに、
第2の安全プランのリソースとそれぞれの動作との第2のリストと、第1の安全プランのリソースとそれぞれの動作との第1のリストとの少なくとも1つの差を決定し、
第2の安全プランのリソースとそれぞれの動作との第2のリストの他のすべての視覚的表現の上に、少なくとも1つの差を提示するためのユーザインターフェイスを準備するように構成されている、項目39に記載のシステム。
【0232】
項目41。第2の実行ターゲットは、クラウドインフラストラクチャオーケストレーションサービスの切断地域であり、切断地域は、切断地域にデプロイする命令を受信するように構成された環境を含み、切断地域はさらに、切断地域の外側でいかなるデータも送信しないように構成され、第2の安全プランは、第2の実行ターゲットにおけるデプロイメントのためのものであり、第2の安全プランは、第1の安全プランに少なくとも部分的に基づく第1の実行ターゲットにおけるデプロイメントが成功したという判断にさらに従って、自動的に承認される、項目38に記載のシステム。
【0233】
項目42。項目22~31のいずれか1つに記載のステップのための手段を備える装置。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
【手続補正書】
【提出日】2024-09-18
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
複数のコンピュータプロセッサのうちの少なくとも1つが、第1の実行ターゲットおよび第2の実行ターゲットへのクラウドインフラストラクチャリソースのデプロイメントのための設定ファイルを受信することと、
前記複数のコンピュータプロセッサのうちの少なくとも1つが、前記設定ファイルに少なくとも部分的に基づく前記第1の実行ターゲットにおけるデプロイメントについての第1の安全プランを生成することと、
前記複数のコンピュータプロセッサのうちの少なくとも1つが、前記設定ファイルに少なくとも部分的に基づく前記第2の実行ターゲットにおけるデプロイメントについての第2の安全プランを生成することと、
前記複数のコンピュータプロセッサのうちの少なくとも1つが、前記第2の安全プランが前記第1の安全プランのサブセットであるかどうかを判断することと、
前記第2の安全プランが前記第1の安全プランのサブセットであるという判断に従って、
前記複数のコンピュータプロセッサのうちの少なくとも1つが、前記第1の安全プランの承認に少なくとも部分的に基づいて、前記第2の安全プランを自動的に承認することと、
前記複数のコンピュータプロセッサのうちの少なくとも1つが、自動的に承認された前記第2の安全プランを前記第2の実行ターゲットに送信することと、
前記第2の安全プランが前記第1の安全プランのサブセットではないという判断に従って、
リソースと前記第2の実行ターゲットにおいて実行されることがスケジュールされたそれぞれの動作とのリストが、前記第1の安全プランにリストされていないという通知を、ユーザインターフェイスにおいて提供することと、
前記リソースとそれぞれの動作とのリストの、前記第2の実行ターゲットにおけるデプロイメントを停止することとを備える、方法。
【請求項2】
前記第1の実行ターゲットはクラウドインフラストラクチャオーケストレーションサービスの接続地域であり、前記第2の実行ターゲットは前記クラウドインフラストラクチャオーケストレーションサービスの切断地域である、請求項1に記載の方法。
【請求項3】
前記第1の安全プランは、前記設定ファイルに少なくとも部分的に基づく前記第1の実行ターゲットにおける前記デプロイメントに関連するリソースとそれぞれの動作との第1のリストを含む、請求項1または2に記載の方法。
【請求項4】
前記第2の安全プランは、前記設定ファイルに少なくとも部分的に基づく前記第2の実行ターゲットにおける前記デプロイメントに関連する前記リソースとそれぞれの動作とのリストを含む、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記第2の安全プランが前記第1の安全プランのサブセットであるという前記判断に従って、
承認された前記第2の安全プランを実行することにより、前記第2の安全プランに少なくとも部分的に基づいて前記第2の実行ターゲットにおいて前記リソースとそれぞれの動作とのリストをデプロイすることをさらに備える、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記第2の安全プランが前記第1の安全プランのサブセットではないという前記判断に従って、
前記リソースと前記第2の実行ターゲットにおいて実行されることがスケジュールされたそれぞれの動作とのリストの前記デプロイメントを停止することを無効にするためのオプションを、前記ユーザインターフェイスにおいて提供することと、
前記第2の安全プランに関連する前記リソースとそれぞれの動作とのリストを、前記ユーザインターフェイスにおいて提供することとをさらに備える、請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記第2の安全プランの前記リソースとそれぞれの動作とのリストと前記第1の安全プランのリソースとそれぞれの動作との第1のリストとの少なくとも1つの差を決定することをさらに備える、請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記第2の安全プランの前記リソースとそれぞれの動作とのリストの他の視覚的表現の上に前記少なくとも1つの差を提示するために前記ユーザインターフェイスを生成することをさらに備える、請求項7に記載の方法。
【請求項9】
前記第2の安全プランが前記第1の安全プランのサブセットであるかどうかを判断することは、前記複数のコンピュータプロセッサのうちの少なくとも1つが、前記第2の安全プランの前記リソースとそれぞれの動作とのリストのうちの各リソースとその動作とが、前記第1の安全プランのリソースとそれぞれの動作との第1のリストにリストされているかどうかを判断することを含む、請求項1~8のいずれか一項に記載の方法。
【請求項10】
前記第2の安全プランは、前記第1の実行ターゲットにおける前記デプロイメントが成功したという判断にさらに従って、自動的に承認される、請求項1~9のいずれか一項に記載の方法。
【請求項11】
ンピュータプロセッサに請求項1~10のいずれか1項に記載の方法を実行させる、プログラム。
【請求項12】
システムであって、
プロセッサと、
命令を格納したメモリとを備え、前記命令は、前記プロセッサによって実行されると、請求項1~10のいずれか1項に記載の方法を実行するように前記システムを構成する、システム。
【外国語明細書】