JP2023543704A - 機械学習を用いたシフトレフトトポロジ構築および情報拡張 - Google Patents

機械学習を用いたシフトレフトトポロジ構築および情報拡張 Download PDF

Info

Publication number
JP2023543704A
JP2023543704A JP2023517690A JP2023517690A JP2023543704A JP 2023543704 A JP2023543704 A JP 2023543704A JP 2023517690 A JP2023517690 A JP 2023517690A JP 2023517690 A JP2023517690 A JP 2023517690A JP 2023543704 A JP2023543704 A JP 2023543704A
Authority
JP
Japan
Prior art keywords
topology
entities
computer
dataset
data
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
JP2023517690A
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 JP2023543704A publication Critical patent/JP2023543704A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Image Analysis (AREA)

Abstract

シフトレフトトポロジ構築のための方法、コンピュータシステムおよびコンピュータプログラム製品が提供される。本発明の実施形態は、データセットを収集することを含み得る。本発明の実施形態は、データセットからトポロジエンティティを抽出することを含み得る。本発明の実施形態は、トポロジエンティティからの複数のデータを相関付けることを含み得る。本発明の実施形態は、トポロジエンティティをマッピングすることを含み得る。本発明の実施形態は、トポロジエンティティの複数のサブグラフのエントリポイントをマーキングすることを含み得る。本発明の実施形態は、トポロジグラフを構築することを含み得る。

Description

