JP2018530070A - クラウドベースのコンピューティング環境上の基盤を構築、最適化及び実施するシステム及び方法 - Google Patents
クラウドベースのコンピューティング環境上の基盤を構築、最適化及び実施するシステム及び方法 Download PDFInfo
- Publication number
- JP2018530070A JP2018530070A JP2018517157A JP2018517157A JP2018530070A JP 2018530070 A JP2018530070 A JP 2018530070A JP 2018517157 A JP2018517157 A JP 2018517157A JP 2018517157 A JP2018517157 A JP 2018517157A JP 2018530070 A JP2018530070 A JP 2018530070A
- Authority
- JP
- Japan
- Prior art keywords
- cloud
- declaration
- infrastructure
- level
- level declaration
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
クラウドコンピューティング環境にコンピューティング基盤を構築し、最適化し、保守する方法が提供される。ユーザは、クラウド上で構築されることを意図する基盤の詳細を特定した高レベル宣言をクラウド環境オペレーティングシステムに提供する。クラウド環境オペレーティングシステムは、高レベル宣言を低レベル宣言に変換し、その後、所望の基盤を構築するためにクラウドによって実行される一連の命令に変換する。クラウド環境オペレーティングシステムはまた、ひとたびクラウド上に構築された基盤を継続的に監視し得る。クラウド環境オペレーティングシステムが、ユーザの元の仕様とクラウド上に構築された基盤との間の食い違いを通知した場合、オペレーティングシステムは、ユーザによって特定された基盤と一致するようにクラウド上の既存の基盤を修正する。
Description
本出願は、2015年10月5日に提出された米国仮出願第62/237,432号及び2016年7月20日に提出された米国特許出願第15/215,409号の優先権を主張し、参照によってその全体が援用される。
本開示は、一般に、クラウド環境オペレーティングシステム(OS)とインタフェースで接続するように構成されるプログラミング言語を用いて、ユーザが所望の基盤を特定することのできるクラウドベースのコンピューティング環境に関する。コンピューティング環境は複数のユーザを同時にサポートすることができ、各ユーザは1つ以上のクラウドベースの環境に対して操作を行うことができる。ひとたびコンピューティング基盤が特定されると、特定されたクラウドサービス内の所望の基盤を構築し、対面するクラウドコンピューティング環境の条件に基づいてその基盤を最適化し、所望の基盤仕様をリアルタイムに実施することができる。
クラウドコンピューティングは、個人、企業、及び他の組織が、環境を保守するために必要な(サーバやローカルコンピュータ等の)物理的なハードウェアへの投資を行うことなく、大規模かつ複雑なコンピューティング環境を実装し実行させることを可能にする。所望のコンピューティング環境に関連付けられるタスクを実行する物理的なマシンを維持及び保守するよりも、エンドユーザは代わりに、離れた場所で所望のコンピューティング環境を実施することができるコンピューティングの「クラウド(cloud)」に、コンピューティングを「アウトソース(outsource)」することができる。クラウドはインターネット上にホストされたリモートサーバのネットワークで構成され、リモートサーバのネットワークは、多数のエンドユーザの所望のコンピューティングニーズのそれぞれを実施するために多数のエンドユーザによって共有される。クラウド上のコンピューティング基盤を構築、最適化、及び保守するためのプロセスを単純化することは、有益なユーザ体験に繋がる。ユーザがクラウド上のロバストなコンピューティング基盤を構築する一方でシームレスに最適化及び保守できるようにすることは、クラウド上のコンピューティング環境を操作する間に発生し得る、衝突した基盤に関するフラストレーションを最小化することができる。
本開示は、クラウド環境オペレーティングシステムであって、ユーザ定義コンピューティング環境基盤仕様を受け付け、その基盤を構築するために必要なソフトウェアモジュールを生成及び最適化し、クラウド上のコンピューティング環境の動作中に、ユーザの仕様に従って基盤を保守するために継続的に動作するクラウド環境オペレーティングシステムに関する。動作中に特定された基盤を継続的に保守することにより、クラウド環境オペレーティングシステムは、時間経過に従って生じ得る基盤の衝突を最小化することができる。
クラウドコンピューティングシステム(「クラウド」)は、複数のクライアントによって共有される大規模な分散コンピュータであり、コンピューティング環境を仮想化するために用いられ、これによりローカルサイトにおける物理的な情報技術基盤を構築、保守しなければならない負荷からユーザを開放する。図1は、本開示の例示に従う、例示的なクラウドコンピューティング環境を示す。図1に図示されるクラウドコンピューティング環境は、クラウド106上にコンピューティング環境を実装することを望むユーザ102から始まる。ユーザ100の例は、ウェブサーバ、コンピュータネットワーク、コンピュータデータベース動作等のコンピューティング環境を実装するためにクラウドによって提供される分散コンピュータを利用することを望む、個人、企業、他の組織を含み得る。
クラウド106は、前述したように、所望のコンピューティング環境を実装することができるようにユーザにコンピュータ資源を提供する、1つ以上の分散化された汎用コンピュータである。Amazon(登録商標)ウェブサービス、マイクロソフトAzure(登録商標)、Google Cloud Platform(登録商標)などの商用クラウドコンピューティングサービスは、アプリケーション及びウェブサイトを構築及びホストし、データを格納及び分析することができる、(無料で)ユーザが利用可能な分散化されたコンピュータネットワーク(クラウド)の例である。クラウドは、スケーラブル、すなわちクラウドのコンピューティング資源を特定のユーザに需要に基づいて増加させ又は減少させることができることを意味する。ある例では、クラウド104は、ユーザ102によって運営されるウェブサイトを実施するために利用され得る。クラウド106は、ユーザ102によって定義される仕様に基づくウェブサーバを保守及び管理し得る。ウェブサイトへのウェブトラフィックが増加するにつれて、クラウドは当該ウェブサイトに割り当てられるコンピュータ資源を増加させて、トラフィックのうねりと一致させる。ウェブサイトへのウェブトラフィックが希薄である場合、クラウドは当該ウェブサイトに割り当てられるコンピュータ資源を減少させて、トラフィックの減少と一致させる。クラウドサービスプロバイダは、クラウドサービスプロバイダによって保守及び管理される「ユーザアカウント」においてコンピューティング環境を実施し得る。従って、第1のユーザのコンピューティング環境は第1のユーザアカウントにおいて実施され、一方で、第2のユーザのコンピューティング環境は第2のアカウントにおいて実施され得る。いくつかの実施形態では、単一のユーザは、実施及び保守することを望む別々のコンピューティング環境のための別々のユーザアカウントを保守することができる。クラウドサービスプロバイダは、これらの基盤サービスを介してユーザがCSPユーザアカウントにおける基盤「環境」を実装することができるようにする基盤サービスを提供する。例えば、VPC AWSサービスは、ユーザがVPCを生成し、修正し、そして削除することができるようにする。
クラウド環境オペレーティングシステム(OS)104は、ユーザ102とクラウドコンピューティング環境106との間の相互作用を円滑にし得る。従来のオペレーティングシステムは、単一のコンピュータのリソースとサービスとを管理する。反対に、クラウド環境オペレーティングシステムは、クラウドのリソースとサービスとを管理する。
クラウド環境オペレーティングシステムは、1つ以上のクラウド基盤の生成と動作とを自動化することができ、1つ以上のクラウドサービスプロバイダ上の計算インスタンスを生成及び破棄し得る。図1の例は、スタンドアローンのエンティティとして、クラウド環境オペレーティングシステムを示しているが、この例は限定しているものと考慮されるべきではない。クラウド環境オペレーティングシステムは、クライアントデバイス、サードパーティのサーバのような1つのサーバ上で運営され得、又は、コンピューティング環境を運営し実行するクラウドサービスプロバイダ上に置かれ得る。クラウド環境オペレーティングシステムは、別々に動作するとともに、コンピューティング基盤を構築し保守するための、任意のコマンドラインインタフェースを含むクラウドコンピューティング環境、又は、クラウドによって用いられるオペレーティングシステムと連動する。
クラウド環境オペレーティングシステム104は、単純化され簡単な方法でユーザが所望のコンピューティング基盤を特定できるようにすることで、ユーザ102とやり取りし得る。ある例では、ユーザ102は、クラウド環境オペレーティングシステム104とやり取りするために設計されたプログラミング言語を用いてコンピューティング環境を特定することができる。図2は、本開示の例示に従う、例示的なユーザクラウドに基づくコンピューティング環境の設計処理を示す。図2の例は、一度コンパイルされたものが更なる処理のためにクラウド環境オペレーティングシステム104に入力され得る、プログラミング言語を用いる。
ステップ202において、ユーザは、クラウドサービスプロバイダ上に構築される基盤の宣言を提供する。例として、ユーザは、予め定められたプログラミング言語を用いて、当該基盤内の構成要素、各構成要素の仕様、及び、当該基盤内の各構成要素が有する通信の種別を特定することができる。
ある例では、ステップ202において、ユーザがテキストベースの形式で簡単に基盤要素と関係とを表現できるようにするドメイン固有プログラミング言語を用いて、ユーザはクラウドサービスプロバイダ上で構築される基盤の宣言を提供し得る。更なる例では、ドメイン固有言語は、コメントを他のコンテンツと並べて表すことができ、従って、時の経過後もコンテンツを理解し保守できるようになる。更に、ドメイン固有言語は、クラウド環境オペレーティングシステムのユーザが自身で定義すること無く参照又は使用することができる、予め定められた概念(すなわちサービス種別)を含み得る。更に、ドメイン固有言語は、望む場合にはユーザがユーザ自身の種別、関数、及びモジュールを定義できるようにし得る。いくつかの例では、ドメイン固有言語は、クラウド基盤要素の定義を含むことが可能な予め定められたライブラリを含み得、これにより、コードを再利用することが可能になり、従って全体的な開発労力を低減することができる。最後に、1つ以上の上述の例では、上述のドメイン固有言語は、クラウドコンピューティング環境のユーザの仕様における問題を識別するように、コンパイルを介して実行することができる。これはフィードバックサイクルを短くすることに繋がり得る。これにより、コンピューティング環境を開発するためのクラウドベースのサービスを消費したりインスタンス化する前に、クラウドコンピューティング環境の仕様が有する問題点を確認することによって、潜在的にコストを低減し得る。
図3は、本開示の例示に従う、例示的なクラウドコンピューティング環境基盤を示す。図3に示すように、(A−Eでラベルされた)コンピュータ基盤の各構成要素は、当該基盤の一部である他の構成要素と通信可能に接続され得る。ある例では、構成要素Aはロードバランサであり、構成要素Bはサーバであり、そして、構成要素Eはデータベースであり得る。構成要素A、B及びEは、302、304及び306がラベル付けされた1つ以上の通信パスを介して、互いに通信可能に接続され得る。
図2に戻って参照すると、ステップ202において、ユーザはコンピュータ基盤の各々の構成要素を定義し得る。図3に関して上述した例では、ユーザは、ロードバランサA、サーバB及びデータベースEをプログラミング言語の構文を用いて定義することができる。ユーザ102は、基盤の各々の構成要素に対する仕様を提供し、どの構成要素が他の構成要素と通信することができるか(すなわちパス302、304及び306)、及びどの種別の通信が構成要素間で生じるかについての情報を提供し得る。
ステップ204において、ステップ202において生成されたユーザの宣言がコンパイルされ得る。コンパイラは、ユーザがステップ202において生成した宣言に意味を与える、複数のライブラリを含み得る。例えば、ライブラリは、アクセスされるクラウド環境オペレーティングシステムについての情報、構築される基盤上のクラウドサービス(すなわちGoogle、Amazon、Microsoft)、及び、プログラミング言語を用いて生成され得る異なる構成要素に関する情報を含み得る。
最後に、ステップ206において、コンパイルされたコードが更なる処理のためにクラウド環境オペレーティングシステム104に送信され得る。いくつかの例では、ステップ204においてコンパイルされ、ステップ206において送信されたコードは、クラウド106によって実行される準備のできた完全なプログラムではなく、むしろ、クラウド環境オペレーティングシステム104によって後に埋められる多数の省略を含むコードであり得る。この「省略」は、クラウド環境オペレーティングシステムによって後にパースされ、コンピューティング基盤の実装において用いられるクラウドサービスプロバイダに基づいて解決され得る。ステップ204においてコンパイルされたプログラムコードは、簡潔で機械フレンドリであるがよりユーザフレンドリでない構文を含み得る。このように、図2の例において用いられたプログラミング言語は、ユーザが便利で容易に使用できる構文で基盤を特定可能にするが、構文は、クラウド環境オペレーティングシステムによってパースされて用いられる機械フレンドリな構文に変換され得る。
プログラミング言語によって使用される構文は、一般的なものであり得る。換言すれば、構文は、AmazonやGoogleなどの何らかの特定のクラウドサービスプロバイダと動作するように作り込まれる必要はない。代わりに、ユーザは、一般的な基盤を特定することができ、更に後述するようにクラウド環境オペレーティングシステムは、一般的な宣言を、利用するクラウドサービスプロバイダによって理解される一連の命令に実装し得る。いくつかの実施形態では、クラウド環境オペレーティングシステムは、ユーザによって提供される基盤の仕様に基づいて、どのクラウドサービスプロバイダが基盤を実装するかを判定し得る。図3に戻って参照すると、ユーザは、構成要素Aと構成要素Cとの間の通信パスを特定し得る。しかしながら、宣言は、最終的に利用されるクラウドサービスを考慮に入れる必要はない。代わりに、クラウド環境オペレーティングシステムは、構成要素Aと構成要素Cとの間の通信パスの宣言を、クラウドサービスプロバイダによって理解される命令のセットに変更し得る。
ユーザはまた、最終的に利用されるクラウドサービスプロバイダと密接に関連する構文で基盤を宣言し得る。例えば、ユーザはそれらがMicrosoftのAzureプラットフォームの利用を望むことを知っている場合、ユーザは、AとCの間の通信パスの宣言を、Azureクラウドプラットフォームに特化した構文で生成し得る。
クラウドに対する基盤を生成することに加えて、ユーザはまた、以前に生成した基盤をライブラリとしてコーディングプラットフォームに保存し得る。ある例では、ユーザが過去にデータベースサーバの基盤を生成した場合、それらはライブラリとしてその基盤を保存し得る。そして将来には、ユーザが、新規のデータベースサーバを生成するよりもむしろデータベースサーバを利用するコンピューティング環境の生成を望む場合、ユーザは、データベースサーバ基盤が既に記録されたライブラリを単に呼び出し得、そして、現在生成されているコンピューティング環境において利用し得る。このようにして、ユーザは、クラウドベースのコンピューティングプラットフォーム上で将来の基盤の生成に適用することができる再使用可能な基盤を定義することができる。
図4は、本開示の例示に従う、例示的なクラウド環境オペレーティングシステムの処理を示す。ステップ402において、ユーザは、クラウドに構築することが望まれるコンピューティング基盤を記載する構成物を生成し得る。上述したように、構成物は、ドメインプログラミング言語で記述される宣言の形式で記述され得る。また上述したように、ひとたびユーザが構成物を記述すると、所望の基盤を生成するために構成物を処理するクラウド環境オペレーティングシステムと互換性を有するハードウェアフレンドリな言語に変更され得る。
ステップ404において、ユーザによって生成された構成物はハンドラに送信され得る。ハンドラは、構成物を捉えてバージョンを付し、ユーザによって作成された構成物が新規構築(new build)(すなわちスクラッチから新たなコンピュータ基盤が生成される)であるか又はクラウド上で既に動作している以前の既存の基盤を更新するものであるかを判定し得る。ひとたびハンドラが構成物を受信し上記判定を行うと、構成物をプランニング段階に送ることによってビルド処理をトリガし得る。
ステップ406において、構成物は、ハンドラ段階からプランナ段階に渡される。ここで、ユーザによって生成された構成物は、クラウドで最終的に基盤を構築するビルダへ送るための一連の命令に構成物を変換する一連のモジュール(詳細は後述する)を通して実行される。プランナ段階は、構成物の言語を解釈することに加えて、ユーザによって記載された構成物に任意のエラー或いは構造的な欠陥があるか否かを判定するために、構成物の動作を実行する。
プランナ406は、構成物から生成された命令をビルダに送信し得る。ステップ408において、ビルダは、命令を取り出して、特定されたクラウドにおいて、ユーザによって指定された基盤をビルドし、更新し、又は破棄し得る。
ステップ410において、クラウドは、ステップ408においてビルダによって特定された基盤を実行し得る。クラウドは特定された基盤を実行しており、任意のエラーが基盤の動作において発生し得るため、クラウドは、ハンドラステップ404での再ビルドをトリガするステップ412におけるウォッチャアルゴリズムに、エラーを生成した基盤の構成要素を通知し得る。
図5は、本開示の例示に従う、例示的なクラウド環境オペレーティングシステムの機能ブロック図を示す。図5に示す機能ブロック図は、いくつかの例において、図4に示した処理を実施し得る。
ブロック502は、図1から3に関して上述したようなクラウド環境オペレーティングシステムの動作の前に生じるユーザ処理を表し得る。前述したように、ユーザはユーザフレンドリな構文を用いて基盤を宣言することができ、これはクラウド環境オペレーティングシステムがクラウド上で所望の基盤を構築するために解釈することができる低レベル言語に変換され得る。ユーザ502は、それぞれが、1又は複数のクラウド上に実装される所望のコンピューティング基盤を指定する、一人のユーザ又は、いくつかの例では、複数のユーザを表し得る。
ブロック504はロビーサーバを表し得る。ロビーサーバ504は、1以上のユーザから低レベルのコード(或いはコマンドラインインタフェースとして知られる)を受信し、1以上のユーザからコードを受信する「ピッチ&キャッチ処理(pitch and catch process)」を実行してこれをアンパックし(すなわちクラウド環境オペレーティングシステムとインタフェースで接続するコードの一部を引き出す)、当該コードをコンパイルするために必要な任意のデータを(ストレージ部508において)記録し、ユーザ起点の情報をクラウド環境オペレーティングシステム内の適切なモジュールにルーティングし得る。更に、ロビーサーバ504は、特定ユーザのコマンドラインインタフェースと関連付けられる全ての処理を識別して、これらの処理に処理「タグ(tag)」を適用し得る。処理タグは、クラウド環境オペレーティングシステムが、システム内のどこで現在処理が実行されているかをトラックすることができるようにする。この機能は、以降でより説明されるようにスケジュール管理における単純化を可能にし得る。
ロビーサーバ504はまた、外部データのリクエストを扱い得る。リクエストが、クラウド環境オペレーティングシステムのランタイム環境に関するデータの所定の形式に対してクラウド環境オペレーティングシステムになされた場合、ロビーサーバ504は当該リクエストを受信することができ、それを実行し、取得したデータを適切なステークホルダ(stake holder)に送信する。
ユーザから受信したコードがひとたびロビーサーバ504によって処理されると、その後、処理されたコードは処理マネージャ506に送信され得る。処理マネージャ506は、クラウド環境オペレーティングシステムによって実行される各処理をリストする、処理テーブル510を管理し得る。換言すれば、特定のユーザによる、特定の基盤を構築する1セットの命令は、処理として扱われ得る。他のユーザによる、基盤を構築する他のセットの命令は、別々の処理として扱われ得る。処理マネージャ506は、処理IDを割り当てるとともにシステムを通じて処理IDを追跡することにより、別々のユーザのタスクのそれぞれをシステム内の処理として管理し得る。クラウド環境オペレーティングシステムによって実行される各ユーザの個々のタスクは別々のエンティティとして管理され得る。このように、処理マネージャ506は、クラウド環境オペレーティングシステムを、単一ユーザシステムとは対照的な「複数テナント(multi-tenant)」システムとして動作可能にし得る。換言すれば、複数のユーザは、クラウド環境オペレーティングシステムの単一インスタンスを介して複数のコンピューティング環境を実装し得る。クラウド環境オペレーティングシステムは、単一のユーザ又は単一のマシン専用であるものとするよりむしろ、複数のユーザからの基盤に対するリクエストを同時に取り扱い得る。
上述した機能に加えて、処理マネージャ506はまた、クラウド内の基盤の実装に対する状態確認を実行し得る。予め定められた繰り返し期間において、処理マネージャ506は、クラウド内の基盤の状態を判定するためにクエリマネージャ522に信号を送信することにより、処理を開始し得る。クエリマネージャ522は、ユーザの基盤の状態を判定し、クエリマネージャがユーザの基盤仕様がクラウド上に存在する基盤と一致しないと判定した場合には、行動を起こす(後に更に説明する)ためにインタプリタマネージャ512へコマンドを送信し得る。
処理マネージャは、処理がクラウド環境オペレーティングシステム上で実行されていること及びその処理が処理テーブル510上に記録されていることをひとたび把握すると、その後、これらの処理をインタプリタマネージャ512に送信して、最終的にクラウド上で実行可能な命令のセットに変換されるようにする。
インタプリタマネージャ512は、ユーザのコマンドラインインタフェース言語(すなわち高レベル表現)をクラウド環境オペレーティングシステムによって実行可能な一連の特定の命令に変換する責務を負い得る。インタプリタマネージャ512は、このことを、いくつかの例では、入力におけるリソーステーブルを受け付けて、ユーザから提供される構文内の任意の省略が埋められたリソーステーブルを生成する、一連のプランニングモジュール514を用いることにより達成することができる。インタプリタマネージャ512は、ユーザによって送信されるリソーステーブルを確認し、どの基盤ニーズがユーザによって宣言されたかに基づいて、一連のプランニングモジュール514に当該リソーステーブルを送信する。プランニングモジュール514は、ユーザのリソーステーブルを変更し、インタプリタマネージャ512に返信する。この処理は、リソーステーブルの最終的な正しいバージョンが完成するまで、他のプランニングモジュールと繰り返されてよい。その後インタプリタマネージャ512は、リソーステーブルを、クラウド上で構築されるコンピュータ基盤の低レベル宣言として参照され得る、機械用命令ファイルに変換する。低レベル宣言はその後、ビルダ/ドライバ516(後に詳細に説明される)に送信される。
図6は、本開示の例示に従う、例示的なプランニングモジュールの処理を示す。図5に関して前述したように、インタプリタマネージャ512は複数のプランニングモジュール602を含み得る。各プランニングモジュール602は、所望の基盤を特定するため、ユーザによって使用されるプログラミング構文において定義される特定の型を取り扱う。例として、基盤の一部としてロードバランサを要することをユーザが指定した場合、インタプリタマネージャ512内の特定のプランニングモジュールにロードバランサの型を取り扱うための権限が割り当てられ、当該特定のプランニングモジュールは、ユーザによるロードバランサの仕様を、クラウド上で実施される命令に変換し得る。
各プランニングモジュール602は、リソーステーブルが表現されたユーザ600によって受け取られたコードを入力において受けつけ、入力された際に存在したリソースの任意の省略を十分に補充し、より特定されたリソーステーブルを返答し得る。ある例では、ユーザからのコードは、第1のプランニングモジュール602に入力される。ここで第1のプランニングモジュール602は、その後第2のモジュールに入力されるリソーステーブルを返答する。第2のモジュールの出力はその後、第3のモジュール等に入力される。
ユーザのコマンドラインインタフェース言語をクラウド用の命令に変換するモジュールを使用することにより、クラウド環境オペレーティングシステム上で利用可能でなかった基盤の新たな型を定義することを容易にすることもできる。ある例では、ロードバランサがクラウド環境オペレーティングシステム上でサポートされる基盤の型でない場合、ユーザは単に、ロードバランサの宣言をサポートするユーザ側のライブラリを、プログラミング言語で生成することができる。クラウド環境オペレーティングシステムがこの「新規の」ロードバランサをサポートするために、ロードバランサの基盤の型を扱うためのロジックを提供する新規モジュールが生成され得る。このように、モジュール式のインタプリタマネージャ512により、新たな基盤の型を容易に追加することができる。
図6に戻り、複数のモジュール602は、ある例では、パイプライン化/スタック化された構成で配置され得る。前述したようにユーザ600によってコードが送信された場合、インタプリタマネージャ512は、個別にモジュールのそれぞれを通して実行することによってコードを処理し得る。換言すれば、コードがインタプリタマネージャ512の各モジュールを通過するまで、コードがモジュールからモジュールへ受け渡される。
コードがモジュール602を通して処理される順番は変わり得る。ある例では例えば、コードは、予め定められた順番で順次各モジュールを通して処理され得る。他の例では、コードは、モジュール602の間の依存関係に応じた順序で処理され得る。例えば、あるモジュールは、コードを処理可能になる前の他のモジュールの結果に依存し得る。この例において、他のモジュールの結果に依存するモジュールは、処理を開始する前に、終了させるために依存するモジュールの完了まで待機する。
ユーザによって提供されたコードがモジュール602を通して処理された後、最終的に、最終処理のための最終モジュール604へ送信される。最終モジュール604は、クラウドによって理解可能な一連の命令に変換するために用意されるリソーステーブルをファイナライズする責務を有し得る。最終的にモジュール602及び604のパイプラインは、ユーザによって提供される高レベル言語において以前に存在した抽象化(abstraction)及び省略(omission)のない低レベル言語を生成する。最後に、モジュール604はまた、抽象化及び省略の全てがモジュール602によって解決されたかどうかを判定し得る。全ての省略及び抽象化が解決されていないと判定された場合、最終モジュール604は、モジュールを通してリソーステーブルを戻し、リソーステーブルのそれぞれについて完了するまで処理を繰り返す。
モジュール602がユーザからの言語をクラウドによって実行可能なより低レベルの言語に解釈する言語解釈機能に加えて、各モジュールはまた、1つ以上のランタイム動作(run-time operation)を実行し得る。例として、モジュールはデバッグ動作を実行し得る。ユーザから高レベルの宣言を受信した場合、誤記や操作者のエラーによって引き起こされるようなコード内のエラーが存在しないことを確認するために、モジュールごとにコードを実行する予行演習(dry run)を、モジュールを通して実行し得る。エラーが発見された場合、インタプリタマネージャ512はそのエラーをユーザに通知し得る。
反対に、この性能を持たないクラウド環境オペレーティングシステムは、代わりに、ユーザからのコードをパースし、一連の命令をクラウドに渡す。ひとたびクラウドが一連の命令の実施を開始すると、その後はエラーに遭遇し、最終的に所望の基盤が生成されないかもしれない。ユーザは、ずっと後になるまでこのエラーに気づかず、時間とリソースの無駄遣いになるかもしれない。代わりに、クラウド環境オペレーティングシステムは、エラーが処理の更なる上流で修正され得るように、インタプリタマネージャ512を通じて、処理チェーン(process chain)の早期にこれらのエラーを検出し得る。
モジュールによって実行されるランタイム動作の他の例では、ユーザのコードにおける省略や抽象化を解決するために、各モジュールはクラウド環境オペレーティングシステムの外部のリソースと通信することができる。ある例におけるインスタンスについて、ユーザレベルコードが基盤の構成要素の最新バージョンを要求する場合、モジュール602は、最新の構成要素を提供するための外部の構成管理システムと通信することができる。
上述のプランニングモジュール514は、クラウド上に既に実装された後に、基盤の状態に応じてユーザの基盤を調整し得る。上述したように、処理マネージャ506は、予め定められた期間の後に、クエリマネージャ522を介して基盤の状態を問い合せ得る。その後、基盤の状態は、処理マネージャによってインタプリタマネージャ512へ送信され得る。インタプリタマネージャ512は、プランニングモジュール514を介して、ユーザによって特定された基盤の仕様と基盤の現在の状態とを比較し得る。ユーザによる基盤の仕様とクラウド上の現在の状態とに差がある場合、プランニングモジュール514は、ユーザが指定したものに従うように、クラウド上の基盤を修正するためのコードを生成し得る。
図7は、本開示の例示に従う、例示的な基盤保守の処理を示す。図7において概説される処理は、いくつかの例において、プランニングモジュール514を利用するインタプリタマネージャ512内に実装され得る。ステップS702において、インタプリタマネージャ512は、上述したように、ユーザからの基盤の宣言を受信し得る。
ステップS704において、インタプリタマネージャ512は、ユーザによって構築されるべき特定された基盤に基づいて、完了済みリソーステーブルを生成し得る。以下でより説明されるように、完了済みリソーステーブルは、クラウドで実行される一連の命令に変換されるように、ビルダ/ドライバ516に送信され得る。
ステップS706において、インタプリタビルダ512は、クエリマネージャ522から既に構築された基盤の状態を受信し得る。上述したように、クエリマネージャ522は、基盤の状態を返信するように、予め定められた繰り返し期間で処理マネージャ506によって促される。
ステップS708において、インタプリタマネージャ512は、クエリマネージャ522によって提供されるクラウド上の基盤の現在の状態と、S702においてユーザによって提供された基盤の宣言とを比較し得る。宣言された基盤と基盤の現在の状態との間に差がない場合、処理は、クエリマネージャ522からの次の状態更新を待つためにステップS706に戻り得る。
しかしながら、基板の現在の状態との間に差がある場合、インタプリタマネージャ512のプランニングモジュール514を用いて、クラウド上の基盤がユーザの元々の基盤の宣言を構成するように、ビルダ/ドライバ516を介してクラウドへ渡され得るリソーステーブルの更新を生成し得る。
宣言された基盤がユーザの宣言に従ってひとたび変更されると、処理は、クエリマネージャ522からの次の状態更新を待つためにステップS706に戻り得る。
このようにして、クラウド環境オペレーティングシステムは、クラウド上の所望の基盤を構築するだけでなく、ユーザが最初にあるべき構成を宣言した仕様から外れた基盤をもたらす経時的な構成の変化又は衝突がないことを確実にするために、基盤を継続的に確認する。この機能は、ユーザの基盤を実装する従来のクラウドオペレーティングシステムに対する改善を提供するが、経時的な構成の変化又は衝突のために基盤を監視しない。
図5に戻ると、ひとたびインタプリタマネージャ512が上述の処理を完了すると、完了済みリソーステーブルをビルダ/ドライバ516に送信し得る。ビルダ/ドライバ516は、完了済みリソーステーブルを、クラウドによって実行可能な一連の命令に変換する。ビルダ/ドライバ516は、上述のように、所望の基盤を生成し、又は基盤の所望の変更を生成するために、クラウド518のアプリケーションプログラムインタフェース(API)を用いて接続する。
他の例では、ロビーサーバ504、処理マネージャ506、ストレージ508、処理テーブル510、インタプリタマネージャ512、プランナモジュール514、ビルダドライバ516、及びクエリマネージャ522は、上述した構成要素が置かれる(以下の更なる説明を参照)、クラウド518、クラウド内に配置されるコンピューティング環境とインタフェースを有するシステム、又は、クラウドコンピューティング環境の外側の他のクラウドサービスプロバイダ、とインタフェースを有するよりもむしろ、クラウドコンピューティング環境内に実装され得る。いくつかの実施形態では、クラウドコンピューティング環境は、クラウドコンピューティング環境によって提供されるクラウドサービス内に生成される別々のアカウントを含むことができ、ユーザ特有のコンピューティング環境を実施する。
クラウド上の宣言された基盤の実装を監視することに加えて、図5に示すシステムはまた、ポリシー確認機能を実行し得る。例として、クラウドサービスが、ネットワークセキュリティ、通信プロトコル等のものに関する特定のポリシーを有し、ユーザの宣言した基盤がクラウドの何等かのポリシーに違反する場合、ユーザは、クラウド上に何等かの基盤を構築する前にそのような違反について通知を受けることができる。
上述の説明は、説明の目的のために、特定の実施形態を参照して説明された。しかしながら、上記説明は排他的であること又は開示された正確な形式に限定することを意図するものではない。上記技術を考慮した多くの修正及び変形が可能である。実施形態は、技術の原理及び実用的な利用を最もよく説明するために選択され、説明されたものである。これにより、当業者は、意図された特定の用途に適したものとして本技術と様々な修正を伴う様々な修正を最も有効に利用することができる。
上述したように、いくつかの例では、クラウド環境オペレーティングシステムは、クラウドサービスプロバイダ環境に実装され得る。図8は、本開示の例示に従う、例示的なクラウド環境オペレーティングシステムとのユーザの相互作用を示す。図8の例では、ユーザ860は、ユーザによって生成されるコンパイル済のドメイン固有言語ファイルの使用を通して、クラウド環境オペレーティングシステム808と相互作用を行い得る。ここで、クラウド環境オペレーティングシステムはコマンドラインインタフェース804で接続するように構成される。コンパイル済のドメイン固有言語はファイル802は、コマンドラインインタフェース804によって処理される1つ以上のコマンドを提供し得、ここで、コマンドラインインタフェース804はオペレーティングシステム808へ1つ以上のコマンドを発生する。
上述したように、クラウド環境オペレーティングシステム808は、上述の構成要素を参照することができ、構成要素は、コンピューティング基盤のユーザが提供した仕様に基づいて、1つ以上のクラウド基盤の生成と動作とを自動化することができ、1つ以上のクラウドサービスプロバイダ上の計算インスタンスを生成及び破棄することができる。また、上述したように、クラウド環境オペレーティングシステム808は、クラウドサービスプロバイダ内にデプロイ(deploy)され得る。
例として、図8では、クラウド環境オペレーティングシステム808は、クラウドサービスプロバイダ806にデプロイされ得る。特に、クラウド環境オペレーティングシステムは、特定のクラウドサービスプロバイダのユーザアカウント812内にデプロイされ得、自身のアカウントにアクセスするユーザは、このアカウントを通じて、クラウド環境オペレーティングシステム808を使用して、彼らのクラウドベースのコンピューティング環境を構築したり保守したりし得る。ある例では、クラウド環境オペレーティングシステムの構成要素は、ユーザアカウント812内の特定のクラウドコンピューティング環境において保守され得る。図8の例では、ユーザ860からクラウドコンピューティング環境の仕様を受信したクラウド環境オペレーティングシステムは、ユーザのクラウドサービスプロバイダアカウント812内でクラウドコンピューティング環境810を構築し保守し得る。
他の例では、単一のユーザは、そのクラウドサービスプロバイダアカウント上のクラウド環境オペレーティングシステムの単一のデプロイを用いて、複数のクラウドコンピューティング環境を管理し得る。図9は、単一のユーザが単一のデプロイを用いてクラウドサービスプロバイダ内で複数のコンピューティング環境を管理する例を示している。
図9の例では、図8に関する説明と実質的に同様に、ユーザ960は、ユーザによって生成されるコンパイル済のドメイン固有言語ファイルの使用を通して、クラウド環境オペレーティングシステム908と相互作用を行い得る。ここで、クラウド環境オペレーティングシステムはコマンドラインインタフェース904で接続するように構成される。いくつかの例では、DSLファイル902は、生成され、更新され、及び/又は管理される、対象となる基盤の宣言を含み、ユーザは、DSLファイルを引数として受け入れ得るコマンドラインインタフェース(CLI)に対してコマンドを発行してもよい(例えばfugue run ludwigfile or fugue update ProcessId)。そのようなコマンドは、クラウド環境オペレーティングシステムに対して発生される呼び出し(call)を生じさせ得、そして、入力としての引数を引き渡し得る。
図9の例では、クラウド環境オペレーティングシステム908の単一のインスタンスは、別々のクラウドコンピューティング環境910及び914を構築し保守するために用いられ得る。従ってユーザ960は、それぞれが別個のコンピューティング環境を特定するように用いられる、複数のドメイン固有言語ファイル902を生成し得る。クラウドサービスプロバイダ906内のユーザのクラウドサービスプロバイダアカウント912内にデプロイされるクラウド環境オペレーティングシステムのインスタンス908は、ユーザの仕様に基づいて、多数の環境を実装し、保守することができる。
ユーザは、単一のクラウドサービスプロバイダ内のクラウド環境オペレーティングシステムにアクセスするが、単一のクラウドサービスプロバイダのためのクラウド基盤を特定することに限定されなくてよく、代わりに、複数のクラウドサービスプロバイダに実装され得るクラウドコンピューティング環境を特定し得る。図10は、クラウド環境オペレーティングシステムの単一のインスタンスが複数のクラウドサービスプロバイダ内でクラウドコンピューティング環境を実施及び保守する、例示的なコンピューティング環境との相互作用を示している。
図10の例では、図8に関する説明と実質的に同様に、ユーザ1060は、ユーザによって生成されるコンパイル済のドメイン固有言語ファイル1002の使用を通して、クラウド環境オペレーティングシステム1008と相互作用を行い得る。DSlファイルは基盤構成要素を宣言してもよい。ユーザは、引数としてDSLファイルを受け入れ得るコマンドを発行するコマンドラインインタフェースを呼び出してもよい(例えばfugure run ludwigfile)。これにより、クラウド環境オペレーティングシステムに対する呼び出しを発行し、入力として引数を渡してもよい。
図10の例では、クラウド環境オペレーティングシステム1008はクラウドサービスプロバイダ1006のユーザアカウント1012内にデプロイされるが、クラウド環境オペレーティングシステムは、第2のクラウドサービスプロバイダ1022の第2のユーザアカウント1018内でコンピューティング環境を管理するためにも用いられ得る。例として、第1のクラウドサービスプロバイダはAmazon Web Servicesであり得るが、第2のクラウドサービスプロバイダはGoogleの Cloud Platformであり得る。このように、単一のユーザは、クラウドサービスプロバイダ内のクラウド環境オペレーティングシステムの単一のデプロイを用いて、複数のクラウドコンピューティングサービスプロバイダのプラットフォームにおいて格納され及び実施される複数のクラウドコンピューティング環境を管理し得る。
クラウドサービスプロバイダ内のクラウド環境オペレーティングシステムの単一のデプロイはまた、複数のコンピューティング環境を生成するために複数のユーザによって用いられ得る。図11は、本開示の例示に従う、例示的なクラウド環境オペレーティングシステムとの複数のユーザの相互作用を示す。図11の例では、複数のユーザ1160及び1162が、クラウドサービスプロバイダ1106によって提供される単一のユーザアカウント1112内にデプロイされた、クラウド環境オペレーティングシステム1108の単一のインスタンスと相互作用し得る。このコンテキストでは、複数のユーザ1160及び1162がドメイン固有言語ファイル1102及び118を生成し得、単一のデプロイ済のクラウド環境オペレーティングシステム1108は、コンパイル済のコードを用いて、クラウドサービスプロバイダ1106内の単一のユーザアカウント内に複数の環境1110及び1114を生成し得る。この種のユーザの相互作用は、複数の技術者がクラウドプロバイダ内にデプロイされる単一のオペレーティングシステムを用いて複数のクラウドコンピューティング環境を生成し得る、企業向けコンピューティング環境において利用し易いものであろう。
他のシナリオでは、複数のユーザに共通のデプロイ済みのクラウドコンピューティングシステムを共有させるよりも、複数のユーザが、複数のクラウドサービスプロバイダアカウントにデプロイされた複数のクラウド環境オペレーティングシステムを用いて、並列コンピューティング環境を動作させ得る。図12は、本開示の例示に従う、例示的なクラウド環境オペレーティングシステムとの複数のユーザの相互作用を示す。
図12の例では、第1のユーザ1260は、コマンドラインインタフェース1204を介してクラウド環境オペレーティングシステム1208にアクセス可能な、ドメイン固有言語ファイル1204を生成し得る。クラウド環境オペレーティングシステム1208は、クラウドサービスプロバイダ1206の第1のユーザアカウント1212内にデプロイされ得る。クラウド環境オペレーティングシステム1208を用いて、第1のユーザ1260は、クラウドサービスプロバイダ1206内に複数のクラウドコンピューティング環境1210及び1214を生成し得る。更に、ユーザ1260は、クラウド環境オペレーティングシステム1208を介して、クラウドサービスプロバイダ1226のユーザアカウント1228内にコンピューティング環境1230を生成し得る。
ユーザ1260の操作と並行して、追加ユーザ1262は、CLI1220経由でクラウド環境オペレーティングシステム1238を介してクラウドコンピューティング環境を生成することができるドメイン固有言語ファイル1218を生成し得る。クラウド環境オペレーティングシステム1238は、第2のクラウドサービスプロバイダ1226上にデプロイされ得、クラウドサービスプロバイダ1226内に配置される第2のユーザアカウント1232上にコンピューティング環境1234及び1236を生成するために用いられ得る。更に、クラウド環境オペレーティングシステム1238は、クラウドサービスプロバイダ1206内に配置される第2のユーザアカウント1222上にコンピューティング環境1224を生成するために用いられ得る。
図8−12の例に示すように、クラウドコンピューティングオペレーティングシステムは、特定のクラウドサービスプロバイダ内に実装されてもよいが、同一のクラウドサービスプロバイダ内に複数のコンピューティング環境を生成するために用いられ、又は、クラウド環境オペレーティングシステムが実施され得るクラウドコンピューティング環境の外部にあるクラウドサービスプロバイダ内のクラウドコンピューティング環境を生成するために用いられ得る。更に、複数のユーザは、共通にデプロイされたクラウド環境オペレーティングシステムを共有する、又は、クラウドコンピューティングシステムの別々のインスタンスを使用し得る。
本開示及び例は添付の図面を参照して十分に説明されたが、様々な変更及び修正が当業者にとって明らかであることに留意されるべきである。そのような変更及び修正は、本開示及び例の範囲内に含まれるものとして特許請求の範囲によって定義されるように理解されるべきである。
Claims (43)
- クラウドコンピューティングシステムに基盤を構築する方法であって、前記方法は、
前記クラウドコンピューティングシステム上に構築されるコンピューティング基盤の高レベル宣言を受信することと、
前記受信した高レベル宣言を1つ以上のプランニングモジュールへ送信することであって、各プランニングモジュールは、低レベル宣言を生成するために前記受信した宣言に情報を追加し、前記追加される情報は、前記受信した宣言と前記基盤が構築される前記クラウドコンピューティングシステムとに基づく、送信することと、
前記低レベル宣言を、前記クラウドコンピューティングシステムによって読取可能な1つ以上の命令に変換することと、
前記クラウドコンピューティングシステム上の前記1つ以上の命令を前記コンピューティング基盤を構築するために実行することと、を含む方法。 - 請求項1に記載の方法であって、各プランニングモジュールは、前記高レベル宣言に含まれる基盤の1つ以上の種別を処理するように構成される、方法。
- 請求項1に記載の方法であって、前記1つ以上のプランニングモジュールは、前記コンピューティング基盤が前記クラウドコンピューティングシステム上に構築される前に、前記受信した高レベル宣言のエラーを確認可能である、方法。
- 請求項1に記載の方法であって、前記低レベル宣言を前記クラウドコンピューティングシステムによって読取可能な1つ以上の命令に変換することは、前記クラウドコンピューティングシステムのアプリケーションプログラムインタフェースを用いて接続することを含む、方法。
- 請求項1に記載の方法であって、前記受信した高レベル宣言を1つ以上のプランニングモジュールへ送信することは、前記受信した高レベル宣言を、前記高レベル宣言に情報の第1のセットを追加する第1のプランニングモジュールへ送信し、その後、情報の前記第1のセットを有する前記高レベル宣言を、前記高レベル宣言に情報の第2のセットを追加する第2のプランニングモジュールへ送信することを含む、方法。
- 請求項5に記載の方法であって、更に、前記高レベル宣言を最終プランニングモジュールへ送信することであって、前記最終プランニングモジュールは、前記コンピューティング基盤が前記クラウドコンピューティングシステム上に構築されるように、前記プランニングモジュールのそれぞれが前記情報の追加に成功したかを判定する、送信することを含む、方法。
- 請求項1に記載の方法であって、前記方法は更に、
前記クラウドコンピューティングシステムの1つ以上のポリシーを前記生成された低レベル宣言に強制することを含む、方法。 - クラウドコンピューティングシステムに複数のユーザからの複数のコンピュータ基盤システムを構築する方法であって、前記方法は、
前記クラウドコンピューティングシステム上に構築される第1のコンピューティング基盤の第1の高レベル宣言を、第1のユーザから受信することと、
前記クラウドコンピューティングシステム上に構築される第2のコンピューティング基盤の第2の高レベル宣言を、第2のユーザから受信することと、
第1及び第2のコンピューティング基盤の前記第1の高レベル宣言及び前記第2の高レベル宣言を、前記クラウドコンピューティングシステムによって読取可能な1つ以上の命令に変換することと、
前記1つ以上の命令に基づいて、前記クラウド上に前記第1及び第2のコンピューティング基盤を構築することと、を含む方法。 - 請求項8に記載の方法であって、前記第1の高レベル宣言及び前記第2の高レベル宣言を変換することは、
前記受信した第1の高レベル宣言及び第2の高レベル宣言を1つ以上のプランニングモジュールへ送信することであって、各プランニングモジュールは、第1及び第2の低レベル宣言を生成するために前記受信した第1及び第2の宣言に情報を追加し、前記追加される情報は、前記受信した第1及び第2の宣言と前記第1及び第2のコンピューティング基盤が構築される前記クラウドコンピューティングシステムとに基づく、送信すること、を含む方法。 - 請求項9に記載の方法であって、更に、
前記第1の低レベル宣言及び前記第2の低レベル宣言を、前記クラウドコンピューティングシステムによって読取可能な前記1つ以上の命令に変換することを含む、方法。 - 請求項10に記載の方法であって、前記第1の低レベル宣言及び前記第2の低レベル宣言を変換することは、前記クラウドコンピューティングシステムのアプリケーションプログラムインタフェースを用いて接続することを含む、方法。
- 請求項9に記載の方法であって、前記受信した第1及び第2の高レベル宣言を、1つ以上のプランニングモジュールへ送信することは、前記受信した第1及び第2の高レベル宣言を、前記高レベル宣言に情報の第1のセットを追加する第1のプランニングモジュールへ送信し、その後、情報の前記第1のセットを有する前記第1及び第2の高レベル宣言を、前記第1及び第2の高レベル宣言に情報の第2のセットを追加する第2のプランニングモジュールへ送信することを含む、方法。
- 請求項12に記載の方法であって、更に、前記第1及び第2の高レベル宣言を最終プランニングモジュールへ送信することであって、前記最終プランニングモジュールは、前記第1及び第2のコンピューティング基盤が前記クラウドコンピューティングシステム上に構築されるように、前記プランニングモジュールのそれぞれが前記情報の追加に成功したかを判定する、送信することを含む、方法。
- 請求項8に記載の方法であって、前記1つ以上のプランニングモジュールは、前記コンピューティング基盤が前記クラウドコンピューティングシステム上に構築される前に、前記受信した高レベル宣言のエラーを確認可能である、方法。
- クラウドコンピューティングシステムにユーザ指定のコンピューティング基盤を構築する方法であって、前記方法は、
前記クラウドコンピューティングシステム上に構築されるコンピューティング基盤の高レベル宣言を受信することと、
前記高レベル宣言を、前記クラウドコンピューティングシステムによって読取可能な1つ以上の命令に変換することと、
前記1つ以上の命令に基づいて、前記クラウド上に前記コンピューティング基盤を構築することと、
前記構築したコンピューティング基盤を、前記コンピューティング基盤の前記受信した高レベル宣言と比較することと、
前記構築したコンピューティング基盤と前記コンピューティング基盤の前記受信した高レベル宣言との間の比較に基づいて、前記構築したコンピューティング基盤を修正することと、を含む方法。 - 請求項15に記載の方法であって、前記高レベル宣言を変換することは、
前記受信した高レベル宣言を1つ以上のプランニングモジュールへ送信することであって、各プランニングモジュールは、低レベル宣言を生成するために前記受信した高レベル宣言に情報を追加し、前記追加される情報は、前記受信した高レベル宣言と前記コンピューティング基盤が構築される前記クラウドコンピューティングシステムとに基づく、送信することを含む、方法。 - 請求項15に記載の方法であって、更に、
前記低レベル宣言を、前記クラウドコンピューティングシステムによって読取可能な前記1つ以上の命令に変換することを含む、方法。 - 請求項15に記載の方法であって、前記構築したコンピューティング基盤を、前記コンピューティング基盤の前記受信した高レベル宣言と比較することは、
前記構築した基盤の状態を受信することと、
前記構築した基盤の前記状態と、前記高レベル宣言に含まれる前記基盤の仕様とを比較することと、含む方法。 - 請求項18に記載の方法であって、前記構築したコンピューティング基盤を修正することは、
前記構築した基盤になされる1つ以上の修正の低レベル宣言を生成することと、
前記1つ以上の修正の前記低レベル宣言を、前記クラウドコンピューティングシステムによって実行される1つ以上の命令に変換することとを含む、方法。 - 請求項15に記載の方法であって、前記比較することは、予め定められた繰り返し期間においてなされる、方法。
- 請求項15に記載の方法であって、更に、
前記クラウドコンピューティングシステムの1つ以上のポリシーを前記生成した低レベル宣言に強制することを含む、方法。 - 1つ以上のプログラムを格納する非一時的コンピュータ可読媒体であって、前記1つ以上のプログラムは、クラウドベースのコンピューティングシステムにコンピューティング基盤を構築する命令を生成するための命令を含み、携帯用電子デバイスで実行されると、前記デバイスに、
前記クラウドコンピューティングシステム上に構築されるコンピューティング基盤の高レベル宣言を受信させ、
前記受信した高レベル宣言を1つ以上のプランニングモジュールへ送信させ、各プランニングモジュールは、低レベル宣言を生成するために前記受信した宣言に情報を追加し、前記追加される情報は、前記受信した宣言と前記基盤が構築される前記クラウドコンピューティングシステムとに基づき、
前記低レベル宣言を、前記クラウドコンピューティングシステムによって読取可能な1つ以上の命令に変換させ、
前記クラウドコンピューティングシステム上の前記1つ以上の命令を前記コンピューティング基盤を構築するために実行させる、非一時的コンピュータ可読媒体。 - 請求項22に記載の非一時的コンピュータ可読媒体であって、各プランニングモジュールは、前記高レベル宣言に含まれる基盤の1つ以上の種別を処理するように構成される、非一時的コンピュータ可読媒体。
- 請求項22に記載の非一時的コンピュータ可読媒体であって、前記1つ以上のプランニングモジュールは、前記コンピューティング基盤が前記クラウドコンピューティングシステム上に構築される前に、前記受信した高レベル宣言のエラーを確認可能である、非一時的コンピュータ可読媒体。
- 請求項22に記載の非一時的コンピュータ可読媒体であって、前記低レベル宣言を前記クラウドコンピューティングシステムによって読取可能な1つ以上の命令に変換することは、前記クラウドコンピューティングシステムのアプリケーションプログラムインタフェースを用いて接続することを含む、非一時的コンピュータ可読媒体。
- 請求項22に記載の非一時的コンピュータ可読媒体であって、前記受信した高レベル宣言を1つ以上のプランニングモジュールへ送信することは、前記受信した高レベル宣言を、前記高レベル宣言に情報の第1のセットを追加する第1のプランニングモジュールへ送信し、その後、情報の前記第1のセットを有する前記高レベル宣言を、前記高レベル宣言に情報の第2のセットを追加する第2のプランニングモジュールへ送信することを含む、非一時的コンピュータ可読媒体。
- 請求項26に記載の非一時的コンピュータ可読媒体であって、更に、前記高レベル宣言を最終プランニングモジュールへ送信することであって、前記最終プランニングモジュールは、前記コンピューティング基盤が前記クラウドコンピューティングシステム上に構築されるように、前記プランニングモジュールのそれぞれが前記情報の追加に成功したかを判定する、送信することを含む、非一時的コンピュータ可読媒体。
- 請求項26に記載の非一時的コンピュータ可読媒体であって、前記デバイスは、更に、
前記クラウドコンピューティングシステムの1つ以上のポリシーを前記生成した低レベル宣言に強制する、非一時的コンピュータ可読媒体。 - 1つ以上のプログラムを格納する非一時的コンピュータ可読媒体であって、前記1つ以上のプログラムは、クラウドコンピューティングシステムに複数のユーザからの複数のコンピュータ基盤システムを構築する命令を含み、携帯用電子デバイスで実行されると、前記デバイスに、
前記クラウドコンピューティングシステム上に構築される第1のコンピューティング基盤の第1の高レベル宣言を、第1のユーザから受信させ、
前記クラウドコンピューティングシステム上に構築される第2のコンピューティング基盤の第2の高レベル宣言を、第2のユーザから受信させ、
第1及び第2のコンピューティング基盤の前記第1の高レベル宣言及び前記第2の高レベル宣言を、前記クラウドコンピューティングシステムによって読取可能な1つ以上の命令に変換させ、
前記1つ以上の命令に基づいて、前記クラウド上に前記第1及び第2のコンピューティング基盤を構築させる、非一時的コンピュータ可読媒体。 - 請求項29に記載の非一時的コンピュータ可読媒体であって、前記第1の高レベル宣言及び前記第2の高レベル宣言を変換することは、
前記受信した第1の高レベル宣言及び第2の高レベル宣言を1つ以上のプランニングモジュールへ送信することであって、各プランニングモジュールは、第1及び第2の低レベル宣言を生成するために前記受信した第1及び第2の宣言に情報を追加し、前記追加される情報は、前記受信した第1及び第2の宣言と前記第1及び第2のコンピューティング基盤が構築される前記クラウドコンピューティングシステムとに基づく、送信すること、を含む非一時的コンピュータ可読媒体。 - 請求項30に記載の非一時的コンピュータ可読媒体であって、前記デバイスは、更に、
前記第1の低レベル宣言及び前記第2の低レベル宣言を、前記クラウドコンピューティングシステムによって読取可能な前記1つ以上の命令に変換する、非一時的コンピュータ可読媒体。 - 請求項31に記載の非一時的コンピュータ可読媒体であって、前記第1の低レベル宣言及び前記第2の低レベル宣言を変換することは、前記クラウドコンピューティングシステムのアプリケーションプログラムインタフェースを用いて接続することを含む、非一時的コンピュータ可読媒体。
- 請求項30に記載の非一時的コンピュータ可読媒体であって、前記受信した第1及び第2の高レベル宣言を、1つ以上のプランニングモジュールへ送信することは、前記受信した第1及び第2の高レベル宣言を、前記高レベル宣言に情報の第1のセットを追加する第1のプランニングモジュールへ送信し、その後、情報の前記第1のセットを有する前記第1及び第2の高レベル宣言を、前記第1及び第2の高レベル宣言に情報の第2のセットを追加する第2のプランニングモジュールへ送信することを含む、非一時的コンピュータ可読媒体。
- 請求項33に記載の非一時的コンピュータ可読媒体であって、前記デバイスは、更に、
前記第1及び第2の高レベル宣言を最終プランニングモジュールへ送信し、前記最終プランニングモジュールは、前記第1及び第2のコンピューティング基盤が前記クラウドコンピューティングシステム上に構築されるように、前記プランニングモジュールのそれぞれが前記情報の追加に成功したかを判定する、非一時的コンピュータ可読媒体。 - 請求項29に記載の非一時的コンピュータ可読媒体であって、前記1つ以上のプランニングモジュールは、前記コンピューティング基盤が前記クラウドコンピューティングシステム上に構築される前に、前記受信した高レベル宣言のエラーを確認可能である、非一時的コンピュータ可読媒体。
- 1つ以上のプログラムを格納する非一時的コンピュータ可読媒体であって、前記1つ以上のプログラムは、クラウドコンピューティングシステムにユーザ指定のコンピューティング基盤を実装する命令を含み、携帯用電子デバイスで実行されると、前記デバイスに、
前記クラウドコンピューティングシステム上に構築されるコンピューティング基盤の高レベル宣言を受信させ、
前記高レベル宣言を、前記クラウドコンピューティングシステムによって読取可能な1つ以上の命令に変換させ、
前記1つ以上の命令に基づいて、前記クラウド上に前記コンピューティング基盤を構築させ、
前記構築したコンピューティング基盤を、前記コンピューティング基盤の前記受信した高レベル宣言と比較させ、
前記構築したコンピューティング基盤と前記コンピューティング基盤の前記受信した高レベル宣言との間の比較に基づいて、前記構築したコンピューティング基盤を修正させる、非一時的コンピュータ可読媒体。 - 請求項36に記載の非一時的コンピュータ可読媒体であって、前記高レベル宣言を変換することは、
前記受信した高レベル宣言を1つ以上のプランニングモジュールへ送信することであって、各プランニングモジュールは、低レベル宣言を生成するために前記受信した高レベル宣言に情報を追加し、前記追加される情報は、前記受信した高レベル宣言と前記コンピューティング基盤が構築される前記クラウドコンピューティングシステムとに基づく、送信することを含む、非一時的コンピュータ可読媒体。 - 請求項36に記載の非一時的コンピュータ可読媒体であって、前記デバイスは、更に、
前記低レベル宣言を、前記クラウドコンピューティングシステムによって読取可能な前記1つ以上の命令に変換する、非一時的コンピュータ可読媒体。 - 請求項36に記載の非一時的コンピュータ可読媒体であって、前記構築したコンピューティング基盤を、前記コンピューティング基盤の前記受信した高レベル宣言と比較することは、
前記構築した基盤の状態を受信することと、
前記構築した基盤の前記状態と、前記高レベル宣言に含まれる前記基盤の仕様とを比較することと、含む非一時的コンピュータ可読媒体。 - 請求項39に記載の非一時的コンピュータ可読媒体であって、前記構築したコンピューティング基盤を修正することは、
前記構築した基盤になされる1つ以上の修正の低レベル宣言を生成することと、
前記1つ以上の修正の前記低レベル宣言を、前記クラウドコンピューティングシステムによって実行される1つ以上の命令に変換することとを含む、非一時的コンピュータ可読媒体。 - 請求項36に記載の非一時的コンピュータ可読媒体であって、前記比較することは、予め定められた繰り返し期間においてなされる、非一時的コンピュータ可読媒体。
- 請求項36に記載の非一時的コンピュータ可読媒体であって、前記デバイスは、更に、
前記クラウドコンピューティングシステムの1つ以上のポリシーを前記生成した低レベル宣言に強制する、非一時的コンピュータ可読媒体。 - コンピューティング基盤の宣言におけるエラーを確認する方法であって、前記方法は、
前記クラウドコンピューティングシステム上に構築されるコンピューティング基盤の高レベル宣言を受信することと、
前記受信した高レベル宣言を1つ以上のプランニングモジュールへ送信することであって、前記プランニングモジュールは、1つ以上のエラーが前記高レベル宣言に存在するかを判定する、送信することと、
前記高レベル宣言において1つ以上のエラーが存在すると判定された場合に、前記高レベル宣言の生成者に通知することと、
前記高レベル宣言がエラーを含まないと判定された場合に、前記コンピューティング基盤を生成するために、前記クラウドコンピューティングシステム上で実行される1つ以上の命令を生成することと、を含む方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562237432P | 2015-10-05 | 2015-10-05 | |
US62/237,432 | 2015-10-05 | ||
US15/215,409 US10341194B2 (en) | 2015-10-05 | 2016-07-20 | System and method for building, optimizing, and enforcing infrastructure on a cloud based computing environment |
US15/215,409 | 2016-07-20 | ||
PCT/US2016/055372 WO2017062384A1 (en) | 2015-10-05 | 2016-10-04 | System and method for building, optimizing, and enforcing infrastructure on a cloud based computing environment |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018530070A true JP2018530070A (ja) | 2018-10-11 |
Family
ID=58448101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018517157A Pending JP2018530070A (ja) | 2015-10-05 | 2016-10-04 | クラウドベースのコンピューティング環境上の基盤を構築、最適化及び実施するシステム及び方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10341194B2 (ja) |
EP (1) | EP3360040A1 (ja) |
JP (1) | JP2018530070A (ja) |
KR (1) | KR20180063240A (ja) |
CN (1) | CN108292240A (ja) |
AU (1) | AU2016333809A1 (ja) |
CA (1) | CA2999770A1 (ja) |
IL (1) | IL258218A (ja) |
WO (1) | WO2017062384A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10691514B2 (en) | 2017-05-08 | 2020-06-23 | Datapipe, Inc. | System and method for integration, testing, deployment, orchestration, and management of applications |
JP6940751B2 (ja) * | 2017-05-10 | 2021-09-29 | 富士通株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
US10379934B2 (en) | 2017-07-31 | 2019-08-13 | Oracle International Corporation | System and method of providing post error analysis for instances of applications in cloud service environments on a per user basis |
US20190050210A1 (en) * | 2017-08-11 | 2019-02-14 | Fugue, Inc. | System and method for providing cloud operating system verifications for a domain-specific language for cloud services infrastructure |
WO2019150983A1 (ja) * | 2018-01-31 | 2019-08-08 | ソニー株式会社 | 撮像装置、および撮像方法 |
JP2020030743A (ja) * | 2018-08-24 | 2020-02-27 | 株式会社Idcフロンティア | ホスティングシステムおよびホスティング環境製造処理装置 |
US10872029B1 (en) | 2018-11-21 | 2020-12-22 | Candid Partners, LLC | System, apparatus and method for deploying infrastructure to the cloud |
US10990370B1 (en) | 2018-11-21 | 2021-04-27 | Candid Labs, Inc. | System, apparatus and method for deploying infrastructure to the cloud |
US10785128B1 (en) | 2018-11-21 | 2020-09-22 | Candid Partners, LLC | System, apparatus and method for deploying infrastructure to the cloud |
KR102257012B1 (ko) | 2019-01-14 | 2021-05-27 | (주) 익투스지노믹스 | 다양한 클라우드에 적용 가능한 대용량 데이터 처리용 분산 처리 시스템의 설치방법 |
KR102329222B1 (ko) * | 2019-04-04 | 2021-11-22 | 한국전자통신연구원 | 에지 컴퓨팅 장치 |
US11516091B2 (en) | 2019-04-22 | 2022-11-29 | At&T Intellectual Property I, L.P. | Cloud infrastructure planning assistant via multi-agent AI |
US11216265B1 (en) * | 2020-07-02 | 2022-01-04 | Ryan L. Hornbeck | Repeatable security hardening for virtualized hardware and infrastructure |
US11570263B2 (en) * | 2021-05-05 | 2023-01-31 | Capital One Services, Llc | Identifying outdated cloud computing services |
US11954504B2 (en) * | 2022-07-14 | 2024-04-09 | Capital One Services, Llc | Systems and methods to convert information technology infrastructure to a software-defined system |
Family Cites Families (106)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5444850A (en) | 1993-08-04 | 1995-08-22 | Trend Micro Devices Incorporated | Method and apparatus for controlling network and workstation access prior to workstation boot |
US5832492A (en) | 1995-09-05 | 1998-11-03 | Compaq Computer Corporation | Method of scheduling interrupts to the linked lists of transfer descriptors scheduled at intervals on a serial bus |
US6199203B1 (en) | 1998-07-21 | 2001-03-06 | Hewlett-Packard Company | Memory management techniques for on-line replaceable software |
US6501995B1 (en) | 1999-06-30 | 2002-12-31 | The Foxboro Company | Process control system and method with improved distribution, installation and validation of components |
US7185196B1 (en) | 2000-09-15 | 2007-02-27 | Atheros Communications, Inc. | Key caching system |
US7284274B1 (en) | 2001-01-18 | 2007-10-16 | Cigital, Inc. | System and method for identifying and eliminating vulnerabilities in computer software applications |
US20020178375A1 (en) | 2001-01-31 | 2002-11-28 | Harris Corporation | Method and system for protecting against malicious mobile code |
US7266687B2 (en) | 2001-02-16 | 2007-09-04 | Motorola, Inc. | Method and apparatus for storing and distributing encryption keys |
US7350207B2 (en) | 2001-05-25 | 2008-03-25 | Tellabs Operations, Inc. | Rule-based system and method for downloading computer software over a network |
US7363249B1 (en) | 2001-06-04 | 2008-04-22 | Boesjes Eimar M | Multiply-integrated system for product inventory, sales, and distribution |
US8205193B2 (en) | 2001-06-11 | 2012-06-19 | Hewlett-Packard Development Company, L.P. | Runtime updating of virtual machine class files |
US7188163B2 (en) | 2001-11-26 | 2007-03-06 | Sun Microsystems, Inc. | Dynamic reconfiguration of applications on a server |
US20030115123A1 (en) | 2001-12-14 | 2003-06-19 | Lang David A. | Network and method for delivering active investing services for multiple subscribers |
US20030147369A1 (en) | 2001-12-24 | 2003-08-07 | Singh Ram Naresh | Secure wireless transfer of data between different computing devices |
US7292691B2 (en) | 2002-01-02 | 2007-11-06 | Sony Corporation | Progressive video refresh slice detection |
US7486678B1 (en) | 2002-07-03 | 2009-02-03 | Greenfield Networks | Multi-slice network processor |
AU2003285634A1 (en) | 2002-12-16 | 2004-07-09 | Koninklijke Philips Electronics N.V. | Method and apparatus to encrypt video data streams |
US7716736B2 (en) | 2003-04-17 | 2010-05-11 | Cybersoft, Inc. | Apparatus, methods and articles of manufacture for computer virus testing |
US7134121B2 (en) | 2003-06-12 | 2006-11-07 | International Business Machines Corporation | Installing fixes based on usage |
US7149897B2 (en) | 2003-07-25 | 2006-12-12 | The United States Of America As Represented By The Secretary Of The Navy | Systems and methods for providing increased computer security |
US7275213B2 (en) | 2003-08-11 | 2007-09-25 | Ricoh Company, Ltd. | Configuring a graphical user interface on a multifunction peripheral |
US7533377B2 (en) | 2003-09-29 | 2009-05-12 | International Business Machines Corporation | Achieving autonomic behavior in an operating system via a hot-swapping mechanism |
US7735078B1 (en) | 2003-10-30 | 2010-06-08 | Oracle America, Inc. | System and method for software patching for cross-platform products |
US7848332B2 (en) | 2004-11-15 | 2010-12-07 | Cisco Technology, Inc. | Method and apparatus for classifying a network protocol and aligning a network protocol header relative to cache line boundary |
US7472079B2 (en) | 2005-01-12 | 2008-12-30 | International Business Machines Corporation | Computer implemented method for automatically controlling selection of a grid provider for a grid job |
US7571120B2 (en) | 2005-01-12 | 2009-08-04 | International Business Machines Corporation | Computer implemented method for estimating future grid job costs by classifying grid jobs and storing results of processing grid job microcosms |
US8800042B2 (en) | 2005-05-16 | 2014-08-05 | Hewlett-Packard Development Company, L.P. | Secure web application development and execution environment |
CN1881908A (zh) | 2005-06-13 | 2006-12-20 | 华为技术有限公司 | 测量mpls网络性能参数的方法 |
US20070016961A1 (en) | 2005-07-11 | 2007-01-18 | Vogler Dean H | Application revocation using an application revocation list in a portable electronic device |
US7650492B2 (en) | 2005-07-19 | 2010-01-19 | Microsoft Corporation | Automatic update of computer-readable components to support a trusted environment |
US20070074187A1 (en) | 2005-09-29 | 2007-03-29 | O'brien Thomas E | Method and apparatus for inserting code fixes into applications at runtime |
US20070091926A1 (en) | 2005-10-21 | 2007-04-26 | Apostolopoulos John G | Method for optimizing portions of data from a plurality of data streams at a transcoding node |
US7756834B2 (en) | 2005-11-03 | 2010-07-13 | I365 Inc. | Malware and spyware attack recovery system and method |
US7809670B2 (en) | 2005-12-09 | 2010-10-05 | Microsoft Corporation | Classification of malware using clustering that orders events in accordance with the time of occurance |
US7761503B2 (en) | 2006-01-06 | 2010-07-20 | Microsoft Corporation | Peer distribution point feature for system management server |
US7697529B2 (en) | 2006-02-28 | 2010-04-13 | Cisco Technology, Inc. | Fabric channel control apparatus and method |
US8069208B2 (en) | 2006-04-21 | 2011-11-29 | Microsoft Corporation | Peer-to-peer buddy request and response |
US20080022374A1 (en) | 2006-06-29 | 2008-01-24 | Research In Motion Limited | System and method for securely communicating with a server |
WO2008007456A1 (fr) | 2006-07-13 | 2008-01-17 | Seiko Epson Corporation | Système de réseau, ordinateur, procédé de mise en œuvre d'applications pour un système de réseau, procédé d'exécution d'applications pour un système de réseau, et programme |
IL177756A (en) | 2006-08-29 | 2014-11-30 | Lior Frenkel | Encryption-based protection against attacks |
US8234641B2 (en) | 2006-10-17 | 2012-07-31 | Managelq, Inc. | Compliance-based adaptations in managed virtual systems |
US7809955B2 (en) | 2006-10-17 | 2010-10-05 | Blue Ridge Networks, Inc. | Trustable communities for a computer system |
US8218539B2 (en) | 2006-10-18 | 2012-07-10 | Broadcom Corporation | Flexible packet field processor |
WO2008047351A2 (en) | 2006-10-19 | 2008-04-24 | Checkmarx Ltd. | Locating security vulnerabilities in source code |
IL180748A (en) | 2007-01-16 | 2013-03-24 | Waterfall Security Solutions Ltd | Secure archive |
US8011010B2 (en) | 2007-04-17 | 2011-08-30 | Microsoft Corporation | Using antimalware technologies to perform offline scanning of virtual machine images |
US20090076628A1 (en) | 2007-09-18 | 2009-03-19 | David Mark Smith | Methods and apparatus to upgrade and provide control redundancy in process plants |
US8332838B2 (en) | 2007-11-14 | 2012-12-11 | Continental Automotive Systems, Inc. | Systems and methods for updating device software |
EP2229625B1 (en) | 2007-12-13 | 2011-08-31 | Telefonaktiebolaget LM Ericsson (publ) | Updating firmware of an electronic device |
AU2009201191A1 (en) | 2008-03-26 | 2009-10-15 | Aristocrat Technologies Australia Pty Limited | A gaming machine |
US9189628B2 (en) | 2008-04-10 | 2015-11-17 | Adobe Systems Incorporated | Data driven system for responding to security vulnerability |
US9069599B2 (en) | 2008-06-19 | 2015-06-30 | Servicemesh, Inc. | System and method for a cloud computing abstraction layer with security zone facilities |
US9842004B2 (en) | 2008-08-22 | 2017-12-12 | Red Hat, Inc. | Adjusting resource usage for cloud-based networks |
US8238256B2 (en) | 2008-09-08 | 2012-08-07 | Nugent Raymond M | System and method for cloud computing |
DE102008061480A1 (de) | 2008-10-06 | 2010-04-08 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Austauschen einer Komponente eines Computersystems |
US8051287B2 (en) | 2008-10-15 | 2011-11-01 | Adobe Systems Incorporated | Imparting real-time priority-based network communications in an encrypted communication session |
US8208494B2 (en) | 2008-12-03 | 2012-06-26 | Gigamon Llc | Intelligent packet slicing |
JP5564187B2 (ja) * | 2009-02-25 | 2014-07-30 | ルネサスエレクトロニクス株式会社 | マイクロコントローラおよび自動車電子制御装置 |
US9046995B2 (en) | 2009-04-09 | 2015-06-02 | On24, Inc. | Editing of two dimensional software consumables within a complex three dimensional spatial application and method |
US8244559B2 (en) | 2009-06-26 | 2012-08-14 | Microsoft Corporation | Cloud computing resource broker |
US20110119104A1 (en) | 2009-11-17 | 2011-05-19 | Xerox Corporation | Individualized behavior-based service bundling and pricing |
US9274848B2 (en) | 2009-12-03 | 2016-03-01 | International Business Machines Corporation | Optimizing cloud service delivery within a cloud computing environment |
US8615584B2 (en) | 2009-12-03 | 2013-12-24 | International Business Machines Corporation | Reserving services within a cloud computing environment |
US9639347B2 (en) | 2009-12-21 | 2017-05-02 | International Business Machines Corporation | Updating a firmware package |
WO2011091056A1 (en) | 2010-01-19 | 2011-07-28 | Servicemesh, Inc. | System and method for a cloud computing abstraction layer |
US20120066672A1 (en) | 2010-03-16 | 2012-03-15 | Salesforce.Com, Inc. | Systems and Methods for Implementing Upgradeable Subscriber-Controlled Managed Package Components in a Multi-Tenant Environment |
US8032846B1 (en) * | 2010-03-30 | 2011-10-04 | Synopsys, Inc. | Efficient provisioning of resources in public infrastructure for electronic design automation (EDA) tasks |
US20110258701A1 (en) | 2010-04-14 | 2011-10-20 | Raytheon Company | Protecting A Virtualization System Against Computer Attacks |
US9356916B2 (en) | 2010-04-30 | 2016-05-31 | T-Central, Inc. | System and method to use a cloud-based platform supported by an API to authenticate remote users and to provide PKI- and PMI-based distributed locking of content and distributed unlocking of protected content |
US8595234B2 (en) | 2010-05-17 | 2013-11-26 | Wal-Mart Stores, Inc. | Processing data feeds |
US8739150B2 (en) | 2010-05-28 | 2014-05-27 | Smartshift Gmbh | Systems and methods for dynamically replacing code objects via conditional pattern templates |
US9672022B2 (en) | 2010-06-23 | 2017-06-06 | Microsoft Technology Licensing, Llc | Applications including multiple experience modules |
US20120016721A1 (en) | 2010-07-15 | 2012-01-19 | Joseph Weinman | Price and Utility Optimization for Cloud Computing Resources |
US9021362B2 (en) | 2010-07-19 | 2015-04-28 | Soasta, Inc. | Real-time analytics of web performance using actual user measurements |
US8640206B2 (en) | 2010-08-20 | 2014-01-28 | Regis J. Betsch | System and method for controlling access to information stored at plurality of sites |
US9342368B2 (en) | 2010-08-31 | 2016-05-17 | International Business Machines Corporation | Modular cloud computing system |
US9235442B2 (en) * | 2010-10-05 | 2016-01-12 | Accenture Global Services Limited | System and method for cloud enterprise services |
IL210169A0 (en) | 2010-12-22 | 2011-03-31 | Yehuda Binder | System and method for routing-based internet security |
WO2012108919A2 (en) | 2011-02-11 | 2012-08-16 | Intel Corporation | Media stream over pass through mechanism |
US8977754B2 (en) | 2011-05-09 | 2015-03-10 | Metacloud Inc. | Composite public cloud, method and system |
US20130031028A1 (en) | 2011-07-25 | 2013-01-31 | Bank Of America | Exchange System Supporting Cloud Computing |
US20130081007A1 (en) | 2011-09-27 | 2013-03-28 | International Business Machines Corporation | Providing continuous application availability during application update |
US8676621B1 (en) | 2011-09-28 | 2014-03-18 | Amazon Technologies, Inc. | System and method for managing requests for pooled resources during non-contention |
US8930541B2 (en) * | 2011-11-25 | 2015-01-06 | International Business Machines Corporation | System, method and program product for cost-aware selection of templates for provisioning shared resources |
GB2499193A (en) | 2012-02-03 | 2013-08-14 | David Sallis | Public private key usage in a Database System for Secure Storage and Communication of Information |
US8745746B1 (en) | 2012-03-07 | 2014-06-03 | Symantec Corporation | Systems and methods for addressing security vulnerabilities on computing devices |
US9069606B2 (en) | 2012-05-08 | 2015-06-30 | Adobe Systems Incorporated | Autonomous application-level auto-scaling in a cloud |
US20130346227A1 (en) | 2012-06-22 | 2013-12-26 | Microsoft Corporation | Performance-Based Pricing for Cloud Computing |
US8756698B2 (en) | 2012-08-10 | 2014-06-17 | Nopsec Inc. | Method and system for managing computer system vulnerabilities |
US8755522B2 (en) | 2012-08-18 | 2014-06-17 | Luminal, Inc. | System and method for interleaving information into slices of a data packet, differentially encrypting the slices, and obfuscating information in the data packet |
US20140067496A1 (en) | 2012-08-31 | 2014-03-06 | International Business Machines Corporation | Providing real-time trading of virtual infrastructure resources |
US20140067772A1 (en) | 2012-08-31 | 2014-03-06 | Nokia Corporation | Methods, apparatuses and computer program products for achieving eventual consistency between a key value store and a text index |
US10122596B2 (en) * | 2012-09-07 | 2018-11-06 | Oracle International Corporation | System and method for providing a service management engine for use with a cloud computing environment |
CN104813614B (zh) | 2012-12-03 | 2018-02-09 | 慧与发展有限责任合伙企业 | 用于iaas的管理的异步框架 |
US10552774B2 (en) | 2013-02-11 | 2020-02-04 | Amazon Technologies, Inc. | Cost-minimizing task scheduler |
US9818127B2 (en) | 2013-03-15 | 2017-11-14 | International Business Machines Corporation | Implementing comparison of cloud service provider package offerings |
US9298923B2 (en) | 2013-09-04 | 2016-03-29 | Cisco Technology, Inc. | Software revocation infrastructure |
US9396338B2 (en) | 2013-10-15 | 2016-07-19 | Intuit Inc. | Method and system for providing a secure secrets proxy |
US9280385B2 (en) * | 2013-12-19 | 2016-03-08 | International Business Machines Corporation | Optimally provisioning and merging shared resources to maximize resource availability |
CN103761147B (zh) * | 2014-01-15 | 2017-11-21 | 清华大学 | 一种云平台中计算实例的管理方法及系统 |
US9508095B2 (en) | 2014-06-11 | 2016-11-29 | Fugue, Inc. | System and method for optimizing the selection of cloud services based on price and performance |
US9800465B2 (en) * | 2014-11-14 | 2017-10-24 | International Business Machines Corporation | Application placement through multiple allocation domain agents and flexible cloud scheduler framework |
US9742807B2 (en) | 2014-11-19 | 2017-08-22 | At&T Intellectual Property I, L.P. | Security enhancements for a software-defined network with network functions virtualization |
US20180019985A1 (en) | 2016-07-18 | 2018-01-18 | Fugue, Inc. | Distributed key/value store system using asynchronous messaging systems |
US20180020008A1 (en) | 2016-07-18 | 2018-01-18 | Fugue, Inc. | Secure asynchronous communications |
WO2018022901A1 (en) | 2016-07-27 | 2018-02-01 | Fugue, Inc. | Regeneration and generational mutation for security and fidelity in software defined networks |
-
2016
- 2016-07-20 US US15/215,409 patent/US10341194B2/en active Active
- 2016-10-04 CN CN201680058020.1A patent/CN108292240A/zh active Pending
- 2016-10-04 JP JP2018517157A patent/JP2018530070A/ja active Pending
- 2016-10-04 KR KR1020187012490A patent/KR20180063240A/ko unknown
- 2016-10-04 EP EP16781648.7A patent/EP3360040A1/en not_active Withdrawn
- 2016-10-04 AU AU2016333809A patent/AU2016333809A1/en not_active Abandoned
- 2016-10-04 WO PCT/US2016/055372 patent/WO2017062384A1/en active Application Filing
- 2016-10-04 CA CA2999770A patent/CA2999770A1/en not_active Abandoned
-
2018
- 2018-03-19 IL IL258218A patent/IL258218A/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP3360040A1 (en) | 2018-08-15 |
US20170099191A1 (en) | 2017-04-06 |
AU2016333809A1 (en) | 2018-05-10 |
WO2017062384A1 (en) | 2017-04-13 |
CA2999770A1 (en) | 2017-04-13 |
CN108292240A (zh) | 2018-07-17 |
IL258218A (en) | 2018-05-31 |
US10341194B2 (en) | 2019-07-02 |
KR20180063240A (ko) | 2018-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2018530070A (ja) | クラウドベースのコンピューティング環境上の基盤を構築、最適化及び実施するシステム及び方法 | |
US11663110B2 (en) | Analysis to check web API code usage and specification | |
US10481884B2 (en) | Systems and methods for dynamically replacing code objects for code pushdown | |
US9690558B2 (en) | Orchestrating the lifecycle of multiple-target applications | |
EP2893443B1 (en) | Re-configuration in cloud computing environments | |
US9830135B2 (en) | Declarative and pluggable business logic for systems management | |
US10901804B2 (en) | Apparatus and method to select services for executing a user program based on a code pattern included therein | |
US10656971B2 (en) | Agile framework for vertical application development and delivery | |
US11561784B2 (en) | Versioning of pipeline templates for continuous delivery of services on datacenters configured in cloud platforms | |
US11356508B1 (en) | Retry strategies for handling failures during continuous delivery of software artifacts in a cloud platform | |
US8839223B2 (en) | Validation of current states of provisioned software products in a cloud environment | |
US11392366B1 (en) | Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms | |
US11349958B1 (en) | Deployment of software releases on datacenters configured in cloud platforms | |
US20230035486A1 (en) | Managing execution of continuous delivery pipelines for a cloud platform based data center | |
US9141517B2 (en) | Public solution model test automation framework | |
CN116783581A (zh) | 在云平台中配置的数据中心上部署软件发布 | |
US20150220404A1 (en) | Undo configuration transactional compensation | |
WO2018170308A1 (en) | System and method for producing api-throttle and back-pressure avoidance among clients using distributed asynchronous components | |
EP3005087A1 (en) | Declarative configuration elements | |
JP2023551963A (ja) | クラウドプラットフォームにおいて構成されたデータセンタへのソフトウェアリリースのデプロイ | |
CN115955409B (zh) | 一种变更编排方法及相关装置 | |
CN113031960B (zh) | 代码编译方法、装置、服务器及存储介质 | |
Downar | Wiki-WS as a C2 NIWA Web Service Management Platform | |
Hardt et al. | Simple Tool for Application Runs and Transfer of Data (START) |