JP2014532247A - 容易にクラウド化可能なアプリケーションの発見型の識別および移行 - Google Patents

容易にクラウド化可能なアプリケーションの発見型の識別および移行 Download PDF

Info

Publication number
JP2014532247A
JP2014532247A JP2014535763A JP2014535763A JP2014532247A JP 2014532247 A JP2014532247 A JP 2014532247A JP 2014535763 A JP2014535763 A JP 2014535763A JP 2014535763 A JP2014535763 A JP 2014535763A JP 2014532247 A JP2014532247 A JP 2014532247A
Authority
JP
Japan
Prior art keywords
infrastructure
cloud
existing
application
business agility
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014535763A
Other languages
English (en)
Inventor
デヴァラコンダ、マーシー、ヴイ.
ジューコヴ、ニコライ、エイ.
ピッツマン、ビルギット
ポッター、シャイヤ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2014532247A publication Critical patent/JP2014532247A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

エンティティの複数の既存のアプリケーションのインフラストラクチャが分析され、それら複数の既存のアプリケーションのインフラストラクチャのうち、既存のレプリケーション・メカニズムを介して個別パーツの複製が可能な既存のサブ構造体を含む、少なくとも一つのインフラストラクチャが識別される。その少なくとも一つのインフラストラクチャが、クラウドへの移行のため選択される。クラウドは、サービス型インフラストラクチャ・クラウドおよびサービス型プラットフォーム・クラウドのうちの少なくとも一つを含む。該少なくとも一つのインフラストラクチャの既存のサブ構造体が、アプリケーションレベルの変化なしにクラウドに移行される。ビジネス・アジリティ・コンポーネントが構築され、該少なくとも一つのインフラストラクチャに充てられるクラウドのリソースの拡大および縮小を制御するように構成される。ビジネス・アジリティ・コンポーネントを用いて、該少なくとも一つのインフラストラクチャに充てられるクラウドのリソースが、拡大、縮小される。

Description