本発明は、概して、コンピューティングの分野に関し、より具体的には、トポロジ構築および機械学習に関する。マイクロサービスアーキテクチャは、多くの異なるトポロジを用いて、分散方式で実装され得る。いくつかは、集中型メッセージングトポロジ、リプレゼンテーショナルステートトランスファ(REST)ベースのトポロジ、およびリプレゼンテーショナルトランスファアプリケーションプログラムインタフェース(REST-API)ベースのトポロジの使用を含む。
本発明の実施形態は、シフトレフトトポロジ構築のための方法、コンピュータシステムおよびコンピュータプログラム製品を開示する。本発明の実施形態は、データセットを収集することを含み得る。本発明の実施形態は、データセットからトポロジエンティティを抽出することを含み得る。本発明の実施形態は、トポロジエンティティからの複数のデータを相関付けることを含み得る。本発明の実施形態は、トポロジエンティティをマッピングすることを含み得る。本発明の実施形態は、トポロジエンティティの複数のサブグラフのエントリポイントをマーキングすることを含み得る。本発明の実施形態は、トポロジグラフを構築することを含み得る。
本発明のこれらのおよび他の目的、特徴および利点は、添付図面に関連して読まれる、それらの例示的な実施形態の以下の詳細な説明から明らかになるであろう。図示は、当業者が詳細な説明と併せて本発明を理解するのを容易にすることを明確にするためのものなので、図面の様々な特徴は、縮尺どおりではない。図面は、以下のとおりである。
少なくとも1つの実施形態によるネットワーク接続コンピュータ環境を示す。
少なくとも1つの実施形態による構築されたマイクロサービストポロジのブロック図例である。
少なくとも1つの実施形態による、機械学習を用いたトポロジ構築および情報拡張のプロセスを示す動作フローチャートである。
少なくとも1つの実施形態による、図1に示されたコンピュータおよびサーバの内部コンポーネントおよび外部コンポーネントのブロック図である。
本開示の一実施形態による、図1に示されたコンピュータシステムを含む、例示的なクラウドコンピューティング環境のブロック図である。
本開示の一実施形態による、図5の例示的なクラウドコンピューティング環境の機能層のブロック図である。
特許請求された構造および方法の詳細な実施形態が本明細書において開示されているが、開示されている実施形態は、様々な形態で具現化され得る、特許請求された構造および方法の例示に過ぎないことが、理解され得る。しかしながら、本発明は、多くの異なる形態で具現化されてよく、本明細書に記載される例示的な実施形態に限定されると解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が十分かつ完全になり、当業者に本発明の範囲を完全に伝えるように提供される。説明では、提示された実施形態を不必要に曖昧にすることを回避するために、周知の特徴および技術の詳細が省略されることがある。
前述のように、マイクロサービスアーキテクチャは、多くの異なるトポロジを用いて、分散方式で実装され得る。いくつかは、集中型メッセージングトポロジ、リプレゼンテーショナルステートトランスファ(REST)ベースのトポロジおよびリプレゼンテーショナルトランスファアプリケーションプログラムインタフェース(REST-API)ベースのトポロジの使用を含む。リプレゼンテーショナルステートトランスファ(REST)アーキテクチャを用いるアプリケーションプログラムインタフェース(API)は、ハイパーテキストトランスファプロトコル(HTTP)要求を用いて、データをポスト、削除、取得またはプットし得る。アプリケーションプログラムインタフェース(API)は、アプリケーションまたはソフトウェアプログラムが通信することを可能にする。
マイクロサービスフレームワークは、高速で動作するより小さい独立のアーキテクチャコンポーネントを用いて構造化され得る。マイクロサービスにより、アプリケーションをより容易に管理することが可能になり、アプリケーションをスケーラブルにすることが可能になる。マイクロサービスフレームワーク内の独立のコンポーネントは、集中型オペレーションを実行してよく、同じマイクロサービスフレームワーク内の他の独立のコンポーネントは、異なる技術を用いて動作してよい。マイクロサービスの独立のスケーラビリティにより、サービスがより多数のリソースを用いて複数のクラウドベース製品を提供することが可能になる。
多くのマイクロサービスフレームワークは、コンテナベースインフラストラクチャを用いて動作する。コンテナは、最小量のリソースを用い、ホストオペレーティングシステムを共有し、かつ、統合するのが簡単な、分離されたインフラストラクチャを含み得る。また、コンテナは、例えば、配信パイプライン内で同じソフトウェアコードを用い得るので、最小ソフトウェア構成を可能にする。異なりコンテナが、同じマイクロサービスフレームワーク内で動作し、最小構成を有する代替的なソフトウェアコード上で動作し得る。アプリケーションプログラムインタフェース(API)は、例えば、コンテナが仮想マシン、オペレーティングシステム、サービスまたはアプリケーション上のデータにアクセスすることを可能にする機能のセットまたは通信プロトコルを含み得る。
マイクロサービスから取得されるトポロジ情報またはトポロジデータは、マイクロサービス管理スタックおよび解析に必須であるが、マイクロサービスまたはコンテナフレームワークにおいて、共通のコンポーネントは、マイクロサービス全体を展開することなくトポロジを構築するために存在しないことがある。例えば、500個またはそれよりも多くのマイクロサービスのトポロジの構築は、ランタイム中の主なタスクである。マイクロサービスが、分散トレーシングツールと共に展開され、レイテンシ、アプリケーションプログラムインタフェース(API)接続および全体的なリソース消費などのトポロジおよび追加の情報を構築するためのサービスメッシュツールが追加され得る。分散トレーシングツールは、例えば、エンドツーエンド分散トレーシングを実行するオープンソースソフトウェアであるJaegerを含み得る。サービスメッシュツールは、例えば、展開されたサービスの負荷分散ネットワークの作成に役立つオープンソースソフトウェアであるIstioを含み得る。
トポロジ情報は、マイクロサービスシステムがデータを報告するときに漸進的に構築される。したがって、分散トレーシングおよびサービスメッシュツールなど、管理ツールは、漸進的に構築されたトポロジ情報を、データが報告されるときに用いるが、管理ツールは、トポロジ全体が構築されるまで、特性を機能させることができない。また、マイクロサービスフレームワーク内の解析サービスは通常、サービス全体を展開する前に、特に、トレーニングがオフラインの時にトポロジ情報を必要とする。したがって、とりわけ、マイクロサービスフレームワークの情報の変更を継続的にモニタし、トポロジグラフを更新し、かつ、マイクロサービス間の依存性を予測するためのシステム、方法およびプログラム製品を作り出すことが有利であり得る。
以下で説明する例示的な実施形態は、機械学習を用いたトポロジ構築のためのシステム、方法およびプログラム製品を提供する。そのため、本発明の実施形態は、静的および動的情報を用いたマイクロサービスフレームワークにおけるマイクロサービスの動作特性を、機械学習を用いて学習することにより、マイクロサービストポロジ構築の技術分野を改善する能力を有する。より具体的には、機械学習は、解析サービスおよびユーザにより用いられ得るトポロジグラフを予測するためのログ、通信伝送、ドキュメンテーションおよび内容領域専門家(SME)入力およびフィードバックなどのデータから動作特性を学習するために用いられる。
一実施形態によれば、シフトレフト解析および機械学習は、マイクロサービストポロジの構築およびトポロジ情報の検証のために用いられ得る。シフトレフト解析は、ソースコードから取得されてよく、例えば、トポロジの構築のためにより詳細なデータを拡張するための展開構成、展開仕様または環境変数を含んでよい。機械学習の一態様は、ランタイム情報なしで展開の構成または仕様を解析することにより、またはオフラインを解析することによりマイクロサービスのトポロジを構築するために用いられ得る。オフライン解析は、トポロジを構築するための性能推定を抽出するために用いられ得る情報を提供し得る。
一実施形態によれば、様々なタイプの機械学習(ML)モデルが、サービスおよびマイクロサービスのトポロジを構築するための予測結果を作成するために、構築および使用され得る。サービスおよびマイクロサービスを提供する異なる領域からのデータまたは情報が、トポロジを構築するために取得され得る。領域は、例えば、小売り、エンタテイメント、ソーシャルメディア、ビジネス、技術、医療、学術、政府、産業、フードチェーン、法律または自動車を含み得る。機械学習(ML)モデルは、深層学習モデルおよび人工知能(AI)も含み得る。機械学習(ML)モデルのトレーニングおよび更新は、教師あり、教師なしおよび半教師あり機械学習(ML)手順を含み得る。教師あり学習は、モデルを構築、トレーニングおよび更新するためのラベル付きデータセットまたはラベル付きトレーニングセットを用い得る。教師なし学習は、モデルをトレーニングするための全てのラベルなしデータを用い得る。半教師あり学習は、モデルをトレーニングするためのラベル付きデータセットおよびラベルなしデータセットの両方を用い得る。
教師あり学習および半教師あり学習は、データ、データラベルおよびデータ分類の精度を個人にチェックさせることにより、フィードバックまたはグラウンドトゥルースを統合し得る。個人は通常、データセットの特定の領域における幅広い知識を有する内容領域専門家(SME)である。内容領域専門家(SME)の入力は、機械学習(ML)モデルのグラウンドトゥルースを表してよく、提供されたグラウンドトゥルースにより、モデルの精度および予測能力が上がり得る。内容領域専門家(SME)は、ラベル付きデータセットを手動で更新することにより、データまたはデータラベルの分類を補正、修正、更新または削除し得る。内容領域専門家(SME)を用いてフィードバックをモデルに提供することにより、データセットが更新または補正されるときにモデルの精度が向上し得る。
一実施形態によれば、教師ありまたは半教師あり機械学習(ML)は、個人(例えば、ユーザ、専門家または管理者)がトレーニングセットを検証、変更、更新または変更する能力を有することによりモデルのトレーニングに対して何らかの効果改善をもたらすことを可能にするために用いられ得る。ユーザがデータへの入力を提供しない可能性がある場合、専門家は、トレーニングセットを教師なし機械学習(ML)環境とは対照的に変更することにより、入力またはフィードバックをモデルへ提供し得る。データのトレーニングセットは、分類器のパラメータ、またはラベルを学習目的で含んでよく、教師ありまたは半教師あり機械学習(ML)環境は、ユーザがトレーニングセットのラベルまたは分類器を更新することを可能にしてよい。
自然言語処理(NLP)および意味解析など、認知解析が、モデルの構築およびトレーニング中に用いられ得る。認知解析学では、機械学習(ML)プロセスへ統合される構造化および非構造化データの両方を解析し得る。自然言語処理(NLP)は、トレーニングおよびモデル構築のために受信されるデータまたはフィードバックの品質を解析するために用いられ得る。構造化データは、固定フィールドに格納されるスプレッドシート、リレーショナルデータベースまたはデータなど、高度に編成されたデータを含み得る。非構造化データは、編成されておらず、かつ、ポータブルドキュメントフォーマット(PDF)、画像、プレゼンテーション、ウェブページ、映像コンテンツ、音声コンテンツ、電子メール、ワードプロセッシングドキュメントまたはマルチメディアコンテンツのような従来とは異なる内部構造を有するデータを含み得る。
受信されたデータは、モデルをトレーニングおよび構築するための有意義な情報を抽出するために、自然言語処理(NLP)を用いて処理され得る。意味解析は、受信された情報またはデータの複雑性、意味および意図を推論してマイクロサービスネットワーク内のサービスの依存性を識別するために用いられ得る。また、意味解析は、受信、収集または抽出されたデータの語、句、文および段落の意味を推論するために、情報の統語構造を様々なレベルで検討し得る。
一実施形態によれば、シフトレフトトポロジプログラムのフレームワークの一部は、データの収集、エンティティの抽出、メタ情報の取得、情報の相関付けおよびトポロジの構築を含み得る。収集されたデータまたは情報は、マイクロサービスおよびマイクロサービス管理を改善すべく、解析、およびモデルのトレーニングのために用いられ得る。データは、1つまたは複数のデータベース、レポジトリまたはコーパスへ追加されてよく、それらに格納されてよく、それらから取得されてよい。例えば、アクセス可能なデータレポジトリは、マイクロサービスに関連付けられた構成データ、テストケースデータ、オープンソースデータ、DevOpsパイプラインログおよび他の静的および動的情報を保持するデータベースを含み得る。トレーニング中であるか、または完全にトレーニングされたモデルへ提供される内容領域専門家(SME)フィードバックのようなフィードバックも、1つまたは複数のデータベースに格納され得る。
収集されるデータのいくつかの例は、テストドキュメンテーション、自動化データ、展開スクリプト、構成パラメータ、Swaggerからのデータ、TravisログまたはJenkinsログを含み得る。データは、様々なソースから取得され得る。収集されるデータの他の例は、どれくらいの頻度またはどれくらいの期間でユーザがマイクロサービスを利用しているかなど、マイクロサービス展開に基づいて受信されるデータであってよい。いくつかのデータは、モノのインターネット(IoT)デバイス、全地球測位システム(GPS)、センサ、スマートウォッチ、スマートフォン、スマートタブレット、パーソナルコンピュータまたは自動車用デバイスのようなデバイスから受信され得る。収集されたデータまたは情報は、モデルトレーニングおよびモデル使用のためのデータセットを作成するために用いられ得る。収集されたデータのいくつかは、静的データ、動的データまたはリアルタイムデータとみなされてよく、この情報は、マイクロサービス技術およびフレームワークに幅広く利用可能であってよい。
マイクロサービス展開、マイクロサービスまたはコンテナは、経時的に減る平均寿命を有し得る。ソーシャルメディアマイクロサービスなど、多くのマイクロサービスは5分未満の平均寿命(すなわち、ユーザがサービスにアクセスする時間量)を有するので、トポロジの継続的な更新を保証するために、トポロジ情報が高レベルの情報で抽象化され得る。接続性または依存性が、抽象化された情報を用いてマイクロサービス間で構築および更新されてよく、解析が、マイクロサービスの実際の展開なしに提供されてよい。サービスおよび依存性の意味論的文脈が、抽象化された情報を用いて識別されてよく、構築されたトポロジグラフを拡張および更新するために用いられてよい。
ユースケース例は、マイクロサービス管理システムおよび解析コンポーネントを含み得る。例えば、トポロジ情報は、アラートグループまたはローカリゼーションの解析モデルをトレーニングするために用いられ得る。トポロジ情報は、情報を検証および構成し、展開計画を行うためにも用いられ得る。例えばアプリケーションプログラムインタフェース(API)アップストリームサービスといった、SIGアプリケーションまたはkube config.細粒度トポロジ情報(データ)など、展開仕様が生成されてよく、マイクロサービスオペレーションに必須である。例えば、消費者が用いるマイクロサービスは、アップストリームサービスに依拠または依存する。
図1を参照すると、1つの実施形態による例示的なネットワーク接続コンピュータ環境100が示されている。ネットワーク接続コンピュータ環境100は、ソフトウェアプログラム108を実行するように有効化されたプロセッサ104およびデータストレージデバイス106、およびシフトレフトトポロジプログラム110a、を有するコンピュータ102を含み得る。ネットワーク接続コンピュータ環境100は、データベース114および通信ネットワーク116とインタラクトし得るシフトレフトトポロジプログラム110bを実行するように有効化されたサーバ112も含み得る。コンピュータ102はまた、クライアントコンピュータとして認識されてよく、サーバ112はまた、サーバコンピュータとして認識されてよい。ネットワーク接続コンピュータ環境100は、複数のコンピュータ102およびサーバ112を含んでよく、これらのうちの1つのみが示されている。通信ネットワーク116は、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、電気通信ネットワーク、無線ネットワーク、公衆交換ネットワークおよび/または衛星ネットワークなど、様々なタイプの通信ネットワークを含み得る。図1は、1つの実装の例示のみを提供しており、異なる実施形態が実装され得る環境に関していかなる限定も示唆していないことを理解されたい。設計および実装の要件に基づいて、示されている環境に対する多くの修正が行われ得る。
コンピュータ102は、通信ネットワーク116を介してサーバ112と通信し得る。通信ネットワーク116は、有線、無線通信リンクまたは光ファイバケーブルのような接続を含んでよい。図4を参照して説明されるように、サーバ112は、内部コンポーネント902aおよび外部コンポーネント904aをそれぞれ含んでよく、コンピュータ102は、内部コンポーネント902bおよび外部コンポーネント904bをそれぞれ含んでよい。また、サーバ112は、ソフトウェアアズアサービス(SaaS)、アナリティクスアズアサービス(AaaS)、ブロックチェーンアズアサービス(BaaS)、プラットフォームアズアサービス(PaaS)またはインフラストラクチャアズアサービス(IaaS)など、クラウドコンピューティングサービスモデル内で動作し得る。また、サーバ112は、プライベートクラウド、コミュニティクラウド、パブリッククラウドまたはハイブリッドクラウドなど、クラウドコンピューティング展開モデル内に位置し得る。コンピュータ102は、例えば、モバイルデバイス、電話、パーソナルデジタルアシスタント、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、または、プログラムの実行、ネットワークへのアクセスおよびデータベース114へのアクセスができる任意のタイプのコンピューティングデバイスであってよい。本実施形態の様々な実装によれば、シフトレフトトポロジプログラム110a、110bは、コンピュータ/モバイルデバイス102、サーバ112またはクラウドストレージサービスなどであるがこれらに限定されない様々なストレージデバイスに埋め込まれ得るデータベース114とインタラクトし得る。
本実施形態によれば、コンピュータ102またはサーバ112を操作するユーザが、シフトレフトトポロジプログラム110a、110bを(それぞれ)用いることにより、シフトレフト解析および機械学習を用いたトポロジを構築し得る。シフトレフトトポロジ方法を図2および図3に関して以下でより詳細に説明する。
ここで図2を参照すると、少なくとも1つの実施形態によるシフトレフトトポロジプログラム110a、110bにより用いられる構築されたマイクロサービストポロジ200のブロック図例が示されている。トポロジエンティティが、アプリケーションプログラムインタフェース(API)ルートに相関付けられているように示されている。マイクロサービストポロジ200は、ソースコードへのトポロジエンティティのマッピングの例示的な結果を示す。マイクロサービストポロジ200は、サービス、アプリケーションプログラムインタフェース(API)接続およびリソース接続の関係を識別するコールグラフを表し得る。
サービスAPI202は、サービスがインタラクト、データ伝送またはデータ受信を行うことを可能にするインタフェースを提供する。サービス1~5(それぞれ、204、206、208、210および212)は、アプリケーションプログラムインタフェース(API)エンドポイントであるサービスを表し得る。各マイクロサービスのアプリケーションプログラムインタフェース(API)エンドポイントは、/auth、/login、/home、/search、/recommendまたは/memberを含み得る。例えば、サービス1 204は/authであり、サービス2 206は/get_infoであり、サービス3 208は/recommendであり、サービス4 210は/graphであり、サービス5 212は/nodesである。エンティティ抽出およびアプリケーションプログラムインタフェース(API)エンドポイントは、コール制御グラフまたはコールグラフを形成し得る。コールグラフは、コンピュータプログラム間の関係を呼ぶフローを表すグラフを含み得る。
エッジA-Bは、AからBへの方向性接続であり、AからBへ送信されているメッセージまたは伝送を指す。ブロッキングまたはノンブロッキングは、マイクロサービスフレームワーク内のオペレーションを実行するプロセス中の入出力(IO)オペレーションを指し得る。例えば、ブロッキングオペレーションは、次のオペレーションへ移動する前に、戻るために応答を待機するので、処理期間がより長くなる。したがって、ブロッキングオペレーションは、レイテンシなど、性能に大きな影響を及ぼし得る。ノンブロッキングオペレーションは、ネットワークおよびストレージ上で動作することで、ブロッキングオペレーションにおいて必要とされる追加の待機時間を回避するための効率的なやり方であり得る。例えば、オペレーションを進めるための応答をブロッキングオペレーションが待機している時間中は、応答がブロッキングオペレーションへ戻るまで、他のプロセスが動作および実行し得る。
データベース1-2(それぞれ、214および216)は、結果または応答が戻されるまで1つまたは複数のプロセスをブロックする特殊ネットワークストレージであるデータベースを含み得る。ファイルシステム218は、結果または応答がファイルシステムから戻るまで1つまたは複数のプロセスを保持する追加のブロッキングデバイスまたはシステムである。データベース1-2およびファイルシステム218は、シフトレフトトポロジプログラム110a、110bにより用いられるブロッキングシステムの例であってよい。
ここで図3を参照すると、少なくとも1つの実施形態によるシフトレフトトポロジプログラム110a、110bにより用いられる例示的なトポロジ構築および情報拡張プロセス300を示す動作フローチャートが図示されている。
302において、データセットが収集される。静的データおよびリアルタイムデータが、1つまたは複数のレポジトリ(例えば、データベース1-2)から収集されてよく、それらに格納されてよい。収集されるデータは、例えば、構成データ、テストケースデータ、オープンソースデータまたはDevOpsパイプラインログなど、マイクロサービスに関連付けられた静的または動的情報であってよい。収集されるデータの他の例は、テストドキュメンテーション、自動化データ、展開スクリプト、構成パラメータ、Swaggerからのデータ、TravisログまたはJenkinsログを含んでよく、データは、様々なソースデータベースから取得される。追加のデータが、マイクロサービス展開情報に基づいて収集され得る。収集されたデータは、データセットとして、データの抽出、モデルの構築またはトレーニング、検証、トポロジグラフの構築、および、データセットを更新するためにグラウンドトゥルースを用いた構築モデルの精密化など、複数の目的で用いられ得る。
304において、トポロジエンティティがデータセットから抽出される。エンティティ抽出は、マイクロサービスネットワークに関連する許可エンティティ、ログインエンティティ、フロントエンドエンティティ、エラスティックサーチエンティティ、グラフデータベースエンティティ、推奨エンティティまたはメンバエンティティなどのトポロジエンティティをデータセットから抽出することを含み得る。関連するトポロジエンティティは、許可情報、ログイン情報、フロントエンド情報、検索情報、推奨情報またはメンバ情報を抽出するためにアクセスされ得る。エンティティ抽出プロセスは、例えば、キーワード検索、言語モデリングまたは単純なフィールド抽出を用いて、関連するトポロジエンティティマイクロサービスの各々のエンドポイントを取得する。エンドポイントの一例については、図2を参照されたい。
アプリケーション、サービスまたはマイクロサービスの各々について、代表的なキーワードのトップリストが識別される。代表的なキーワードのトップリストは、各トピックについての収集されたデータにおける語の分布の解析に基づく。例えば、各マイクロサービスについて、トポロジキーワードが、ドキュメントおよびソースコード構成の収集されたデータセットから識別される。識別されたキーワード、およびマイクロサービスに基づいて、教師なしモデルが構築および使用され、マイクロサービスの重要なまたは関連するトピックまたは名前が識別され得る。例えば、トピックモデリング、クラスタリングまたはアプリオリモデルが、サービスのトピックを識別するために用いられ得る。
例えば、以下の表現が、キーワードを抽出して関連トピックを識別するために用いられ得る。
式中、
は、ドキュメントまたは収集されたデータの全てにわたるグローバルな複数の語における分布を有する各トピックを表し、
は、ドキュメントまたは収集されたデータの全てにわたるローカルな複数の語における分布を有する各トピックを表す。収束が達成され、重要なトピックが識別されるまで確率を反復するために、推定-最大化などの反復法が用いられ得る。
306において、抽出されたトポロジエンティティからデータが相関付けられる。データは、異なるソースからの同じトポロジエンティティをマッチさせるように相関付けられ得る。アプリケーションプログラムインタフェース(API)ルートとのトポロジエンティティの相関が識別され得る。データは、各アプリケーションについて取得されたデータを通じて、または、各アプリケーションプログラムインタフェース(API)から、またはその両方で、各マイクロサービスアプリケーションに相関付けられ得る。
308において、トポロジエンティティがマッピングされる。相関付けられたデータは、グラフとしてマッピングされる。例えば、トポロジエンティティが、ソースコードにマッピングされてよく、関係が、呼び出し元-呼び出し先およびアプリケーションプログラムインタフェース(API)ルートなど、マッピングされたトポロジエンティティから識別されてよい。いかなる位置においても呼び出されなかったトポロジエンティティは、除去され得る。一例として、1つのアプリケーションプログラムインタフェース(API)コールが、複数のサービスコールを順にまたは並列に有してよく、ブロッキングまたはノンブロッキングが識別されてよい。マッピングされたトポロジエンティティ、サービスコールおよびアプリケーションプログラムインタフェース(API)ルートの相関の一例については、図2を参照されたい。
310において、サブツリーの中央処理装置(CPU)サイクルが各エントリポイントについてマーキングされる。各アプリケーションプログラムインタフェース(API)エントリポイントについて、メタ情報がマーキングされ得る。メタ情報またはメタデータは、コール制御グラフおよびコール制御グラフプログラムフローから取得され得る。メタ情報は、各アプリケーションプログラムインタフェース(API)について取得され得る。各アプリケーションプログラムインタフェース(API)から取得されるメタ情報は、例えば、中央処理装置(CPU)サイクル、処理時間、1秒当たりの推定最大コール、ネットワークまたはストレージアクセス用ブロッキングコード、スレッドまたは並列処理を含み得る。中央処理装置(CPU)サイクルは、各エントリポイントについてマーキングされ得る。エントリポイントは、各アプリケーションプログラムインタフェース(API)により決定され得る。処理時間が、各サブツリーについて計算され得る。サブツリーは、各アプリケーションプログラムインタフェース(API)のトレースおよびプログラム全体の一部を含み得る。
サブツリーまたはサブグラフからメタ情報を取得するために、学習モデルが用いられ得る。ノードについてのサブグラフは、中央処理装置(CPU)サイクル、メモリ、ネットワーク読み取り/書き込みまたはディスク読み取り/書き込みなどのラベルとして表されるデータを有し得る。グラフ畳み込み演算は、ノードの近傍の特徴と共にノードの特徴の平均値を取るために用いられ得る。ノード近傍は、画像またはテキストデータとは異なって、順序付けられていないことがあり、サイズが可変のことがある。例えば、サブグラフノードAおよびノードXは、1つまたは複数のグラフ畳み込みネットワーク(GCN)を通じて処理された後、プーリング関数が行われてから、多層パーセプトロン(MLP)ネットワークによる処理を受ける。出力は、1つまたは複数のノード特徴のメタ情報を表すソフトマックス層を提供し得る。
312において、トポロジグラフが構築される。トポロジグラフ全体が、相関付け段階、マッピング段階および学習モデルを用いて構築され得る。性能メタデータなど、追加の情報が、各リンク(すなわち、エッジ)の推定レイテンシ、エンドポイントルート、リソース消費または推定処理時間などのトポロジグラフ全体のノードについてマーキングされ得る。表されるノードは、サービスエンドポイントであってよく、エッジは、エンドポイント間の依存性であってよい。追加の情報は、エッジまたはリンクにマーキングされてよく、レイテンシ、アプリケーションプログラムインタフェース(API)接続またはラウンドトリップタイム(RTT)などの情報を含んでよい。トポロジグラフ全体が、サブグラフを接続することにより構築され得る。プログラムにおける各エッジの推定レイテンシなど、追加の情報が、サブツリーまたはアプリケーションプログラムインタフェース(API)にマーキングされ得る。ノード、エッジ、ルートおよびエンドポイントのトポロジグラフ全体の一例については、図2を参照されたい。
314において、継続的なトポロジ情報が検証される。構築されたトポロジの全体が格納されてよく、新たなコードがコミットされた場合、または構成変更が行われた場合、情報は、継続的にモニタリングされてよい。構築されたトポロジは、追加の情報、情報の変更および情報の更新で検証され得る。情報の更新または変更は、トポロジグラフに反映され得る。例えば、トポロジサービスグラフ全体がデータベースに格納され維持されてよく、トポロジグラフに対して変更または修正が経時的に行われてよい。格納されたトポロジグラフへの変更または拡張された情報は、例えば、更新済みデータ、静的ログ、構成データ、ソースコードまたはパイプラインデータを用いて作られ得る。
316において、追加のまたは代替的な実施形態により、アクティブラーニングフィードバックモデルまたはコンポーネントの挿入が可能になる。更新済み静的データ、リアルタイム情報、内容領域専門家(SME)フィードバックまたは更新済み一時的トポロジデータを用いた、構築されたトポロジグラフの継続的な検証は、アクティブラーニングコンポーネントとして用いられ得る。アクティブラーニングコンポーネントは、教師ありおよび半教師ありモデルを活用して、グラウンドトゥルースとして追加されるリアルタイム情報または専門家フィードバックを導入し得る。アクティブラーニングは、例えば、モデルトレーニング、テストおよび検証フェーズ中にグラウンドトゥルースとして内容領域専門家(SME)またはソフトウェア開発者のフィードバックを取得することにより用いられ得る。ユーザ知識または専門家知識は、リアルタイムデータとしてキャプチャされ得る。
図2および3は、1つの実施形態の例示のみを提供しており、異なる実施形態がどのように実装され得るかに関していかなる限定も示唆していないことが理解され得る。設計および実装の要件に基づいて、示されている実施形態に対する多くの修正が行われてよい。
図4は、本発明の例示的な実施形態による、図1に示されるコンピュータの内部および外部コンポーネントのブロック図900である。図4は、1つの実装の例示のみを提供しており、異なる実施形態が実装され得る環境に関していかなる限定も示唆していないことを理解されたい。設計および実装の要件に基づいて、示されている環境に対する多くの修正が行われ得る。
データ処理システム902、904は、機械可読プログラム命令を実行できる任意の電子デバイスを表す。データ処理システム902、904は、スマートフォン、コンピュータシステム、PDA、または他の電子デバイスを表し得る。データ処理システム902、904により表され得るコンピューティングシステム、環境および/または構成の例は、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークPC、ミニコンピュータシステム、および、上記システムまたはデバイスの任意のものを含む分散クラウドコンピューティング環境を含むが、これらに限定されない。
コンピュータ102およびサーバ112は、図4に示される内部コンポーネント902a、bおよび外部コンポーネント904a、bのそれぞれのセットを含み得る。内部コンポーネント902a、bのセットの各々は、1つまたは複数のバス912上の1つまたは複数のプロセッサ906、1つまたは複数のコンピュータ可読RAM908および1つまたは複数のコンピュータ可読ROM910、および、1つまたは複数のオペレーティングシステム914および1つまたは複数のコンピュータ可読有形ストレージデバイス916を含む。1つまたは複数のオペレーティングシステム914、ソフトウェアプログラム108、およびクライアントコンピュータ102内のシフトレフトトポロジプログラム110a、およびネットワークサーバ112内のシフトレフトトポロジプログラム110bは、1つまたは複数のRAM908(通常はキャッシュメモリを含む)を介した1つまたは複数のプロセッサ906による実行のために、1つまたは複数のコンピュータ可読有形ストレージデバイス916に格納され得る。図4に示される実施形態において、コンピュータ可読有形ストレージデバイス916の各々は、内蔵ハードドライブの磁気ディスクストレージデバイスである。代替的に、コンピュータ可読有形ストレージデバイス916の各々は、ROM910、EPROM、フラッシュメモリ、またはコンピュータプログラムおよびデジタル情報を格納できる任意の他のコンピュータ可読有形ストレージデバイスなど、半導体ストレージデバイスである。
また、内部コンポーネント902a、bの各セットは、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスクまたは半導体ストレージデバイスなど、1つまたは複数のポータブルコンピュータ可読有形ストレージデバイス920から読み取り、またはそこへ書き込むためのR/Wドライブまたはインタフェース918を含む。ソフトウェアプログラム108およびシフトレフトトポロジプログラム110a、110bなど、ソフトウェアプログラムは、それぞれのポータブルコンピュータ可読有形ストレージデバイス920のうちの1または複数に格納されてよく、それぞれのR/Wドライブまたはインタフェース918を介して読み取られてよく、それぞれのハードドライブ916へロードされてよい。
また、内部コンポーネント902a、bの各セットは、TCP/IPアダプタカード、無線wi-fi(登録商標)インタフェースカードまたは3G/4G/5G無線インタフェースカード、または他の有線または無線通信リンクなど、ネットワークアダプタ(またはスイッチポートカード)またはインタフェース922を含み得る。ソフトウェアプログラム108、およびコンピュータ102内のシフトレフトトポロジプログラム110a、およびネットワークサーバ112内のシフトレフトトポロジプログラム110bは、ネットワーク(例えば、インターネット、ローカルエリアネットワークまたは他のワイドエリアネットワーク)を介して外部コンピュータ(例えば、サーバ)およびそれぞれのネットワークアダプタまたはインタフェース922からダウンロードされ得る。ネットワークアダプタ(またはスイッチポートアダプタ)またはインタフェース922から、ソフトウェアプログラム108、およびコンピュータ102内のシフトレフトトポロジプログラム110a、およびネットワークサーバコンピュータ112内のシフトレフトトポロジプログラム110bが、それぞれのハードドライブ916へロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバを備え得る。
外部コンポーネント904a、bの複数のセットの各々は、コンピュータディスプレイモニタ924、キーボード926およびコンピュータマウス928を含み得る。外部コンポーネント904a、bは、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイスおよび他のヒューマンインタフェースデバイスも含み得る。内部コンポーネント902a、bのセットの各々は、コンピュータディスプレイモニタ924、キーボード926およびコンピュータマウス928にインタフェース接続するためのデバイスドライバ930も含む。デバイスドライバ930、R/Wドライブまたはインタフェース918およびネットワークアダプタまたはインタフェース922は、ハードウェアおよびソフトウェア(ストレージデバイス916および/またはROM910に格納されている)を含む。
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載される教示の実装はクラウドコンピューティング環境に限定されないことが、予め理解されている。むしろ、本発明の実施形態は、現在知られているか、または今後開発される任意の他のタイプのコンピューティング環境と併せて実装できる。
クラウドコンピューティングは、最小限の管理労力またはサービスのプロバイダとの対話により迅速にプロビジョニングおよびリリースされ得る構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシンおよびサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするためのサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデルおよび少なくとも4つの展開モデルを含み得る。
特性は以下のとおりである。
オンデマンドセルフサービス:クラウド消費者は、サービスのプロバイダとの人的対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングできる。
幅広いネットワークアクセス:この能力は、ネットワークを介して利用可能であり、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準メカニズムを介してアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者にサービスを提供するためにプールされ、異なる物理リソースおよび仮想リソースが、要求に従って動的に割り当ておよび再割り当てされる。消費者は概して、提供されたリソースの正確な位置に対して制御または知識を有していないが、より高いレベルの抽象化(例えば、国、州、またはデータセンタ)において位置を指定できることがあるという点で、位置独立感がある。
迅速な弾力性:この能力は、迅速かつ弾力的に、場合によっては自動的にプロビジョニングして、早急にスケールアウトし、かつ迅速にリリースして早急にスケールインできる。消費者にとって、プロビジョニングに利用可能な能力は無制限に見えることが多く、任意の時点において任意の量で購入できる。
測定されるサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅およびアクティブユーザアカウント)に適切なあるレベルの抽象化における計量能力を活用することにより、リソースの使用を自動的に制御および最適化する。リソース使用量がモニタリング、制御および報告されることで、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供できる。
サービスモデルは以下のとおりである。ソフトウェアアズアサービス(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上またはハイブリッドクラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。これらのアプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインタフェースを通じて、様々なクライアントデバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージまたはさらには個々のアプリケーション能力を含む、基礎となるクラウドインフラストラクチャを管理または制御しないが、限定されたユーザ固有のアプリケーション構成設定は、その例外になることがある。
プラットフォームアズアサービス(PaaS):消費者に提供される能力は、プロバイダによりサポートされるプログラミング言語およびツールを用いて作成される、消費者が作成または取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステムまたはストレージを含む、基礎となるクラウドインフラストラクチャを管理または制御しないが、展開されたアプリケーション、および場合によっては、環境構成をホストするアプリケーションを制御する。アナリティクスアズアサービス(AaaS):消費者に提供される機能は、ウェブベースのまたはクラウドベースのネットワーク(すなわち、インフラストラクチャ)を用いて、アナリティクスプラットフォームにアクセスすることである。アナリティクスプラットフォームは、アナリティクスソフトウェアリソースへのアクセスを含んでよく、または、関連するデータベース、コーパス、サーバ、オペレーティングシステムまたはストレージへのアクセスを含んでよい。消費者は、データベース、コーパス、サーバ、オペレーティングシステムまたはストレージを含む、基礎となるウェブベースのまたはクラウドベースのインフラストラクチャを管理または制御しないが、展開されたアプリケーション、および場合によっては、環境構成をホストするアプリケーションを制御する。
サービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service):消費者に提供される能力は、消費者が任意のソフトウェアを展開および実行できる、処理、ストレージ、ネットワークおよび他の基本的なコンピューティングリソースをプロビジョニングすることであり、このソフトウェアは、オペレーティングシステムおよびアプリケーションを含み得る。消費者は、基礎となるクラウドインフラストラクチャを管理または制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御し、場合によっては、選択されたネットワーキングコンポーネント(例えば、ホストファイアウォール)を限定的に制御する。
展開モデルは以下のとおりである。
プライベートクラウド:このクラウドインフラストラクチャは、ある組織のためにのみ動作する。プライベートクラウドは、この組織またはサードパーティにより管理されてよく、オンプレミスまたはオフプレミスで存在してよい。
コミュニティクラウド:このクラウドインフラストラクチャは、いくつかの組織により共有され、共有される関心事項(例えば、ミッション、セキュリティ要件、ポリシおよびコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。コミュニティクラウドは、これらの組織またはサードパーティにより管理されてよく、オンプレミスまたはオフプレミスで存在してよい。
パブリッククラウド:このクラウドインフラストラクチャは、一般大衆または大規模な業界団体へ利用可能にされ、クラウドサービスを販売する組織により所有される。ハイブリッドクラウド:クラウドインフラストラクチャは、一意のエンティティのままであるが、データおよびアプリケーションのポータビリティ(例えば、クラウド間の負荷分散のためのクラウドバースティング)を可能にする、標準化されたかまたは独自技術により共に結び付けられている、2つまたはそれよりも多くのクラウド(プライベート、コミュニティまたはパブリック)の複合体である。
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性および意味的相互運用性に重点を置いて指向されたサービスである。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャが存在する。
ここで図5を参照すると、例示的なクラウドコンピューティング環境1000が示される。示されるように、クラウドコンピューティング環境1000は、例えば、パーソナルデジタルアシスタント(PDA)またはセルラー電話1000A、デスクトップコンピュータ1000B、ラップトップコンピュータ1000Cおよび/または自動車コンピュータシステム1000Nなど、クラウド消費者により用いられるローカルコンピューティングデバイスが通信し得る1つまたは複数のクラウドコンピューティングノード1050を含む。クラウドコンピューティングノード1050は、互いに通信し得る。それらは、上述のプライベート、コミュニティ、パブリックまたはハイブリッドクラウド、またはそれらの組み合わせなどの1つまたは複数のネットワーク内で物理的にまたは仮想的にグループ化され得る(不図示)。これにより、クラウドコンピューティング環境1000は、クラウド消費者がローカルコンピューティングデバイス上でリソースを維持する必要がないインフラストラクチャ、プラットフォームおよび/またはソフトウェアをサービスとして提供することが可能になる。図5に示されるコンピューティングデバイス1000A-Nのタイプは例示のみが意図されていること、および、コンピューティングノード1050およびクラウドコンピューティング環境1000は、任意のタイプのネットワークおよび/またはネットワークアドレス指定可能接続を介して(例えば、ウェブブラウザを用いて)任意のタイプのコンピュータ化デバイスと通信し得ることが、理解される。
ここで図6を参照すると、クラウドコンピューティング環境1000により提供される機能抽象化層1100のセットが示される。図6に示されるコンポーネント、層および機能は、例示のみを意図するものであり、発明の実施形態がそれらに限定されることはないことを、予め理解されたい。示されているように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層1102はハードウェアおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例は、メインフレーム1104、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ1106、サーバ1108、ブレードサーバ1110、ストレージデバイス1112、および、ネットワークおよびネットワーキングコンポーネント1114を含む。いくつかの実施形態では、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア1116およびデータベースソフトウェア1118を含む。
仮想化層1120は、仮想エンティティの以下の例、すなわち、仮想サーバ1122、仮想ストレージ1124、仮想プライベートネットワークを含む仮想ネットワーク1126、仮想アプリケーションおよびオペレーティングシステム1128、および仮想クライアント1130が提供され得る抽象化層を提供する。
一例において、管理層1132は以下で説明される機能を提供し得る。リソースプロビジョニング1134は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的調達を提供する。計量および価格設定1136は、リソースがクラウドコンピューティング環境内で利用されるときのコスト追跡、およびこれらのリソースの消費に対する課金または請求を提供する。一例において、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウド消費者およびタスクに対する識別情報検証、ならびに、データおよび他のリソースに対する保護を提供する。ユーザポータル1138は、消費者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理1140は、必要とされるサービスレベルが満たされるように、クラウドコンピューティングリソース割り当ておよび管理を提供する。サービスレベルアグリーメント(SLA)計画および履行1142は、将来の要件がSLAに従って予測されるクラウドコンピューティングリソースの事前構成および調達を提供する。
ワークロード層1144は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション1146、ソフトウェア開発およびライフサイクル管理1148、仮想教室教育配信1150、データ解析処理1152、トランザクション処理1154およびシフトレフトトポロジ構築1156を含む。シフトレフトトポロジプログラム110a、110bは、機械学習を用いてマイクロサービスの動作特性を学習してサービスおよびサービス特性のトポロジ表現を構築するためのやり方を提供する。
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法および/またはコンピュータプログラム製品であってよい。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数のコンピュータ可読記憶媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持および格納し得る有形のデバイスであってよい。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、または前述のものの任意の適した組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードまたは命令を記録した溝内の隆起構造のような機械的にエンコードされたデバイス、および前述したものの任意の適した組み合わせを含む。本明細書において用いられるコンピュータ可読記憶媒体は、電波または他の自由に伝搬する電磁波、導波路または他の伝送媒体(例えば、光ファイバケーブルを通過する光パルス)を伝搬する電磁波、またはワイヤを通じて伝送される電気信号など、一時的な信号自体であると解釈されるべきではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスへ、または、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワークおよび/または無線ネットワークなどのネットワークを介して外部コンピュータまたは外部ストレージデバイスへダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバを含み得る。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するために、コンピュータ可読プログラム命令を転送する。
本発明のオペレーションを実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、例えばSmalltalk(登録商標)またはC++等のオブジェクト指向プログラミング言語、「C」プログラミング言語、pythonプログラミング言語または類似のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで書かれたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上で、かつ、部分的にリモートコンピュータ上で、または全体的にリモートコンピュータまたはサーバ上で実行され得る。後者のシナリオにおいて、リモートコンピュータが、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてよく、または、接続が、(例えば、インターネットサービスプロバイダを用いてインターネットを通じて)外部コンピュータに対して行われてよい。いくつかの実施形態において、本発明の態様を実行すべく、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を利用して当該電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行し得る。
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)およびコンピュータプログラム製品のフローチャート図および/またはブロック図を参照して、説明されている。フローチャート図および/またはブロック図の各ブロック、および、フローチャート図および/またはブロック図における各ブロックの組み合わせは、コンピュータ可読プログラム命令により実装され得ることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラマブルデータ処理装置を介して実行される命令が、フローチャートおよび/またはブロック図の1つのブロックまたは複数のブロックにおいて指定される機能/動作を実装するための手段を生成するように、汎用コンピュータ、専用コンピュータ、または機械を生成するための他のプログラマブルデータ処理装置のプロセッサに提供され得る。また、これらのコンピュータ可読プログラム命令は、特定の方式で機能するようコンピュータ、プログラマブルデータ処理装置および/または他のデバイスに指示できるコンピュータ可読記憶媒体に格納されてよく、それにより、格納された命令を有するコンピュータ可読記憶媒体は、フローチャートおよび/またはブロック図の1つのブロックまたは複数のブロックにおいて指定される機能/動作の態様を実装する命令を含む製造品を備える。
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブルデータ処理装置または他のデバイスにロードして、一連の動作段階をコンピュータ、他のプログラマブル装置、または他のデバイス上で実行させ、コンピュータ実装処理を生成してよく、それにより、コンピュータ、他のプログラマブル装置または他のデバイス上で実行される命令は、フローチャートおよび/またはブロック図の1つのブロックまたは複数のブロックにおいて指定される機能/動作を実装する。
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能および動作を示している。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実装する1つまたは複数の実行可能命令を含む命令のモジュール、セグメントまたは部分を表し得る。いくつかの代替的な実装形態において、ブロックに記されている機能は、図面に記されている順序とは異なる順序で行われ得る。例えば、連続して示されている2つのブロックは、実際には、実質的に同時に実行されてよく、または、場合によっては、これらのブロックは、関与する機能に応じて逆の順序で実行されてよい。ブロック図および/またはフローチャート図の各ブロック、および、ブロック図および/またはフローチャート図におけるブロックの組み合わせは、指定された機能または動作を実行するか、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェアベースシステムにより実装され得ることにも留意されたい。
本発明の様々な実施形態の説明は、例示の目的で提示されてきたが、網羅的であるように、または、開示された実施形態に限定されるようには意図されていない。説明された実施形態の範囲から逸脱することなく、多くの修正および変形が、当業者には明らかになるであろう。本明細書において用いられる用語は、実施形態の原理、市場で見られる技術の実際の適用または技術的改善を最も良く説明するように、または、本明細書において開示された実施形態を他の当業者が理解することを可能にするように選ばれている。

