JP6757735B2 - ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするためのシステムおよび方法 - Google Patents

ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするためのシステムおよび方法 Download PDF

Info

Publication number
JP6757735B2
JP6757735B2 JP2017546863A JP2017546863A JP6757735B2 JP 6757735 B2 JP6757735 B2 JP 6757735B2 JP 2017546863 A JP2017546863 A JP 2017546863A JP 2017546863 A JP2017546863 A JP 2017546863A JP 6757735 B2 JP6757735 B2 JP 6757735B2
Authority
JP
Japan
Prior art keywords
provisioning
instructions
build
computing environment
group
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.)
Active
Application number
JP2017546863A
Other languages
English (en)
Other versions
JP2018519556A (ja
JP2018519556A5 (ja
Inventor
ラヘジャ,ラジェシュ
フー,ジョナサン
トス,ガボー
レー,レイ
ムケルジー,シラディティヤ
パンダ,マロミ
ジン,ジーウェン
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2018519556A publication Critical patent/JP2018519556A/ja
Publication of JP2018519556A5 publication Critical patent/JP2018519556A5/ja
Application granted granted Critical
Publication of JP6757735B2 publication Critical patent/JP6757735B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Description

著作権表示
この特許文献の開示の一部は、著作権保護の対象となる題材を含んでいる。著作権の所有者は、特許商標庁の包袋または記録に掲載されるように特許文献または特許情報開示を誰でも複製できることに対して異議はないが、その他の点ではすべての如何なる著作権をも保有する。
発明の分野:
本発明の実施形態は、概して、ソフトウェアアプリケーションを連続的に統合して配信することに関し、特に、ヘテロジニアスな環境にわたってクラウドサービスをプロビジョニングするためのシステムおよび方法に関する。
背景:
ソフトウェア開発の分野において、モノリシックにリリースされたウォーターフォールアプローチから、インクリメンタルにリリースされたアジャイルなアプローチへのパラダイムシフトにより、アプリケーションのライフサイクルの管理方法が変化してきた。たとえば、開発者は、統合の失敗を減らすために早期にかつより頻繁に統合を実行する傾向がある。構築、テストおよび展開の頻度の増加による要件に対応するために、ソフトウェア開発プロセスにおける複数のパーティシパント用の複数のマシン/クライアントノードの構成を管理するための、構成管理ツールなどの複数のツールを使用することができる。
これらのツールは、複数のプロビジョニング命令を使用して、さまざまな目的で、クライアントノードを構成することができる。しかしながら、構成管理サーバ上に格納される複数のプロビジョニング命令は、クライアントノードが検索することを意図していないプロビジョニング命令を、当該クライアントノードに検索させる可能性がある。
概要:
一実施形態に従うと、ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするためのシステムおよび方法がこの明細書中に記載される。構成管理サーバ上に格納された複数のプロビジョニング命令は、複数の範囲に分割することができる。構成管理サーバに接続された複数のクライアントノードは、複数のグループに構成することができる。各々のグループは、クラウドサービスをホストするために1つ以上の仮想マシン上に1つ以上のコンピューティング環境を提供する。特定のグループにおける各々のコンピューティング環境は、特定の範囲のプロビジョニング命令を指定するプロビジョニング命令ランチャーに関連付けることができる。特定のグループにおける仮想マシンがリブートすると、仮想マシン上のコンピューティング環境は、特定のグループに対応する範囲にある最新のプロビジョニング命令をサーチする。
一実施形態に従った構成管理ツールを示す図である。 一実施形態に従った、ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするためのシステムを示す図である。 一実施形態に従った、ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするためのシステムをさらに示す図である。 一実施形態に従った、プロビジョニング命令のバージョン番号を分割することによって、ヘテロジニアスな環境にわたってクラウドサービスをプロビジョニングするためのフローチャートである。 一実施形態に従った、ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするための方法を示す図である。
詳細な説明:
構成管理ツール(たとえば、シェフ(Chef))は、さまざまな目的でさまざまなタイプのクライアントノードを構成することができる。たとえば、1つのタイプのクライアントノードは開発者のために構成することができ、別のタイプのクライアントノードは試験者のために構成することができる。開発チームが連続的な統合および連続的な配信手段を使用する場合、さまざまなタイプのクライアントノードは、同じセットのサーバコンポーネントと、開発中の1つ以上のさまざまなバージョンのソフトウェアアプリケーションとを含み得る。
しかしながら、このような構成管理ツールは、プロビジョニング命令を格納するために構成管理サーバを使用することが多く、これにより、或る1つのタイプのクライアントノードに、別のタイプのクライアントノードを対象としたプロビジョニング命令を検索させる可能性がある。
さらに、構成管理サーバ上に集約的に格納された複数のプロビジョニング命令は、特定のタイプのコンピューティング環境についての構成情報を提供する傾向がある。しかしながら、ソフトウェア開発プロセスにおけるさまざまなパーティシパントは、ヘテロジニアスなコンピューティング環境を使用することが要求される可能性がある。たとえば、開発者は、開発のためにWindows(登録商標)環境を使用することが要求される可能性があり、試験者は、テストのためにLinux(登録商標)環境を使用することが要求される可能性がある。
上述の問題に対する既存の解決策は、さまざまなタイプのクライアントノードについてのプロビジョニング命令を格納するためにさまざまなサーバを作成することを含む。しかしながら、複数のサーバアプローチは連続的な統合および連続的な配信に適したものではない。
一実施形態に従うと、ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするためのシステムおよび方法がこの明細書中に記載されている。構成管理サーバ上に格納された複数のプロビジョニング命令は、複数の範囲に分割することができる。構成管理サーバに接続された複数のクライアントノードは、複数のグループに構成することができる。各々のグループは、クラウドサービスをホストするために1つ以上の仮想マシン上に1つ以上のコンピューティング環境を提供する。特定のグループにおける各々のコンピューティング環境は、特定の範囲のプロビジョニング命令を指定するプロビジョニング命令ランチャーに関連付けることができる。特定のグループにおける仮想マシンがリブートすると、仮想マシン上のコンピューティング環境は、特定のグループに対応する範囲にある最新のプロビジョニング命令をサーチする。
図1は一実施形態に従った構成管理ツールを示す図である。
図1に示されるように、システムは、複数のクライアントノード(たとえば、クライアントノードA115およびクライアントノードB117)と、複数のクライアントノードにプロビジョニング命令123を提供する構成管理サーバ(たとえば、シェフサーバまたはパペットサーバ)111とを含み得る。
一実施形態に従うと、プロビジョニング命令(たとえばシェフのための1セットのクックブック)は、クライアントノードを特定の状態にするために構成管理サーバが使用する構成およびポリシーの詳細の基本単位としての役割を果たし得る。たとえば、仮の命令を使用して、ウェブサーバおよびデータベースサーバをインストールすることができ、さらに、さまざまなコンピューティング環境における構成ファイルを、それらのコンピューティング環境におけるクラウドサービスをプロビジョニングするために変更することができる。
一実施形態に従うと、クライアントノードは、物理サーバであってもよく、または、プライベートクラウドもしくはパブリッククラウドにおける仮想マシンであってもよい。各々のクライアントノードは、プロビジョニング命令をフェッチして、当該プロビジョニング命令を実行してそのクライアントノードを構成するエージェント(たとえば、エージェントA125およびエージェントB129)を含み得る。
一実施形態に従うと、各々のエージェントは、最新のプロビジョニング命令のために一定間隔で構成管理サーバをポーリングすることができ、クライアントノードがプロビジョニング命令によって定義された状態に適合していない場合、プロビジョニング命令を使用して、クライアントノードを最新の状態に更新することができる。
一実施形態に従うと、プロビジョニング命令は、1セットのファイル(たとえば、クックブックのファイル)およびこれらのファイルのバージョンを格納するためのメタデータを含み得る。プロビジョニング命令は、バージョンの根拠となるプロビジョニング命令とは異なる1セットの機能を表わし得る固有のバージョン番号を有し得る。
たとえば、プロビジョニング命令バージョン番号は、X.Y.Z.の形式を得ることができる。この場合、X.Y.Z.は、メジャー(X)バージョン、マイナー(Y)バージョン、およびパッチ(Z)バージョンを表わすのに用いられる10進数である。
図1にさらに示されるように、コードリポジトリ137(たとえば、ソース制御アプリケーション/システムに関連付けられたデータベース)は、ソフトウェアアプリケーションの開発、テストまたは展開の際に使用されるクライアントノードを構成するためのソフトウェアアプリケーションおよびプロビジョニング命令についてのさまざまなバージョンのソースコードを格納するために使用することができる。
一実施形態に従うと、ビルドサーバ(たとえば、Jenkins)119は、ソフトウェアのソースコードにおける最新の変更を検索することができ、自動ビルドを実行して、一定間隔で、たとえば、夜毎に、または、コード変更が検出されるたびに、複数のビルドを生成することができる。ビルドサーバはそれらのビルドを利用し、各々のクライアントノード上のエージェントによって呼出されるデプロイメントプロセスを使用して、そのクライアントノード上に1つ以上のビルドをデプロイすることができる。
一実施形態に従うと、異なるバージョンのソフトウェアアプリケーションを、各々のノード上で実行されるようにデプロイすることができる。たとえば、サービスA127およびサービスB131の各々は、異なるバージョンのソフトウェアアプリケーションを表わし得る。各々のクライアントノードに割当てられたプロビジョニング命令を使用して、そのクライアントノードを、特定のバージョンのソフトウェアアプリケーションを実行するための所望の状態にすることができる。
図1に示されるように、コードリポジトリは、ビルドサーバに接続(139)することができ、ビルドサーバはさらに、構成管理サーバに接続(141)することができる。コードリポジトリにおいてコードが変更されるたびに、ビルドサーバまたは構成管理サーバにおける1つ以上の自動化プロセスがトリガされて、クライアントノード上のビルドにコードパッケージをインストールすることができる。
一実施形態に従うと、複数のクライアントノードは、ソフトウェア開発プロセスにおいてさまざまな役割をもつユーザによって使用されるように構成することができる。各々のクライアントノードは、開発ノードであろうと、またはテストノードであろうと、クラウドサービスのための別のバージョンのソフトウェアアプリケーションがプロビジョニングされ得る同じコンピューティング環境を使用することができる。上述のとおりクライアントノードを構成するために、複数のバージョンのプロビジョニング命令を使用することができる。各々のバージョンが同じサーバ状態と、異なるバージョンのソフトウェアアプリケーションとを定義している。
しかしながら、いずれのタイプのクライアントノードがリブートしても、それは最新バージョンのプロビジョニング命令をサーチすることができる。たとえば、開発者が加えた変更に対応するようにプロビジョニング命令が更新されていた場合、試験者が最新バージョンのソフトウェアアプリケーションをテストする準備ができていない可能性がある場合であっても、テスト用クライアントノードは、最新バージョンのプロビジョニング命令を検索することができる。
命令をプロビジョニングするためのバージョン番号の分割
図2は、一実施形態に従った、ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするためのシステムを示す。
より特定的には、図2は、プロビジョニング命令のバージョン番号をさまざまな範囲に分割することによって、上述の問題を克服するために使用することができるシステムを示す。この場合、各々の範囲は、特定のタイプの1つ以上のクライアントノード(たとえば、1つ以上のテスト用クライアントノード、または1つ以上の開発クライアントノード)に割当てられている。
一実施形態に従うと、各々のタイプのクライアントノードは、ソフトウェア開発プロセスにおいて特定の役割をもつユーザによって使用され得るとともに、さまざまなグループに分割され得る。たとえば、開発クライアントノードは、1つのグループ内にあり得るとともに、テスト用クライアントノードは識別を容易にするために別のグループ内にあり得る。
図2に示されるように、ビルドサーバ219は、コードリポジトリ237からのソースコード239を使用して、一定間隔で(たとえば、1時間毎に、または夜毎に)複数のビルド221を自動的に生成するように構成することができる。各々のビルドは、4つの部分(ラベル名、日付け、時間およびビルド番号)を含むビルドラベルを有し得る。
たとえば、ビルドラベル「SOACLOUD_MAIN_GENERIC_141017_1145_0219」において、「SOACLOUD_MAIN_GENERIC」はラベル名であり、数値は、ビルドが2014年10月17日午後11時45分に生成されたことを示しており、「0219」はビルド番号である。
一実施形態に従うと、各々のビルドは、コードリポジトリに格納されたプロビジョニング命令241から検索されたプロビジョニング命令に関連付けることができる。プロビジョニング命令のバージョン番号は複数の範囲に分割することができる。各々の範囲は、特定のタイプの1つ以上のクライアントノードを構成するための1つ以上のプロビジョニング命令を含み得る。
一実施形態に従うと、範囲は、プロビジョニング命令のバージョン番号中のメジャーバージョンについての数値であり得るカテゴリインジケータによって識別することができる。
具体例として、プロビジョニング命令のバージョン番号は、開発者のための範囲および試験者のための範囲に分割することができる。開発者のための範囲は、2.0.0よりも小さく1.0.0よりも大きいバージョン番号を有する任意のプロビジョニング命令を含み得る。
一実施形態に従うと、ビルドに関連付けられたプロビジョニング命令のバージョン番号は、ビルドをプロビジョニング命令と一致させるために、ビルドラベルからの日付けおよび時間の情報で更新することができる。
具体例として、コードリポジトリから検索されたプロビジョニング命令はバージョン番号「1.1.1」を有し得る。この場合、最初の「1」は開発ノードによって使用されるべきバージョンのプロビジョニング命令が作成されることを示すカテゴリインジケータであり、中間の「1」はマイナーバージョンであり、最後の「1」はパッチバージョンである。
一実施形態に従うと、ビルドサーバは、プロビジョニング命令のバージョン番号を格納するために使用されるメタデータを修正することにより、マイナーバージョンおよびビルド番号をそれぞれビルドラベルから抽出された日付けおよび時間と置換えることができる。
たとえば、更新後、プロビジョニング命令のバージョン番号は元のカテゴリインジケータを含む「1.141017.1145」になり、日付けおよび時間が、ビルドラベル「SOACLOUD_MAIN_GENERIC_141017_1145_0219」から抽出される。
図2に示されるように、プロビジョニング命令222は、上述の方法に従って複数のビルドからのタイムスタンプ225を使用することによって、コードリポジトリ内の複数のプロビジョニング命令から作成することができる。さまざまな範囲に分割されたプロビジョニング命令は、ビルドサーバから構成管理サーバ211にアップロード(243)され得る。この場合、プロビジョニング命令223は、範囲A216および範囲B218にバージョン番号を含み得る。
POD(Point of Delivery)
一実施形態に従うと、ビルドサーバは、複数のPOD(point of delivery)を作成するための複数のファイル226を含み得る。各々のPODは、1つ以上のビルドをクラウドサービスとして与えるためのコンピューティング環境を表わしている。
この明細書中において使用される場合、PODは、サービス(たとえば、クラウドサービス)をインストールすることができるデプロイ可能なユニットまたはホストユニットであってもよい。たとえば、PODは、1つ以上のアプリケーションコンテナ、これらコンテナのための共用ストレージ、およびこれらコンテナを如何に実行するかについてのオプションを含み得る。PODは仮想マシンであってもよく、または仮想マシンから作成されてもよい。
図2にさらに示されるように、ビルドサーバ上の複数のファイルの各々には、更新されたバージョン番号のプロビジョニング命令をポストフィックスとして割当てることができる。複数のファイルは、その後、各々のビルドと共に大型のファイルサーバ224にアップロードすることができる。
一実施形態に従うと、複数のPODは、複数のファイルから作成することができ、複数のクライアントノード(たとえば、クライアントノードA215およびクライアントノードB217)にアップロードすることができる。
たとえば、POD A245は、クライアントノードAにアップロードすることができ、POD B249はクライアントノードBにアップロードすることができる。
一実施形態に従うと、各々PODは、マッピングファイル(たとえば、マッピングファイルA247またはマッピングファイルB251)を含み得る。各々のマッピングファイルは、プロビジョニング命令ランチャー(たとえば、プロビジョニング命令ランチャーA246およびプロビジョニング命令ランチャーB248)を指定することができる。各々のプロビジョニング命令ランチャーは、特定の範囲内にある最新のプロビジョニング命令を開始するためにクライアントノード内のエージェントによって使用されるファイル(たとえば、クックブックのファイル)であってもよい。
たとえば、プロビジョニング命令ランチャーAは、範囲A内における最新のプロビジョニング命令を開始するために使用することができ、プロビジョニング命令ランチャーBは、範囲B内における最新のプロビジョニング命令を開始するために使用することができる。
一実施形態に従うと、特定のクライアントノードがリブートされるたびに、クライアントノード上のプロビジョニング命令ランチャーが、特定の範囲で最高(最新)のバージョン番号を有するプロビジョニング命令をサーチすることができる。
一実施形態に従うと、プロビジョニング命令のバージョン番号を、特定のタイプのクライアントノードにそれぞれ関連付けられたさまざまな範囲に分割することによって、システムは、複数のクライアントノードについてのプロビジョニング命令を構成管理サーバが格納することを可能にし、ソフトウェア開発プロセスにおいてさまざまな役割のユーザが使用できるようにする。
代替的な実施形態に従うと、PODの作成中、PODのマッピングファイルを使用して、特定のバージョンのプロビジョニング命令を明確にすることができる。たとえば、マッピングファイルは、どのバージョンのプロビジョニング命令を使用すべきかを明確に指定することができる。PODが停止または再開されると、構成管理サーバ上でより新しいバージョンまたはより古いバージョンが利用可能であったとしても、指定されたバージョンのプロビジョニング命令をサーチすることができる。指定されたバージョンが利用可能でなければ、エラーを生成することができる。
図3は、一実施形態に従った、ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするためのシステムをさらに示す。
より特定的には、図3は、1つのクライアントノードまたは複数のクライアントノードによって提供されるさまざまなタイプのコンピューティング環境を示す。
一実施形態に従うと、クラウドサービスを開発およびテストする場合、開発チームは、所与のPODに関して特定のバージョンのソフトウェアアプリケーションを使用することができる。各々のPODは、ハードウェアおよびオペレーティングシステムを含む別のコンピューティング環境に関連付けることができる。仮想化ソリューション(たとえば、Vagrant Box)は、ユーザが、クライアントノード上で仮想化を用いてさまざまなコンピューティング環境をシミュレートすることを可能にする。
図3に示されるように、クライアントノードC315はVagrant box環境を提供することができる、この場合、複数のPOD、たとえば、WindowsのためのPOD X319、LinuxのためのPOD Y321およびUbuntuのためのPOD Z323をインストールすることができる。各々のPODは仮想マシン(たとえば、Vagrant box)であってもよく、PODにおいて共通のプロビジョニング提供ランチャー(たとえば、プロビジョニングランチャーA325、プロビジョニングランチャーA327またはプロビジョニングランチャーA329)を含み得る。
一実施形態に従うと、複数のPODは、開発者が、同じプロビジョニング命令を使用して、複数のコンピューティング環境においてクラウドサービスを開発またはテストすることを可能にする。
一実施形態に従うと、構成管理サーバ上に格納されたプロビジョニング命令の各々の範囲は、メタデータ(たとえば、メタデータA309およびメタデータB311)に関連付けることができる。メタデータを使用することにより、1つのクライアントノード上で、または複数のクライアントノードにわたって、同じプロビジョニング命令を、複数のさまざまなコンピューティング環境によって使用されるように構成またはカスタマイズすることができる。
一実施形態に従うと、範囲A内のプロビジョニング命令は、クライアントノードC上の複数のコンピューティング環境の各々を、プロビジョニング命令によって定義される所望の状態に導くために使用することができる。メタデータAは、クライアントノードC上の各コンピューティング環境の特定要件を満たすようにプロビジョニング命令をカスタマイズするための情報を含み得る。
同様に、メタデータBは、特定タイプのさまざまなクライアントノード(たとえば、クライアントノードD317およびクライアントノードE334)上の複数のさまざまなコンピューティング環境の各々についての特定条件を満たすように、範囲Bにおけるプロビジョニング命令をカスタマイズするための情報を提供することができる。
一実施形態に従うと、クライアントノードC上のPODがリブートすると、当該PODは、範囲A内で最新のプロビジョニング命令をサーチするためにプロビジョニング命令ランチャーAを呼出すことができる。クライアントノードDおよびクライアントノードEの各々がリブートすると、それら各々は、範囲B内で最新のプロビジョニング命令をサーチするために、同じプロビジョニング命令ランチャー(たとえば、プロビジョニング命令ランチャーB337またはプロビジョニング命令ランチャーB339)を呼出すことができる。
図4は、一実施形態に従った、プロビジョニング命令のバージョン番号を分割することによって、ヘテロジニアスな環境にわたってクラウドサービスをプロビジョニングするためのフローチャートを示す。
一実施形態に従うと、ステップ411において、開発者は、プロビジョニング命令を、当該プロビジョニング命令が特定のタイプのクライアントノード(たとえば開発ノード)によって使用されるべきであることを示すカテゴリインジケータを含むバージョン番号付きで作成する。
ステップ413として、ビルドサーバは、クラウドサービスを作成するために使用されるソフトウェアアプリケーションについてのコード変更を検出し、ビルドを、当該ビルドが生成されるビルド番号、日付けおよび時間を含むビルドラベル付きで作成する。
ステップ415において、ビルドサーバは、カテゴリインジケータを変更することなく、ビルドラベルからの日付けおよび時間でプロビジョニング命令のバージョン番号を更新する。
ステップ417において、更新されたバージョン番号のプロビジョニング命令は、クラウドサービスをデプロイするべきPOD(point of delivery)を作成するために提供される複数のファイルの各々についてのポストフィックスとして付与される。
ステップ419において、ビルドおよび複数のファイルが大型のファイルサーバにアップロードされる。
ステップ421において、PODが複数のファイルから作成され、PODがマッピングファイルで構成される。マッピングファイルは、カテゴリインジケータによって指定される範囲にある最新のプロビジョニング命令を開始する際に使用されるプロビジョニング命令ランチャーを定義する。
ステップ423において、PODが、カテゴリインジケータによって示される特定のタイプの1つ以上のクライアントノードにインストールされる。
ステップ425において、新しいビルドが生成されると、プロビジョニング命令のバージョン番号が、各々のビルドのラベルからの日付けおよび時間で更新される。
ステップ427において、PODは、プロビジョニング命令ランチャーを使用して、範囲内にある最新バージョンのプロビジョニング命令をサーチする。
図5は、一実施形態に従った、ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするための方法を示す。
図5に示されるように、ステップ511において、複数の範囲に分割される複数のプロビジョニング命令が、複数のクライアントノードに接続された構成管理サーバ上に提供される。
ステップ513において、複数のクライアントノードが複数のグループに構成される。各々のグループは、クラウドサービスをホストするための1つ以上のコンピューティング環境を提供する。
ステップ515において、特定のグループにおける各々のコンピューティング環境は、特定の範囲のプロビジョニング命令を指定するプロビジョニング命令ランチャーに関連付けられている。
ステップ517において、リブート時、特定のグループにおけるコンピューティング環境が、特定のグループに対応する範囲にある最新のプロビジョニング命令をサーチする。
この発明の実施形態は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取り可能記憶媒体を含む、1つ以上の従来の汎用または特化型デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。
実施形態によっては、本発明は、本発明のプロセスのうちいずれかを実行するためにコンピュータをプログラムするのに使用できる命令が格納された非一時的な記録媒体または(1つもしくは複数の)コンピュータ読取り可能な媒体であるコンピュータプログラムプロダクトを含む。この記録媒体の例は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに適した任意の種類の媒体もしくはデバイスを含み得るものの、これらに限定されない。
本発明の実施形態についてのこれまでの記載は例示および説明を目的として提供されている。すべてを網羅するかまたは本発明を開示された形態そのものに限定することは意図されていない。当業者には数多くの変更および変形が明らかであろう。変形例および変更例は、開示された特徴の任意の関連する組合わせを含む。実施の形態は、本発明の原理およびその実際の応用を最もうまく説明することによって他の当業者がさまざまな実施の形態および意図している特定の用途に適したさまざまな変形を理解できるようにするために、選択され説明されている。

Claims (11)

  1. ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするためのシステムであって、
    1つ以上のマイクロプロセッサを含むコンピュータと、
    複数の範囲に分割された複数のプロビジョニング命令を格納し、前記コンピュータ上で実行される構成管理サーバと、
    複数のグループに構成された複数のクライアントノードとを備え、各々のグループは、1つ以上の仮想マシン上に1つ以上のコンピューティング環境を提供し、
    前記各々のグループは、前記各々のグループにおいてコンピューティング環境を構成する際に使用される特定の範囲のプロビジョニング命令を指定するためのプログラムに関連付けられ、
    特定のグループにおける仮想マシンが再始動すると、前記仮想マシン上の前記コンピューティング環境は、前記特定のグループに関連付けられた前記プログラムによって指定される範囲にある最新のプロビジョニング命令をサーチする、システム。
  2. ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするための方法であって、
    構成管理サーバ上に、複数の範囲に分割された複数のプロビジョニング命令を提供するステップと、
    前記構成管理サーバに接続された複数のクライアントノードを複数のグループに構成するステップとを含み、各々のグループは、1つ以上のコンピューティング環境を提供し、前記方法はさらに、
    各々のグループを、前記各々のグループにおけるコンピューティング環境を構成する際に使用されるべき特定の範囲のプロビジョニング命令を指定するためのプログラムに関連付けるステップを含み、
    特定のグループにおける仮想マシンが再始動すると、前記仮想マシン上の前記コンピューティング環境は、前記特定のグループに関連付けられた前記プログラムによって指定される範囲内で最新のプロビジョニング命令をサーチする、方法。
  3. 前記複数のプロビジョニング命令はそれぞれの対応するバージョン番号に基づいて分割される、請求項2に記載の方法。
  4. 複数のビルドを生成するようにビルドサーバを構成するステップをさらに含み、各々のビルドはビルドラベルを含み、プロビジョニング命令に関連付けられており、さらに、
    複数のPOD(point of delivery)を作成するステップを含み、各々の前記PODは、仮想マシンを含み、前記クラウドサービスをプロビジョニングするために特定のコンピューティング環境にインストールされる、請求項2または3に記載の方法。
  5. 各々のビルドに関連付けられた前記プロビジョニング命令はバージョン番号を含み、前記バージョン番号は、特定のグループのクライアントノードによって使用されるように前記プロビジョニング命令が提供されることを指定するカテゴリインジケータを含む、請求項4に記載の方法。
  6. 前記プロビジョニング命令の前記バージョン番号は、前記ビルドのビルドラベルからの日付けおよび時間で更新される、請求項5に記載の方法。
  7. 前記更新されたバージョン番号は前記構成管理サーバにアップロードされる、請求項6に記載の方法。
  8. プロビジョニング命令の各々の範囲は、特定のグループのクライアントノードにおける複数のさまざまなコンピューティング環境についての前記各々の範囲内でプロビジョニング命令を構成するかまたはカスタマイズするように、メタデータに関連付けられている、請求項2から7のいずれか一項に記載の方法。
  9. 前記構成管理サーバはシェフサーバまたはパペットサーバである、請求項2から8のいずれか一項に記載の方法。
  10. ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするための1セットの命令を格納するコンピュータ読取可能プログラムであって、前記命令は、1つ以上のプロセッサによって実行されると、請求項2から9のいずれか一項に記載の方法を前記1つ以上のプロセッサに実行させる、コンピュータ読取可能プログラム。
  11. ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするための1セットの命令を格納するコンピュータ読取可能プログラムであって、前記命令は、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
    複数の範囲に分割された複数のプロビジョニング命令を構成管理サーバ上に提供するステップと、
    前記構成管理サーバに接続された複数のクライアントノードを複数のグループに構成するステップとを実行させ、各々のグループは、1つ以上のコンピューティング環境を提供し、前記1つ以上のプロセッサにさらに、
    各々のグループを、前記各々のグループにおけるコンピューティング環境を構成する際に使用される特定の範囲のプロビジョニング命令を指定するためのプログラムに関連付けるステップを実行させ、
    特定のグループにおける仮想マシンが再始動すると、前記仮想マシン上の前記コンピューティング環境は、前記特定のグループに関連付けられた前記プログラムによって指定される範囲にある最新のプロビジョニング命令をサーチする、コンピュータ読取可能プログラム。
JP2017546863A 2015-07-07 2016-06-03 ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするためのシステムおよび方法 Active JP6757735B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562189614P 2015-07-07 2015-07-07
US62/189,614 2015-07-07
US15/171,904 2016-06-02
US15/171,904 US10305731B2 (en) 2015-07-07 2016-06-02 System and method for provisioning cloud services across heterogeneous environments using partitioned provisioning instructions stored on a configuration management server
PCT/US2016/035788 WO2017007553A1 (en) 2015-07-07 2016-06-03 System and method for provisioning cloud services across heterogeneous computing environments

Publications (3)

Publication Number Publication Date
JP2018519556A JP2018519556A (ja) 2018-07-19
JP2018519556A5 JP2018519556A5 (ja) 2019-03-14
JP6757735B2 true JP6757735B2 (ja) 2020-09-23

Family

ID=56148679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017546863A Active JP6757735B2 (ja) 2015-07-07 2016-06-03 ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするためのシステムおよび方法

Country Status (5)

Country Link
US (1) US10305731B2 (ja)
EP (1) EP3320436A1 (ja)
JP (1) JP6757735B2 (ja)
CN (1) CN107408046B (ja)
WO (1) WO2017007553A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10241775B2 (en) * 2016-01-14 2019-03-26 Ca, Inc. Dynamic release baselines in a continuous delivery environment
US10409589B2 (en) * 2016-07-12 2019-09-10 Accenture Global Solutions Limited Application centric continuous integration and delivery with automated service assurance
US11194558B2 (en) 2016-10-14 2021-12-07 Accenture Global Solutions Limited Application migration system
CN110674024A (zh) * 2018-07-02 2020-01-10 北京忆恒创源科技有限公司 电子设备集成测试系统及其方法
US11087232B2 (en) * 2018-07-18 2021-08-10 IonQ, Inc. Quantum hybrid computation
US10942787B2 (en) * 2018-11-13 2021-03-09 Servicenow, Inc. Instance mapping engine and tools
US11237952B1 (en) 2021-04-07 2022-02-01 State Farm Mutual Automobile Insurance Company Runtime class recompilation during mutation testing
US11163675B1 (en) 2021-04-07 2021-11-02 State Farm Mutual Automobile Insurance Company Mutation testing in parallel threads

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199360A (ja) * 2008-02-21 2009-09-03 Fujitsu Fip Corp サーバ構築方法、同方法用コンピュータソフトウェアおよび記憶媒体
JP4852734B1 (ja) * 2010-09-22 2012-01-11 株式会社Csk サービス制御システム
US9110709B2 (en) 2010-12-14 2015-08-18 International Business Machines Corporation Preserving changes to a configuration of a running virtual machine
WO2012142854A1 (zh) * 2011-04-18 2012-10-26 北京新媒传信科技有限公司 一种应用服务平台系统及其实现方法
US9641394B2 (en) * 2012-01-30 2017-05-02 Microsoft Technology Licensing, Llc Automated build-out of a cloud-computing stamp
US10291486B2 (en) 2012-06-13 2019-05-14 Oracle International Corporation System and method for supporting implicit versioning in a transactional middleware machine environment
US9357034B2 (en) 2012-09-07 2016-05-31 Oracle International Corporation System and method for orchestration of services for use with a cloud computing environment
JP5544029B1 (ja) * 2013-02-20 2014-07-09 三菱電機インフォメーションシステムズ株式会社 環境構築装置および環境構築プログラム
US9110699B2 (en) 2013-09-19 2015-08-18 International Business Machines Corporation Determining optimal methods for creating virtual machines
US9825881B2 (en) * 2014-09-30 2017-11-21 Sony Interactive Entertainment America Llc Methods and systems for portably deploying applications on one or more cloud systems

Also Published As

Publication number Publication date
JP2018519556A (ja) 2018-07-19
EP3320436A1 (en) 2018-05-16
CN107408046A (zh) 2017-11-28
WO2017007553A1 (en) 2017-01-12
CN107408046B (zh) 2020-07-28
US20170012819A1 (en) 2017-01-12
US10305731B2 (en) 2019-05-28

Similar Documents

Publication Publication Date Title
JP6757735B2 (ja) ヘテロジニアスなコンピューティング環境にわたってクラウドサービスをプロビジョニングするためのシステムおよび方法
US10642603B2 (en) Scheduling upgrades in distributed computing systems
EP3477501B1 (en) System sharing types in multi-tenancy database systems
US9411621B2 (en) Grouping and automatically propagating updates to equivalent online and offline virtual machines in a data center
EP3477500B1 (en) Deploying changes in a multi-tenancy database system
US9513938B2 (en) Virtual appliance integration with cloud management software
US11347555B2 (en) Integrated system to distribute and execute complex applications
US20200026505A1 (en) Scheduling firmware operations in distributed computing systems
WO2015078333A1 (zh) 虚拟机镜像离线升级方法
US10963236B2 (en) Creation of software images of software applications for image-based maintenance of the software applications
JP2008507775A (ja) ソフトウェアアプリケーションリポジトリ内のアプリケーションメタ情報の抽出と作成のためのシステムおよび方法
US9436585B1 (en) Image patching in an integrated development environment
WO2018001091A1 (zh) 虚拟网络功能vnf更新方法、装置和vnf包
US9542173B2 (en) Dependency handling for software extensions
US10338910B2 (en) Multi-tenant upgrading
US9766912B1 (en) Virtual machine configuration
US11656864B2 (en) Automatic application of software updates to container images based on dependencies
US8904396B2 (en) System and method of general service management
US20200272454A1 (en) Software builds using a cloud system
US10915312B2 (en) Lifecycle management of virtual compute templates
US9477447B1 (en) Semantic representations of software extensions
Mauro et al. On the complexity of reconfiguration in systems with legacy components
US20240152371A1 (en) Dynamic re-execution of parts of a containerized application pipeline
Xiao et al. Managing vulnerabilities in a cloud native world with bluefix
US20150205697A1 (en) Software development apparatus and method

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200804

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200831

R150 Certificate of patent or registration of utility model

Ref document number: 6757735

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250