本発明は電気、電子、およびコンピュータ技術に関し、さらに具体的には、クラウド・コンピューティングおよび同類のものに関する。
クラウドは、今日、産業界において関心のある話題である。現在注目されている領域は、新しいアプリケーション・プログラミング・モデルを設計、実装し、それらのモデルによって新規のアプリケーションを構築することである。その例に、Googleのマップ・リデュース・モデル(米国カリフォルニア州、マウンテンビューのGoogle Inc.から入手可能)およびSalesforce_dot_com(米国カリフォルニア州、サンフランシスコのSalesforce_dot_com, Inc.(“_dot_”はブラウザ実行のコードの含有を避けるための“.”の代替))のウェブ・ベースの標準化カタログ型アプリケーションのモデルがある。
大方の大企業は、膨大な数の既存のITサポートのビジネス・アプリケーションを有する。これらのアプリケーションは、個別の企業がそのビジネスの所与の特定の部分をどのように実施するかについて多くの具体的やり方をエンコードしている。また、これらは、通常、ビジネス・アプリケーションに固有のフォーマットによる相当な量のデータを伴っている。さらに、これらはコードの数百万のラインを包含し得る。
本発明の原理は、容易にクラウド化可能なアプリケーションの発見型の識別および移行のための技法を提供する。
一つの態様において、ある例示的な方法は、エンティティの複数の既存のアプリケーションのインフラストラクチャを分析して、それら複数の既存のアプリケーションのインフラストラクチャのうち、既存のレプリケーション・メカニズムを介して個別パーツの複製が可能な既存のサブ構造体を含む少なくとも一つのインフラストラクチャを識別するステップと、クラウドへの移行のために該少なくとも一つのインフラストラクチャを選択するステップとを含む。このクラウドは、サービス型インフラストラクチャ・クラウドとしておよびサービス型プラットフォーム・クラウドのうちの少なくとも一つを含む。さらなるステップには、アプリケーションレベルでの変化なしに、該少なくとも一つのインフラストラクチャの既存のサブ構造体をクラウドに移行するステップと、該少なくとも一つのインフラストラクチャに充てられたクラウドのリソースの拡大および縮小を制御するよう構成されたビジネス・アジリティ・コンポーネントを構築するステップと、ビジネス・アジリティ・コンポーネントを用いて、該少なくとも一つのインフラストラクチャに充てられたクラウドのリソースを拡大および縮小するステップとが含まれる。
別の態様において、別の例示的な方法は、クラウドへの移行対象であるエンティティの複数の既存のアプリケーションの複数のインフラストラクチャのうちの少なくとも一つのインフラストラクチャの仕様を得るステップを含む。この少なくとも一つのインフラストラクチャは、既存のレプリケーション・メカニズムを介して個別パーツの複製が可能な既存のサブ構造体を含む。追加のステップには、アプリケーション・リソース・マネージャのテンプレート・ストアにおいて、該少なくとも一つのインフラストラクチャに充てられたクラウドのリソースの拡大および縮小のうちの少なくとも一つを遂行するための命令を含む少なくとも一つの一般的テンプレートを識別するステップが含まれる。さらなるステップには、その少なくとも一つの一般的テンプレートに、該少なくとも一つのインフラストラクチャに関連する特定のデータを追加することによって、少なくとも一つの一般的テンプレートの特定のインスタンスをインスタンス生成するステップと、少なくともその特定のインスタンスから、該少なくとも一つのインフラストラクチャに充てられたクラウドのリソースの拡大および縮小のうちの一つを制御するよう構成されたビジネス・アジリティ・コンポーネントを構築するステップとが含まれる。
本明細書で用いる、あるアクションを「推進する」とは、そのアクションを実施すること、アクションを容易化すること、アクションの遂行を助力すること、またはアクションが実施されるようにすることを含む。しかして、限定でなく例として、一つのプロセッサ上で実行される命令が、実施対象のアクションを起こさせるまたは助力するための適切なデータまたはコマンドを送信することにより、遠隔のプロセッサ上で実行される命令によって遂行されるアクションを推進することが可能であろう。誤解を避けるために言えば、動作体(actor)が、アクションを実施すること以外でアクションを推進している場合、そのことにかかわらず、当該アクションは何らかのエンティティまたはエンティティの組み合わせによって実施されている。
本発明またはそのエレメントの一つ以上の実施形態は、示された方法ステップを実施するためのコンピュータ可用プログラム・コードを備えたコンピュータ可読ストレージ媒体を含む、コンピュータ製品の形態に実装することができる。さらに、本発明またはそのエレメントの一つ以上の実施形態は、メモリ、およびメモリに連結され、典型的な方法ステップを実施するよう作動する少なくとも一つのプロセッサを含むシステム(または装置)の形態に実装することも可能である。さらにまた、別の態様において、本発明またはそのエレメントの一つ以上の実施形態は、本明細書に記載の方法ステップの一つ以上を遂行するための手段の形態に実装することができ、この手段には、(i)ハードウェア・モジュール(群)、(ii)ソフトウェア・モジュール(群)、または(iii)ハードウェア・モジュールとソフトウェア・モジュールとの組み合わせを含めることができ、(i)〜(iii)のいずれも本明細書で述べる特定の手法を実装し、ソフトウェア・モジュールは、コンピュータ可読ストレージ媒体(または複数のかかる媒体)に格納される。
本発明の技法は、多大に有益な技術的効果を提供することができる。例えば、一つ以上の実施形態は、以下の利点の一つ以上を提供することができる。
・ より効率的な管理
・ アプリケーションおよびその根底にあるITインフラストラクチャに対する要件が変更された際の、セットアップ時間のさらなる短縮
・ より高い信頼性
・ リソースの量の増加もしくは低減またはその両方が容易にできるので、十分に活用されていないプロセッサに使用される電力浪費を回避する
・ 前述の利点のより迅速な達成
・ どこにアプリケーション・マネージャをコードすれば無駄がないかの選択の自動化
本発明のこれらのおよび他の特徴および利点は、以下の本発明の例示的な実施形態の詳細な説明を、添付の図面と併せ読めば明らかとなろう。
本発明のある実施形態による、クラウド・コンピューティング・ノードを表す。 本発明のある実施形態による、クラウド・コンピューティング環境を表す。 本発明のある実施形態による、抽象化モデル層を表す。 本発明のある態様による、概観システム・ブロック図である。 本発明のある態様による、詳細システム・ブロック図である。 本発明のある態様による、アプリケーション・リソース・マネージャの例示的なコンポーネントを示す。 本発明のある態様による、例示的なフローチャートを示す。 本発明のある態様による、例示的なアプリケーション「クラウド化」のシナリオを示す。 本発明のある態様による、例示的なソフトウェア・アーキテクチャ図である。
クラウド・コンピューティングは、最小の管理労力またはサービスのプロバイダの介入で、迅速にプロビジョニングしてリリースすることができる、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク・バンド幅、サーバ、プロセシング、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの、便利且つオンデマンドのネットワーク・アクセスを可能にする、サービス配信のモデルである。このクラウド・モデルには、少なくとも5つの特徴、少なくとも三つのサービス・モデル、および少なくとも4つの展開モデルを含めることができる。
特徴は次のとおりである。
オンデマンド・セルフサービス:クラウド消費者は、必要に応じ、サービスのプロバイダとの間で人間による介入を必要とせず、必要に応じ自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング・ケイパビリティを一方的にプロビジョニングすることができる。
広範囲のネットワーク・アクセス:諸ケイパビリティは、ネットワークを通して利用可能で、(例えば、携帯電話、ラップトップ、およびPDAなどの)異機種のシンまたはシック・クライアント・プラットフォームによる使用を推進する標準的なメカニズムを介してアクセスされる。
リソース・プーリング:プロバイダのコンピューティング・リソースはプールされ、マルチテナント型モデルを用い、各種の物理および仮想のリソースを、デマンドに応じて動的に割り当ておよび再割り当てをしながら、複数の消費者にサービスする。消費者は、通常、提供されるリソースの正確な場所に対する制御も知識も有しないが、抽象化のより高レベルでの場所(例えば、国、州、またはデータセンタ)を特定することができるという点で一種の場所非依存性感がある。
迅速な弾力性:諸ケイパビリティは、迅速且つ弾力的に、場合によっては自動的に、プロビジョニングして素早くスケール・アウトし、迅速に解除して素早くスケール・インすることができる。消費者にとって、プロビジョニングに利用可能なこれらのケイパビリティは、多くの場合無制限のように見え、任意のときに任意の量を購買することができる。
サービスの測定:クラウド・システムは、サービスの種類(例えば、ストレージ、プロセシング、バンド幅、およびアクティブなユーザ・アカウントなど)に適切な抽象化の所与のレベルで、計量ケイパビリティを活用し、リソースの使用を自動的に制御し最適化する。リソースの使用量はモニタされ、制御され、報告されて、プロバイダおよび消費者の両方に対し、使用されたサービスの透明性が提供される。
サービス・モデルは次のとおりである。
サービス型ソフトウェア(SaaS:Software as a Service):消費者に提供されるケイパビリティは、クラウド・インフラストラクチャ上で実行されるプロバイダのアプリケーションの使用である。これらのアプリケーションには、さまざまなクライアント・デバイスから、ウェブ・ブラウザ(例えばウェブ・ベースのeメール)などのシン・クライアント・インターフェースを介してアクセスすることが可能である。消費者は、限られたユーザ固有のアプリケーション構成設定のあり得る例外を除き、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個別のアプリケーション・ケイパビリティをも含めて、根底にあるクラウド・インフラストラクチャを管理または制御することはない。
サービス型プラットフォーム(PaaS:Platform as a Service):消費者に提供されるケイパビリティは、プロバイダがサポートするプログラミング言語およびツールを用いて生成された、消費者生成または取得のアプリケーションのクラウド・インフラストラクチャ上での展開である。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージ含めて、根底にあるクラウド・インフラストラクチャを管理または制御することはないが、展開されるアプリケーション、および場合によっては、環境構成をホストするアプリケーションに対する制御は有する。
サービス型インフラストラクチャ(IaaS:Infrastructure as a Service):消費者に提供されるケイパビリティは、消費者が、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開、実行できる、プロセシング、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースのプロビジョニングである。消費者は、根底にあるクラウド・インフラストラクチャを管理または制御することはないが、オペレーティング・システム、ストレージ、展開されるアプリケーションに対する制御、および場合によっては、ネットワーク形成コンポーネント(例えば、ホストのファイアーウォール)の選択に対する限定された制御を有する。
展開モデルは次のとおりである。
プライベート・クラウド:このクラウド・インフラストラクチャは、ある組織のためだけに運用される。これは、当該組織または第三者によって管理することができ、構内または構外に置くことができる。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、いくつかの組織によって共用され、共通の関心事項(例えば、目標、セキュリティ要件、ポリシー、およびコンプライアンス留意事項)を有する特定のコミュニティをサポートする。これは、これらの組織または第三者によって管理することができ、構内または構外に置くことができる。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般公衆または大きな産業グループが利用できるようにされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、二つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成体であり、これらは個別のエンティティに留まるが、データおよびアプリケーションの移植性(例えば、クラウド間の負荷バランスのためのクラウド拡張)を可能にする標準的または専有の技術によって一緒に結び付けられている。
クラウド・コンピューティング環境は、無国籍、弱い結合、モジュール性、および意味論的相互運用性に重点を置く、サービス指向型である。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
ここで図1を参照すると、クラウド・コンピューティング・ノードの一例の概略図が示されている。クラウド・コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードの単なる一例であって、本明細書に記載する発明の実施形態の使用または機能の範囲に関するいかなる限定をも示唆することは意図されていない。とにかく、クラウド・コンピューティング・ノード10は、本明細書で述べる一切の機能を実装もしくは実行またはその両方を行うことができる。
クラウド・コンピューティング・ノード10中には、コンピュータ・システム/サーバ12があり、これは、数多くの他の汎用または特定用途コンピューティング・システム環境または構成とともに操作可能である。コンピュータ・システム/サーバ12とともに使用するのに適し得る、周知のコンピューティング・システム、環境、もしくは構成またはこれらの組み合わせの例には、以下に限らないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能消費者電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスあるいは同類の任意のものを含む分散型クラウド・コンピューティング環境が含まれる。
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行されるプログラム・モジュールなど、コンピュータ・システム実行可能命令との一般的関連で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造体などを含み得る。コンピュータ・システム/サーバ12は、分散型クラウド・コンピューティング環境で実施することができ、この環境において、タスクは、通信ネットワークを介してリンクされた遠隔の処理デバイスによって実行される。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよび遠隔両方のコンピュータ・システムのストレージ媒体中に配置することができる。
図1に示されるように、クラウド・コンピューティング・ノード10中のコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形で示されている。コンピュータ・システム/サーバ12のコンポーネントには、以下に限らないが、一つ以上のプロセッサまたは処理ユニット16、システム・メモリ28、およびプロセッサ16とシステム・メモリ28との連結を含め、さまざまなシステム・コンポーネントを連結するバス18を含めることができる。
バス18は、メモリ・バスまたはメモリ・コントローラ、周辺機器用バス、アクセラレイティッド・グラフィックス・ポート、および各種バス・アーキテクチャの任意のものを用いたプロセッサまたはローカル・バスを含め、いくつかの型のバス構造体の任意の一つ以上を表す。かかるアーキテクチャには、限定ではなく例として、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)バスが含まれる。
コンピュータ・システム/サーバ12は、一般に、さまざまなコンピュータ・システム可読媒体を含む。かかる媒体は、コンピュータ・システム/サーバ12がアクセス可能な任意の利用可能な媒体とすることができ、揮発性および不揮発性媒体両方の媒体でリムーバブルおよび非リムーバル媒体を含む。
システム・メモリ28には、ランダム・アクセス・メモリ(RAM)30もしくはキャッシュ・メモリ32またはその両方など、揮発性メモリの形で、コンピュータ・システム可読媒体を含めることができる。コンピュータ・システム/サーバ12には、他のリムーバブル/非リムーバブル、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含めることが可能である。単なる例として、非リムーバブル、不揮発性の磁気媒体(図示せず、通常「ハード・ドライブ」と呼ばれる)からの読み取りおよびこれへの書き込みのためストレージ・システム34を設けることができる。図示はされていないが、リムーバブルで不揮発性の磁気ディスク(例えば「フレキシブル・ディスク」)からの読み取りおよびこれへの書き込みのための磁気ディスク・ドライブ、および、CD−ROM、DVD−ROMまたは他の光媒体など、リムーバブルで不揮発性の光ディスクからの読み取りおよびこれへの書き込みのための光ディスク・ドライブを設けることも可能である。かかる例において、その各々は、一つ以上のデータ媒体インターフェースによってバス18に接続することが可能である。以下にさらに示し、説明するように、メモリ28には、本発明の実施形態の機能を遂行するよう構成されたプログラム・モジュールの(例えば、少なくとも一つの)セットを有する少なくとも一つのプログラム製品含めることができる。
限定でなく例として、プログラム・モジュール42の(少なくとも一つの)セットを有するプログラム/ユーティリティ40、並びに、オペレーティング・システム、一つ以上のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データをメモリ28の中に格納することができる。オペレーティング・システム、一つ以上のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、の各々またはこれらの何らかの組み合わせには、ネットワーク形成環境の実装を含めることが可能である。プログラム・モジュール42は、一般に、本明細書で説明する本発明の実施形態の機能もしくは方法またはその両方を遂行する。
また、コンピュータ・システム/サーバ12は、キーボード、ポインティング・デバイス、ディスプレイ24など一つ以上の外部デバイス14、ユーザがコンピュータ・システム/サーバ12とやり取りできるようにする一つ以上のデバイス、もしくは、コンピュータ・システム/サーバ12が一つ以上の他のコンピューティング・デバイスと通信できるようにする(例えば、ネットワーク・カード、モデムなど)任意のデバイス、またはこれらの組み合わせと交信することが可能である。かかる交信は、入力/出力(I/O)インターフェース22を介して行うことができる。さらになお、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介し、ローカル・エリア・ネットワーク(LAN)、一般広域ネットワーク(WAN)、もしくは パブリック・ネットワーク(例えば、インターネット)またはこれらの組み合わせなど、一つ以上のネットワークと通信することが可能である。図示のように、ネットワーク・アダプタ20は、バス18を介し、コンピュータ・システム/サーバ12の他のコンポーネントと通信する。なお、図示はされていないが、コンピュータ・システム/サーバ12と併せ、他のハードウェアもしくはソフトウェアまたはその両方を用いることができよう。上記の例には、以下に限らないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ記録保管ストレージ・システムなどが含まれる。
次いで、図2を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示のように、クラウド・コンピューティング環境50は、例えば、携帯情報端末(PDA)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、もしくは車載コンピュータ・システム54Nまたはこれらの組み合わせなど、クラウド消費者が用いるローカル・コンピューティング・デバイスが通信可能な、一つ以上のクラウド・コンピューティング・ノード10を含む。ノード10は相互に通信することが可能である。これらは、前述のプライベート、コミュニティ、パブリック、またはハイブリッド・クラウドあるいはこれらの組み合わせなど、一つ以上のネットワークに、物理的にまたは仮想的にグループ化する(図示せず)ことができる。これは、クラウド・コンピューティング環境50が、クラウド消費者がローカルのコンピューティング・デバイス上にリソースを維持する必要のない、インフラストラクチャ、プラットフォーム、もしくはソフトウェアまたはこれらの組み合わせをサービスとして提供することを可能にする。当然ながら、図2に示したコンピューティング・デバイス54A〜Nの種類は例示だけを意図したものであり、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意の種類のネットワークもしくはネットワーク・アドレス可能接続またはその両方を介して、(例えば、ウェブ・ブラウザを使って)任意の種類のコンピュータ化デバイスを用いて通信することが可能である。
次いで、図3を参照すると、(図2の)クラウド・コンピューティング環境50によって提供される機能的抽象化層のあるセットが示されている。なお、前もって言うが、図3に示されたコンポーネント、層、および機能は、例示のためだけのものであり、本発明の実施形態はこれらに限定されない。図示のように、以下に記載する層および対応する機能が提供される。
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、一例としてIBM(登録商標)zSeriesシステム、一例としてIBM(登録商標)pSeriesシステムなどのRISC(Reduced Instruction Set Computer(縮小命令セット・コンピュータ))アーキテクチャ・ベースのサーバ、IBM(登録商標)xSeries(登録商標)システム、IBM(登録商標)BladeCenter(登録商標)システム、ストレージ・デバイス、ネットワークおよびネットワーク形成コンポーネントが含まれる。ソフトウェア・コンポーネントの例には、一例としてIBM(登録商標)WebSphere(登録商標)アプリケーション・サーバ・ソフトウェアなどのネットワーク・アプリケーション・サーバ・ソフトウェア、および一例としてIBM(登録商標)DB2(登録商標)データベース・ソフトウェアなどのデータベース・ソフトウェアが含まれる。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphereおよびDB2は、世界中の多くの司法管轄区域で登録されているInternational Business Machines Corporationの商標である)。
仮想化層62は、例えば、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、並びに仮想クライアントなどの仮想エンティティを設けることが可能な抽象化層を提供する。
一例において、管理層64は、下記の機能を提供する。リソース・プロビジョニングは、クラウド・コンピューティング環境内のタスクを実施するのに用いられる、コンピューティング・リソースおよび他のリソースの動的調達を提供する。計量および課金は、リソースがクラウド・コンピューティング環境内で用いられる際のコストの追跡、およびそれらリソースの消費に対する請求書または使用明細書の作成を提供する。一例において、これらのリソースは、アプリケーション・ソフトウェアのライセンスを含み得る。セキュリティは、クラウド消費者およびタスクに対する本人確認、並びにデータおよび他のリソースに対する保護を提供する。ユーザ・ポータルは、消費者およびシステム管理者に対し、クラウド・コンピューティング環境へのアクセスを提供する。サービス品質管理は、要求されるサービス品質が満たされるようにするための、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス品質保証制度(SLA:Service Level Agreement)計画および達成は、SLAにより今後の必要性が予期されるクラウド・コンピューティング・リソースに対する事前手配および調達を提供する。
作業負荷層66は、クラウド・コンピューティング環境を使用することが可能な機能の例を提供する。この層から提供され得る作業負荷および機能の例には、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想クラスルーム教育配信、データ分析処理、トランザクション処理、モバイル・デスクトップが含まれる。
一つ以上の実施形態は、例えば、IaaSまたはPaaSクラウドなどのクラウドにアプリケーション・リソース・マネージャを有利に実装する。
上述のように、サービス型インフラストラクチャ(IaaS)クラウドおよびサービス型プラットフォーム(PaaS)クラウドは、イメージの迅速な展開(プロビジョニング)、イメージが使われていない間のそれらの退避、およびイメージに割り当てられたリソースの潜在的にライブまたは準ライブの変更、に対する基本的なケイパビリティを提供する。但し、これは、アプリケーション層(本明細書では作業負荷層66と互換的に呼称する)に直接に適用はされない。すなわち、アプリケーション層66では、利用状況を監視し、あるアプリケーションに対するインフラストラクチャをいつどのように拡張または縮小することが可能かを判断するのにまだ人手が必要である。例外は、開発および試験アプリケーションのような、比較的に短時間だけ展開され、その後完全に除去されるアプリケーションである。実際には、これらはIaaSおよびPaaSクラウド上での実行が現在検討されている最も一般的なアプリケーションである。
IaaSおよびPaaSクラウド中の仮想化層62および管理層64は、ハードウェアと、場合により基本的ソフトウェアとだけを管理し、作業負荷は管理しないことに留意する。したがって、これまでアプリケーション層の管理は、別個に、通常は人間の介入を伴って行われてきた。
上述のように、サービス型ソフトウェア(SaaS)クラウドは、アプリケーション層に働きかけるが、これらのクラウドは、IBM(登録商標)LotusLive(商標)ソリューション、または米国カリフォルニア州、サンフランシスコのSalesforce_dot_com,Inc.(“_dot_”はブラウザ実行のコードの含有を避けるための“.”の代替))から入手可能なものなど、特定のアプリケーションの種類に非常に特化して構築される。
同じく上述のように、Amazon(登録商標) Web Services、MicrosoftのAzure(米国ワシントン州レッドモンドのMicrosoft Corporationの商標)、およびHadoop(Apache Software Foundationから入手可能)など、特定の新規なプログラミング・モデルおよび言語でコードしたアプリケーションを必要とするハイレベルのクラウドもある。
一つ以上の実施形態は、変動するまたは単に増加するリソース需要を伴う、標準的で概して変化しないアプリケーションが、IaaSまたはPaaSプラットフォーム・ケイパビリティを容易に使用することを有利に可能にする。
グリッドとの関連で、動的インフラストラクチャに対し事前作業がされていることを考慮する必要があるが、グリッドは、イメージをプロビジョニングし管理するためにIaaSおよびPaaSクラウドが有するのと同じ種類のインターフェースを有せず、したがい、グリッドに対するアプリケーション管理の問題はクラウドに対するものとは異なる。同様に、IBMのオセアノ・コンピューティング・ユーティリティ・パワープラント・プロジェクトなど、旧タイプの大型の分散型インフラストラクチャ・プロジェクトは、クラウド中にあるような根底となる別個の層60、62,64を用いる作業はしていなかった。
次いで、図4の簡単なシステム概観を参照すると、一つ以上の実施形態は、IaaSまたはPaaSクラウドの標準的システム10およびアプリケーション・コンポーネント403に追加された、アプリケーション・リソース・マネージャ・コンポーネント401を用いている。このアプリケーション・リソース・マネージャは、アプリケーションの必要に応じてクラウドのリソースを拡大および縮小する。
これらのタスクを遂行するために、アプリケーション・リソース・マネージャは、根底のIaaSまたはPaaSクラウドの管理インターフェース、すなわち、管理層64の上部インターフェースと相互交信し、一方、アプリケーションは、クラウドに提供されたイメージおよび他のリソースを使用する。ここで、用語「イメージ」は、IaaSクラウドが提供する純粋なオペレーティング・システムのイメージ、およびPaaSクラウドが提供するミドルウェアを含むイメージの両方に対して使われる。図3に関し、IaaSイメージは仮想サーバであり、通常、利用可能且つプロビジョニングが容易なイメージのカタログと、このカタログに対応するイメージのファイルと、プロビジョニングされて実行されている実際のインスタンス・イメージが存在する。管理層64のリソース・プロビジョニング・コンポーネントは、層66で潜在的な作業負荷に対するカタログを提供し、イメージのファイルを包含し、仮想化層62中にインスタンス・イメージ(仮想サーバ)の形成をもたらす。以降、このプロセスの理解を所与として、単に「イメージ」と称することにする。アプリケーションに対しプロビジョニングされたイメージに加えて、標準的なアプリケーション・コンポーネントのコード、データ、機器構成などがある。言い換えれば、クラウドの管理層を介してプロビジョニングされなかった作業負荷の部分(群)がこのアプリケーション・コンポーネントを構成している。
アプリケーション・リソース・マネージャが使用する管理インターフェースには、OSSの態様(オペレーション・サポート・システム、例えばリソース・プロビジョニング・コンポーネントに対する直接インターフェース)およびBSSの態様(ビジネス・サポート・サービス、例えば、追加のプロビジョニングの際に追加支払いの合意が必要な場合の、コンポーネントの課金のためのインターフェース)を含めることができる。これら全てはユーザ・ポータルを通して取捨選択することは可能であるが、本明細書では、管理インターフェースが、作業負荷層66からの自動化プログラムが使用するためのAPI(アプリケーション・プログラミング・インターフェース)、ウェブ・サービス・インターフェースなども包含しているか、もしくは、リソース・プロビジョニングなどの個別コンポーネントに対するインターフェースが作業負荷層66のプログラムに直接アクセス可能であるか、のいずれかを前提とする。
アプリケーション・リソース・マネージャ401は、アプリケーション所有者513(アプリケーション要求を予測する権限を持つ人間に対し、その役割を標準ユーザ515から区別するため本明細書で用いる名称、図5を参照)からの来るべき需要を知ることができ、あるいは、クラウド管理より得られたレポートから、およびアプリケーションの観察によって、現在の利用状況および傾向を導き出すことが可能である。また、アプリケーション・リソース・マネージャ401は、インフラストラクチャの不具合について知り、特定の利用度ターゲットに達するためそれらに対処することもできる。
少なくともいくつかの実施形態において、少なくとも需要が変化した場合、アプリケーション・リソース・マネージャは、イメージをプロビジョニングまたは退避し、あるいは、仮想ストレージまたは仮想ネットワークのバンド幅など、それらのリソース帰属先を変更する。随意的に、該マネージャは、プロビジョニングする際新規のイメージ上に、アプリケーションレベルのソフトウェアもしくはデータまたはその両方をプロビジョニングする。
しかして、一つ以上の実施形態は、クラウド10、少なくとも一つのアプリケーション・コンポーネント403、およびアプリケーション・リソース・マネージャ401を含むシステムを提供し、アプリケーション・リソース・マネージャはアプリケーション・リソースの必要性を満たすため、アプリケーション・コンポーネントに対するクラウド・リソースを拡大もしくは縮小またはその両方を行う。
一つ以上の実施形態において、アプリケーション・リソース・マネージャは、IaaSまたはPaaSクラウドのサービスを使用する。これらのコンポーネントおよびその相互作用についてのさらなる詳細が図5に示されており、この図はさらに詳細なシステム概観を提示している。
なお、アプリケーション・リソース・マネージャ401自体は、クラウド10上で実行してもしなくてもよい。アプリケーション・ボックス511は仮想であり、このことは、アプリケーション・リソース・マネージャが、特定のアプリケーションに属しており、そのアプリケーションの構造を存知しているべきことを示す。
引き続き図5を参照すると、アプリケーション所有者513は、アプリケーション管理インターフェース(図3では、これは、作業負荷層66の上部インターフェース、すなわち、アプリケーション/作業負荷がそれらのユーザとやり取りするインターフェースである)を介してアプリケーション・リソース・マネージャ401とやり取りする。アプリケーション・リソース・マネージャ401は、アプリケーション511に関連付けられ、標準的アプリケーション・ユーザ515が使用するアプリケーション・ソフトウェア517のセットアップと、アプリケーション・ソフトウェア517および対応するイメージ519の監視とを遂行する。これらのイメージは、クラウド・ランタイム環境521の一部となる。ブロック521は、基本的には図3の仮想化層62(または層60および62を併せたもの)と相似であり、一方、クラウド管理プラットフォーム523は層64と相似である。クラウド管理プラットフォーム523は、クラウド・ランタイム環境521を管理し、該環境は、適切なプロビジョニング・インターフェース(すなわち、直接の、あるいはBSSインターフェースもしくはユーザ・ポータルまたはその両方の介在を経た、リソース・プロビジョニング・コンポーネントへのインターフェース)を介してアプリケーション・リソース・マネージャ401と相互作用する。また、クラウド管理プラットフォーム523は、アプリケーション・リソース・マネージャ401に利用度および不具合のレポートを提供する(これらは、例えば、図3の計量コンポーネントまたはサービス品質管理コンポーネントから来ることになろう)。
一つ以上の実施形態において、401などのアプリケーション・リソース・マネージャは、図6に示すように構築することが可能で、これらのコンポーネントは、以下の例示的な機能を提供する。
ポリシー631は、長期の目標を設定する。例えば、アプリケーションのサービスレベル目標(これらはクラウドの目標とは異なる、すなわち、これらは層66に対する目標であり、層64についてはこの層のサービス品質管理コンポーネントおよびSLA計画コンポーネントが履行するので、層64に対するものではない)として与えられることがあるパフォーマンスおよび利用度目標である。パフォーマンス向上の必要性に対する短期予測に関する目標など、アプリケーション所有者からのより短期の目標もポリシーとして表現することもできる。
管理コンポーネント633は、ポリシーと、アプリケーションおよびクラウドから知得したことを考慮してアクションを決定する。具体的には、これらのアクションには、クラウドに対する、プロビジョニング、退避、またはプロビジョニング解除の要求、および、例えば、イメージ・リソースの拡大および縮小、異なるサーバへのライブでの移行、またはクラウドからのより高いサービス品質の選択(これには、例えばより良いパフォーマンス保証およびより高い可用性または信頼性の保証を含めることができる)などクラウド管理プラットフォームが可能であればどのような他のアクションも含まれる。
制御コンポーネント635は、管理コンポーネントからの抽象要求を、例えば、アプリケーション・プログラミング・インターフェース(API)またはウェブ・サービス・インターフェースなどを介して、クラウド管理プラットフォームとの具体的な相互作用に変換する。かかる相互作用はマルチステップのシーケンスとすることができ、これには、イメージのサイズを選択し、支払い方法または既存のアカウント番号を選定するなど、OSSおよびBSSレベルのステップを含めることも可能であろう。
解釈コンポーネント637は、制御コンポーネントとは逆に、アプリケーション自体のイメージと、他の仮想リソースおよび全体的クラウドとの両方についての利用状況情報、または不具合レポートなど、クラウドからのレポートを解釈する。
制御コンポーネントおよび解釈コンポーネントを管理コンポーネントから分離する利点は、アプリケーション・リソース・マネージャがいろいろなクラウドに適応するのが容易になることである。図6の例において、アプリケーション・リソース・マネージャは、アプリケーション・コンポーネントと直接相互作用を行うことができるが、但し、これは該マネージャがそのアプリケーションに固有のものだからである。
以下に、このアプリケーション・マネージャ(アプリケーション・リソース・マネージャ)のいくつかの可能な機能について、さらなる非限定の例示的な詳細を提示する。
監視に関し、場合によっては、アプリケーション・マネージャは、当該アプリケーションのユーザ・インタフェースでの監視(この場合、例えば、アプリケーション・サービス品質保証制度(SLA)を適用することが可能である)および(517,519などの)個別のコンポーネント、特に相異なるイメージに展開されているものに対する監視、のいずれかまたは両方によって、アプリケーション・コンポーネント403およびそれらの利用状況を監視することができる。また、アプリケーション・マネージャは、クラウド・インターフェースを介して(すなわち、523から)そのクラウド・イメージの現在の使用量についての情報を得ることができ、もしくは、クラウド・インターフェースを介してクラウドの現在の全体的使用量についての情報を得ることができ、またはこの両方を行うことができる。このことは、リソースが共用されている場合、より多くのリソースを取得する効果を予測する上で注目されてよい。
さらにまた、監視に関し、場合によっては、アプリケーション・マネージャは、それ自体のイメージの不具合についての情報(523から)およびクラウドの全般的信頼性についての情報を得ることが可能で、利用状況に基づいて予測(例えば、月ごとのピークの予測、または需要の全体的なゆっくりした上昇の予測)を用い、今後の需要を見積もること、もしくは、随時に、発見ツール(これについては本明細書の他の部分でさらに説明し、「再発見」と互換的に呼称する)によってアプリケーション構造の妥当性を再確認すること、が可能であり、これらの両方を行うこともできる。アプリケーションのユーザ515も変更を加えるためのある程度の権利を有し得るので、これらは、アプリケーションのイメージ519およびアプリケーション・ソフトウェア517に適用されることになろう。また、発見ツールは、現在のデータベースのサイズなど、アプリケーションレベルのパフォーマンス・パラメータを見出すための助力にもなり得る。
目標に関し、場合によっては、アプリケーション・マネージャは、短期的目標を、絶対値もしくは現在パフォーマンスとの相対値で、アプリケーション所有者から得ることができる。これらの目標は、通常、個別のイメージ上の個別のアプリケーション・ソフトウェア・コンポーネントのパフォーマンスに言及するよりも、むしろ(例えば、トランザクション・スループットまたはエンドユーザへの応答時間など)アプリケーション全体に対して言及する。さらに、アプリケーション・マネージャは、アプリケーション所有者から、例えば、常にある特定のSLAを提供する、または突然の変化に備え常にある所定量の空き高を有するなど、ハイレベルの目標(長期ポリシー)を得ることができ、もしくは、例えば、常に最安価なリソースの全体セットを選択して所望のSLAを提供する、あるいはある特定のコスト限度までだけにおいて常に可能最善のパフォーマンスを提供するなど、コスト目標または限度を得ることができ、または上記の両方を得ることができる。
起こり得る決定に関し、場合によっては、アプリケーション・マネージャは、アプリケーションに割り当てられた個別のクラウド・イメージに割り振られたリソースを拡大もしくは縮小またはその両方を行う決定をすることができる。クラウドに応じ、これは、現在のイメージにおいてまたは対応するアプリケーション・コンポーネント517をより大きなイメージ519に移行することによって行うことができよう。さらに、アプリケーション・マネージャは、アプリケーションの使用のためのクラウド・イメージ全体をプロビジョニング、削除、または退避する決定をすることができる。また、この場合、該マネージャは、これらの上に適切なアプリケーション・ソフトウェアを展開する必要がある。これに関し、アプリケーション・マネージャは、この目的のため一つ以上のゴールド・イメージ、すなわち、アプリケーションの全ての繰り返し可能な部分を既に包含する休止状態のイメージを保持しておくことができ、もしくは、移行ツールを用いて、現在の全体的アプリケーションの状態に対応するソフトウェア構成を展開することも可能であり、またはその両方を行うこともできる。
さらにまた、起こり得る決定に関し、一部の例では、アプリケーション・マネージャは、クラウドが別途に選択を提供している場合は、追加のストレージもしくはネットワーク・リソースまたはその両方を求める決定をすることができ、その現在のポリシーまたは要求を満たすことができない場合は、ユーザの警告する決定をすること、もしくは、定期ベースまたは要求を受けてアプリケーションレベルの状況をユーザに連絡すること、またはその両方を行うことができる。
判断過程に関し、場合によっては、アプリケーション・マネージャは、最適化解法ツールを用いて判断を下すことができ、あるいは該マネージャが、判断過程コードを直接包含していることも可能である。クラウドが(例えば、ウィークエンドのコスト割引などの)動的課金スキーマを有する場合、該マネージャは、動的クラウド・コストに基づいて判断を下すことができる。動的クラウド・コストを用いるのは、アプリケーションが、タイム・クリティカルでなく、より廉価なリソースで実施可能な側面を包含する場合に特に有用である。
なお、少なくとも一部の例において、ポリシーは、根底のコーディング、すなわち許容可能値または値の範囲を規定するデータ構造体を変える必要なくして、許容可能値および他の変数を規定することができるデータファイルなどの中の、パラメータによって実装することができる。
ポリシー・ブロック631に関し、一つ以上の例において、同ポリシー・ブロックは、目標または要求事項、あるいは場合によって、特定の状況でなすべきことを定める。具体的には、該ポリシーには、例えば、アプリケーションレベルのトランザクションに対しどの位の待ち時間が受容可能か、どの位多くの未達成の長時間実行ジョブを抱えてどの位最終期限に近づいてよいのか、あるいは、例えば月末にどのくらいの負荷を予期すべきかなど、アプリケーションレベルに対するポリシー(すなわち、正式の目標または要求事項)を包含させることができる。また、場合によって、該ポリシーには、例えば、どのくらいの空きストレージの量が常に利用可能であるべきか、ある仮想マシン(VM:virtual machine)がある持続時間の間、どの位のレベルの使用量を許されるべきか、などといったインフラストラクチャレベルのポリシーを包含させることも可能である。
管理ブロック633は、ポリシー631から値を読み取り、システム中で生じていることについてのデータ入力を(例えば、アプリケーションレベルでプローブまたは同類のものおよび解釈ブロック637から、クラウド・レポートまたはイメージレベルの監視から)得て、ポリシー631をアクションに移す。これらの例には、VMを割り当てるべきか、退避すべきか、他のVM上でサービスを開始すべきかどうかの決定、VMのメモリ割り当てもしくはCPU割り当てまたはその両方を増加すべきかどうかの決定、ストレージを増加もしくは削減またはその両方を行うべきかどうかの決定などが含まれる。
制御ブロック635は、各種のアーキテクチャにインターフェースを提供し、例えば、仮にクラウドがvmwareだけであるとすれば、該制御ブロックはvmrunインターフェースと相互作用してVMを制御することになろう。すなわち、制御モジュール635は、管理モジュール633からの命令を、それらが、クラウド・リソースを管理しているリソース・プロビジョニング・モジュール(図3中の層64を参照)または同種のモジュールに理解できるように翻訳する。
解釈ブロック637に関し、同ブロックは、各種のクラウド・アーキテクチャにインターフェースを提供し、例えば、仮にクラウドがvmwareだけであるとすれば、vmwareインターフェースからのパフォーマンス・レポート、もしくはVM内で実行可能なプローブへの抽象化またはその両方を解釈することになろう。一部の例では、クラウドは、イメージのCPU利用状況を提示することができる(例えば、図3の層64中の計量および課金を参照)。管理ブロック633は、解釈ブロック637に、自分が全てのイメージのCPU利用状況を必要とすることを通知することができ、ブロック637はこれを翻訳して、必要なコマンドを計量および課金ブロックに与え、クラウド固有の結果を共通のフォーマットに翻訳する。場合によっては、ARM(アプリケーション・リソース・マネージャ)401は、例えば、アプリケーションレベルの待ち時間(すなわち、標準的アプリケーション・ユーザ515がどれほど長く結果を待たなければならないか)を監視するため、または長時間実行のアプリケーションの状態について知るために、クラウド・インターフェースに加えて、またはその代わりに、自分の層の上で自分が管理しているイメージへの関連付けを行う。かかる場合、アプリケーション・ソフトウェア517が、管理のためのIPリスニング・サービスまたはウェブ・インターフェースを提供することが可能で、アプリケーション・マネージャは対応する接続を構築し、対応する管理上のクエリを送信する。
場合によっては、ARM401は標準的なイメージ上にアカウントを有し、それを使って該標準的なイメージにログインし、適切なコマンドを実行してそのイメージから直接にCPU利用状況を読み出すことが可能である。一部の例では、アプリケーションは、例えば、直近の10分間にどれほど多くのトランザクションが実行されたか、といった適切なクエリに応答するようにプログラムすることができる。
誤解を避けるために付言すれば、本文脈で「アプリケーション」とは、例として、WEBSPHERE(登録商標)ソフトウェア内のJAVA(登録商標)コード、またはDB2(登録商標)ソフトウェア内の特定のデータベース・スキーマ、あるいは、例えば、ショッピング・カート・アプリケーションまたは旅行報告アプリケーションを提供するのに必要な全コード片など、典型的には前述のコードの種類の組み合わせなどの、最終的な所望の(且つ、クラウドによって提供されていない)機能を遂行するコードをいう。ここでのプローブとは、サーモカップルのような物理的プローブの対語であり、所望の値を得るため他のソフトウェアと通信するソフトウェアの構成片である。
詳細だが非限定の例として、(通常複数の)ウェブ・サーバ、アプリケーション・サーバ、およびデータベースを備えた、3段階のアーキテクチャを考えてみよう。エンドユーザの要求に対する平均待ち時間をある特定の閾値以下に保つことが望まれている。待ち時間は、過負荷されているエレメントのいずれによっても生じ得る。(アプリケーション固有の、例えば、httpサーバが要求に応答するのにどの位の時間がかかるかなどの)要求に応答するための待ち時間を測定することが望ましい。
この例において、ポリシー・ブロック631は、入来する要求に応答するためにどのような待ち時間が利用可能か、およびできれば、システムの定常状態はどうあるべきかを定義する。解釈ブロック637は、個別のコンポーネントについての情報を提供するプローブとインターフェース接続する。管理ブロック633は、ポリシー・ブロック631と、解釈ブロック637からのデータと、アプリケーション・ソフトウェアとの直接交信を用いて、待ち時間が長すぎる場合には、場合によって、3階層のどれがボトルネックであり増強を必要としているかを判断して、待ち時間を短縮するために、入来する要求を取り扱うVMの数を増やすなどの決定を行う。管理ブロック633は、制御ブロック635とインターフェース接続し、クラウドに対し、既存のマスタ・テンプレートVMをコピーしてそれをオンラインに加えるよう命令し、次いで、その上に適切なデータを配置し、それをアプリケーション中にバインドして負荷を分担できるようにする役割を果たす。
逆に、待ち時間が限度よりはるかに短く、(ポリシー631による)標準定常状態の数より多いVMがある場合、管理633は、制御635に対し、VMを徐々にシャットダウンするように命令することができ、例えば、アプリケーションレベルの負荷バランサ・ポリシーを修正することによって、残ったVMにより全作業負荷が取り扱われるようにアプリケーションをリセットする役割を果たす。
この非限定の例のさらなる詳細として、ポリシー631は、入来する要求に応答するために、どのような待ち時間が利用可能であるべきか、および、システムの定常状態はどうあるべきかを次のように定義する:
average_latency {
period = 1min
max_latency = 500ms
}。
これにより、平均待ち時間が1分を超える期間は、500msを上回ってはならないというポリシーが設定される。通常、仮に上回るような事態が起こり始めれば、もっと多くのマシンが割り当てられることになる。前述のように、管理モジュール633中のロジックは、プローブからデータを得て、ポリシー631を調べ、何らかのポリシーが破られている場合には適切なアクションをとる。同じ効果をもたらす命令が、制御ブロック635に送信され、そこで命令はこれも前述したように翻訳される。
また、管理ブロック633は、各個別アプリケーション・ソフトウェア・コンポーネント517に対し、マイクロテストを実行することができる。
このとき、管理ブロック633はロジックを随意的に実行し、どの層が待ち時間の原因となっているのか判定しようと試みる。管理ブロックは、各層上でマイクロベンチマークを実行する能力を有し、これは他のどの層にも影響を与えない。例えば、管理ブロックは、ウェブ・サーバから静的ウェブページをフェッチして、そのウェブ・サーバの待ち時間だけを測定することができる。管理ブロックは、データベースをヒットしないアプリケーション・サーバに対し、簡単なクエリおよび簡単なデータベース・クエリを行うことができる。解釈ブロック637によって提供されるVMレベルの測定値と併せ、これらのクエリによって、管理ブロックは、どのコンポーネントが過負荷になっており、しかしてどのコンポーネントのサイズを増大するか、を正確に把握することが可能になる。なお、この点に関し、測定値だけを用いることもでき、マイクロベンチマークだけを用いることもでき、両方を併せ用いることもできる。さらに、マイクロベンチマークは、例えば、望ましい値を知るためうまく実行されているシステム上で行われた、予備テストに基づいたものとすることが可能である。
例えば、管理ブロック633が、ウェブ・サーバのフロント・エンドが過負荷状態にあり、最善の決定はより多くのフロント・エンドを追加することである、と判定した場合、管理ブロックは、制御ブロック635に対し、新規のVMを割り当てるよう命令し、次いで、そのVMに必要な一切の追加ソフトウェアおよびアプリケーション・データを配置し、該VMを当該アプリケーションに組み込むことになる。
仮にクラウドがvmwareだけであれば、制御ブロック635は、ウェブ・サーバのフロント・エンドのゴールド・マスタVMを新規のVMにコピーすることになろう。次いで制御ブロックは、vmwareAPIのRegisterVm()機能を使って、そのVMをVMインフラストラクチャに加えることになる。加えたならば、制御ブロック635は、APIを用いて新規VMに接続し、そのStart()法を使って該マシンを立ち上げることになる。次いで、管理ブロック633は、それをフロント・エンド・デューティを担当するマシンのクラスタに加えることになる。簡単な例では、マシンのサイズを増大することができよう。
別の非限定の例において、ストレージの使用量の監視を考えてみよう。ポリシー631は、どの位の空きストレージ量が利用可能であるべきか、多すぎる空きストレージはどの位かを定義する。解釈ブロック637は、標準的なインターフェース(du、df、quota、...)とインターフェース接続し、空きスペースの量を算定する。管理ブロック633はこれらの情報の両方を用いて、十分な空きスペースが利用可能でないか(または過剰なスペースがあるか)どうかを判定する。管理ブロック633は、制御ブロック635に対し、ポリシーに従ってもっと多くの空きスペースを割り当てる(または減らす)よう命令する。適切なコマンドは、次の形となろう:
“increase−disk <image id> <disk id> <size>”。
例えば、VMの負荷の如何によっては、一部のVMは一つ以上のサービスを実行することが可能かもしれない。場合によっては、このとき(VMインフラストラクチャからの)VMの負荷を監視すること、および各VM中にプローブを置いて個別のサービスのリソース(CPU、I/O)使用量を監視して、各個別サービスがどれほど使用しているかを知ることが可能である。
ポリシー631は、VMがどの位の持続的負荷の下で作動可能であるべきか、および、VM上で実行されている個別のサービスに対してどの位の持続的負荷が許されるべきか、を決定することができる。解釈ブロック637は、VMインフラストラクチャ負荷監視機能(全体的なVM負荷)および(各個別サービスに対するOSレベルの負荷測定値を監視するため)VMの内部のプローブとインターフェース接続する。管理ブロック633は、ある個別VM上の負荷が高すぎる場合、個々のサービスが別個のVMで実行できるようにVMを分割する、あるいは負荷が減少した場合、分割されたVMを再び一緒に組み合わせる決定を行うことができる。管理ブロックは、制御ブロック635とインターフェース接続し、必要に応じ、新規VMを立ち上げまたは既存のVMをシャットダウンし、同様に、個別のVM上で実行されているサービスをシャットダウンまたはスタートする。
さらに別の非限定の例において、VMのメモリおよびCPUの使用量を増やすことを考えてみよう。ポリシー631は、単一のマシン上で、どの位の持続したメモリおよびCPU負荷が許されるかを決定する。解釈ブロック637は、CPU使用量および空きメモリのレポートを取得し、これを管理ブロック633に入力する。管理ブロック633は、各個のVMのCPUおよびメモリ割り当てを増加(または削減)する決定をすることができる。管理ブロックは、制御ブロック635にその実施を命令する。制御ブロック635は、VM(必要な場合、一部のVMはホットプラグのCPUをサポートしている)をシャットダウンし、それを再構成してCPUおよび割り当てメモリの数を増やし、VMアーキテクチャのインターフェースを用いてそれを再スタートさせることができる(例えば、vmware上でvmrunを実行し、VMの構成ファイルを手入力またはAPIを介して編集する)。
まださらなる非限定の例において、月当たりの許容ダウンタイムが規定されている場合について考えてみよう。アプリケーション・マネージャは、当該月度の現時点までの合計ダウンタイムを記録することができ、許容限度に近くなったことが判明した場合、該マネージャは制御コンポーネント635を用いて、追加のリソースを命じることになる。
以下は、サーバをプロビジョニングしストレージを増加するための、非限定の例示的な実際のコマンドである:
provision <template/base id name> <new id name>>
increase−disk <id name> <size>。
別の態様において、一つ以上の実施形態は、既存のビジネス・アプリケーションを、クラウドスタイル・モデルに、すなわち、ビジネスの必要性に応じてビジネス・アプリケーションを容易に拡大または縮小することが可能なITインフラストラクチャに、移行することに取り組む。この容易性はビジネス・アジリティとも呼ばれ、ビジネス・アプリケーションが実際に使ったリソースに比例するだけのコストまたは料金徴収に関連付けられている。
しかして、一つ以上の実施形態は、容易にクラウド化可能なアプリケーションの発見型の識別および移行を提供する。上述したように、クラウドは、今日、産業界において関心のある話題である。現在の焦点領域は、新しいアプリケーション・プログラミング・モデルを設計、実装し、それらのモデルによって新規のアプリケーションを構築することである。その例に、Googleのマップ・リデュース・モデル(米国カリフォルニア州、マウンテンビューのGoogle Inc.から入手可能)およびSalesforce_dot_com(米国カリフォルニア州、サンフランシスコのSalesforce_dot_com, Inc.(“_dot_”はブラウザ実行のコードの含有を避けるための“.”の代替))の標準化ウェブ・ベース・カタログ型アプリケーションのモデルがある。
これらの取り組みは新規アプリケーションの範囲には適しているが、大方の大企業は、膨大な数の既存のITサポートのビジネス・アプリケーションを有する。これらのアプリケーションは、特定の企業がそのビジネスの所与の特定部分を実施する多くの具体的やり方をコードしている。また、これらは、通常、ビジネス・アプリケーションに固有のフォーマットによる相当な量のデータを伴っている。さらに、これらはコードの数百万のラインを包含し得る。このため、企業に、かかるアプリケーションを新規のプログラミング・モデルで完全に書き換える余裕があることは非常に稀有である。アプリケーションを、ウェブ・サービスを介して相互作用するモジュールに分解したり、またはデータ・フォーマットを再実装したりするなどの、より控えめな変更でさえも非常にコストがかかり、多くの場合リスクがあるので、大方の企業は自社のアプリケーションのほとんどに対しそれすらやりたがらない。
前述の新規アプリケーション・プログラミング・モデルは、大量の既存のコードがある場合には実用性が限られ得る。有利には、本発明の一つ以上の実施形態は、こういった場合に対処し、たとえ大量の既存コードがある場合にあってもクラウド化を可能にする。
実際には、諸企業は、クラウドの有望性、特にそのビジネス・アジリティを活用することを望んでいる。一つの理由はビジネス・レベルにある。期待外の分野での迅速なビジネス成長は、この機敏性があってこそ可能である。別の理由はコスト削減である。将来の需要が予測または推測できたとしても、インフラストラクチャが相対的に固定的であれば、十分に前もってインフラストラクチャを拡大しなければならず、ピークの後、おそらくはそれを再び削減することにはならないであろう。これは資源の浪費である。
現在または近い将来の一つのオプションは、Amazon Elastic Compute Cloud(Amazon EC2)(R)ウェブ・サービス、または米国ニューヨーク州アーモンクのInternational Business Machines Corporationから利用可能なIBM SmartCloud(登録商標)Enterpriseなどの、サービス型インフラストラクチャ(IaaS)クラウドに移行することである。IaaSクラウドは、オペレーティング・システム・イメージの迅速なプロビジョニングを可能にする。これは良好な基盤である。しかしながら、これはまだビジネス・アジリティがない。というのは、これらの空のオペレーティング・システム・イメージを具体的なビジネス・アプリケーションに対し役立つようにするためには、未だに多くの追加作業が必要だからである。いかなる既存のアプリケーションに対しても、これを系統的に行ういかなる現行の方法もないと考えられている。
図7を参照すると、一つ以上の実施形態が、下記のように既存のアプリケーションを処理している。ステップ702で、一般的に、後続のステップに対する十分な情報を得るために、インフラストラクチャ発見ツールが実行される。望ましくは、このツールは、例えばIBM ResearchのGalapagosツールのように、ビジネス・アプリケーションを追跡することができるべきである(例えば、K.Magoutis、M.Devarakonda、N.Joukov、およびN.G.Voglの「Galapagos:Model driven discovery of end−to−end application−storage relationships in distributed systems」IBM RES.&DEV.52巻NO.4/5、2008年7月/9月、367−377を参照)。
以下の共同譲渡された米国特許公報は、発見もしくは移行またはその両方に関して当業者には興味深いであろう。参照することにより、これらはあらゆる目的に対し全体として全て明示で本明細書に組み込まれる。
20110196984 DISTRIBUTEDPARALLEL DISCOVERY
20110196959 MIDDLEWARE-DRIVENSERVER DISCOVERY
20110191454 DISCOVERINGPHYSICAL SERVER LOCATION BY CORRELATING EXTERNAL AND INTERNAL SERVERINFORMATION
20110107327 ASSISTINGSERVER MIGRATION
20110055816 METHODTO DERIVE SOFTWARE USE AND SOFTWARE DATA OBJECT USE CHARACTERISTICS BY ANALYZINGATTRIBUTES OF RELATED FILES
20110055806 METHODAND SYSTEM TO DISCOVER POSSIBLE PROGRAM VARIABLE VALUES BY CONNECTING PROGRAMVALUE EXTRACTION WITH EXTERNAL DATA SOURCES
20110029946 EFFICIENTEXTRACTION OF SOFTWARE DEPENDENCIES FROM PROGRAM CODE
20100319060 PROCESSAND SYSTEM FOR COMPREHENSIVE IT DISCOVERY WITHOUT CREDENTIALS
20090307743 METHODTO AUTOMATICALLY MAP BUSINESS FUNCTION LEVEL POLICIES TO IT MANAGEMENT POLICIES
20090307174 CONNECTIONOF VALUE NETWORKS WITH INFORMATION TECHNOLOGY INFRASTRUCTURE AND DATA VIA APPLICATIONSAND SUPPORT PERSONNEL
20090150472 METHODFOR NON-DISRUPTIVELY ASSOCIATING APPLICATIONS AND MIDDLEWARE COMPONENTS WITHINFORMATION TECHNOLOGY INFRASTRUCTURE
20110213883 SYSTEMAND METHOD FOR OBJECT MIGRATION USING WAVES
さらなるステップは、ステップ704に示すように、個別パーツの複製が可能な既存のサブ構造体に関して各ビジネス・アプリケーションに属するインフラストラクチャを分析し、この型の一つ以上のビジネス・アプリケーションを選択するステップを含む。ステップ706で、そのアプリケーションの個別のサブ構造体を、アプリケーションレベルの変化なしに、IaaSクラウドに移行する。ステップ708で、下記のタスクの一つ以上、望ましくはその全てを実行できるビジネス・アジリティ・コンポーネントを構築する:
・ ビジネス必要性の変化を理解するために、該コンポーネントは、ビジネス・レベルの需要拡大または縮小についてのインプットを得るか、もしくは、現在のビジネス・パフォーマンスがある特定の上側限度または下側限度に近付いているかどうかを分析する。
・ 上記に応じて、該コンポーネントはサブ構造体を増大または縮小する。このアスペクトを遂行するため、該コンポーネントは、
・ 識別された、サブ構造体を拡大または縮小するための既存のレプリケーション・メカニズム、および
・ 必要なオペレーティング・システム・イメージをプロビジョニング、プロビジョニング解除、または退避/復元するためのIaaSクラウド・インフラストラクチャ、
を使用する。
ステップ710で、ビジネス・アジリティ・コンポーネントは、ステップ708でそのために構築された対象のタスクを実際に遂行する。
一つの適切なビジネス・アジリティ・コンポーネントとして、前述のアプリケーション・リソース・マネージャがある。2011年7月12日出願の、Murthy V.Devarakondaらの共同譲渡された同時係属の米国特許出願第13/180,858号、名称「Application Resource Manager over a Cloud」を参照するものとし、当該特許出願は、参照することにより、あらゆる目的に対し全体として、明示で本明細書に組み込まれる。
なお、一つ以上の実施形態は、必ずしも全てのアプリケーションに対処するものではない。未知で複雑な構造の任意のアプリケーションを取り上げ、それに対しビジネス・アジリティを適度な労力で実装することは、現在では実用化できていないと考えられている。代わりに、一つ以上の実施形態は、ビジネス・アジリティの導入が適度なオーバーヘッドですぐにできるビジネス・アプリケーションを識別し、それらのビジネス・アプリケーションの実際の移行を可能にする。このことは、それらが無ければできなかったであろう、近い将来のビジネス・アジリティの向上およびコスト削減をもたらす。
図7の方法を表す一例が図8に示されている。本例において、当初の発見で(ステップ702)、ウェブ・サーバ・クラスタ853(複数のIBM(登録商標)HTTP Server、IHSとして表されている)、アプリケーション・サーバ・クラスタ855(複数のIBM(登録商標) WebSphere(登録商標)Application Server、WASとして表されている)、およびデータベース・クラスタ857(複数のDB2(登録商標)データベースとして表されている)を含む、「EventX」と呼ばれるビジネス・アプリケーション851が見出された。「クラウド化」に適さない他のアプリケーションは850にある。ウェブ・サーバ、アプリケーション・サーバ、およびデータベース、並びにこれらの特定の例は、例示であって限定ではない。
しかして、このビジネス・アプリケーションは、個別パーツの複製が可能なサブ構造体を含むので、ステップ704での選定にパスすることになる。これら三つのクラスタの各々は、かかるサブ構造体であり、IHS、WAS、およびDB2(登録商標)はそのパーツである。
変換の矢印859は、ステップ702、704、706、708に対応し、主としてステップ706、708に対応する。一方で、ビジネス・アプリケーション「EventX」の既存のサブ構造体は、基本的に変化なく、すなわち、それらのコードおよびミドルウェアレベルの設定は以前のままで、クラウド10に移行される。(クラウド移行の過程で、他の理由で、バージョン・アップグレードなどの軽微な変更が行われることがあるが、本方法には影響しない。)他方で、ビジネス・アジリティ・コンポーネント861が導入される。
ビジネス・アジリティの矢印863はステップ710に対応する。その後のある時点で、このビジネス・アプリケーションを拡大または縮小する必要がある。図中の例のビジネス・ユーザ865は、EventXの使用が次の月曜日には10パーセント増加するであろうと(ビジネス・レベルで)予測する。この例において、ビジネス・アジリティ・コンポーネント861が、ウェブ・サーバ・クラスタに一つの新しいIHSサーバ867を、データベース・クラスタに一つの新しいDB2(登録商標)869を追加する決定をしたことが分かる。ビジネス・アジリティ・コンポーネントがこれらの決定のために用いた正確なメカニズムは、いろいろな実施形態に応じて変わり得、何らか追加の手入力での指示さえあり得る。これも上述のように、好適な、だが非限定のアプローチにおいて、前述のアプリケーション・リソース・マネージャ401が、ビジネス・アジリティ・コンポーネントとして用いられる。
一つ以上の実施形態において、根底のIaaSクラウド10上に、新規イメージが在ることになるだけでなく、さらにはIHS853およびDB2(登録商標)857を伴った新規イメージ867、869が在ることになるだけでなく、さらになお、ステップ710の終わりには、これらのミドルウェア・パーツがそれぞれのクラスタに完全に組み込まれ、増大したビジネス必要性の成就に参加できる状態になっている。
ビジネス・ユーザがかかる使用量の増加を予測することが可能であり得る、ビジネス・アプリケーションEventXの一例には、月曜から開始予定のスポーツ・イベントがある。別の例には、新規マーケティング・キャンペーン、あるいは季節変化により、使用が増加すると予測される販売アプリケーションがある。
本方法は、下層構造体がクラスタに限定されるものでなく、サブ構造体の個別パーツを複製する他の任意の既存の方法を用いることができる。
場合によっては、必要なものだけを増大または縮小するために、任意の時点における個別サブ構造体の実施状況を監視することによって、すなわち、それをビジネス・アジリティ・コンポーネント861が追跡するか、または検知できる場合、ステップ710を改良することが可能である。また、測定値が無い場合には、例えば、設計フェーズまたはより早期の調整フェーズから、サブ構造体のパフォーマンスをアプリケーションの全体的パフォーマンスにリンクするパフォーマンス予測をすることも可能である。例えば、図8において、ビジネス・アジリティ・コンポーネントは、これらの情報源の一つから、システムの現在状態を所与としてビジネス・レベルのパフォーマンスを10%増大するためには、一つのIHSおよび一つのDB2(登録商標)の追加が必要だがWASの追加は必要がないことを知る。
一つ以上の実施形態は、IaaSクラウドの代わりにサービス型プラットフォーム(PaaS)クラウド上で、小さな変更によって実現することが可能である。例えば、PaaSクラウドは、事前構成されたIHS、WAS、およびDB2(登録商標)コンポーネントを提供することができる。その場合、上記の例は、今度は、IaaSインターフェースを用いて最初に空のOSをインストールし、次いでそれらの上にクラスタ・コンポーネントを構成することによって新規イメージを構築するのでなく、むしろ、既にベース・ソフトウェアを含むイメージをプロビジョニングすることによって構築するということを除けば、前述と全く似たように進めることが可能である。ビジネス・アジリティ・コンポーネントは、それでも、これらのイメージ上にウェブページ、コード、またはデータなどのビジネス・アプリケーション固有のエレメントを複製し、それらをビジネス・アプリケーション・フローおよびサブ構造体のあり得る管理ソフトウェアにリンクしなければならない。
しかして、一つ以上の実施形態は、移行によって、ビジネス・レベルでのアジャイル・アプリケーションを構築する。一つ以上の実施形態は、例えば拡張発見ツールを用いて、作業負荷を詳細に分析し、例えば、特定のIHS−WAS−DB2(登録商標)または類似の作業負荷中で、標準的クラスタ化階層構造を有するものを識別する。一つ以上の実施形態は、追加クラスタ・エレメントの迅速な展開によって、ビジネス・レベルの拡大・収縮性を有利に実現する。場合によっては、ボトルネックを調べ、需要が増えた際にどのクラスタがどの位の拡大を要するかを識別するのに、利用状況データが助力となり得る。
現在、ビジネス・レベルの拡大要求によって、イメージ上にクラスタ・ソフトウェア(例えば、追加のIHSまたはDB2(登録商標)など)を備え、そのクラスタの内部にアプリケーション・ソフトウェア(例えば、EventXウェブ・サービングなど)を備えた新規イメージがクラウド中に立ち上げられ、さらに、それらイメージがクラスタ・マネージャにリンクされその全てが即時に実行されるべきである、と考えられている。
図9は、本発明のある態様による、例示的なソフトウェア・アーキテクチャ図である。図示のように、拡張発見ツール904は、レガシー・システム(ソース環境としても知られる)902上で探索を行い、容易にクラウド化可能な少なくとも一つのアプリケーションを識別する。移行ツール914は、レガシー・システム902および拡張発見ツール904からのインプットを取り込み、容易にクラウド化可能なアプリケーションのターゲット環境(クラウド)910への移行を遂行する。移行ツール914は、随意的にイメージ・ストア916を用いる。一方、ビジネス・アジリティ・コンポーネント(BAC:business agility component)コンストラクタ・モジュール906(自動コード生成モジュールとしても知られる)は、容易にクラウド化可能なアプリケーションがターゲット環境910に移行された後それを管理するための、カスタマイズBAC908を生成する。BACコンストラクタ・モジュール906は、例えば、BACテンプレート912を備えるデータ・ストアを利用する。例示的なARM401(これはBACの好適であるが非限定の一つの形態である)の説明につき、図4〜6およびそれらの説明文も参照されたい。
ここまでの説明を踏まえ、大まかに言えば、本発明の態様による例示的な方法が、あるエンティティの既存の複数のアプリケーションのインフラストラクチャを分析して、該既存の複数のアプリケーションのインフラストラクチャのうち、既存のレプリケーション・メカニズムを介して個別パーツの複製が可能な既存のサブ構造体を含む少なくとも一つのインフラストラクチャを識別するステップ702を含むことは、よく理解できよう。さらなるステップ704は、識別されたインフラストラクチャ(群)をクラウドへの移行のために選定するステップを含む。該クラウドは、サービス型インフラストラクチャ・クラウドもしくはサービス型プラットフォーム・クラウドまたはその両方である。まださらなるステップ706は、アプリケーションレベルでの変化なしに、識別されたインフラストラクチャ(群)の既存のサブ構造体をクラウドに移行するステップを含む。さらなるステップ708は、識別されたインフラストラクチャ(群)に充てられたクラウドの当該リソースの拡大、縮小を制御するよう構成されたビジネス・アジリティ・コンポーネントを構築するステップを含む。ステップ710は、ビジネス・アジリティ・コンポーネントを使って、識別されたインフラストラクチャ(群)に充てられたクラウドのリソースを拡大、縮小するステップを含む。上述のように、ビジネス・アジリティ・コンポーネント861の一例が、アプリケーション・リソース・マネージャ401である。
他の箇所で述べたように、場合によっては、追加のステップは、分析ステップのための情報を得るため、IBM Research GALAPAGOSツールなどのインフラストラクチャ発見ツールを実行するステップを含む。
これも他の箇所で述べたように、クラスタは、サブ構造体の非限定の一例である。同様に、ウェブ・サーバ・クラスタ、アプリケーション・サーバ・クラスタおよびデータベース・クラスタも、クラスタの非限定の例である。
場合によっては、構築するステップにおいて構築されたビジネス・アジリティ・コンポーネントは、識別されたインフラストラクチャ(群)に充てられたクラウドの当該リソースの拡大および縮小を駆動することになる、必要性の変化を評価するようさらに構成される。かかる場合の追加ステップには、例えば、需要拡大および需要縮小のうちの少なくとも一つに関するインプットを受け取るか、もしくは需要が上側限度および下側限度のうちの少なくとも一つに近付いているかどうかを分析するか、またはその両方を行うことによって必要性の変化を評価するステップを含めることができる。
上述のように、一部の例では、このクラウドはサービス型インフラストラクチャ・クラウドである。かかる例において、リソースの拡大および縮小は、既存のレプリケーション・メカニズムを使いながら、サービス型インフラストラクチャ・クラウドのインフラストラクチャを用いて、対応するオペレーティング・システムのイメージのプロビジョニング、プロビジョニング解除、退避、もしくは復元またはこれらの組み合わせを遂行して拡大および縮小するステップを含む。
上述のように、一部の例では、このクラウドはサービス型プラットフォーム・クラウドである。かかる例において、リソースの拡大および縮小は、サービス型プラットフォーム・クラウド上に、サブ構造体に関連付けられた基本ソフトウェアを含むイメージをプロビジョニングすることによって拡大するステップを少なくとも含む(基本ソフトウェアは、例えば、IHS853のクラスタ中のIHS853、WAS855、およびDB2(登録商標)857などである)。PaaSクラウドには、既にIHSを包含するイメージが存在することになるので、拡大には、既にIHSをその中に備えた新規仮想マシンをARMが要求することが含まれる。IaaSクラウドの場合には、拡大には、ARMが新規の仮想マシンを要求することが含まれ、ARMは新規の仮想マシン上にIHSを配置する。
一つ以上の実施形態において、識別されたインフラストラクチャ(群)に充てられたクラウドのこれらリソースの、ビジネス・アジリティ・コンポーネントを使った拡大および縮小は、サブ構造体のレベルで遂行される。一部の例では、サブ構造体のレベルでの拡大および縮小の遂行は、サブ構造体のパフォーマンスの監視に基づいて行われる。すなわち、上述のように、一部の例では、ビジネス・アジリティ・コンポーネント861は、任意の時点における個別サブ構造体の実施状況を追跡するか、または検知でき、必要なものだけを増大または縮小できる。
一部の例では、サブ構造体のレベルでの拡大および縮小の遂行は、サブ構造体に対するパフォーマンスの予測に基づいて行われる。すなわち、上述のように、測定値が無い場合、例えば、設計フェーズまたはより早期の調整フェーズから、サブ構造体のパフォーマンスをアプリケーションの全体的パフォーマンスにリンクするパフォーマンス予測をすることも可能である。例えば、図8において、ビジネス・アジリティ・コンポーネントは、これらの情報源の一つから、ビジネス・レベルのパフォーマンスを10%増大するためには、一つのIHSおよび一つのDB2(登録商標)の追加が必要だがWASの追加は必要がないことを知る。
別の態様において、別の例示的な方法は、クラウドへの移行対象であるエンティティの複数の既存のアプリケーションの複数のインフラストラクチャのうちの少なくとも一つのインフラストラクチャの仕様を(例えば、おそらくは専門家からのインプットの下で、ツール904からモジュール906によって)得るステップを含む。この少なくとも一つのインフラストラクチャは、既存のレプリケーション・メカニズムを介して個別パーツの複製が可能な、既存のサブ構造体を含む。さらなるステップには、該少なくとも一つのインフラストラクチャに充てられるクラウドのリソースの拡大および縮小のうちの少なくとも一つを遂行するための命令を含む少なくとも一つの汎用テンプレートをBACテンプレート・ストア912内で(例えばモジュール906によって)識別するステップが含まれる。さらなるステップは、少なくとも一つの汎用テンプレートに該少なくとも一つのインフラストラクチャに関連する特定のデータを追加することによって、その少なくとも一つの汎用テンプレートの特定のインスタンスを(例えばモジュール906によって)インスタンス生成するステップと、少なくとも特定のインスタンスから、該少なくとも一つのインフラストラクチャに充てられたクラウドのリソースの拡大および縮小のうちの一つを制御するよう構成されたビジネス・アジリティ・コンポーネント908(例えば、カスタマイズARMなどのカスタマイズBAC)を(例えばモジュール906によって)構築するステップと、を含む。
ここに記載した方法を、前述した方法と組み合わせることが可能で、前述の方法において、この構築ステップが、該少なくとも一つのインフラストラクチャに充てられることになるクラウドのリソースの拡大および縮小のうちの少なくとも一つを遂行するための命令を含む、少なくとも一つの汎用テンプレートを、ビジネス・アジリティ・コンポーネントのテンプレート・ストア内で識別するステップと、その少なくとも一つの汎用テンプレートに、該少なくとも一つのインフラストラクチャに関する特定のデータを追加することによって、該少なくとも一つの汎用テンプレートの特定のインスタンスをインスタンス生成するステップと、少なくともその特定のインスタンスからビジネス・アジリティ・コンポーネントを構築するステップと、を含むようにすることができる。
拡張発見ツールに関して、アプリケーション・サーバの非限定の例(例えば、WAS855)を考えてみよう。一部の例では、市販の発見ツールが、他のWASノードとは異なる構成を持つ専用の管理ノード(例えば、サーバ)を認識し見付けるように、拡張される。この場合、拡張された発見ツールは、あるサーバにWASが存在すると判断し、そのサーバの構成を分析することによって、その特定のサーバが管理ノードであると判定する。特定のサーバが管理ノードであると判定されたならば、構成のさらなる分析によって、その管理ノードがクラスタ化構成内の他のサーバを管理しているのを知ることができる。かかるWAS管理ノードおよびそれが管理するサーバ群は、クラウド化の好適な対象である。
また、ORACLE(登録商標)(または他の)データベース・ソフトウェアの非限定の例を考えてみよう(ORACLEは、米国94065カリフォルニア州レッドウッド市のOracle International Corporationの登録商標である)。例えば、ORACLE(登録商標)ソフトウェアを用いるWASアプリケーション・サーバ855があるとする。このWASサーバはORACLE(登録商標)クラスタと相互作用することになろう。ここで、このWASサーバは特に管理ノードでなくてもよいが、データベースのクラスタにデータベース接続をとることになり、このクラスタは該サーバの構成ファイルの中に記載されている。このクラスタ設定もまたクラウド化の好適な対象である。
しかして、一つ以上の実施形態において、先の二つの例のように、前述のGALAPAGOSツールなど既存の発見ツールが、クラスタ設定を識別するため強化される。本明細書の教示を考慮して、当業者は、既存の発見ツールに変更を加え、例えば構成ファイルなどを調べてクラスタ設定および同類のものを識別し、クラウド化の好適な対象を見付けることができよう。
管理ノードを備えるアプリケーション・サーバのクラスタの非限定の例において、二つのサーバと一つの管理ノードが発見されて移行されたと仮定しよう。この例で、現在、第三のサーバを加えてアプリケーション・サーバ・クラスタを増大することが望まれている(ARMによってこれが判定されたと仮定する)。ARMは、二つの既存のサーバと同様な第三サーバを得るために、現在のアプリケーション・サーバをコピーする必要があることになる。また管理ノードは、今や二つに代えて三つのサーバがあるという事実を存知するように更新されなければならない。このコピー作業は固定的アクティビティである(ウェブ・サーバはステートレスであると仮定する)。管理ノードは、例えば、API(アプリケーション・プログラミング・インタフェース)を介して更新可能であろうし、コマンドを送信して第三ウェブ・サーバをそのクラスタに組み込むことができよう。これに代えて、その中で発見が行われた構成ファイルを直接更新することも可能であろう。例えば、該構成ファイルをコピーし、その中に第三ウェブ・サーバの名称をコピーし、それを三つのウェブ・サーバに対する構成ファイルとして書き換え、次いで書き換えられたファイルを管理ノードにライト・バックする。
データベース・アプリケーションに関し、これらデータベースが相互にそのコンテンツを複製し合っていることを、それら自体が知っている必要があり、しかして、相互に複製を行うための、データベースの何らかの構成が存在する。さらに、WASノードまたは同類のものはクラスタについて知ることになり、しかして、アプリケーション・サーバも更新される必要があることになる。すなわち、当初は、二つのデータベースの一つが使用可能なことが知られており、今や三つのデータベースの一つが使用できることを示すための更新が必要である。
さきほど説明したようなオペレーション(APIの使用もしくは構成ファイルの変更またはその両方)は、自動コード・ジェネレータ(BACコンストラクタ906)が記述され、変更を生成(すなわち、カスタマイズARMなどのカスタマイズBACを生成)できるように、基本的には前もって定められている。例えば、拡張発見ツール904は、容易にクラウド化が可能なアプリケーションとして識別される、WASクラスタおよびORACLE(登録商標)クラスタを見出すことができる。次いでCASEモジュール906がWASクラスタおよびORACLE(登録商標)クラスタに対するARM908を生成する。ARMテンプレート912は、各カスタマイズARMに対して必要なさまざまなオペレーションのための汎用コード、例えばWASクラスタのサイズを増大するための汎用コードのラインなどを含むことになる。これらの汎用コードのラインには、所与のケースで対象となる実際の具体的WASクラスタ、ノード(群)などを規定するための、空白、ダミー値(“X”)などが含まれており、これらには、BACコンストラクタ・モジュール906によって、正しい値が記入される。しかして、BACテンプレート・ストア912は、例えば、WASクラスタ、ORACLE(登録商標)クラスタなど、対象のアプリケーション(群)のためのリソースの量を増加または削減するための汎用(空白の)テンプレートを含むことになる。BACコンストラクタ・モジュール906は、しかして、対象の移行のための具体的なマシン、アドレスなど含む、汎用テンプレート912の特定のインスタンスをインスタンス生成する。例えば、WAS管理ノードがWASND1であり、“X”がWAS管理ノードを表す、テンプレート中のダミー値である場合、BACコンストラクタ・モジュールは、“X”を“WASND1”に置き換えて、WASクラスタのリソース増加コードのインスタンスをインスタンス生成することになる。
一つ以上の実施形態において、エンティティの既存の複数のアプリケーションのインフラストラクチャを分析して、該既存の複数のアプリケーションのインフラストラクチャのうち、既存のレプリケーション・メカニズムを介して個別パーツの複製が可能な既存のサブ構造体を含む少なくとも一つのインフラストラクチャを識別するステップは、レプリケーション管理ノードの構成ファイルからレプリケーション管理ノードを識別することによってサブ構造体を識別するステップ、複製されたサーバの構成を識別するステップ、もしくは複製されたサーバに接続している他のサーバの構成を識別するステップ、またはこれらの組み合わせを含む。
例示的なシステムおよび製造品の詳細
当業者には当然のことながら、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化することができる。したがって、本発明の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、あるいは、ソフトウェア態様およびハードウェア態様を組み合わせた実施形態の形を取ることができ、これらは一般に本明細書では全て「回路」、「モジュール」、または「システム」と称することがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードが中に具現化されている一つ以上のコンピュータ可読媒体(群)中に具現化されたコンピュータ・プログラム製品の形を取ることも可能である。
本発明の一つ以上の実施形態またはそのエレメントは、メモリおよび該メモリに連結されたプロセッサを含み、例示的な方法ステップを実行するよう作動する装置の形態に実装することができる。
一つ以上の実施形態は、汎用コンピュータまたはワークステーションで実行されるソフトウェアを使用することができる。図1を参照すると、かかる実装には、例えば、プロセッサ16と、メモリ28と、ディスプレイ24およびキーボード、ポインティング・デバイスなど外部デバイス(群)14に対する入力/出力インターフェース22とを用いることが可能であろう。本明細書で使われる用語「プロセッサ」は、例えば、CPU(中央処理装置)もしくは他の形態の処理回路構成またはその両方を含むものなど、任意の処理デバイスを含むように意図されている。さらに用語「プロセッサ」は複数の個別プロセッサを称し得る。用語「メモリ」は、例えば、RAM(ランダム・アクセス・メモリ)30、ROM (読み取り専用メモリ)、固定メモリ・デバイス(例えばハード・ドライブ34)、リムーバブル・メモリ・デバイス(例えばディスケット)、フラッシュ・メモリおよび同類のものなど、プロセッサまたはCPUに関連付けられるメモリを含むように意図されている。さらに、本明細書で使われる語句「入力/出力インターフェース」は、例えば、データを処理ユニットに入力するための一つ以上のメカニズム(例えばマウス)および処理ユニットに関連する結果を提示するための一つ以上のメカニズム(例えばプリンタ)へのインターフェースを意味するように意図されている。プロセッサ16、メモリ28、および入力/出力インターフェース22は、例えばバス18を介し、データ処理ユニット12の一部として相互接続することができる。また、コンピュータ・ネットワークとインターフェース接続するため設置が可能な、ネットワーク・カードなどのネットワーク・インターフェース20、および適切な媒体とインターフェース接続するため設置が可能な、ディスケットまたはCD−ROMドライブなどの媒体インターフェースへの適切な相互接続を例えばバス18を介して設けることが可能である。
したがって、本明細書で説明した本発明の手法を実行するための命令またはコードを含むコンピュータ・ソフトウェアは、関連するメモリ・デバイス(例えば、ROM、固定またはリムーバブル・メモリ)の一つ以上に格納し、使用の準備が整ったとき、一部または全部を(例えば、RAM中に)ロードしてCPUにより実行することができる。かかるソフトウェアは、以下に限らないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含み得る。
プログラム・コードの格納もしくは実行またはその両方を行うのに適したデータ処理システムには、システム・バス18を介してメモリ・エレメント28に直接的または間接的に連結された少なくとも一つのプロセッサ16が含まれることになる。メモリ・エレメントは、例えば、プログラム・コードの実際の実行の過程で用いられるローカル・メモリと、大容量ストレージと、実行の過程で大容量ストレージからコードを読み出さなければならない回数を低減するために、少なくとも一部のプログラム・コードの一時的ストレージを提供するキャッシュ・メモリ32とを含み得る。
入力/出力またはI/Oデバイス(以下に限らないが、キーボード、ディスプレイ、ポインティング・デバイス、および同類のものを含む)は、直接にまたは介在するI/Oコントローラを通してシステムに連結することができる。
また、ネットワーク・アダプタ20をシステムに連結して、データ処理システムが、介在するプライベート・ネットワークまたはパブリック・ネットワークを通して、他のデータ処理システムあるいは遠隔のプリンタまたはストレージ・デバイスに連結できるようにすることも可能である。モデム、ケーブル・モデム、およびイーサネット(R)カードは、現在利用可能な種類のネットワーク・アダプタのほんの数例である。
請求項を含め、本明細書で使用する「サーバ」は、サーバ・プログラムを実行する物理的データ処理システム(例えば、図1に示されたシステム12)を含む。当然ながら、かかる物理サーバは、ディスプレイおよびキーボードを含むこともあり含まないこともある。
上述のように、本発明の態様は、媒体に具体化されたコンピュータ可読プログラム・コードを有する一つ以上のコンピュータ可読媒体(群)中に具現化されたコンピュータ・プログラム製品の形を取ることもできる。一つ以上のコンピュータ可読媒体(群)の任意の組み合わせを用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体、またはコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的、または半導体の、システム、装置、もしくはデバイス、またはこれらの任意の適切な組み合わせであり得る。コンピュータ可読ストレージ媒体のさらに具体的な例(非包括的リスト)には、一つ以上の配線を有する電気接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM)、光ストレージ・デバイス、磁気ストレージ・デバイス、または前述の任意の適切な組み合わせが含まれよう。本文書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、またはデバイスによって、あるいはこれらに関連させて使用するためのプログラムを、包含または格納できる任意の有形媒体であり得る。
コンピュータ可読信号媒体には、例えばベースバンド中にまたは搬送波の一部として具現化されたコンピュータ可読プログラム・コードを有する、伝播データ信号を含めることができる。かかる伝播信号は、以下に限らないが、電磁気的、光学的、またはこれらの任意の適切な組み合わせを含め、さまざまな形態の任意の形を取ることが可能である。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではないが、命令実行システム、装置、もしくはデバイスによってまたはこれらに関連させて使用するためのプログラムを通信、伝播、または伝送が可能な任意のコンピュータ可読媒体であり得る。
コンピュータ可読媒体上に具現化されたプログラム・コードは、以下に限らないが、無線、有線、光ファイバ・ケーブル、RFなど、または前述の任意の適した組み合わせを含め、任意の適切な媒体を用いて送信することができる。
本発明の態様のオペレーションを実行するためのコンピュータ・プログラム・コードは、Java(登録商標)、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および、“C”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語、あるいはPerlなどのスクリプト言語を含め、一つ以上のプログラミング言語の任意の組み合わせで記述することができる。場合によっては、例えばILOG(登録商標) CPLEX(登録商標)(米国ニューヨーク州アーモンクのInternational Business Machines Corporationから入手可能な、線形計画法、混合整数計画法、および二次計画法のための高性能な数理計画ソルバ)など、最適化解法をサブコンポーネントとして用いること可能である。一般論として、本プログラム・コードは、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、あるいは(例えばインターネット・サービス・プロバイダを使いインターネットを介し)外部のコンピュータへの接続を行うこともできる。一つ以上の実施形態において、コードのかなりの部分は、アプリケーション・リソース・マネージャに関連するものであって、これはクラウド中でもまたはその外部でも実行することができる。少なくとも一部の例において、エンドユーザのマシン上にあるよりも(あるとすれば、アプリケーション所有者のエンドユーザ・マシン)、サーバ上にある可能性が高いが、アプリケーション所有者が、これをラップトップなどから実行するのは不可能ではない。拡張発見ツール904に関し、その少なくとも一部(例えば、スクリプトまたはエージェント)が主としてレガシー・システム902上で実行され、他の部分は専用のサーバ上で実行される。但し、拡張発見ツール全体を、レガシー・システムへの単数または複数の接続を有する専用サーバ上で実行することもできよう。場合によっては、拡張発見ツール全体をレガシー・システム上で実行することも可能であろう。BACコンストラクタ・モジュールに関し、同モジュールは、通常、専用のサーバ上で実行される。但し、これを、クラウド中に配置したり、さらにはレガシー・システム上に配置したりことも可能であろう(後者は、外部コンサルタントがBACコンストラクタ・モジュールを自社の専用サーバで実行したがる可能性が高いので、企業の社内IT部門が全手順を遂行する場合に、より適切であると考えられる)。
本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、本発明の態様を本明細書で説明してきた。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方中のブロックの組み合わせは、コンピュータ・プログラム命令によって実装することが可能である。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに提供し、そのコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能群/動作群を実装するための手段を生成するようにすることができる。
また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに対し特定の形で機能するよう命令することができるコンピュータ可読媒体に格納し、そのコンピュータ可読媒体に格納された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能/動作を実装する命令群を包含する製造品を作り出せるようにすることができる。
さらに、コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードし、そのコンピュータ上、他のプログラム可能装置上、または他のデバイス上で一連のオペレーション・ステップを実行させて、コンピュータ実装されるプロセスを作り出し、当該コンピュータ上または他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能群/動作群を実装するためのプロセスを提供するようにすることも可能である。
図面のフローチャートおよびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラム製品から可能となる実装のアーキテクチャ、機能、およびオペレーションを例示している。この点に関し、フローチャートまたはブロック図中の各ブロックは、特定の論理機能(群)を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表し得る。また、一部の別の実装においては、ブロック中に記載された機能が、図面に記載された順序を外れて行われ得ることに留意すべきである。例えば、連続して示された二つのブロックが、関与する機能によっては、実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロック群の組み合わせは、特定の機能または動作を実施する特殊用途ハードウェア・ベースのシステム、または特殊用途ハードウェアとコンピュータ命令との組み合わせによって実装可能なことにも留意すべきである。
なお、本明細書で説明した方法のいずれにも、コンピュータ可読ストレージ媒体上に具現された個別ソフトウェア・モジュールを包含するシステムを設ける追加ステップを含めることができ、これらのモジュールは、例えば、限定ではなく例として、図6に示したような、ポリシー・サブモジュール、管理サブモジュール、制御サブモジュール、および解釈モジュールなど一つ以上のサブモジュールを有するアプリケーション・リソース・マネージャ・モジュールなど、ブロック図に示しもしくは本明細書で説明したまたはその両方のエレメントのいずれかまたは全てを含み得る。別の態様において、適切な(拡張)発見ツール・モジュール904、移行ツール・モジュール914、BACコンストラクタ・モジュール906、およびビジネス・アジリティ・コンポーネント・モジュール(例えば、カスタマイズARMなどのカスタマイズBAC908)を、図9に示された他のコンポーネント(群)と併せ用いることができよう。次いで、前述したように、プロセッサ16など一つ以上のハードウェア・プロセッサ上で実行されるシステムの個別ソフトウェア・モジュールもしくはサブモジュールまたはその両方を使い、本方法ステップを遂行または別途に推進することができる。例えば、分析するステップ702は、少なくとも一つのハードウェア・プロセッサ上で実行される発見ツール・モジュールによって遂行することができよう。選択ステップ704は、少なくとも一つのハードウェア・プロセッサ上で実行される発見ツール・モジュールによって(例えば、専門家または人である他のユーザを助けることによって)推進することが可能であろう。移行ステップ706は、少なくとも一つのハードウェア・プロセッサ上で実行される移行ツール・モジュールによって遂行することができよう。構築ステップ708は、少なくとも一つのハードウェア・プロセッサ上で実行されるBACコンストラクタ・モジュールによって遂行することが可能であろう。次いで、少なくとも一つのハードウェア・プロセッサ上で実行されるビジネス・アジリティ・コンポーネント・モジュールの形のビジネス・アジリティ・コンポーネントによって、ステップ710が遂行される。ある好適なアプローチにおいて、この少なくとも一つのプロセッサは、少なくとも二つのプロセッサを含み、710より前のステップは第一プロセッサによって実行され、次いで、ステップ710は、移行プロセスの部分ではなく、新しい環境で実行される実際の移行されたアプリケーションなので、第二プロセッサ上で実行されるビジネス・アジリティ・コンポーネント・モジュールの形のビジネス・アジリティ・コンポーネントによって、ステップ710が遂行される。第一もしくは第二プロセッサまたはその両方は、場合によって各々を複数のプロセッサとすることも可能であろう。さらに、コンピュータ・プログラム製品には、個別のソフトウェア・モジュールを有するシステムのプロビジョニングを含め、本明細書で説明した一つ以上の方法ステップを遂行するために実装されるようになされたコードを備えた、コンピュータ可読ストレージ媒体を含めることができる。
なお、いずれの場合においても、本明細書で説明した諸コンポーネントは、例えば、特定用途向け集積回路群(ASICS)、機能回路、関連メモリを有する適切にプログラムされた一つ以上の汎用デジタル・コンピュータなど、ハードウェア、ソフトウェア、またはそれらを組み合わせたさまざまな形態に実装することが可能である。本明細書に提示された本発明の教示を考慮して、当業者は、本発明のコンポーネントの他の実装を構想することができよう。
本明細書で使用する用語は、単に特定の実施形態を説明する目的のためのものであり、本発明を限定することは意図されていない。本明細書で用いられる、単数形「ある(“a”、“an”)」、および「該(“the”)」は、文脈上明確に別途に示されていなければ、複数形も同じように含むことが意図されている。さらに、当然のことながら本明細書で用いられる「含む(“comprise”)」もしくは「含んでいる(“comprising”)」またはその両方は、述べられた機能、数、ステップ、オペレーション、エレメント、もしくはコンポーネント、またはこれらの組み合わせの存在を特定するが、一つ以上の他の機能、数、ステップ、オペレーション、エレメント、コンポーネント、もしくはこれらの群、または上記の組み合わせの存在または追加を排除するものではない。
添付の請求項中のミーンズ・プラス・ファンクションまたはステップ・プラス・ファンクションの要素全ての、対応する構造、材料、動作および均等物は、具体的に請求された他の請求された要素と組み合わせてその機能を遂行するための、一切の構造、材料または動作を包含することが意図されている。本発明の記述は、例示および説明の目的で提示されたもので、網羅的であることも、または開示した形態に本発明を限定することも意図されていない。当業者には、本発明の範囲および趣旨から逸脱することのない多くの変更および変形が明白であろう。本実施形態は、本発明の原理および実際的な応用を最善に説明し、他の当業者が、意図する特定の用途に適したさまざまな変更を加えたさまざまな実施形態に関して、本発明を理解できるように選択し説明されたものである。