Claims (25)

  1. シフトレフトトポロジ構築のための方法であって、
    データセットを収集する段階;
    前記データセットから複数のトポロジエンティティを抽出する段階;
    前記複数のトポロジエンティティからの複数のデータを相関付ける段階;
    前記複数のトポロジエンティティをマッピングする段階;
    前記複数のトポロジエンティティの複数のサブグラフのエントリポイントをマーキングする段階;および
    トポロジグラフを構築する段階
    を備える、方法。
  2. 静的データを用いて前記データセットを更新する段階;および
    更新された前記データセットを継続的に検証する段階
    をさらに備える、請求項1に記載の方法。
  3. 内容領域専門家(SME)からのリアルタイムデータをアクティブラーニングフィードバックモデルとして用いて前記データセットを更新する段階;および
    更新された前記データセットを継続的に検証する段階
    をさらに備える、請求項1または2に記載の方法。
  4. 前記複数のトポロジエンティティを抽出する段階は、許可エンティティ、ログインエンティティ、フロントエンドエンティティ、エラスティックサーチエンティティおよびグラフデータベースエンティティから情報を抽出する段階を有する、請求項1から3のいずれか一項に記載の方法。
  5. 前記複数のトポロジエンティティを抽出する段階は、教師なし機械学習(ML)モデルを用いて、収集された前記データセットの間で分散されたキーワードおよびトピックを識別する段階を有する、請求項1から4のいずれか一項に記載の方法。
  6. 前記複数のトポロジエンティティからの前記複数のデータを相関付ける段階は、複数の異なるソースから前記複数のトポロジエンティティをマッチさせる段階を有し、ここで、アプリケーションプログラムインタフェース(API)ルートが前記複数のトポロジエンティティ間で識別される、請求項1から5のいずれか一項に記載の方法。
  7. 前記複数のサブグラフの前記エントリポイントをマーキングする段階は、前記エントリポイントの各々のサブグラフの中央処理装置(CPU)サイクルをマーキングする段階を有する、請求項1から6のいずれか一項に記載の方法。
  8. 前記複数のサブグラフからメタ情報を取得するために、学習モデルが用いられる、請求項1から7のいずれか一項に記載の方法。
  9. 更新された前記データセットを継続的に検証する段階が、構成変更が生じた場合に行われる、請求項2から8のいずれか一項に記載の方法。
  10. シフトレフトトポロジ構築のためのコンピュータシステムであって、
    1つまたは複数のプロセッサ、1つまたは複数のコンピュータ可読メモリ、1つまたは複数のコンピュータ可読有形記憶媒体、および、前記1つまたは複数のコンピュータ可読メモリのうちの少なくとも1つを介した前記1つまたは複数のプロセッサのうちの少なくとも1つによる実行のために前記1つまたは複数のコンピュータ可読有形記憶媒体のうちの少なくとも1つに格納されたプログラム命令を備え、前記コンピュータシステムは、
    データセットを収集する手順;
    前記データセットから複数のトポロジエンティティを抽出する手順;
    前記複数のトポロジエンティティからの複数のデータを相関付ける手順;
    前記複数のトポロジエンティティをマッピングする手順;
    前記複数のトポロジエンティティの複数のサブグラフのエントリポイントをマーキングする手順;および
    トポロジグラフを構築する手順
    を含む方法を実行できる、コンピュータシステム。
  11. 前記方法は、
    静的データを用いて前記データセットを更新する手順;および
    更新された前記データセットを継続的に検証する手順
    をさらに含む、請求項10に記載のコンピュータシステム。
  12. 前記方法は、
    内容領域専門家(SME)からのリアルタイムデータをアクティブラーニングフィードバックモデルとして用いて前記データセットを更新する手順;および
    前記更新されたデータセットを継続的に検証する手順
    をさらに含む、
    請求項10または11に記載のコンピュータシステム。
  13. 前記複数のトポロジエンティティを抽出する手順は、許可エンティティ、ログインエンティティ、フロントエンドエンティティ、エラスティックサーチエンティティおよびグラフデータベースエンティティから情報を抽出する手順を含む、請求項10から12のいずれか一項に記載のコンピュータシステム。
  14. 前記複数のトポロジエンティティを抽出する手順は、教師なし機械学習(ML)モデルを用いて、収集された前記データセットの間で分散されたキーワードおよびトピックを識別する手順を含む、請求項10から13のいずれか一項に記載のコンピュータシステム。
  15. 前記複数のトポロジエンティティからの前記複数のデータを相関付ける手順は、複数の異なるソースからの前記複数のトポロジエンティティをマッチさせる手順を含み、ここで、アプリケーションプログラムインタフェース(API)ルートが前記複数のトポロジエンティティ間で識別される、請求項10から14のいずれか一項に記載のコンピュータシステム。
  16. 前記複数のサブグラフの前記エントリポイントをマーキングする手順は、前記エントリポイントの各々のサブグラフの中央処理装置(CPU)サイクルをマーキングする手順を含む、請求項10から15のいずれか一項に記載のコンピュータシステム。
  17. 前記複数のサブグラフからメタ情報を取得するために、学習モデルが用いられる、請求項10から16のいずれか一項に記載のコンピュータシステム。
  18. 更新された前記データセットを継続的に検証する手順が、構成変更が生じた場合に行われる、請求項11から17のいずれか一項に記載のコンピュータシステム。
  19. シフトレフトトポロジ構築のためのコンピュータプログラム製品であって、
    1つまたは複数のコンピュータ可読有形記憶媒体、および、前記1つまたは複数のコンピュータ可読有形記憶媒体のうちの少なくとも1つに格納されたプログラム命令
    を備え、
    前記プログラム命令は、
    データセットを収集する手順;
    前記データセットから複数のトポロジエンティティを抽出する手順;
    前記複数のトポロジエンティティからの複数のデータを相関付ける手順;
    前記複数のトポロジエンティティをマッピングする手順;
    前記複数のトポロジエンティティの複数のサブグラフのエントリポイントをマーキングする手順;および
    トポロジグラフを構築する手順
    を含む方法をプロセッサに実行させるために前記プロセッサにより実行可能である、
    コンピュータプログラム製品。
  20. 静的データを用いて前記データセットを更新する手順;および
    前記更新されたデータセットを継続的に検証する手順
    をさらに含む、
    請求項19に記載のコンピュータプログラム製品。
  21. 内容領域専門家(SME)からのリアルタイムデータをアクティブラーニングフィードバックモデルとして用いて前記データセットを更新する手順;および
    前記更新されたデータセットを継続的に検証する手順
    をさらに含む、
    請求項19から20のいずれか一項に記載のコンピュータプログラム製品。
  22. 前記複数のトポロジエンティティを抽出する手順は、許可エンティティ、ログインエンティティ、フロントエンドエンティティ、エラスティックサーチエンティティおよびグラフデータベースエンティティから情報を抽出する手順を含む、請求項19から21のいずれか一項に記載のコンピュータプログラム製品。
  23. 前記複数のトポロジエンティティを抽出する手順は、教師なし機械学習(ML)モデルを用いて、収集された前記データセットの間で分散されたキーワードおよびトピックを識別する手順を含む、請求項19から22のいずれか一項に記載のコンピュータプログラム製品。
  24. 前記複数のトポロジエンティティからの前記複数のデータを相関付ける手順は、複数の異なるソースからの前記複数のトポロジエンティティをマッチさせる手順を含み、ここで、アプリケーションプログラムインタフェース(API)ルートが前記複数のトポロジエンティティ間で識別される、請求項19から23のいずれか一項に記載のコンピュータプログラム製品。
  25. 前記複数のサブグラフからメタ情報を取得するために、学習モデルが用いられる、請求項19から24のいずれか一項に記載のコンピュータプログラム製品。
