JP6912500B2 - デバッグ・コンテナを使用してプロダクション・コンテナに関するデバッグ情報を提供するための方法、コンピュータ・システム、およびコンピュータ・プログラム - Google Patents

デバッグ・コンテナを使用してプロダクション・コンテナに関するデバッグ情報を提供するための方法、コンピュータ・システム、およびコンピュータ・プログラム Download PDF

Info

Publication number
JP6912500B2
JP6912500B2 JP2018565040A JP2018565040A JP6912500B2 JP 6912500 B2 JP6912500 B2 JP 6912500B2 JP 2018565040 A JP2018565040 A JP 2018565040A JP 2018565040 A JP2018565040 A JP 2018565040A JP 6912500 B2 JP6912500 B2 JP 6912500B2
Authority
JP
Japan
Prior art keywords
debug
computer
container
production
software
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
JP2018565040A
Other languages
English (en)
Other versions
JP2019519852A (ja
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 JP2019519852A publication Critical patent/JP2019519852A/ja
Application granted granted Critical
Publication of JP6912500B2 publication Critical patent/JP6912500B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • 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/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、プロダクション・コンテナ(production container)に関するデバッグ情報を提供することに関し、さらに詳細には、特殊なデバッグ・コンテナを使用して、プロダクション・コンテナ内で実行されているコンピュータ・ソフトウェアに関連付けられたデバッグ情報を提供することに関する。
企業向けソフトウェアにおいてデバッグ・トレースおよびデバッグ機能を有効化すると、多くの場合、企業向けソフトウェアの性能に悪影響を与える。このため、テスト環境内で問題を再現できない場合に、オンプレミスのソリューションを使用している顧客は、多くの場合、デバッグ・トレースおよびその他のデバッグ機能を有効化することを嫌がる。これは、顧客が自分の問題を解決するために診断情報を収集するのを困難にすることがある。また、これは、提供されたソフトウェアにおいて起こり得る不具合の調査を顧客から要求された場合に、サポート・サービスにも悪影響を与えることがある。
従って本発明が解決しようとする課題はデバッグ・コンテナを使用したプロダクション・コンテナに関するデバッグ情報を提供することである。
本発明は、プロダクション・コンテナ内で実行されているコンピュータ・ソフトウェアに関連付けられたデバッグ情報を提供するための、方法、ならびに関連するコンピュータ・システムおよびコンピュータ・プログラム製品を提供する。1つまたは複数のプロセッサは、プロダクション・コンテナをデバッグ・コンテナとして複製する。1つまたは複数のプロセッサは、コンピュータ・ソフトウェアをプロダクション・コンテナ内およびデバッグ・コンテナ内で実行し、コンピュータ・ソフトウェアを実行することは、プロダクション・コンテナ内で実行されているコンピュータ・ソフトウェアに送信された要求を、デバッグ・コンテナ内で実行されているコンピュータ・ソフトウェアに複製することを含む。1つまたは複数のプロセッサは、プロダクション・コンテナ内で実行されているコンピュータ・ソフトウェアからの要求を、この要求に対する応答と一緒に格納する。1つまたは複数のプロセッサは、デバッグ・コンテナ内で実行されているコンピュータ・ソフトウェアによって生成されたデバッグ情報を格納する。
ここで、添付の図面を単に例として参照し、本発明の実施形態について詳細に説明する。
デバッグ情報を提供する本発明の実施形態が実装されてよいコンピュータ・システムを示す図である。 本発明の実施形態に記載された、プロダクション・コンテナ内で実行されているコンピュータ・ソフトウェアに関連付けられたデバッグ情報を提供するコンピュータ実装方法の実施形態のフローチャートである。 本発明の実施形態に記載された、図2の要求および応答の複製ステップの実装の実施形態のブロック図である。 本発明の実施形態に記載された、図2のコンピュータ実装方法を呼び出す、第1の、ユーザによって開始されるコンピュータ実装方法のブロック図である。 本発明の実施形態に記載された、図2のコンピュータ実装方法を呼び出す、第2の、要求ごとにユーザによって開始されるコンピュータ実装方法のブロック図である。 本発明の実施形態に記載された、以前に記録されたメッセージのリプレイを使用して図2のコンピュータ実装方法を呼び出す、第3のコンピュータ実装方法のブロック図である。 本発明の実施形態に記載された、図2のコンピュータ実装方法を呼び出す、第4のコンピュータ実装方法のブロック図である。 本発明の実施形態の実装において使用されてよい、例示的なコンピュータ・システムの概略図である。 本発明の実施形態に記載された、クラウド・コンピューティング環境の例を示す図である。 本発明の実施形態に記載された、図9のクラウド・コンピューティング環境によって提供される機能的抽象レイヤのセットを示す図である。
本発明は、本発明の以下の説明から明らかになるように、コンピュータ・システムの機能、具体的には、クラウド環境内で動作するコンピュータ・システムの機能を改善する。
本発明は、クラウドまたはSaaS(Software as a Service)内で利用可能な設備を使用して、ソフトウェアをデバッグするための診断情報の収集を可能にし、プロダクション・パフォーマンスに対するリスクを低減し、性能に対するデバッグ・トレースの影響を最小限に抑える。本発明は、クラウド・オファリング(cloud offering)でのデバッグ動作のCPU時間の価格の低減も可能にする。
ハイブリッド・クラウド・オファリングは、通常、クラウド・コントローラ・コンポーネントによってオーケストレートされたプロダクション・コンテナのグループを含む。ネットワーク・エッジは、IBM(R) DataPower Gatewayセキュリティおよび統合プラットフォームなどのゲートウェイ・ソフトウェアまたはゲートウェイ機器によって制御されることがある。一実施形態では、接続は、オンプレミス環境またはプライベート・クラウドが背後にある既存のセキュア・コネクタを介して行われ得る。コンテナは、顧客のアプリケーション定義を含んでいる共有ストレージ・ネットワーク・ロケーションから自己構成してよい。
コンテナは、コンピュータ・プログラムまたはコンピュータ・プログラムの一部をソフトウェアのレイヤ内で包含し、このソフトウェアのレイヤは、実行するためにコンピュータ・プログラムが依存するオペレーティング・システムおよびその他の計算リソースにシームレスに接続される。コンピュータ・プログラムをコンテナに入れることには、多くの利点がある。コンピュータ・プログラムを、あるコンピュータから別のコンピュータへ(例えば、プログラマーのラップトップからテスト・システムへ、さらにテスト・システムからクラウドへ)、素早く簡単に移動できることは、特に有利である。
本発明の実施形態では、標準コンテナに加えて、デバッグ活動用に最適化された、特殊なコンテナが提供される。それらのコンテナは、次の方法を含むが、これらに限定されない、複数の方法で特殊化される。(i)コンピュータ・ソフトウェアのデバッグ・ビルドを実行することが実装されてよい、(ii)基礎になるハードウェアが、デバッグ・コストを最小限に抑えるように特殊化される(例えば、基礎になるハードウェアは、トレース情報の書き込みの入出力(I/O:Input/Output)コストが最小限に抑えられるように、半導体ストレージ・デバイス(SSD:Solid state Storage Devices)を搭載してよい)、(iii)レコード・アンド・リプレイ(Record and Replay)機能などの監査能力がデフォルトで有効化されてよい、(iv)サポート担当者がデバッグ・システム上でリアルタイムに問題をデバッグできるように、デバッグ・ポートがデフォルトで開かれてよい。
本発明の実施形態は、特定の顧客のアプリケーションをデバッグ・コンテナ上およびプロダクション・コンテナ上で柔軟に拡大または縮小する能力を提供する。
従来技術の特殊なデバッグ・インスタンスは、診断能力の影響をある程度低減するが、性能に対する悪影響が依然として存在する。したがって、この悪影響を取り除くために、デバッグが有効化されたときに、本発明の実施形態では、既存の顧客のコンテナ・イメージが、オンデマンドで、本発明の実施形態の特殊なデバッグ・インスタンスのうちの1つにスピンアップされる。ネットワーク・トラフィックは、ゲートウェイ機器によって、またはネットワーク・エッジ上にあるソフトウェアによって、デバッグ・コンテナと通常のプロダクション・コンテナの間で自動的に複製されてよい。同様に、ネットワーク・エッジ上のゲートウェイ機器を介して、またはセキュア・コネクタを介してプロダクション・アプリケーションによって行われた送信要求は、同じデータをデバッグ・コンテナ・インスタンスにおいて発生する実際の要求のシミュレーションに使用できるように、その送信要求に対する応答と共に格納される。
前述した実施形態では、診断活動が、実行中のプロダクション環境のワークロードに影響を与えずに、個別に調整されたハードウェアまたはソフトウェアあるいはその両方で実行されてよい。デバッグ情報において収集された診断情報は、クラウド・オファリングのWeb管理コンソールを介して顧客が直接利用できるようにされてよい。診断情報は、必要に応じて、クラウド・オファリング・プロバイダの製品サポート・チームによって使用される問題チケッティング・システム(problem ticketing system)に直接リンクされてもよい。デバッグ・インスタンスは、デバッグ・クラウド環境内への直接的な仮想プライベート・ネットワーク(VPN:Virtual Private Network)アクセスを介して、サポート担当者によるデバッグに使用可能であってもよい。
図1は、デバッグ情報を提供する本発明の実施形態が実装されてよいコンピュータ・システムを示している。クラウド102は、プロダクション・コンテナ106〜112のプロダクション・グループ104を備える。各プロダクション・コンテナ106〜112は、コンピュータ・プログラム(ソフトウェア)またはコンピュータ・プログラムの一部を、ソフトウェアのレイヤ内で包含し、このソフトウェアのレイヤは、実行するためにコンピュータ・プログラムが依存するオペレーティング・システム(図1に示されていない)およびその他の計算リソース(図1に示されていない)にシームレスに接続される。このソフトウェアは、顧客のビジネスの運用において、顧客によってプロダクション環境内で使用される。クラウド102は、デバッグ・コンテナ126〜130のデバッグ・グループ124をさらに備える。各デバッグ・コンテナ126〜130は、コンピュータ・プログラムまたはコンピュータ・プログラムの一部をソフトウェアのレイヤ内で包含し、このソフトウェアのレイヤは、実行するためにコンピュータ・プログラムが依存するオペレーティング・システムおよびその他の計算リソースにシームレスに接続される。このソフトウェアは、顧客のビジネスの運用において、顧客によってプロダクション環境内で使用されず、コンピュータ・プログラムに伴う問題のデバッグを支援するために、診断情報を取得する目的に使用される。デバッグ・コンテナ126〜130の各インスタンスは、プロダクション・コンテナ106〜112の1つのインスタンスに対応する。任意の数のプロダクション・コンテナ106〜112および任意の数のデバッグ・コンテナ126〜130が存在してよいが、デバッグ・コンテナ126〜130の各インスタンスは、プロダクション・コンテナ106〜112の1つのインスタンスに対応していなければならない。プロダクション・コンテナ106〜112は、対応するデバッグ・コンテナ126〜130を有していても、有していなくてもよい。プロダクション・コンテナ106〜112は、ワークロードの共有または同様の目的のために、2つ以上のデバッグ・コンテナ126〜130に関連付けられてよい。一実施形態では、少数のプロダクション・コンテナ106〜112のみが、対応するデバッグ・コンテナ126〜130を有する。
プロダクション・コンテナ106〜112およびデバッグ・コンテナ126〜130は、デバッグ・コンテナ126〜130とプロダクション・コンテナ106〜112の両方で共通の顧客の構成を読み込むことができるように、同じネットワーク環境内で実行され、ネットワーク・ストレージ140を共有する。一実施形態では、デバッグ・コンテナ126〜130は、特殊なハードウェア上で実行される。例えば、デバッグ・コンテナ126〜130を実行するハードウェアは、トレース情報を書き込むI/Oコストが低減されるように、SSD142を搭載してよい。コンテナ(デバッグ・コンテナ126〜130またはプロダクション・コンテナ106〜112のいずれか)がスピンアップされた場合、構成データおよび顧客のアプリケーションが共有ネットワーク・ストレージ140上のある位置から読み込まれる。
プロダクション・グループ104およびデバッグ・グループ124が実行されるクラウド102は、顧客の施設の外部との(例えば、リモート・サーバ310などへの)通信用のゲートウェイ150を含む。クラウド102は、顧客の施設内の別のアプリケーションまたは同様のものへの接続用の、1つまたは複数のセキュア・コネクタ152をさらに含む。通常、ゲートウェイ150は、通信用のインターネット170に接続される。クラウド・コントローラ172は、クラウド102の正しい動作を保証するために、図1内の他のコンポーネントをオーケストレートする。
デバッガ162は、リモート・サポート・システム(remote support system)160内で実行される。リモート・サポート・システム160は、プロダクション・グループ104およびデバッグ・グループ124の位置から遠く離れた地理的な位置にあってよいが、プロダクション・グループ104およびデバッグ・グループ124と同じ地理的な位置にあってもよい。リモート・サポート・システム160は、リモートおよびローカルについての周知の従来技術の定義に従って、ローカルとは対照的に、リモートである。リモート・サポート・システム160の機能は、当業者によく知られており、本発明の実施形態との関連において、リモート・サポート・システム160は、プロダクション・グループ104内のソフトウェアの実行に関連付けられた問題の再現および解決を含む。デバッガ162の機能も、当業者によく知られており、本発明の実施形態との関連において、デバッガ162は、プロダクション・グループ104内のソフトウェアの実行の解析を含んでおり、この解析は、プロダクション・グループ104を複製するデバッグ・グループ124内のソフトウェアの実行の解析によって実現されてよい。仮想プライベート・ネットワーク(VPN)164は、リモート・サポート160内のデバッガ162とデバッグ・グループ124内で実行されるソフトウェアとの間のセキュリティで保護された通信経路を提供する。一実施形態では、制御情報が、VPN164を介してデバッガ162からデバッグ・コンテナ128に渡されてよく、データが、VPN164を介してデバッガ162とデバッグ・コンテナ128の間で一方向または両方向に渡されてよい。他の実施形態では、VPNを介する接続は、必要に応じて、デバッグ・グループ124に進むか、またはクラウド102に進んでよい。
監査能力は、レコード・アンド・リプレイ166ソフトウェアなどのアイテムを含んでよい。レコード・アンド・リプレイ166ソフトウェアは、1つのコンピュータ・ソフトウェア(デバッグ・グループ124内で実行されているデバッグ・コンテナ128内のソフトウェアなど)によって受信された入力イベントをキャプチャしてよく、一連の入力イベントを、後でデバッグ・コンテナ128内のソフトウェアでリプレイできるようにする。レコード・アンド・リプレイ166ソフトウェアは、キャプチャされた入力イベントを、格納するため、および後で利用するために、リモート・サポート・システム160内の再現168ソフトウェアに送信する。
デバッグ・コンテナ126〜130は、一実施形態では、ソフトウェアの特殊なビルドを実行してよい。
一実施形態では、プロダクション・コンテナ106〜112は、最大性能を達成するために、アサーションが無効化されて実行されるソフトウェアのビルドを実行してよく、デバッグ・コンテナ126〜130は、高速に不具合を再現するために、アサーションが有効化されたソフトウェアのビルドを実行してよい。アサーションは、ブール値条件をチェックするアサート・ステートメントを含み、真である場合は何も行わず、偽である場合はプログラムを直ちに終了する。アサーションは、実行可能なソフトウェア・コードで表されているときに、真であると仮定されてよい。アサート・ステートメントは、例えばヌル・ポインタを識別するために使用されてよい。アサーションを使用することで、不具合を早期に、エラーの場所の近くで出現させることができ、エラーの診断および修正を容易にする。
一実施形態では、プロダクション・コンテナ106〜112は、メモリ使用量を削減するために、デバッグ・シンボルを含まないソフトウェアのビルドを実行してよく、デバッグ・コンテナ126〜130は、診断能力を高めるために、デバッグ・シンボルを含むソフトウェアのビルドを実行してよい。デバッグ・シンボルは、コンピュータ・プログラムのソース・コードのどの部分が実行可能なコンピュータ・ソフトウェアの一部の特定のオブジェクト・コードを生成したかを識別する情報を含む。デバッグ・シンボルは、ソフトウェアをデバッグする作業者が、元のソース・コードから、変数およびルーチンの名前などのオブジェクト・コードに関する情報を取得できるようにする。
一実施形態では、プロダクション・コンテナ106〜112は、ソフトウェアの最大性能を実現するために、コンパイラの最適化が最大限に有効化されたソフトウェアのビルドを実行してよく、デバッグ・コンテナ126〜130は、デバッグ能力を高めるため、およびコンパイラ・エラーの影響を減らすために、最小限のコンパイラの最適化を有するソフトウェアのビルドを実行してよい。コンパイラの最適化は、プログラムの実行時間を最小限に抑えること、プログラムによって占有されるメモリ量を最小限に抑えること、プログラムによって消費される電力を最小限に抑えること、あるいは実行可能なコンピュータ・プログラムの任意のその他の属性を最大化または最小化することとを、実行しようとすることがある。最適化変換、具体的には、コードの順序を変更する変換は、シンボリック・デバッガを使用するときに、出力コードを元のソース・コード内の行番号に関連付けることを困難にする可能性がある。
デバッグ・コンテナ126〜130は、一実施形態では、特殊な構成を有してよい。
一実施形態では、プロダクション・コンテナ106〜112は、最大性能を実現するために、トレースが常にオフにされる構成でソフトウェアを実行してよく、デバッグ・コンテナ126〜130は、ソフトウェアの実行に関する情報をできるだけ多くキャプチャするために、トレースが常に完全にオンにされる構成でソフトウェアを実行してよい。トレース情報は、特に、ソフトウェアに伴う問題のデバッグおよび識別の目的で、プログラムの実行に関してログに記録される情報である。トレースは、一実施形態では、低レベルのイベントである。
一実施形態では、プロダクション・コンテナ106〜112は、最大性能を実現するために、監査能力が常にオフにされる構成でソフトウェアを実行してよく、デバッグ・コンテナ126〜130は、監査能力が常にオンにされる構成でソフトウェアを実行してよい。監査能力は、レコード・アンド・リプレイ166ソフトウェアを含んでよい。レコード・アンド・リプレイ166ソフトウェアは、一実施形態では、1つのコンピュータ・ソフトウェアによって受信された入力イベントをキャプチャし、それらの一連の入力イベントを、後でそのソフトウェアでリプレイできるようにする。
一実施形態では、プロダクション・コンテナ106〜112は、最大性能を実現するために、デバッグ・ポートが無効化される構成でソフトウェアを実行してよく、デバッグ・コンテナ126〜130は、サポート担当者がソフトウェアをデバッグできるように、デバッグ・ポートが有効化される構成でソフトウェアを実行してよい。デバッグ・ポートは、開発およびデバッグを簡略化するためにソフトウェアに含まれているポートであるが、ソフトウェアの通常動作には不要である。一実施形態では、デバッグ・ポートは、権限のない人間によって余分な機能が使用されるのを防ぐために、無効化される。
一実施形態では、デバッグ・コンテナ126〜130は、特殊なハードウェア上で実行されてよい。
一実施形態では、プロダクション・コンテナ106〜112は、SSD142を搭載していないハードウェア上でソフトウェアを実行してよく、デバッグ・コンテナ126〜130は、トレース情報を格納するI/Oコストを削減するために、SSD142を搭載しているハードウェア上でソフトウェアを実行してよい。SSD142は、情報の非常に高速な格納を実現するが、格納のコストが大きくなる。
一実施形態では、プロダクション・コンテナ106〜112は、所有権の総コストを削減するために、より小さいメモリ容量を有するハードウェア上でソフトウェアを実行してよく、デバッグ・コンテナ126〜130は、診断のメモリ・コストを考慮するために、より大きいメモリ容量を有するハードウェア上でソフトウェアを実行してよい。一実施形態では、顧客は、実際に使用されるメモリ量に応じて、ハードウェア上でのソフトウェアの実行に対して料金を支払うことがあるため、プロダクション環境では、実際に使用されるメモリ量を最小限に抑える必要がある。
一実施形態では、プロダクション・コンテナ106〜112は、所有権の総コストを削減するために、より小さいCPU能力を有するハードウェア上でソフトウェアを実行してよく、デバッグ・コンテナ126〜130は、デバッグ機能のコストを考慮するために、より大きいCPU能力を有するハードウェア上でソフトウェアを実行してよい。顧客は、一般的に、実際に使用されるCPU能力の量に応じて、ハードウェア上でのソフトウェアの実行に対して料金を支払うことがあるため、プロダクション環境では、実際に使用されるCPU能力の量を有利に最小限に抑えてよい。
図2は、本発明の実施形態に従う、プロダクション・コンテナ内で実行されているコンピュータ・ソフトウェアに関連付けられたデバッグ情報を提供するコンピュータ実装方法の実施形態のフローチャートである。コンピュータ実装方法は、ステップ202で開始する。ステップ204で、プロダクション・コンテナ106〜112は、プロダクション・コンテナ106〜112と並行するデバッグ・コンテナ126〜130として複製される。1つのプロダクション・コンテナ106〜112または複数のプロダクション・コンテナ106〜112が、デバッグ・コンテナ126〜130として複製されてよい。ただし、各デバッグ・コンテナ126〜130は、通常、1つのプロダクション・コンテナ106〜112と1対1に対応している。これの例外は、プロダクション・コンテナ106〜112が、ワークロードの共有または同様の目的のために、2つ以上のデバッグ・コンテナ126〜130に関連付けられる場合であってよい。図1の例では、プロダクション・コンテナ106がデバッグ・コンテナ126に関連付けられてよく、プロダクション・コンテナ108がデバッグ・コンテナ128に関連付けられてよく、プロダクション・コンテナ110がデバッグ・コンテナ130に関連付けられてよい。プロダクション・コンテナ112は、どのデバッグ・コンテナにも関連付けられないため、このプロダクション・コンテナに関するデバッグ情報は提供されていない。デバッグ・コンテナ126〜130に関連付けられているプロダクション・コンテナ106〜112の数は、ゼロと、プロダクション・グループ104内で同時に実行されてよいプロダクション・コンテナ106〜112の最大数との間の、任意の数であってよい。デバッグ・コンテナ126〜130の数は、ゼロと、プロダクション・グループ104内で実際に同時に実行されているプロダクション・コンテナ106〜112の数との間の、任意の数であってよい。前述したように、これの例外は、プロダクション・コンテナ106〜112が、ワークロードの共有または同様の目的のために、2つ以上のデバッグ・コンテナ126〜130に関連付けられる場合であってよい。
ステップ206で、デバッグ対象のソフトウェアが、プロダクション・コンテナ108などのプロダクション・コンテナ内と、デバッグ・コンテナ128などの複製されたデバッグ・コンテナ内の両方で実行される。以降の説明では、明確にするために、以降の説明における参照は、1つのプロダクション・コンテナ108が1つのデバッグ・コンテナ128に複製されていると仮定する。ただし実際は、前述したように、任意の数のプロダクション・コンテナ106〜112が、複製されたデバッグ・コンテナ126〜130に関連付けられてよい。
ステップ208で、ネットワーク・エッジ154にあるゲートウェイ150が、プロダクション・コンテナ108内で実行されているコンピュータ・ソフトウェアに送信された要求を、デバッグ・コンテナ128内で実行されているコンピュータ・ソフトウェアの対応するコピーに複製する。プロダクション・コンテナ108内で実行されている各コンピュータ・ソフトウェアおよびデバッグ・コンテナ128内で実行されているコンピュータ・ソフトウェアの対応するコピーは、これらの要求を実行する。各コンテナ内の実行の間の違いは、プロダクション・コンテナ108内で実行されているコンピュータ・ソフトウェアが、ソフトウェアのプロダクション・バージョン(production version)、プロダクション構成(production configuration)、およびプロダクション・ハードウェア(production hardware)で実行されるのに対して、デバッグ・コンテナ128内で実行されているコンピュータ・ソフトウェアが、ソフトウェアのデバッグ・バージョン、デバッグ構成、およびデバッグ・ハードウェアで実行されるという点である。これらの違いがすべて、コンピュータ・ソフトウェアの実行に関連付けられたデバッグ情報の収集を支援する。実施形態では、この違いは、ソフトウェアのデバッグ・バージョン、デバッグ構成、およびデバッグ・ハードウェアのうちの任意の1つ以上における違いであってよい。
ステップ210で、プロダクション・コンテナ108内で実行されているコンピュータ・ソフトウェアからのアウトバウンド要求のコピーが、この要求に対する関連するインバウンド応答と一緒に格納される。これらの要求は、ローカル・サーバへのセキュア・コネクタ152を介するか、またはリモート・サーバ310へのゲートウェイ150を介してよい。
要求および関連する応答を格納することによって、格納された関連する応答は、この応答がデバッグ・コンテナ128内で実行されているコンピュータ・ソフトウェアからの実際の要求から生じたかのように、デバッグ・コンテナ128内で実行されているコンピュータ・ソフトウェアに提供され得る。デバッグ・コンテナ128内で実行されているコンピュータ・ソフトウェアが、実際の要求を実際に行うことができるのは望ましくない。これは、デバッグ・コンテナ128内で(したがって、場合によってはソフトウェアのデバッグ・バージョン、デバッグ構成、およびデバッグ・ハードウェアで)実行されているコンピュータ・ソフトウェアに起因して、要求を行うことには副作用があることがあるからである。関連する応答のコピーを、デバッグ・コンテナ128内で実行されているコンピュータ・ソフトウェアに提供することによって、同じ刺激がデバッグ・コンテナ128に提供され、プロダクション環境104内の問題がデバッグ環境124内で再現されることを保証し、したがって、問題の解決策の決定を支援するための診断情報およびデバッグ情報の正確な収集を可能にする。これらはすべて、プロダクション環境104の運用に影響を与えないか、または影響を最小限に抑えて実現される。
ステップ210の後に、本発明のさまざまな実施形態が可能である。図2に示された実施形態では、ステップ210の後にステップ212および214が実行される。別の実施形態では、ステップ212のみが実行され、デバッグ情報が、後で解析を行うために格納される。さらに別の実施形態では、動作中の対話的なデバッグが実行されて、要求およびデバッグ情報を対話的にデバッガ162に送信できるように、デバッグ情報が一時的に格納される。
ステップ212で、デバッグ・コンテナ128内で実行されているコンピュータ・ソフトウェアによって生成されたデバッグ情報が格納される。一実施形態では、デバッグ情報は、プロダクション・コンテナ108内で実行されているコンピュータ・ソフトウェアと共有されたネットワーク・ストレージ140に格納されてよい。別の実施形態では、デバッグ情報は、追加デバッグ情報を書き込むI/Oコストが最小限に抑えられるように、SSD142に格納されてよい。
ステップ214で、プロダクション・コンテナ108内で実行されているコンピュータ・ソフトウェアをデバッグするための格納されたデバッグ情報が使用される。格納されたデバッグ情報は、デバッグ・コンテナ128内で実行されているコンピュータ・ソフトウェアから取得されたが、デバッグ・コンテナ128がプロダクション・コンテナ108から複製されているため、格納されたデバッグ情報を使用して、プロダクション・コンテナ108内で実行されているコンピュータ・ソフトウェアをデバッグすることができる。格納されたデバッグ情報を使用するステップは、従来通りに格納されたデバッグ情報に対して実行される方法と同じ方法で実行される。ただし、本発明の実施形態には、デバッグ情報を収集できるようにするために、またはより効率的なデバッグ情報の収集を可能にするために、ソフトウェア、構成、またはハードウェアに対して変更が行われることなく、プロダクション・コンテナ108が正常に動作し続けるという利点がある。コンピュータ実装方法は、ステップ216で終了する。
図3は、本発明の実施形態に従う、図2の208での要求および応答の複製ステップの実装の実施形態のブロック図である。ステップ208で、プロダクション・コンテナ108へのすべてのトラフィックが、ネットワーク・エッジ154上のゲートウェイ150機器によって複製され、要求の複製されたコピーが特殊なデバッグ・コンテナ128に送信される。同様に、要求が、プロダクション・コンテナ108から、ゲートウェイ150を介するか、またはセキュア・コネクタ152を介して、オンプレミス・クラウド環境またはプライベート・クラウド環境に対して行われた場合、送信要求および送信要求に対する関連する応答のコピーが格納される。したがって、副作用によってデバッグ・コンテナ126〜130が実行されるのを防ぐために、プロダクション・コンテナが外部の世界に向けて実際の要求を行わずに、保存された応答を提示し、アプリケーションを透過的にデバッグすることができる。
プロダクション・コンテナ108は、ネットワーク・エッジ154にあるゲートウェイ150を介して、クラウド環境からリモート・サーバ310に対して、要求を行ってよい。プロダクション・コンテナ108は、セキュア・コネクタ152を介して、ローカル・サーバに対して要求を行ってもよい。いずれの場合も、ゲートウェイ150またはセキュア・コネクタ152は、要求のメッセージ・コンテキスト302を、リモート・サーバ310から受信された応答に関連付け、受信された応答をストア(store)320に格納する。その後、デバッグ・コンテナ128に関連付けられたストア320が、セキュア・コネクタ164を介して、デバッグ・コンテナ128インスタンスによってアクセスされる。
格納されるメッセージ・コンテキスト302データは、トランスポート依存(transport dependent)であるが、行われた要求を一意に識別できる必要がある。一実施形態では、この実施可能要件は、エンドポイント・アドレスおよびヘッダーの何らかの組み合わせであってよく、場合によっては、トランザクションIDを含む。
デバッグ・コンテナ128内で実行されているコンピュータ・ソフトウェアは、そのソフトウェアの送信要求が、ネットワーク・エッジ154にある実際のゲートウェイ150でも、セキュア・コネクタ152エンドポイントでもなく、ストア320にルーティングされてよい。メッセージ・コンテキスト302は、格納された応答の検索に使用され、その後、実際のリモート・エンドポイントを実際に呼び出さずに、検索された応答が、リモート・サーバ310から来たかのように、デバッグ・コンテナ128内で実行されているコンピュータ・ソフトウェアに提供され、それによって、望ましくない副作用を引き起こさないようにすることができる。
デバッグ情報を含んでいる診断データは、Webポータルを介して使用可能にされてよく、さらに、既存の問題チケッティング・システムとの直接的統合を介して、サポート・スタッフが使用できるようにされてよい。
本発明の特殊なデバッグ・コンテナ126〜130の実施形態は、複数の方法で開始されてよい。図4〜7では、以下の4つの方法が説明されているが、本発明の実施形態はこれら4つの方法に限定されない。デバッグ・コンテナ126〜130の実際の複製は、クラウド・コントローラ172またはオーケストレーション・コンポーネントあるいは同様のものによって制御されてよい。次に、すべてのデバッグ・オプションを提供するために、特殊なデバッグ能力をクラウド・オファリングに提供する、本発明の実施形態の統合について説明する。
図4は、本発明の実施形態に従う、図2のコンピュータ実装方法を呼び出す、第1の、ユーザによって開始されるコンピュータ実装方法のブロック図である。第1の実施形態では、ユーザは、Web制御パネル402を使用して、特定のアプリケーションがデバッグ・モードで実行されることを具体的に要求してよい。第2の実施形態では、ユーザは、デバッグ・モードで実行するために、一定の割合のプロダクション・コンテナ106〜112を選択してよい。第3の実施形態では、ユーザは、すべての要求がデバッグ・モードで実行されることを要求してよい。これらの実施形態のいずれかにおいて、ユーザが、要求404を行うことによって図2のコンピュータ実装方法を開始した場合、クラウド・コントローラ172は、要求406を介して適切な数のデバッグ・コンテナ126〜130を開始し、要求がプロダクション・コンテナ106〜112およびデバッグ・コンテナ126〜130(例えば、デバッグ・コンテナ128)に正しくルーティングされるように、ネットワーク・エッジ154にあるゲートウェイ150およびセキュア・コネクタ152を再構成する。要求の正しいルーティングを確認するために、応答406、404が、クラウド・コントローラ172を介してWebパネル402に返されてよい。
図5は、本発明の実施形態に従う、図2のコンピュータ実装方法を呼び出す、第2の、要求ごとにユーザによって開始されるコンピュータ実装方法のブロック図である。一実施形態では、ユーザは、デバッグ・モードで実行されるべき特定の要求を送信してよく、これは、例えば、メッセージ・データが調査中の問題を引き起こしていると疑われる場合に、役立つことがある。この実施形態では、要求は、デバッグがオンにされるべきであることを示す特殊なHTTPヘッダーまたはURIパラメータを含んでよい。図5で、ユーザによって行われた特定の要求504が、「特定のエンドポイント上のGET」502として示されており、この要求は、例えば、「GET/msgflow?debug = true」などの要求であってよい。「debug = true」の部分は、デバッグがオンにされるべきであることを示す特定のパラメータである。この実施形態では、ユーザが、デバッグ・フラグが有効化された特定の要求をゲートウェイ150に送信する場合、ユーザは要求508をクラウド・コントローラ172に送信する。クラウド・コントローラ172は、要求406を介して、適切な数のデバッグ・コンテナ126〜130(例えば、デバッグ・コンテナ128)を開始し、要求がプロダクション・コンテナ106〜112およびデバッグ・コンテナ126〜130に正しくルーティングされるように、ネットワーク・エッジ154にあるゲートウェイ150およびセキュア・コネクタ152を再構成する。デバッグ・コンテナ128が設定されたかどうかを示すために、クラウド・コントローラ172およびゲートウェイ150への応答406および要求508が、要求504を介してユーザに返される。デバッグ・コンテナ128が設定された後に、デバッグ・コンテナ128は、ゲートウェイ150を介して要求510を受信して、応答510を送信する。要求が完全に処理された後に、デバッグ・コンテナが自動的に終了され、デバッグ情報がネットワーク・ストレージ140またはSSD142に保存されている。
図6は、本発明の実施形態に従う、以前に記録されたメッセージのリプレイを使用して図2のコンピュータ実装方法を呼び出す、第3のコンピュータ実装方法のブロック図である。監査能力であるレコード・アンド・リプレイ166が使用可能である場合、デバッグ・コンテナ126〜130内で実行されているコンピュータ・ソフトウェアで正常に処理されなかったメッセージのリプレイを、自動的にスケジュールすることができる。この実施形態では、デバッグ・コンテナ126〜130は、プロダクション・コンテナ106〜112とは独立に実行され、デバッグ・コンテナ126〜130へのメッセージはバッチ・プロセスとして送信される。レコード・アンド・リプレイ(R&R:Record & Replay)166は、要求604をクラウド・コントローラ172に送信し、クラウド・コントローラ172は、要求406を介して適切な数のデバッグ・コンテナ126〜130を開始し、要求がプロダクション・コンテナ106〜112およびデバッグ・コンテナ126〜130に正しくルーティングされるように、ネットワーク・エッジ154にあるゲートウェイ150およびセキュア・コネクタ152を再構成する。応答406、604は、デバッグ・コンテナ128が正常に設定されているかどうかを示すために使用される。
図7は、本発明の実施形態に従う、デバッグ・バースト(debug bursting)702と呼ばれる、図2のコンピュータ実装方法を呼び出す第4のコンピュータ実装方法のブロック図である。ユーザがプライベート・クラウド環境またはオンプレミス環境においてエラーに遭遇した場合、そのプライベート・クラウド環境またはオンプレミス環境は、プライベート・クラウド環境またはオンプレミス環境のプロダクション・ワークロードに影響を与えずに診断ツールを実行する能力を備えていないことがある。同様に、ユーザは、ホストされたクラウド・オファリングにおいて使用可能な、例えば内部のデバッグ・ビルドに対するアクセス権限などの、特殊機能の一部に対するアクセス権限を、持っていないことがある。この実施形態では、デバッグ・コンテナ126、128、130は、ユーザのオンプレミス・クラウド環境またはプライベート・クラウド環境からユーザによって提供された構成に基づいて、オンデマンドでクラウド・オファリング内で初期化される。プライベート・クラウド102環境内のプロダクション・コンテナ108、110は、デバッグ・バーストを使用して、情報をパブリック・クラウド704内のデバッグ・コンテナ126〜130に送信する。この実施形態では、デバッグ・コンテナ126〜130は、プロダクション・コンテナ108、110が含まれているクラウドとは異なるクラウド内にある。
図8は、本発明の実施形態の実装において使用されてよい、例示的なコンピュータ・システム812の概略図である。コンピュータ・システム812は、適切なコンピュータ・システムの一例に過ぎず、本明細書に記載された本発明の実施形態の使用または機能の範囲に関して、いかなる限定を示唆することも意図されていない。いずれにせよ、コンピュータ・システム812は、前述した機能のいずれかを実装すること、または実行すること、あるいはその両方を行うことができる。
コンピュータ・システム/サーバ812は、他の多数の汎用または専用のコンピューティング・システム環境または構成で運用可能である。コンピュータ・システム/サーバ812と共に使用するのに適した周知のコンピューティング・システム、環境、または構成、あるいはその組み合わせの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、マイクロコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらの任意のシステムまたはデバイスを含む分散クラウド・コンピューティング環境などを含むが、これらに限定されない。
コンピュータ・システム/サーバ812は、コンピュータ・システムによって実行されているプログラム・モジュールなどの、コンピュータ・システムによって実行可能な命令との一般的な関連において説明されてよい。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム/サーバ812は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散クラウド・コンピューティング環境で実行されてよい。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモートの両方のコンピュータ・システム・ストレージ媒体に配置されてよい。
図8に示すように、コンピュータ・システム/サーバ812は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ812のコンポーネントは、1つまたは複数のプロセッサまたはプロセッシング・ユニット816、1つまたは複数のメモリを示しているシステム・メモリ828、およびシステム・メモリ828を含むさまざまなシステム・コンポーネントをプロセッサ816に結合するバス818を含むことができるが、これらに限定されない。
バス818は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、および任意のさまざまなバス・アーキテクチャを使用するプロセッサまたはローカル・バスを含む、1つまたは複数の任意の種類のバス構造を表す。例として、そのようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカル・バス、およびPCI(Peripheral Component Interconnect)バスを含むが、これらに限定されない。
コンピュータ・システム/サーバ812は、通常、さまざまなコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ812によってアクセスできる任意の使用可能な媒体にすることができ、揮発性および不揮発性媒体、取り外し可能および取り外し不可の媒体を含む。
システム・メモリ828は、ランダム・アクセス・メモリ(RAM:random access memory)830またはキャッシュ・メモリ832あるいはその両方などの、揮発性メモリの形態でのコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ812は、その他の取り外し可能/取り外し不可、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単に例として、取り外し不可、不揮発性の磁気媒体(図示されておらず、通常は「ハード・ドライブ」と呼ばれる)に対する読み取りと書き込みを行うために、ストレージ・システム834を提供することができる。図示されていないが、特に、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、およびCD−ROM、DVD−ROM、またはその他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブを含む1つまたは複数のハードウェア・ストレージ・デバイスを提供することができる。そのような例では、それぞれを、1つまたは複数のデータ媒体インターフェイスによってバス818に接続することができる。下で詳細に示され、説明されるように、メモリ828は、本発明の実施形態の機能を実行するように構成された一連の(例えば、少なくとも1つの)プログラム・モジュールを備える少なくとも1つのプログラム製品を含むことができる。
例えば、一連の(少なくとも1つの)プログラム・モジュール842を含んでいるプログラム/ユーティリティ840がメモリ828に格納されてよいが、これに限定されず、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データも格納されてよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データまたはこれらの組み合わせは、それぞれネットワーク環境の実装を含むことができる。プログラム・モジュール842は、通常、本明細書に記載された本発明の実施形態の機能または方法あるいはその両方を実行する。
また、コンピュータ・システム/サーバ812は、キーボード、ポインティング・デバイス、ディスプレイ824などの1つまたは複数の外部デバイス814、ユーザがコンピュータ・システム/サーバ812と情報をやりとりできるようにする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ812が1つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはその組み合わせと通信することもできる。そのような通信は、入出力(I/O:Input/Output)インターフェイス822を介して行うことができる。さらに、コンピュータ・システム/サーバ812は、ローカル・エリア・ネットワーク(LAN:Local Area Network)、一般的な広域ネットワーク(WAN:Wide Area Network)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはその組み合わせなどの1つまたは複数のネットワークと、ネットワーク・アダプタ820を介して通信することができる。図示されているように、ネットワーク・アダプタ820は、バス818を介してコンピュータ・システム/サーバ812の他のコンポーネントと通信する。図示されていないが、その他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、コンピュータ・システム/サーバ812と併用できるということが理解されるべきである。その例として、マイクロコード、デバイス・ドライバ、冗長プロセッシング・ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、これらに限定されない。
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において示された内容の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
特徴は、次のとおりである。
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベル(例えば、国、州、データセンター)では、場所を指定できる場合がある。
迅速な順応性:能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
測定されるサービス:クラウド・システムは、計測機能を活用して、サービスの種類に適した抽象レベル(例えば、ストレージ、処理、帯域幅、アクティブな利用者のアカウント)で、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
サービス・モデルは、次のとおりである。
SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御する。
IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、およびデプロイされたアプリケーションを制御し、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御する。
デプロイメント・モデルは、次のとおりである。
プライベート・クラウド:このクラウド・インフラストラクチャは、ある組織のためにのみ運用される。この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを備えるインフラストラクチャである。
ここで図9を参照すると、本発明の実施形態に従って、クラウド・コンピューティング環境の例950が示されている。図示されているように、クラウド・コンピューティング環境950は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、PDA(Personal Digital Assistant)または携帯電話954A、デスクトップ・コンピュータ954B、ラップトップ・コンピュータ954C、または自動車コンピュータ・システム954N、あるいはその組み合わせなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード910を備える。ノード910は、互いに通信することができる。ノード910は、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどの、1つまたは複数のネットワーク内で物理的または仮想的にグループ化されてよい(図示されていない)。これによって、クラウド・コンピューティング環境950は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはSaaS、あるいはその組み合わせを提供できる。図9に示されたコンピューティング・デバイス954A〜954Nの種類は、例示のみが意図されており、コンピューティング・ノード910およびクラウド・コンピューティング環境950は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
ここで図10を参照すると、本発明の実施形態に従って、クラウド・コンピューティング環境(図9の950)によって提供される機能的抽象レイヤのセットが示されている。図10に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェア・レイヤ1060は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム1061、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ1062、サーバ1063、ブレード・サーバ1064、ストレージ・デバイス1065、ならびにネットワークおよびネットワーク・コンポーネント1066が挙げられる。ソフトウェア・コンポーネントの例には、ネットワーク・アプリケーション・サーバ・ソフトウェアが含まれる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア1067およびデータベース・ソフトウェア1068を含む。
仮想化レイヤ1070は、仮想サーバ1071、仮想ストレージ1072、仮想プライベート・ネットワークを含む仮想ネットワーク1073、仮想アプリケーションおよびオペレーティング・システム1074、ならびに仮想クライアント1075などの仮想的実体を提供できる抽象レイヤを備える。
一例を挙げると、管理レイヤ1080は、以下で説明される機能を提供することができる。リソース・プロビジョニング1081は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定1082は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル1083は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理1084は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行1085は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
ワークロード・レイヤ1090は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されてよいワークロードおよび機能の例としては、マッピングおよびナビゲーション1091、ソフトウェア開発およびライフサイクル管理1092、仮想クラスルーム教育の配信1093、データ分析処理1094、トランザクション処理1095、およびデバッグ情報1096の提供が挙げられる。前述したように、図10に関して示した前記の例は、すべて例示に過ぎず、本発明はこれらの例に限定されない。
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の***構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されているコンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一時的信号であると解釈されるべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
本発明の処理を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ実装プロセスを生成するべく、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれ、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で一連の動作可能なステップを実行させるものであってもよい。
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および処理を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
本発明のコンピュータ・プログラム製品は、コンピュータ可読プログラム命令が格納された1つまたは複数のコンピュータ可読ハードウェア・ストレージ・デバイスを備え、前述のプログラム命令は、本発明の方法を実施するために、1つまたは複数のプロセッサによって実行可能である。
本発明のコンピュータ・システムは、1つまたは複数のプロセッサと、1つまたは複数のメモリと、1つまたは複数のコンピュータ可読ハードウェア・ストレージ・デバイスであって、本発明の方法を実施するために、1つまたは複数のメモリを介して1つまたは複数のプロセッサによって実行可能なプログラム命令を含んでいる、1つまたは複数のコンピュータ可読ハードウェア・ストレージ・デバイスとを備える。
本発明のさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に限定されない。記載された実施形態の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかである。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。

Claims (6)

  1. プロダクション・コンテナ内で実行されているコンピュータ・ソフトウェアに関連付けられたデバッグ情報を提供するための方法であって、
    1つまたは複数のプロセッサによって、前記プロダクション・コンテナをデバッグ・コンテナとして複製することと、
    前記1つまたは複数のプロセッサによって、プロダクション・コンテナ内のコンピュータ・ソフトウェアおよびデバッグ・コンテナ内の対応するコンピュータ・ソフトウェアを実行することであって、プロダクション・コンテナ内のコンピュータ・ソフトウェアをアサーションを無効にして実行し、デバッグ・コンテナ内のコンピュータ・ソフトウェアをアサーションを有効にして実行すること、ここで各アサーションはブール値条件をチェックするアサート・ステートメントを含み、前記ブール値が真である場合は何も行わず、前記ブール値が偽である場合は実行中のプログラムを直ちに終了することを含む、前記実行することと、
    前記1つまたは複数のプロセッサによる処理であって、 ゲートウェイが、前記プロダクション・コンテナで実行されている前記コンピュータ・ソフトウェアに各要求を送信し、前記ゲートウェイが、前記プロダクション・コンテナで実行される前記コンピュータ・ソフトウェアに送信された各要求を複製し、前記複製された各要求を、前記デバッグ・コンテナで実行される対応するコンピュータ・ソフトウェアに送信し、前記コンピュータ・ソフトウェアが、前記ゲートウェイから受信した前記要求を前記プロダクション・コンテナで実行し、前記対応するコンピュータ・ソフトウェアは、前記ゲートウェイから受信した前記複製された要求を前記デバッグ・コンテナで実行する、前記処理と、
    前記1つまたは複数のプロセッサによって、前記プロダクション・コンテナ内で実行されている前記コンピュータ・ソフトウェアからの要求を、前記要求に対する応答と一緒に格納することと、
    前記1つまたは複数のプロセッサによって、前記デバッグ・コンテナ内で実行されている前記コンピュータ・ソフトウェアによって生成されたデバッグ情報を格納することと、
    前記1つまたは複数のプロセッサによって、前記デバッグ・コンテナ内で実行されている前記コンピュータ・ソフトウェアによって生成され前記格納されたデバッグ情報を使用して、前記プロダクション・コンテナ内で実行されるコンピュータ・ソフトウェアをデバッグすること
    を含、方法。
  2. 前記格納されたデバッグ情報を前記使用することが、前記格納されたデバッグ情報をWebインターフェイスを介して使用することを含、請求項1に記載の方法。
  3. 前記1つまたは複数のプロセッサが、前記プロダクション・コンテナ内の前記コンピュータ・ソフトウェアの実行の要求および応答を記録し、その後、前記要求および前記応答を前記デバッグ・コンテナ内で実行されている前記コンピュータ・ソフトウェアでリプレイすることをさらに含、請求項1に記載の方法。
  4. 請求項1〜3の何れか1項に記載の方法を、コンピュータ・ハードウェアによる手段として構成した、コンピュータ・システム。
  5. 請求項1〜3の何れか1項に記載の方法を、コンピュータに実行させる、コンピュータ・プログラム。
  6. 請求項5に記載の前記コンピュータ・プログラムをコンピュータ・システム可読ストレージ媒体に記録した、ストレージ媒体。
JP2018565040A 2016-07-08 2017-06-06 デバッグ・コンテナを使用してプロダクション・コンテナに関するデバッグ情報を提供するための方法、コンピュータ・システム、およびコンピュータ・プログラム Active JP6912500B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/205,143 US10372588B2 (en) 2016-07-08 2016-07-08 Providing debug information on production containers using debug containers
US15/205,143 2016-07-08
PCT/IB2017/053319 WO2018007884A1 (en) 2016-07-08 2017-06-06 Providing debug information on production containers using debug containers

Publications (2)

Publication Number Publication Date
JP2019519852A JP2019519852A (ja) 2019-07-11
JP6912500B2 true JP6912500B2 (ja) 2021-08-04

Family

ID=60910415

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018565040A Active JP6912500B2 (ja) 2016-07-08 2017-06-06 デバッグ・コンテナを使用してプロダクション・コンテナに関するデバッグ情報を提供するための方法、コンピュータ・システム、およびコンピュータ・プログラム

Country Status (5)

Country Link
US (3) US10372588B2 (ja)
JP (1) JP6912500B2 (ja)
CN (1) CN109478161B (ja)
GB (1) GB2566420B (ja)
WO (1) WO2018007884A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10372588B2 (en) 2016-07-08 2019-08-06 International Business Machines Corporation Providing debug information on production containers using debug containers
US10701137B2 (en) * 2016-09-30 2020-06-30 Micro Focus Llc Exchange service management contents with a cloud entity via a self-contained cloud content package
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
US11630666B2 (en) 2018-02-13 2023-04-18 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11740898B2 (en) 2018-02-13 2023-08-29 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
EP3651077B1 (en) 2018-02-13 2021-10-27 Shanghai Cambricon Information Technology Co., Ltd Computation device and method
CN116991226A (zh) 2018-02-14 2023-11-03 上海寒武纪信息科技有限公司 处理器的控制装置、方法及设备
WO2019218896A1 (zh) 2018-05-18 2019-11-21 上海寒武纪信息科技有限公司 计算方法以及相关产品
EP3798850A4 (en) 2018-06-27 2022-03-23 Shanghai Cambricon Information Technology Co., Ltd ON-CHIP CODE BREAKPOINT DEBUG METHOD, ON-CHIP PROCESSOR AND CHIP BREAKPOINT DEBUG SYSTEM
EP3757896B1 (en) 2018-08-28 2023-01-11 Cambricon Technologies Corporation Limited Method and device for pre-processing data in a neural network
EP3859488A4 (en) 2018-09-28 2022-06-29 Shanghai Cambricon Information Technology Co., Ltd Signal processing device, signal processing method and related product
JP6759317B2 (ja) * 2018-12-13 2020-09-23 株式会社日立製作所 コンテナ提供支援システムおよびコンテナ提供支援方法
CN111383638A (zh) 2018-12-28 2020-07-07 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
US11847554B2 (en) 2019-04-18 2023-12-19 Cambricon Technologies Corporation Limited Data processing method and related products
CN111832739B (zh) * 2019-04-18 2024-01-09 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
US11676029B2 (en) 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
WO2020248423A1 (zh) 2019-06-12 2020-12-17 上海寒武纪信息科技有限公司 一种神经网络的量化参数确定方法及相关产品
WO2021036904A1 (zh) 2019-08-23 2021-03-04 安徽寒武纪信息科技有限公司 数据处理方法、装置、计算机设备和存储介质
US11768701B2 (en) * 2019-09-17 2023-09-26 Western Digital Technologies, Inc. Exception analysis for data storage devices
CN110704324B (zh) * 2019-09-30 2023-11-10 聚好看科技股份有限公司 应用调试方法、装置及存储介质
US11113177B1 (en) * 2020-07-23 2021-09-07 Tracelink, Inc. Securely debugging different applications in a single short-lived container
CN112286820A (zh) * 2020-11-03 2021-01-29 深圳市广和通无线股份有限公司 软件调试方法、装置、计算机设备和存储介质
CN113010342B (zh) * 2021-03-12 2024-07-19 北京百度网讯科技有限公司 运维诊断的方法、装置、设备以及存储介质
US20220369064A1 (en) * 2021-05-14 2022-11-17 Headspin, Inc. Systems for controlling acquisition of test data from devices
CN113791865B (zh) * 2021-09-08 2024-07-26 山石网科通信技术股份有限公司 容器安全的处理方法及装置、存储介质和处理器
CN114297089B (zh) * 2022-03-02 2022-07-29 杭州海康威视数字技术股份有限公司 基于容器的Python远程动态调试方法及***

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001325124A (ja) * 2000-05-17 2001-11-22 Fujitsu Ltd 計算機、システム管理支援装置及び管理方法
US7181507B1 (en) * 2000-07-18 2007-02-20 Harrow Products Llc Internet based access point management system
US7383537B2 (en) * 2003-08-20 2008-06-03 Microsoft Corporation Debugging an application that employs rights-managed content
US20070168994A1 (en) * 2005-11-03 2007-07-19 International Business Machines Corporation Debugging a computer program in a distributed debugger
US7992133B1 (en) 2006-02-14 2011-08-02 Progress Software Corporation Techniques for debugging distributed applications
CN100555240C (zh) * 2007-01-16 2009-10-28 国际商业机器公司 用于诊断应用程序的方法和***
US7890299B2 (en) * 2007-05-21 2011-02-15 Qualcomm, Incorporated Providing event-controlled continuous logging for a mobile operating environment
KR101060181B1 (ko) * 2009-08-03 2011-08-29 강원대학교산학협력단 원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법
CN101763307B (zh) 2009-12-29 2012-05-02 山东中创软件商用中间件股份有限公司 一种网络容器及基于网络容器的程序调试方法
US8762947B2 (en) * 2010-04-01 2014-06-24 Salesforce.Com, Inc. System, method and computer program product for debugging an assertion
US8719804B2 (en) 2010-05-05 2014-05-06 Microsoft Corporation Managing runtime execution of applications on cloud computing systems
US9054975B2 (en) * 2010-08-30 2015-06-09 Deutsche Telekom Ag Virtualization and replay-based system for network debugging
US8495019B2 (en) * 2011-03-08 2013-07-23 Ca, Inc. System and method for providing assured recovery and replication
CN102200944B (zh) * 2011-06-16 2014-12-03 中国联合网络通信集团有限公司 Erp***的测试环境克隆方法及***
US8639984B2 (en) * 2011-08-09 2014-01-28 International Business Machines Corporation Checkpoint debugging using mirrored virtual machines
US9148304B2 (en) * 2011-11-16 2015-09-29 International Business Machines Corporation Generating production server load activity for a test server
US8763098B2 (en) * 2011-12-06 2014-06-24 Salesforce.Com, Inc. Mechanism for facilitating dynamic and continuous testing of security assertion markup language credentials in an on-demand services environment
US20130185770A1 (en) * 2012-01-12 2013-07-18 Salesforce.Com, Inc. Methods and systems for providing access to an online system
GB2504491A (en) * 2012-07-30 2014-02-05 Ibm Remote debug service in a cloud environment
JP6079267B2 (ja) * 2013-01-28 2017-02-15 富士通株式会社 中継サーバ、中継プログラム及び中継方法
CN103973741B (zh) 2013-01-31 2018-02-09 国际商业机器公司 用于在云***中进行远程调试的方法和装置
US9047143B2 (en) * 2013-03-15 2015-06-02 Cisco Technology, Inc. Automation and programmability for software defined networking systems
CN104063258B (zh) * 2013-03-21 2017-05-03 国际商业机器公司 用于调试过程中的代码动态切换的方法和***
US9117019B2 (en) 2013-07-26 2015-08-25 Sap Se Debugging remote software applications across WAN connections
US9875173B2 (en) * 2014-06-30 2018-01-23 Microsoft Technology Licensing, Llc Time travel debugging in managed runtime
US20160019081A1 (en) * 2014-07-21 2016-01-21 Vmware,Inc. Viewing a snapshot of a virtual machine
US9632914B2 (en) * 2015-05-21 2017-04-25 International Business Machines Corporation Error diagnostic in a production environment
US10503532B2 (en) * 2015-06-26 2019-12-10 Vmware, Inc. Creating a virtual machine clone of the host computing device and handling of virtual machine clone requests via an I/O filter
US20160378528A1 (en) * 2015-06-26 2016-12-29 Vmware, Inc. Propagating changes from a virtual machine clone to a physical host device
US9971634B2 (en) * 2015-09-25 2018-05-15 International Business Machines Corporation Detection of resource contention on computerized systems using co-located computer processes such as virtual machines
US9436583B1 (en) * 2015-11-06 2016-09-06 International Business Machines Corporation Minimally disruptive debugging in a production environment
CN105224466B (zh) 2015-11-17 2018-08-28 广州亦云信息技术有限公司 一种基于Docker的集成测试方法及***
US10200271B2 (en) * 2016-04-12 2019-02-05 International Business Machines Corporation Building and testing composite virtual services using debug automation
US10176081B1 (en) * 2016-04-29 2019-01-08 Intuit Inc. Monitoring of application program interface integrations
US10855725B2 (en) * 2016-06-02 2020-12-01 Microsoft Technology Licensing, Llc Hardware-based virtualized security isolation
US10459823B1 (en) * 2016-06-29 2019-10-29 EMC IP Holding Company LLC Debugging using dual container images
US10372588B2 (en) 2016-07-08 2019-08-06 International Business Machines Corporation Providing debug information on production containers using debug containers

Also Published As

Publication number Publication date
US10372588B2 (en) 2019-08-06
GB201900612D0 (en) 2019-03-06
CN109478161A (zh) 2019-03-15
US20180011775A1 (en) 2018-01-11
GB2566420A (en) 2019-03-13
US20220374330A1 (en) 2022-11-24
WO2018007884A1 (en) 2018-01-11
US11416373B2 (en) 2022-08-16
JP2019519852A (ja) 2019-07-11
GB2566420B (en) 2022-03-02
CN109478161B (zh) 2022-08-30
US11782818B2 (en) 2023-10-10
US20190332521A1 (en) 2019-10-31

Similar Documents

Publication Publication Date Title
JP6912500B2 (ja) デバッグ・コンテナを使用してプロダクション・コンテナに関するデバッグ情報を提供するための方法、コンピュータ・システム、およびコンピュータ・プログラム
US10628276B2 (en) Unit test framework for testing code in a gateway service
US20160342499A1 (en) Error diagnostic in a production environment
CN112119374A (zh) 使用替代服务器名称选择性地提供相互传输层安全
US10977167B2 (en) Application monitoring with a decoupled monitoring tool
US20160260157A1 (en) Rapid service orchestration and management
US11379290B2 (en) Prioritizing and parallelizing the capture of data for debugging computer programs
US20170070401A1 (en) Network element diagnostic evaluation
US20170206255A1 (en) Automating configuration of operational data pipelines for extraction, transformation and load
US11086702B1 (en) API invoke request management
Grandinetti Pervasive cloud computing technologies: future outlooks and interdisciplinary perspectives: future outlooks and interdisciplinary perspectives
US9513948B2 (en) Automated virtual machine provisioning based on defect state
US11783065B2 (en) Business data protection for running tasks in computer system
US11210156B1 (en) Intelligent distributed tracing
US20180107723A1 (en) Content oriented analysis of dumps
AU2021398915B2 (en) Coordinating requests actioned at a scalable application
US11262990B2 (en) Application topology discovery
US11307958B2 (en) Data collection in transaction problem diagnostic
US11481240B2 (en) Capturing traces of virtual machine objects combined with correlated system data
US11748236B2 (en) Multi-user debugging with user data isolation
US11954506B2 (en) Inspection mechanism framework for visualizing application metrics

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210526

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: 20210706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210708

R150 Certificate of patent or registration of utility model

Ref document number: 6912500

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150