Claims (25)

  1. エンティティの複数の既存のアプリケーションのインフラストラクチャを分析して、前記複数の既存のアプリケーションの前記インフラストラクチャのうち、既存のレプリケーション・メカニズムを介して個別パーツの複製が可能な既存のサブ構造体を含む少なくとも一つのインフラストラクチャを識別するステップと、
    クラウドへの移行のために、前記少なくとも一つのインフラストラクチャを選択するステップであって、前記クラウドは、サービス型インフラストラクチャ・クラウドおよびサービス型プラットフォーム・クラウドのうちの少なくとも一つを含む、前記選択するステップと、
    アプリケーションレベルでの変化なしに、前記少なくとも一つのインフラストラクチャの前記既存のサブ構造体を前記クラウドに移行するステップと、
    前記少なくとも一つのインフラストラクチャに充てられた前記クラウドのリソースの拡大および縮小を制御するよう構成されたビジネス・アジリティ・コンポーネントを構築するステップと、
    前記ビジネス・アジリティ・コンポーネントを用いて、前記少なくとも一つのインフラストラクチャに充てられた前記クラウドの前記リソースを拡大および縮小するステップと
    を含む方法。
  2. インフラストラクチャ発見ツールを実行して、前記分析するステップのための情報を得るステップをさらに含む、請求項1に記載の方法。
  3. 前記識別するステップにおいて識別された前記少なくとも一つのインフラストラクチャの前記サブ構造体がクラスタを含む、請求項1に記載の方法。
  4. 前記識別するステップにおいて識別された前記少なくとも一つのインフラストラクチャの前記クラスタが、ウェブ・サーバ・クラスタ、アプリケーション・サーバ・クラスタ、およびデータベース・クラスタのうちの少なくとも一つを含む、請求項3に記載の方法。
  5. 前記構築するステップにおいて構築された前記ビジネス・アジリティ・コンポーネントが、前記少なくとも一つのインフラストラクチャに充てられた前記クラウドの前記リソースの前記拡大および縮小を駆動することになる必要性の変化を評価するようさらに構成され、前記方法は前記必要性の前記変化を評価するステップをさらに含む、請求項1に記載の方法。
  6. 前記エンティティの前記複数の既存のアプリケーションの前記インフラストラクチャを分析して、前記複数の既存のアプリケーションの前記インフラストラクチャのうち、既存のレプリケーション・メカニズムを介して個別パーツの複製が可能な既存のサブ構造体を含む少なくとも一つのインフラストラクチャを識別する前記ステップは、
    レプリケーション管理ノードの構成ファイルから前記レプリケーション管理ノードを識別するステップ、
    複製されたサーバの構成を識別するステップ、および
    前記複製されたサーバに接続する他のサーバの構成を識別するステップ、
    のうちの少なくとも一つによって前記サブ構造体を識別するステップを含む、請求項1に記載の方法。
  7. 前記構築するステップが、
    ビジネス・アジリティ・コンポーネントのテンプレート・ストアにおいて、前記少なくとも一つのインフラストラクチャに充てられることになる前記クラウドのリソースの拡大および縮小のうちの少なくとも一つを遂行するための命令を含む、少なくとも一つの汎用テンプレートを識別するステップと、
    前記少なくとも一つの汎用テンプレートに前記少なくとも一つのインフラストラクチャに関する特定のデータを追加することによって、前記少なくとも一つの汎用テンプレートの特定のインスタンスをインスタンス生成するステップと、
    少なくとも前記特定のインスタンスから前記ビジネス・アジリティ・コンポーネントを構築するステップと、
    を含む、請求項1に記載の方法。
  8. 前記移行するステップにおいて、前記クラウドが、前記サービス型インフラストラクチャ・クラウドを含む、請求項1に記載の方法。
  9. 前記リソースの前記拡大および縮小は、前記既存のレプリケーション・メカニズムを使いながら、前記サービス型インフラストラクチャ・クラウドのインフラストラクチャを用いて、対応するオペレーティング・システムのイメージに、プロビジョニング、プロビジョニング解除、退避、および復元のうちの少なくとも一つを遂行して拡大および縮小するステップを含む、請求項8に記載の方法。
  10. 前記移行するステップにおいて、前記クラウドが前記サービス型プラットフォーム・クラウドを含む、請求項1に記載の方法。
  11. 前記リソースの前記拡大および縮小は、前記サービス型プラットフォーム・クラウドの上に、前記サブ構造体に関連付けられた基本ソフトウェアを含むイメージをプロビジョニングすることによって拡大するステップを少なくとも含む、請求項10に記載の方法。
  12. 前記少なくとも一つのインフラストラクチャに充てられた前記クラウドの前記リソースの、前記ビジネス・アジリティ・コンポーネントを用いる前記拡大および縮小は、前記サブ構造体のレベルで遂行される、請求項1に記載の方法。
  13. 前記サブ構造体の前記レベルでの前記拡大および縮小の前記遂行は、前記サブ構造体のパフォーマンス監視に基づく、請求項12に記載の方法。
  14. 前記サブ構造体の前記レベルでの前記拡大および縮小の前記遂行は、前記サブ構造体に対するパフォーマンス予測に基づく、請求項12に記載の方法。
  15. 前記方法は、システムを設けるステップをさらに含み、前記システムは個別ソフトウェア・モジュールを含み、前記個別ソフトウェア・モジュールの各々はコンピュータ可読ストレージ媒体上に具現化され、前記個別ソフトウェア・モジュールは、発見ツール・モジュール、移行ツール・モジュール、およびビジネス・アジリティ・コンポーネント・コンストラクタ・ツール・モジュールを含み、
    前記分析するステップは、少なくとも一つのハードウェア・プロセッサ上で実行される前記発見ツール・モジュールによって遂行され、
    前記選択するステップは、前記少なくとも一つのハードウェア・プロセッサ上で実行される前記発見ツール・モジュールによって推進され、
    前記移行するステップは、前記少なくとも一つのハードウェア・プロセッサ上で実行される前記移行ツール・モジュールによって遂行され、
    前記構築するステップは、前記少なくとも一つのハードウェア・プロセッサ上で実行される前記ビジネス・アジリティ・コンポーネント・コンストラクタ・ツール・モジュールによって遂行される、
    請求項1に記載の方法。
  16. コンピュータ・プログラム製品を含む製造品であって、前記コンピュータ・プログラム製品は、
    コンピュータ可読プログラム・コードを非一時的な形で格納する、非一時的な有形のコンピュータ可読ストレージ媒体を含み、前記コンピュータ可読プログラム・コードが、
    エンティティの複数の既存のアプリケーションのインフラストラクチャを分析して、前記複数の既存のアプリケーションの前記インフラストラクチャのうち、既存のレプリケーション・メカニズムを介して個別パーツの複製が可能な既存のサブ構造体を含む少なくとも一つのインフラストラクチャを識別するよう構成されたコンピュータ可読プログラム・コードと、
    クラウドへの移行のために、前記少なくとも一つのインフラストラクチャを選択することを推進するよう構成されたコンピュータ可読プログラム・コードであって、前記クラウドは、サービス型インフラストラクチャ・クラウドおよびサービス型プラットフォーム・クラウドのうちの少なくとも一つを含む、前記コンピュータ可読プログラム・コードと、
    アプリケーションレベルでの変化なしに、前記少なくとも一つのインフラストラクチャの前記既存のサブ構造体を前記クラウドに移行することを推進するよう構成されたコンピュータ可読プログラム・コードと、
    前記少なくとも一つのインフラストラクチャに充てられた前記クラウドのリソースの拡大および縮小を制御するよう構成されたビジネス・アジリティ・コンポーネントを構築するよう構成されたコンピュータ可読プログラム・コードと、
    を含む、製造品。
  17. 前記インフラストラクチャを分析するよう構成された前記コンピュータ可読プログラム・コードによって識別された、前記少なくとも一つのインフラストラクチャの前記サブ構造体が、クラスタを含む、請求項16に記載の製造品。
  18. 前記インフラストラクチャを分析するよう構成された前記コンピュータ可読プログラム・コードによって識別された、前記少なくとも一つのインフラストラクチャの前記クラスタが、ウェブ・サーバ・クラスタ、アプリケーション・サーバ・クラスタ、およびデータベース・クラスタのうちの少なくとも一つを含む、請求項17に記載の製造品。
  19. 前記構築するよう構成されたコンピュータ可読プログラム・コードによって構築された前記ビジネス・アジリティ・コンポーネントが、前記少なくとも一つのインフラストラクチャに充てられた前記クラウドの前記リソースの前記拡大および縮小を駆動することになる必要性の変化を評価するようさらに構成される、請求項16に記載の製造品。
  20. 前記エンティティの前記複数の既存のアプリケーションの前記インフラストラクチャを分析して、前記複数の既存のアプリケーションの前記インフラストラクチャのうち、既存のレプリケーション・メカニズムを介して個別パーツの複製が可能な既存のサブ構造体を含む少なくとも一つのインフラストラクチャを識別するよう構成された、前記コンピュータ可読プログラム・コードが、
    レプリケーション管理ノードの構成ファイルから前記レプリケーション管理ノードを識別するステップ、
    複製されたサーバの構成を識別するステップ、および
    前記複製されたサーバに接続する他のサーバの構成を識別するステップ、
    のうちの少なくとも一つによって前記サブ構造体を識別するよう構成された、コンピュータ可読プログラム・コードを含む、請求項19に記載の製造品。
  21. 前記構築するよう構成されたコンピュータ可読プログラム・コードが、
    ビジネス・アジリティ・コンポーネントのテンプレート・ストアにおいて、前記少なくとも一つのインフラストラクチャに充てられることになる前記クラウドのリソースの拡大および縮小のうちの少なくとも一つを遂行するための命令を含む、少なくとも一つの汎用テンプレートを識別するよう構成されたコンピュータ可読プログラム・コードと、
    前記少なくとも一つの汎用テンプレートに、前記少なくとも一つのインフラストラクチャに関する特定のデータを追加することによって、前記少なくとも一つの汎用テンプレートの特定のインスタンスをインスタンス生成するよう構成されたコンピュータ可読プログラム・コードと、
    少なくとも前記特定のインスタンスから前記ビジネス・アジリティ・コンポーネントを構築するよう構成されたコンピュータ可読プログラム・コードと、
    を含む、請求項19に記載の製造品。
  22. メモリと、
    前記メモリに連結された少なくとも一つのプロセッサであって、
    エンティティの複数の既存のアプリケーションのインフラストラクチャを分析して、前記複数の既存のアプリケーションの前記インフラストラクチャのうち、既存のレプリケーション・メカニズムを介して個別パーツの複製が可能な既存のサブ構造体を含む少なくとも一つのインフラストラクチャを識別すること
    クラウドへの移行のために、前記少なくとも一つのインフラストラクチャを選択することを推進することであって、前記クラウドは、サービス型インフラストラクチャ・クラウドおよびサービス型プラットフォーム・クラウドのうちの少なくとも一つを含む、前記推進することと、
    アプリケーションレベルでの変化なしに、前記少なくとも一つのインフラストラクチャの前記既存のサブ構造体を前記クラウドに移行することを推進すること、
    前記少なくとも一つのインフラストラクチャに充てられた前記クラウドのリソースの拡大および縮小を制御するよう構成されたビジネス・アジリティ・コンポーネントを構築すること、および
    前記少なくとも一つのインフラストラクチャに充てられた前記クラウドの前記リソースを拡大および縮小するために、前記ビジネス・アジリティ・コンポーネントを実行すること、
    をするよう作動するプロセッサと、
    を含む装置。
  23. 前記装置は、複数の個別ソフトウェア・モジュールをさらに含み、前記個別ソフトウェア・モジュールの各々はコンピュータ可読ストレージ媒体上に具現化され、前記個別ソフトウェア・モジュールが、発見ツール・モジュール、移行ツール・モジュール、およびビジネス・アジリティ・コンポーネント・コンストラクタ・モジュールを含み、
    前記少なくとも一つのプロセッサが、前記発見ツール・モジュールを実行して、前記インフラストラクチャを分析するよう作動し、
    前記少なくとも一つのプロセッサが、前記発見ツール・モジュールを実行して、前記クラウドへの移行のために前記少なくとも一つのインフラストラクチャを選択することを推進するよう作動し、
    前記少なくとも一つのプロセッサが、前記移行ツール・モジュールを実行して、前記少なくとも一つのインフラストラクチャの前記既存のサブ構造体を前記クラウドに移行することを推進するよう作動し、
    前記少なくとも一つのプロセッサが、前記ビジネス・アジリティ・コンポーネント・コンストラクタ・モジュールを実行して、前記ビジネス・アジリティ・コンポーネントを構築するよう作動する、
    請求項22に記載の装置。
  24. クラウドへの移行対象であるエンティティの複数の既存のアプリケーションの複数のインフラストラクチャのうちの少なくとも一つのインフラストラクチャの仕様を得るステップであって、前記少なくとも一つのインフラストラクチャは、既存のレプリケーション・メカニズムを介して個別パーツの複製が可能な既存のサブ構造体を含む、前記得るステップと、
    ビジネス・アジリティ・コンポーネントのテンプレート・ストアにおいて、前記少なくとも一つのインフラストラクチャに充てられることになる前記クラウドのリソースの、拡大および縮小のうちの少なくとも一つを遂行するための命令を含む、少なくとも一つの汎用テンプレートを識別するステップと、
    前記少なくとも一つの汎用テンプレートに、前記少なくとも一つのインフラストラクチャに関する特定のデータを追加することによって前記少なくとも一つの汎用テンプレートの特定のインスタンスをインスタンス生成するステップと、
    少なくとも前記特定のインスタンスから、前記少なくとも一つのインフラストラクチャに充てられた前記クラウドの前記リソースの拡大および縮小のうちの前記少なくとも一つを制御するよう構成されたビジネス・アジリティ・コンポーネントを構築するステップと、
    を含む方法。
  25. 前記方法は、システムを設けるステップをさらに含み、前記システムは個別ソフトウェア・モジュールを含み、前記個別ソフトウェア・モジュールの各々はコンピュータ可読ストレージ媒体上に具現化され、前記個別ソフトウェア・モジュールが、ビジネス・アジリティ・コンポーネント・コンストラクタ・モジュールおよびアプリケーション・リソース・マネージャ・テンプレート・モジュールを含み、
    前記得るステップ、前記インスタンス生成するステップ、および前記構築するステップは、少なくとも一つのハードウェア・プロセッサ上で実行される前記ビジネス・アジリティ・コンポーネント・コンストラクタ・モジュールによって遂行され、
    前記識別するステップは、前記少なくとも一つのハードウェア・プロセッサ上で実行される前記ビジネス・アジリティ・コンポーネント・コンストラクタ・モジュールが、前記ビジネス・アジリティ・コンポーネント・テンプレート・モジュールにアクセスすることによって遂行される、請求項24に記載の方法。