JP2023517690A 2020-09-17 2021-09-16 機械学習を用いたシフトレフトトポロジ構築および情報拡張 Pending JP2023543704A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/023,679 US20220083876A1 (en) 2020-09-17 2020-09-17 Shiftleft topology construction and information augmentation using machine learning
US17/023,679 2020-09-17
PCT/IB2021/058442 WO2022058919A1 (en) 2020-09-17 2021-09-16 Shiftleft topology construction and information augmentation using machine learning

Publications (1)

Publication Number Publication Date
JP2023543704A true JP2023543704A (ja) 2023-10-18

Family

ID=80626792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023517690A Pending JP2023543704A (ja) 2020-09-17 2021-09-16 機械学習を用いたシフトレフトトポロジ構築および情報拡張

Country Status (5)

Country Link
US (1) US20220083876A1 (ja)
JP (1) JP2023543704A (ja)
CN (1) CN116210210A (ja)
GB (1) GB2613484A (ja)
WO (1) WO2022058919A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114676266B (zh) * 2022-03-29 2024-02-27 建信金融科技有限责任公司 基于多层关系图谱的冲突识别方法、装置、设备及介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110208567A9 (en) * 1999-08-23 2011-08-25 Roddy Nicholas E System and method for managing a fleet of remote assets
US8200789B2 (en) * 2004-10-12 2012-06-12 International Business Machines Corporation Method, system and program product for automated topology formation in dynamic distributed environments
US20070016592A1 (en) * 2005-07-12 2007-01-18 International Business Machines Corporation Enabling real time decoration for customized topology displays
BRPI0924291B1 (pt) * 2009-02-05 2020-12-22 Telefonaktiebolaget Lm Ericsson (Publ) método em uma entidade sensível à topologia associada com uma rede ethernet, meio legível por computador, e, entidade sensível à topologia
US8984503B2 (en) * 2009-12-31 2015-03-17 International Business Machines Corporation Porting virtual images between platforms
US9300566B2 (en) * 2011-06-28 2016-03-29 Telefonaktiebolaget L M Ericsson (Publ) Topology change in a network with ring topology
US20140040279A1 (en) * 2012-08-02 2014-02-06 International Business Machines Corporation Automated data exploration
US9128749B1 (en) * 2013-06-27 2015-09-08 Emc Corporation Method and system for lock free statistics collection
US11159599B2 (en) * 2014-10-10 2021-10-26 Dynatrace Llc Method and system for real-time modeling of communication, virtualization and transaction execution related topological aspects of monitored software applications and hardware entities
US10108411B2 (en) * 2015-10-08 2018-10-23 Lightbend, Inc. Systems and methods of constructing a network topology
US9921997B2 (en) * 2016-04-01 2018-03-20 Intel Corporation Mechanism for PCIE cable topology discovery in a rack scale architecture environment
US20170337232A1 (en) * 2016-05-19 2017-11-23 Fifth Dimension Holdings Ltd. Methods of storing and querying data, and systems thereof
US10389596B2 (en) * 2017-03-30 2019-08-20 Ca, Inc. Discovering application topologies
CN106982143A (zh) * 2017-04-19 2017-07-25 济南浪潮高新科技投资发展有限公司 一种利用拓扑实现电信指标监控的方法
US11575579B2 (en) * 2017-04-25 2023-02-07 Nutanix, Inc. Systems and methods for networked microservice modeling
US11334692B2 (en) * 2017-06-29 2022-05-17 International Business Machines Corporation Extracting a knowledge graph from program source code
US10855793B2 (en) * 2017-09-25 2020-12-01 Splunk Inc. Proxying hypertext transfer protocol (HTTP) requests for microservices
CN108322351B (zh) * 2018-03-05 2021-09-10 北京奇艺世纪科技有限公司 生成拓扑图的方法和装置、故障确定方法和装置
US11032304B2 (en) * 2018-12-04 2021-06-08 International Business Machines Corporation Ontology based persistent attack campaign detection
CN111435924B (zh) * 2019-01-14 2021-08-31 华为技术有限公司 调用应用程序接口的方法和装置
US11184241B2 (en) * 2019-02-08 2021-11-23 International Business Machines Corporation Topology-aware continuous evaluation of microservice-based applications
US20220176201A1 (en) * 2019-03-29 2022-06-09 Alive Fitness Llc Methods and systems for exercise recognition and analysis
US20210035661A1 (en) * 2019-08-02 2021-02-04 Kpn Innovations, Llc Methods and systems for relating user inputs to antidote labels using artificial intelligence
CN110472107B (zh) * 2019-08-22 2024-01-30 腾讯科技(深圳)有限公司 多模态知识图谱构建方法、装置、服务器以及存储介质
CA3222363A1 (en) * 2019-11-06 2021-05-14 Centurylink Intellectual Property Llc Predictive resource allocation in an edge computing network
US11327749B2 (en) * 2019-11-14 2022-05-10 Dell Products L.P. System and method for generating documentation for microservice based applications
US11424989B2 (en) * 2020-06-15 2022-08-23 Cisco Technology, Inc. Machine-learning infused network topology generation and deployment
US11875233B2 (en) * 2020-07-10 2024-01-16 Microsoft Technology Licensing, Llc Automatic recognition of entities related to cloud incidents