JP2014535763A 2011-10-11 2012-10-05 容易にクラウド化可能なアプリケーションの発見型の識別および移行 Pending JP2014532247A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/270,677 2011-10-11
US13/270,677 US20130091285A1 (en) 2011-10-11 2011-10-11 Discovery-based identification and migration of easily cloudifiable applications
PCT/US2012/059047 WO2013055601A1 (en) 2011-10-11 2012-10-05 Discovery-based indentification and migration of easily cloudifiable applications

Publications (1)

Publication Number Publication Date
JP2014532247A true JP2014532247A (ja) 2014-12-04

Family

ID=48042851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014535763A Pending JP2014532247A (ja) 2011-10-11 2012-10-05 容易にクラウド化可能なアプリケーションの発見型の識別および移行

Country Status (6)

Country Link
US (1) US20130091285A1 (ja)
JP (1) JP2014532247A (ja)
CN (1) CN103930863A (ja)
DE (1) DE112012004238T5 (ja)
GB (1) GB2509866A (ja)
WO (1) WO2013055601A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016147348A1 (ja) * 2015-03-18 2016-09-22 株式会社日立製作所 管理計算機、及び、計算機システム管理方法
WO2017002222A1 (ja) * 2015-07-01 2017-01-05 株式会社日立製作所 システムデプロイ装置およびシステムデプロイ方法
EP3382553A1 (en) 2017-03-31 2018-10-03 Fujitsu Limited Method executed by a computer, information processing apparatus and program
US10901804B2 (en) 2017-12-15 2021-01-26 Fujitsu Limited Apparatus and method to select services for executing a user program based on a code pattern included therein

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430172B2 (en) * 2012-09-03 2019-10-01 Telefonaktiebolaget Lm Ericsson (Publ) Re-configuration in cloud computing environments
US10379910B2 (en) 2012-10-26 2019-08-13 Syntel, Inc. System and method for evaluation of migration of applications to the cloud
US20140122577A1 (en) * 2012-10-26 2014-05-01 Syntel, Inc. System and method for evaluating readiness of applications for the cloud
US9292330B2 (en) 2012-11-29 2016-03-22 International Business Machines Corporation Replacing virtual machine disks
US9742873B2 (en) 2012-11-29 2017-08-22 International Business Machines Corporation Adjustment to managed-infrastructure-as-a-service cloud standard
US9692632B2 (en) 2012-11-29 2017-06-27 International Business Machines Corporation Migration to managed clouds
US9282166B2 (en) 2012-11-29 2016-03-08 International Business Machines Corporation Management infrastructure analysis for cloud migration
US9092837B2 (en) 2012-11-29 2015-07-28 International Business Machines Corporation Use of snapshots to reduce risk in migration to a standard virtualized environment
US20140195673A1 (en) * 2013-01-10 2014-07-10 Hewlett-Packard Development Company, L.P. DYNAMICALLY BALANCING EXECUTION RESOURCES TO MEET A BUDGET AND A QoS of PROJECTS
US9892207B2 (en) * 2013-02-01 2018-02-13 Sap Se Automatic migration for on-premise data objects to on-demand data objects
US9608931B2 (en) * 2013-05-28 2017-03-28 Accenture Global Services Limited Migration assessment for cloud computing platforms
US9606840B2 (en) * 2013-06-27 2017-03-28 Sap Se Enterprise data-driven system for predictive resource provisioning in cloud environments
US9207946B2 (en) 2013-08-27 2015-12-08 International Business Machines Corporation Auto-cloudifying applications via runtime modifications
US9760358B2 (en) * 2013-10-30 2017-09-12 Oracle International Corporation System and method for test to production support in a cloud platform environment
US9389970B2 (en) 2013-11-01 2016-07-12 International Business Machines Corporation Selected virtual machine replication and virtual machine restart techniques
US9639817B2 (en) * 2013-11-13 2017-05-02 Google, Inc. Remote metering for panelist web usage
US9413682B2 (en) 2014-02-07 2016-08-09 International Business Machines Corporation Provisioning legacy systems network architecture resource communications through a group of servers in a data center
US20150234644A1 (en) * 2014-02-10 2015-08-20 Empire Technology Development Llc Automatic collection and provisioning of resources to migrate applications from one infrastructure to another infrastructure
US9544385B1 (en) 2014-02-24 2017-01-10 Google Inc. Providing second content items in association with first content items
US9727363B2 (en) 2014-04-30 2017-08-08 Dalian University Of Technology Virtual machine migration
US9871851B2 (en) * 2014-06-30 2018-01-16 EMC IP Holding Company LLC Migrating private infrastructure services to a cloud
US10219168B2 (en) * 2014-06-30 2019-02-26 Futurewei Technologies, Inc. Methods and systems for intelligent mobile function distribution
US9836332B2 (en) 2014-07-31 2017-12-05 Corent Technology, Inc. Software defined SaaS platform
US9473567B2 (en) 2014-08-20 2016-10-18 At&T Intellectual Property I, L.P. Virtual zones for open systems interconnection layer 4 through layer 7 services in a cloud computing system
US10291689B2 (en) 2014-08-20 2019-05-14 At&T Intellectual Property I, L.P. Service centric virtual network function architecture for development and deployment of open systems interconnection communication model layer 4 through layer 7 services in a cloud computing system
US9749242B2 (en) 2014-08-20 2017-08-29 At&T Intellectual Property I, L.P. Network platform as a service layer for open systems interconnection communication model layer 4 through layer 7 services
US9742690B2 (en) 2014-08-20 2017-08-22 At&T Intellectual Property I, L.P. Load adaptation architecture framework for orchestrating and managing services in a cloud computing system
US9800673B2 (en) 2014-08-20 2017-10-24 At&T Intellectual Property I, L.P. Service compiler component and service controller for open systems interconnection layer 4 through layer 7 services in a cloud computing system
CN107005422B (zh) * 2014-09-30 2021-06-01 微福斯有限责任公司 用于第二天操作的基于拓扑的管理的系统和方法
US10009292B2 (en) 2014-10-03 2018-06-26 International Business Machines Corporation Cloud independent tuning service for autonomously managed workloads
US9612765B2 (en) 2014-11-19 2017-04-04 International Business Machines Corporation Context aware dynamic composition of migration plans to cloud
JP6392978B2 (ja) * 2015-04-22 2018-09-19 株式会社日立製作所 計算機システムの管理システム
US9804879B2 (en) 2015-05-14 2017-10-31 International Business Machines Corporation Performing server migration and dependent server discovery in parallel
EP3101541A1 (en) * 2015-06-05 2016-12-07 Deutsche Telekom AG A system and method for facilitating migration of server infrastructure services
WO2016193433A1 (en) 2015-06-05 2016-12-08 Deutsche Telekom Ag A system and method for facilitating migration of server infrastructure services
US10079730B2 (en) * 2015-09-30 2018-09-18 Amazon Technologies, Inc. Network based resource configuration discovery service
US10623276B2 (en) * 2015-12-29 2020-04-14 International Business Machines Corporation Monitoring and management of software as a service in micro cloud environments
US10394587B2 (en) 2016-01-06 2019-08-27 International Business Machines Corporation Self-terminating or self-shelving virtual machines and workloads
US10031745B2 (en) 2016-02-02 2018-07-24 International Business Machines Corporation System and method for automatic API candidate generation
US10200395B1 (en) * 2016-03-30 2019-02-05 Symantec Corporation Systems and methods for automated whitelisting of files
US10146563B2 (en) 2016-08-03 2018-12-04 International Business Machines Corporation Predictive layer pre-provisioning in container-based virtualization
US10455004B2 (en) 2016-11-01 2019-10-22 Microsoft Technology Licensing, Llc Controlling an application dependency identifier
US10491704B2 (en) * 2016-11-07 2019-11-26 General Electric Company Automatic provisioning of cloud services
US10915349B2 (en) 2018-04-23 2021-02-09 Hewlett Packard Enterprise Development Lp Containerized application deployment
US11128578B2 (en) * 2018-05-21 2021-09-21 Pure Storage, Inc. Switching between mediator services for a storage system
US20200050440A1 (en) * 2018-08-08 2020-02-13 Futurewei Technologies, Inc. Application upgrading through sharing dependencies
US10715385B2 (en) 2018-09-27 2020-07-14 International Business Machines Corporation System and method for live migration for software agents
US11853273B1 (en) * 2018-09-27 2023-12-26 Amazon Technologies, Inc. Partial migration of applications across database systems
US10817157B2 (en) 2018-12-20 2020-10-27 Nutanix, Inc. User interface for database management services
US11010336B2 (en) * 2018-12-27 2021-05-18 Nutanix, Inc. System and method for provisioning databases in a hyperconverged infrastructure system
US11816066B2 (en) 2018-12-27 2023-11-14 Nutanix, Inc. System and method for protecting databases in a hyperconverged infrastructure system
US20200244772A1 (en) * 2019-01-30 2020-07-30 Huawei Technologies Co., Ltd. Method and system for cloud application and service integration using pattern-based discovery
US11483384B2 (en) 2019-03-19 2022-10-25 Hewlett Packard Enterprise Development Lp Application migrations
JP2022527508A (ja) 2019-03-29 2022-06-02 ラ ファーマシューティカルズ インコーポレイテッド 補体モジュレータ及び関連方法
US11526770B2 (en) 2019-06-20 2022-12-13 International Business Machines Corporation Latent computing property preference discovery and computing environment migration plan recommendation
US10924559B1 (en) 2019-09-12 2021-02-16 International Business Machines Corporation Migration of cloud services
CN110895461B (zh) * 2019-11-21 2023-08-01 望海康信(北京)科技股份公司 软件研发管理方法、装置、电子设备及存储介质
CN111786808A (zh) * 2020-01-10 2020-10-16 北京京东尚科信息技术有限公司 云系统的迁移方法、装置和混合云系统
US11637896B1 (en) 2020-02-25 2023-04-25 Pure Storage, Inc. Migrating applications to a cloud-computing environment
US11868622B2 (en) 2020-02-25 2024-01-09 Pure Storage, Inc. Application recovery across storage systems
US11379843B2 (en) * 2020-03-31 2022-07-05 Paypal, Inc. Systems and methods for multi-domain application hosting platform migration
CN111897654B (zh) * 2020-07-31 2023-08-15 腾讯科技(深圳)有限公司 将应用迁移到云平台的方法、装置、电子设备和存储介质
US11604705B2 (en) 2020-08-14 2023-03-14 Nutanix, Inc. System and method for cloning as SQL server AG databases in a hyperconverged system
US11907167B2 (en) 2020-08-28 2024-02-20 Nutanix, Inc. Multi-cluster database management services
CN112232635B (zh) * 2020-09-17 2023-09-19 中国市政工程华北设计研究总院有限公司 一种基于分布式云架构的智慧水务数据中台
US11483211B2 (en) 2020-09-28 2022-10-25 International Business Machines Corporation Infrastructure discovery and analysis
US11640340B2 (en) 2020-10-20 2023-05-02 Nutanix, Inc. System and method for backing up highly available source databases in a hyperconverged system
US11604806B2 (en) 2020-12-28 2023-03-14 Nutanix, Inc. System and method for highly available database service
US11892918B2 (en) 2021-03-22 2024-02-06 Nutanix, Inc. System and method for availability group database patching
CN112948091B (zh) * 2021-03-24 2024-01-30 国网上海市电力公司 应用系统的迁移方法、装置、电子设备及存储介质
US11979456B2 (en) * 2022-01-14 2024-05-07 Dell Products, L.P. Cloud provisioning readiness verification

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8336047B2 (en) * 2008-08-25 2012-12-18 International Business Machines Corporation Provisioning virtual resources using name resolution
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
CN101763266A (zh) * 2010-01-13 2010-06-30 上海动量软件技术有限公司 计算机软件系统实现云构件部署和配置的平台系统及方法
WO2011091056A1 (en) * 2010-01-19 2011-07-28 Servicemesh, Inc. System and method for a cloud computing abstraction layer
US20110295925A1 (en) * 2010-03-30 2011-12-01 Jason Lieblich Systems and methods for selecting an alternative computing infrastructure
CN102054235B (zh) * 2011-01-04 2014-04-16 清华大学 基于数字资源服务构件模型的机构仓储搭建方法和装置
US9535751B2 (en) * 2011-09-15 2017-01-03 International Business Machines Corporation Resource selection advisor mechanism

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016147348A1 (ja) * 2015-03-18 2016-09-22 株式会社日立製作所 管理計算機、及び、計算機システム管理方法
US10341179B2 (en) 2015-03-18 2019-07-02 Hitachi, Ltd. Management computer and computer system management method
WO2017002222A1 (ja) * 2015-07-01 2017-01-05 株式会社日立製作所 システムデプロイ装置およびシステムデプロイ方法
EP3382553A1 (en) 2017-03-31 2018-10-03 Fujitsu Limited Method executed by a computer, information processing apparatus and program
US10901804B2 (en) 2017-12-15 2021-01-26 Fujitsu Limited Apparatus and method to select services for executing a user program based on a code pattern included therein