Also Published As

Publication number Publication date
GB2613484A (en) 2023-06-07
US20220083876A1 (en) 2022-03-17
GB202302589D0 (en) 2023-04-12
WO2022058919A1 (en) 2022-03-24
CN116210210A (zh) 2023-06-02

Similar Documents

Publication Publication Date Title
JP7002638B2 (ja) ランダム・ドキュメント埋め込みを用いたテキスト・データ表現学習
US11593642B2 (en) Combined data pre-process and architecture search for deep learning models
US11436129B2 (en) System, method and recording medium for generating mobile test sequences
JP2023508076A (ja) アプリケーション・ベースのプロファイリングを用いた機械学習ワークロードの弾力的な実行
US11669680B2 (en) Automated graph based information extraction
US11061739B2 (en) Dynamic infrastructure management and processing
KR20220156091A (ko) 강화 학습을 이용한 비지도 텍스트 요약
US20200302350A1 (en) Natural language processing based business domain modeling
JP2022146940A (ja) セキュリティリスク解析のための方法、コンピュータシステムおよびコンピュータプログラム
US10216802B2 (en) Presenting answers from concept-based representation of a topic oriented pipeline
US20170161301A1 (en) Generation of graphical maps based on text content
US11455337B2 (en) Preventing biased queries by using a dictionary of cause and effect terms
JP2023544904A (ja) 機械学習パイプラインの分散型リソースアウェアトレーニング
JP2023543704A (ja) 機械学習を用いたシフトレフトトポロジ構築および情報拡張
WO2023103688A1 (en) Federated machine learning based on partially secured spatio-temporal data
US20200279152A1 (en) Lexicographic deep reinforcement learning using state constraints and conditional policies
US20230021563A1 (en) Federated data standardization using data privacy techniques
US11907711B2 (en) Fast porting of projects
US11854264B2 (en) Speculative actions based on predicting negative circumstances
US11681501B2 (en) Artificial intelligence enabled open source project enabler and recommendation platform
TW202324224A (zh) 利用維度減少提升分類及回歸樹表現
US20210279386A1 (en) Multi-modal deep learning based surrogate model for high-fidelity simulation
US11645558B2 (en) Automatic mapping of records without configuration information
CN116490871A (zh) 在数据分析中自动调整数据访问策略
US10902046B2 (en) Breaking down a high-level business problem statement in a natural language and generating a solution from a catalog of assets

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230330

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240215