Also Published As

Publication number Publication date
US20130091285A1 (en) 2013-04-11
GB201407437D0 (en) 2014-06-11
CN103930863A (zh) 2014-07-16
WO2013055601A1 (en) 2013-04-18
GB2509866A (en) 2014-07-16
DE112012004238T5 (de) 2014-08-21

Similar Documents

Publication Publication Date Title
JP2014532247A (ja) 容易にクラウド化可能なアプリケーションの発見型の識別および移行
US11805076B2 (en) Microservice placement in hybrid multi-cloud using graph matching
US11204793B2 (en) Determining an optimal computing environment for running an image
US10649751B2 (en) Deploying an application in a cloud computing environment
US9288158B2 (en) Dynamically expanding computing resources in a networked computing environment
US11030049B2 (en) Data backup management during workload migration
US8909769B2 (en) Determining optimal component location in a networked computing environment
US20130019015A1 (en) Application Resource Manager over a Cloud
US9317319B2 (en) Monitoring and dynamically reconfiguring virtual machine patterns
US11704123B2 (en) Automated orchestration of containers by assessing microservices
US20200394072A1 (en) Provisioning Disaster Recovery Resources Across Multiple Different Environments Based on Class of Service
US20130041989A1 (en) Dynamically relocating workloads in a networked computing environment
US8825862B2 (en) Optimization of resource provisioning in a networked computing environment
US11288601B2 (en) Self-learning selection of information-analysis runtimes
US20190166208A1 (en) Cognitive method for detecting service availability in a cloud environment
US20130145004A1 (en) Provisioning using presence detection
CN117716373A (zh) 基于期望的度量值提供机器学习模型
JP2023535959A (ja) 開発プロセス中の開発者の時間の計算
JP2023538941A (ja) コンテナ化された環境のインテリジェントバックアップ及び復元
US20230056965A1 (en) Dynamic multi-stream deployment planner
US11652710B1 (en) Service level agreement aware resource access latency minimization
US20220138614A1 (en) Explaining machine learning based time series models
US20230014344A1 (en) Determining optimal data access for deep learning applications on a cluster