JP2023527700A - パイプライン・アーティファクトの選択の動的自動化 - Google Patents
パイプライン・アーティファクトの選択の動的自動化 Download PDFInfo
- Publication number
- JP2023527700A JP2023527700A JP2022568536A JP2022568536A JP2023527700A JP 2023527700 A JP2023527700 A JP 2023527700A JP 2022568536 A JP2022568536 A JP 2022568536A JP 2022568536 A JP2022568536 A JP 2022568536A JP 2023527700 A JP2023527700 A JP 2023527700A
- Authority
- JP
- Japan
- Prior art keywords
- pipeline
- artifacts
- application
- dependency
- impact
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Examining Or Testing Airtightness (AREA)
- Investigating Or Analyzing Materials By The Use Of Ultrasonic Waves (AREA)
- Measuring Volume Flow (AREA)
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
ソフトウェア開発及び運用(DevOps)のための継続的インテグレーション及びデプロイメント(CI/CD)パイプラインをサポートする人工知能(AI)プラットフォームである。アプリケーション・アーティファクトに基づいて、1つ又は複数の依存関係グラフが生成される。機械学習(ML)を利用して、依存関係グラフ(単数又は複数)のコンポーネントと1つ又は複数のパイプライン・アーティファクトとの間の関係を捕捉する。アプリケーション・アーティファクトの変更に応じて、捕捉された関係を利用し、パイプライン・アーティファクト(単数又は複数)に対する検出された変更の影響を識別する。パイプラインの効率及びデプロイメント時間を改善するために、識別された影響に基づいて、CI/CDパイプラインが選択的に最適化され、実行される。
Description
本発明は、ソフトウェア開発及び運用(DevOps)のための継続的インテグレーション/継続的デリバリ(CI/CD)パイプラインに関する。より具体的には、本発明は、アプリケーション・コンポーネントとCI/CDパイプライン・コンポーネントとの間の依存関係を学習することにより識別された変更に基づいて、CI/CDパイプライン・アーティファクトを自動的かつ選択的に最適化することに関する。
機械学習(ML)は、人工知能(AI)のサブセットであり、データから学習し、このデータに基づいて見通しを生成するためのアルゴリズムを利用する。AIとは、機械が情報に基づいて判定することができるときに、与えられたトピックで成功する機会を最大化する知能を指す。より具体的には、AIは、データセットから学習して、問題を解決し、適切な提案を与えることができる。コグニティブ・コンピューティングは、コンピュータ科学と認知科学との混合である。コグニティブ・コンピューティングは、データ最小化、視覚認識、及び自然言語処理を用いる自己学習型アルゴリズムを利用して、問題を解決し、人のプロセスを最適化する。
AI及び関連する推論の核心には、類似性の概念が存在する。自然言語及び対象を理解するプロセスは、関係性の視点から推論を行う必要があり、これは困難を伴う場合がある。静的構造及び動的構造を含む構造は、与えられた確定的な入力に対して確定的な出力又はアクションを定める。より具体的には、確定的な出力又はアクションは、構造内の明白な又は内在する関係に基づいている。この構成は、特定の状況及び条件の下では満足なものである可能性がある。しかし、特に、ソフトウェアを配信するためのパイプラインの環境においては、動的構造は、本質的に変更を受ける可能性があり、出力又はアクションは、それに応じて変更を受ける可能性があることを理解されたい。オブジェクト及び処理コンテンツ、並びに、構造の変更を効率的に識別するための既存の解決策は、実用レベルでは非常に困難である。
本実施形態は、アプリケーション・アーティファクトとパイプライン・アーティファクトとの間の依存関係を学習することによってCI/CDパイプラインを自動的かつ選択的に最適化するためのシステム、コンピュータ・プログラム製品、及び方法を含む。
一態様において、コンピュータ・システムには、メモリと動作可能に結合された処理ユニットと、処理ユニットと動作可能に結合された人工知能(AI)プラットフォームが備えられる。AIプラットフォームは、ソフトウェア開発及び運用(DevOps)のための継続的インテグレーション及びデプロイメント(CI/CD)パイプラインをサポートする。AIプラットフォームは、グラフ・マネージャ、機械学習(ML)マネージャ、及びモニタの形態のツールを含む。グラフ・マネージャは、2つ又はそれより多いアプリケーション・アーティファクトに基づいて、1つ又は複数の依存関係グラフを生成するように機能する。MLマネージャは、グラフ・マネージャと動作可能に結合され、MLモデルを利用して依存関係グラフ(単数又は複数)と1つ又は複数のパイプライン・アーティファクトとの間の関係を捕捉する。本明細書ではMLマネージャと動作可能に結合されるように示されるモニタは、アプリケーション・アーティファクト(単数又は複数)に対する変更を検出し、検出された変更に応じて、MLマネージャは、捕捉された関係を利用してパイプライン・アーティファクト(単数又は複数)に対する検出された変更の影響を識別し、識別された影響に応じて、パイプラインを選択的に最適化するように機能する。最適化は、識別された影響に対応するマッピングされた変更の、パイプラインへの自動的なエンコーディングである。処理ユニットは、最適化されたパイプラインを実行する。
別の態様において、ソフトウェア開発及び運用(DevOps)のための継続的インテグレーション及び継続的デプロイメント(CI/CD)パイプラインをサポートするためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、プログラム・コードが具体化されたコンピュータ可読ストレージ媒体を含む。プログラム・コードは、プロセッサによって実行可能であり、2つ又はそれより多いアプリケーション・アーティファクトに基づいて、1つ又は複数の依存関係グラフを生成するように準備される。プログラム・コードは、機械学習(ML)モデルを利用して、依存関係グラフ(単数又は複数)と1つ又は複数のパイプライン・アーティファクトと間の関係を捕捉する。プログラム・コードは、アプリケーション・アーティファクト(単数又は複数)に対する変更を検出し、検出された変更に応じて、プログラム・コードは、捕捉された関係を利用して、パイプライン・アーティファクト(単数又は複数)に対する検出された変更の影響を識別し、識別された影響に応じて、パイプラインを選択的に最適化する。最適化は、識別された影響に対応するマッピングされた変更をパイプラインに自動的にエンコーディングすることを含む。次いで、最適化されたパイプラインが実行の対象になる。
さらに別の態様において、ソフトウェア開発及び運用(DevOps)のための継続的インテグレーション及びデプロイメント(CI/CD)パイプラインをサポートする方法が提供される。方法は、2つ又はそれより多いアプリケーション・アーティファクトに基づいて、1つ又は複数の依存関係グラフを生成することを含む。機械学習(ML)モデルを利用して、依存関係グラフ(単数又は複数)と1つ又は複数のパイプライン・アーティファクトとの間の関係を捕捉する。パイプラインは、識別された影響に応じて選択的に最適化され、これは識別された影響に対応するマッピングされた変更を、パイプラインに自動的にエンコーディングすることを含み、最適化されたCI/CDパイプラインが実行される。
これら及び他の特徴並びに利点が、現在の好ましい実施形態(単数又は複数)の、添付の図面に関連して記述される、以下の詳細な説明から明白となるであろう。
本明細書における図面の参照は、本明細書の一部を形成する。図面に示される特徴は、別に明示的に示されない限り、全ての実施形態ではなく、幾つかの実施形態のみの例示として意図されたものである。
本実施形態のコンポーネントは、本明細書において図面内で一般的に記述され例示されるように、様々な異なる構成に配置しデザインすることができることが容易に理解されるであろう。従って、図面に示される、本実施形態の装置、システム、方法、及びコンピュータ・プログラム製品は、特許請求される本実施形態の範囲を限定することを意図したものではなく、選択された実施形態の単なる典型である。
本明細書を通して、「選択した実施形態」、「一つの実施形態」、又は「一実施形態」に対する言及は、その実施形態に関連して説明される特定の特徴、構造、又は特性が、少なくとも一つの実施形態に含まれることを意味する。従って、語句「選択した実施形態」、「一つの実施形態において」、又は「一実施形態において」の本明細書の種々の場所における出現は、必ずしも同じ実施形態を指すものではない。
例示的な実施形態は、全体を通して同様の部分が同様の数字で示される図面を参照することによって、最も良く理解されるであろう。以下の説明は、単なる例として、本明細書において特許請求される実施形態と一致するデバイス、システム、及びプロセスのある特定の選択された実施形態を単に例示することを意図したものである。
DevOps(「開発」と「運用」の合成語)は、ソフトウェア開発者と他の情報技術(IT)専門家との間の協力の通信、協働、統合、自動化及び測定を重視するソフトウェア開発法である。DevOpsは、ソフトウェア開発、品質保証、及びIT運用の相互依存を認識し、組織が迅速にソフトウェア製品及びサービスを生産することを支援し、より迅速な開発及びデプロイメントのサイクルをもたらしながら信頼性及び安全性を向上させることを目的とするものである。継続的インテグレーション(CI)は、開発者が、統合問題を識別するためにコードを統合するソフトウェア開発プロセスである。より具体的には、CIは、コード開発労力を削減するように機能し、結果として高品質のソフトウェア及び予測可能な配信スケジュールをもたらす。従って、継続的インテグレーションは、開発されるソフトウェア・コードが既存のソフトウェア・コードと統合される、DevOpsのプラクティスである。継続的デリバリ(CD)は、選択されたインフラストラクチャ環境へのアプリケーションの配信を自動化する。このことにより、開発、試験、及び製造のような異なる環境へのコード変更の自動プッシュが保証される。DevOpsにおいて、CIは、試験デプロイ及びCDのリリース段階の必要条件として機能する。
継続的インテグレーション/継続的デリバリ(CI/CD)パイプラインは、以後パイプラインと呼ばれるが、DevOpsの一部として利用されるか又はそれに統合されるプロセスの自動化セットである。パイプラインは、いくつかのステージで構成される。一実施形態において、ステージは、構築(Build)、ユニット試験(Unit Test)、デプロイ開発(Deploy Development)、統合試験(Integration Tests)、コンプライアンス・チェック(Compliance Checks)、及びデプロイ製品(Deploy Product)を含むことができる。各々のステージは、1つ又は複数のアクション又は選択肢からなる。例えば、試験ステージは、簡単なテスタ、高度なテスタ、若しくはコンプライアンス・スキャナ又はこれらのすべてを採用することができる。一実施形態において、パイプラインの1つ又は複数のステージは、重複及び非効率を避けるために、利用可能なアクションの全てより少ない選択のみを必要とする場合がある。パイプラインは、構築、検査、及びデプロイメントのステージを自動化する。
マイクロ・サービス又はマイクロ・サービス・アーキテクチャは、アプリケーションが、各々が1つの機能定義に対応し、各々がそれ自身のプロセス内で実行され軽量機構で通信する、機能定義に基づく一連のモジュラー・コンポーネント又はサービスとして構築される、コンピュータ環境を指す。マイクロ・サービス・アークテクチャにおいて、データはサービスの外部に格納され、したがって、サービスはステートレスである。サービス又はコンポーネントは、通常、「アトミック・サービス」と呼ばれる。各々のアトミック・サービスは、モジュラー・サービスを独立に実行するための軽量コンポーネントである。例えば、アトミック・サービスは、キーワードを受け取って組み合わせ、アルゴリズムを処理し、又は、アルゴリズム処理の結果に基づいて判定することができる。各々のモジュールは、特定のタスクをサポートし、他のサービスと通信するためのアプリケーション・プログラミング・インターフェース(API)のような、限定インターフェースを使用する。マイクロ・サービス・アークテクチャは、ハイブリッド・ネットワーク内のスケーラビリティをサポートし可能にする。
パイプライン内で使用されるマイクロ・サービスの数は、マイクロ・サービスがクラウド・ネイティブ環境において分割されるときにより多くの利益を提供するので、指数関数的に増加している。マイクロ・サービスは、開発及びデプロイメントに関する幾つかの利点を有するが、それらはまた、それら自体の課題を有する。マイクロ・サービス・レポジトリ及びパイプラインの管理は、アプリケーションの数が増加するにつれてより難しくなる。パイプラインは、マイクロ・サービスのデプロイメントを自動化するために利用される。会社によっては、数百又はさらに数千のマイクロ・サービスを実行させてサービスを運営しているため、パイプラインは、時間の経過とともに堅牢となり、さらに大きく成長し続けることになる。コード、設定、変数の変更、ネットワーク・ポートの変更などといった何らかの変更があるたびに、マイクロ・サービスは、リデプロイされることが必要である。リデプロイメントは、マイクロ・サービスを準備するプロセスと同じプロセスをたどり、あまりに多くのプロセスのために、プロセスは、ますます複雑になり遅くなる。本明細書において示され説明されるように、信頼性のレベルを維持しながら、リデプロイメント・プロセスを効率的に進めるようにパイプラインをサポートし可能にするための最適な解決策が提供される。
アプリケーション・アーティファクトは、当技術分野では、ソフトウェアの開発中に生成される有形副産物として知られている。アーティファクトは、パイプラインのステージの間又は異なるパイプラインの間でファイルを共用するためのリソースとして機能する。アプリケーション・アーティファクトの例として、限定されるものではないが、アプリケーション・ソース・コード、試験コード、アプリケーション・プログラミング・インターフェース(API)仕様、アプリケーション構成、デプロイメント・スクリプト、及び変数が挙げられる。
パイプライン・アーティファクトは、ソフトウェア開発プロセス中に生成される副産物である。これは、プロジェクト・ソース・コード、依存関係、バイナリ又はリソースで構成され得る。パイプライン・アーティファクトの例として、限定されるものではないが、その時点でパイプラインで利用可能な能力、プロセス、及びコンポーネントが挙げられる。
図1を参照すると、パイプラインの自動選択及び最適化をサポートするためのツールを有するコンピュータ・システム(100)が提供される。図示されるように、複数のコンピューティング・デバイス(180)、(182)、(184)、(186)、(188)、及び(190)と、ネットワーク接続(105)によって通信するサーバ(110)が準備される。サーバ(110)は、バス(114)によってメモリ(116)と通信するプロセッサ(112)を有するように構成される。サーバ(110)は、アプリケーション・アーティファクトに基づくパイプライン・アーティファクトの選択をサポートするための人工知能(AI)プラットフォーム(150)を有するように示されている。より具体的には、AIプラットフォーム(150)は、アプリケーション・アーティファクトとパイプライン・アーティファクトとの間の依存関係を捕捉して学習するため、及び、学習された依存関係に基づいてパイプラインを選択的に最適化するための、1つ又は複数のツールを有するように構成される。コンピューティング・デバイス(180)、(182)、(184)、(186)、(188)、及び(190)は、1つ又は複数の有線若しくは無線又はその両方の通信リンクを介して、互いに及び他のデバイス又はコンポーネントと通信し、各々の通信リンクは、1つ又は複数のワイヤ、ルーター、スィッチ、トランスミッタ、レシーバなどを含むことができる。サーバ(110)の他の実施形態は、本明細書で図示されているもの以外のコンポーネント、システム、サブシステム若しくはデバイス又はこれらのすべてと共に用いることができる。
人工知能(AI)プラットフォーム(150)は、本明細書では、種々のソースからの入力(102)を受信するように構成されるものとして示されている。例えば、AIプラットフォーム(150)は、ネットワーク(105)を介して入力を受信し、本明細書ではコーパス又はデータ・ソースとも呼ばれる知識ベース(170)を利用して、1つ又は複数のパイプライン・アーティファクトの自動選択及びエンコーディングを、CI/CDパイプラインとしても知られるパイプラインに適用することができる。図示されるように、知識ベース(170)は、本明細書では第1のライブラリ(162)、第2のライブラリ(164)、及び第3のライブラリ(166)として示される、1つ又は複数のライブラリで構成される。本明細書で示されるライブラリの数は、例示のためであり、一実施形態において、知識ベース(170)は、より少ないライブラリを有することができる。例えば、一実施形態において、知識ベース(170)は、依存関係グラフ、モデル、及び対応するフィードバックのための1つのライブラリ又はデータ構造を有することができる。
第1のライブラリ(162)は、グラフA(162A)、グラフB(162B)、及びグラフN(162N)を含む、本明細書ではグラフと呼ばれる複数の依存関係グラフを有するように示されている。依存関係グラフ(162A)、(162B)、及び(162N)の数は、例示のためであり、限定するものと考えられるべきではない。各々の依存関係グラフは、アプリケーションの部分の間の関係を示し、より具体的には、グラフは、アプリケーション変更の各々の部分が、そのアプリケーション又は関連するアプリケーションの1つ又は複数の他の部分にどのように影響し得るかを明確に表す。依存関係グラフ(単数又は複数)は、アプリケーション・アーティファクトの間の、コード依存関係、構成依存関係、API依存関係、デプロイメント依存関係などを示す。例えば、一実施形態において、グラフは、1つのアプリケーションに対して検出された変更が、どのように別のアプリケーションのAPI試験を必要とし得るかを明確に表すことができる。
第2のライブラリ(164)は、モデルA(164A)、モデルB(164B)、モデルN(164N)を含む複数のMLモデルを有するように示されている。MLモデル(164A)、(164B)、及び(164N)の数は、例示のためであり、限定するものと考えられるべきではない。各々のMLモデルは、第1のライブラリ(162)に格納された依存性グラフとパイプライン・アーティファクトとの間の関係を捕捉する。MLマネージャ(154)は、捕捉された関係の影響を識別するために、MLモデル(164A)、(164B)、及び(164N)に対して、相関ルール学習を採用又は適用する。
第3のライブラリ(166)は、MLモデルに関連付けられるフィードバックを有するように示されている。本明細書で示される例においては、各々のモデルは、対応するフィードバック(166A)、(166B)、及び(166N)を有する。フィードバック(166A)~(166N)の詳細は、以下で示され、説明される。
相関ルール学習は、データベース内の変数の間の関係を発見するためのルール・ベースのML法である。トランザクションのセットが与えられると、相関ルール学習は、あるアイテムの出現を、トランザクション中の他のアイテムの出現に基づいて予測する。相関ルール学習は、変数間の発見された関係を示す何らかの尺度、例えば、データにおける出現の頻度を用いて、データベースにおいて発見される強いルールを識別することを意図したものである。相関ルール学習の一例は、演繹的アルゴリズムである。演繹的アルゴリズムは、プログラム・コードを一掃する幅優先探索戦略と、サポートの下方閉鎖性を利用する候補生成関数とを用いる。このアルゴリズムは、以下で示され、説明されるMLモデル(単数又は複数)によって利用することができる、例示的な相関ルール学習アルゴリズムである。本明細書では(164A)、(164B)、及び(164N)として示されるMLモデル(単数又は複数)は、アプリケーション・アーティファクトとパイプライン・アーティファクト(単数又は複数)との間のマッピングを効率的に作成する。より具体的には、MLモデル(単数又は複数)は、依存関係グラフに反映される収集されたアプリケーション・アーティファクトとパイプライン・アーティファクト(単数又は複数)との間の影響を分析するアルゴリズムを採用する。マッピングは、1つ又は複数のアプリケーション・アーティファクトの検出された変更が、どのようにパイプラインのマイクロ・サービスに影響することになるかに関する依存関係情報を与える。一実施形態において、MLマネージャ(154)は、検出された変更の影響を分析し、その分析を用いて、パイプライン内のアプリケーション変更の結果を予測する。分析は、以下で図3において説明される。一実施形態において、マッピングは、1つ又は複数の選択アプリケーション・アーティファクトが、1つ又は複数のパイプライン・アーティファクトにどのように影響するかを捕捉する影響マッピングと呼ばれ、パイプラインに対する変更を効率的に提案又は実施する。
AIプラットフォーム(150)は、本明細書では、1つ又は複数のアプリケーション・アーティファクトに対する変更の検出又は識別に基づくパイプラインの最適化、パイプライン・アーティファクトに対する変更(単数又は複数)の何らかの影響の学習又は学習された依存関係、影響に基づくパイプライン内のパイプライン・アーティファクトの選択的最適化、及び、選択的に最適化されたパイプラインの実行をサポートする幾つかのツールを有するように示されている。AIプラットフォーム(150)のツールは、本明細書では、グラフ・マネージャ(152)、機械学習(ML)マネージャ(154)、モニタ(156)、及びフィードバック・マネージャ(158)として示されている。ツール(152)、(154)、(156)、及び(158)は、直接的又は間接的に、動作可能に互いに結合され、以下で説明される機能を提供する。
グラフ・マネージャ(152)は、第1のライブラリ(162)内に示される依存関係グラフを生成する。アプリケーション及びパイプラインのアーティファクトの収集並びに依存関係グラフ生成の詳細は、図3に示され、説明される。本明細書で示される例示的なグラフ(162A)、(162B)、及び(162N)は、2つ又はそれ以上の収集されたアプリケーション・アーティファクトに基づくものであり、収集されたアプリケーション・アーティファクトの間の1つ又は複数の関係を表す。従って、グラフ・マネージャ(152)は、収集されたアプリケーション・アーティファクト内に存在し、識別された関係を表す1つ又は複数の依存関係グラフを生成する。
アプリケーション変更は、対応するアプリケーションにおける1つ又は複数のマイクロ・サービスのリデプロイメントをもたらし得る又は引き起こし得ることを理解されたい。図示されるように、モニタ(156)は、グラフ・マネージャ(152)及びMLマネージャ(154)の両方に動作可能に結合される。モニタ(156)は、対応するアプリケーション・アーティファクトに反映されるアプリケーションの変更を検出するように機能する。モニタ(156)は、1つ又は複数のマイクロ・サービスのリデプロイメントを引き起こすアプリケーション・アーティファクトのあらゆる変更を監視する。そのような変更の検出に応じて、モニタ(156)は、MLマネージャ(154)と対話し、第2のライブラリ(164)から対応するMLモデル(164A)~(164N)を識別し、識別されたMLモデルは検出された変更に対応する。MLマネージャ(154)は、識別されたMLモデルを利用して、検出された変更の1つ又は複数のパイプライン・アーティファクトに対する影響を識別し、その影響に基づいてパイプラインを選択的に最適化する。各々のMLモデルが、依存関係グラフとパイプライン・アーティファクトとの間の関係を捕捉するので、MLマネージャ(154)は、知識ベース(170)から適切なモデルを識別し、そのモデルは、一実施形態において相関ルール学習アルゴリズムであるアルゴリズムを使用する。さらに、MLマネージャ(154)は、MLモデル(164A)~(164N)からの影響に対応するあらゆるマッピングされた変更をパイプラインにエンコードする。一実施形態において、エンコーディングは、識別された影響に応じて最適化されたパイプラインを透過的に作成するように自動化されている。一実施形態において、パイプラインの最適化は、アプリケーション・アーティファクトの変更(単数又は複数)に影響されるか又は別の方法で作用されるパイプラインの1つ又は複数のパイプライン・アーティファクトのみにエンコーディングを限定することによって、選択的である。パイプラインの選択的エンコーディングは、将来のプロセスにおいて繰り返し可能なパターンを認識することをMLモデルにさらに教える能動学習法をサポートする。一実施形態において、能動学習法を導入することにより、影響を受けないパイプライン・アーティファクトが不必要に評価されることがなくなり、パイプラインのデプロイメントに関する効率が向上する。処理ユニット(112)は、識別された影響に基づいて選択的にエンコードされたパイプライン又はパイプライン・アーティファクトを有する最適化されたパイプラインを実行して、パイプラインの効率及びデプロイメント時間を改善する。従って、AI及びMLは、パイプライン及びパイプライン・アーティファクトを自動的かつ選択的に最適化するように採用される。
さらに図示されるように、フィードバック・マネージャ(158)は、モニタ(156)と動作可能に結合される。フィードバック・マネージャ(158)は、本明細書では知識ベース(170)に格納されたフィードバック(166A)~(166N)として示されており、知識ベース(170)に格納され、検出された影響に対応するフィードバックを収集する。一実施形態において、本明細書ではまとめてフィードバックと呼ばれる、収集されたフィードバック(166A)~(166N)又はフィードバック・データは、ユーザ生成のフィードバックである。図4に示され、説明されるように、収集されたフィードバックは、サブジェクト・マター・エクスパート(SME)から発せられ、影響を受けたパイプライン・アーティファクトのデプロイメント又はリデプロイメントに対応する実時間データを含むことができる。本明細書で示されるように、フィードバック(166A)~(166N)は、MLモデル(単数又は複数)(164A)~(164N)に動作可能に結合される。より具体的には、MLモデル(164A)はフィードバック(166A)を伴うように示され、MLモデル(164B)はフィードバック(166B)を伴うように示され、MLモデル(164N)はフィードバック(166N)を伴うように示される。一実施形態において、1つ又は複数のMLモデル(164A)~(164N)は、動作可能に結合されたフィードバックを伴わなくても良いことを理解されたい。フィードバックは、フィードバック・マネージャ(158)によって、対応するMLモデル(164A)~(164N)をさらに訓練する又は訓練を受けさせるために、利用される。従って、フィードバック・マネージャ(158)は、対応するMLモデルに関連付けられるフィードバックを利用して、アプリケーション・アーティファクト変更の将来の検出におけるアプリケーションのために、MLモデルをさらに訓練する。
幾つかの例示的な実施形態において、サーバ110は、ニューヨーク州アーマンク所在のインターナショナル・ビジネス・マシーン社から入手可能なIBMワトソン(登録商標)システムとすることができ、これは、後述される例示的な実施形態の機構によって補強される。以後まとめてAIツールと呼ばれる、グラフ・マネージャ(152)、MLマネージャ(154)、モニタ(156)及びフィードバック・マネージャ(158)は、サーバ(110)のAIプラットフォーム(150)内に具体化されるか又は統合されるように示されている。一実施形態において、AIツールは、ネットワーク(105)によってサーバ(110)に接続される別のコンピューティング・システム(例えば、190)に実装することができる。どこで具体化されようとも、AIツールは、依存関係を学習することによって識別された変更に基づいて、処理ルールをパイプラインに自動的にエンコーディングすることをサポートするように機能する。
AIプラットフォーム(150)を利用することができる情報処理システムのタイプは、ハンドヘルド・コンピュータ/携帯電話(180)などの小型のハンドヘルド・デバイスから、メインフレーム・コンピュータ(182)のような大きなメインフレーム・システムにまで及ぶ。ハンドヘルド・コンピュータ(180)の例には、携帯情報端末(PDAs)、パーソナル・エンタテイメント・デバイス、例えば、MP4プレイヤ、携帯テレビ、及びコンパクト・ディスク・プレイヤなどが含まれる。情報処理システムの他の例には、ペン又はタブレット・コンピュータ(184)、ラップトップ又はノートブック・コンピュータ(186)、パーソナル・コンピュータ・システム(188)、及びサーバ(190)が含まれる。図示されるように、種々の情報処理システムを、コンピュータ・ネットワーク(105)を用いて、互いにネットワーク接続することができる。種々の情報処理システムを相互接続するために使用することができるコンピュータ・ネットワークのタイプには、ローカル・エリア・ネットワーク(LANs)、無線ローカル・エリア・ネットワーク(WLANs)、インターネット、公衆交換電話網(PSTN)、他の無線ネットワーク、及び、情報処理システムを相互接続するために使用することができる何れかの他のネットワーク・トポロジが含まれる。多くの情報処理システムは、ハード・ドライブなどの不揮発性データ・ストア若しくは不揮発性メモリ又はその両方を含む。幾つかの情報処理システムは、不揮発性データ・ストア(190A)を利用する別個の不揮発性データ・ストア(例えば、サーバ(190))、及び、不揮発性データ・ストア(182A)を利用するメインフレーム・コンピュータ(182)を使用することができる。不揮発性データ・ストア(182A)は、種々の情報処理システムの外部にあるか又は情報処理システムの1つの内部にあるコンポーネントとすることができる。
AIプラットフォーム(150)をサポートするために使用される情報処理システムは、多くの形態をとることができ、その幾つかが図1に示される。例えば、情報処理システムは、デスクトップ、サーバ、携帯、ラップトップ、ノートブック、若しくは他のフォーム・ファクタ・コンピュータ、又はデータ処理システムの形態をとることができる。さらに、情報処理システムは、携帯情報端末(PDAs)、ゲーミング・デバイス、ATMマシーン、携帯電話、通信デバイス、又は、プロセッサ及びメモリを含む他のデバイスなどの、他のフォーム・ファクタをとることができる。さらに、情報処理システムは、ノース・ブリッジ/サウス・ブリッジ・コントローラ・アーキテクチャを具体化することができるが、他のアーキテクチャを使用することもできることを認識されたい。
アプリケーション・プログラム・インターフェース(API)は、当技術分野では、2つ又はそれ以上のアプリケーションの間の中間のソフトウェアとして理解される。図1に示され、記載されているAIプラットフォーム(150)に関して、1つ又は複数のツール(152)、(154)、(156)、及び(158)、並びに、それらに関連する機能をサポートするために、1つ又は複数のAPIsを利用することができる。図2を参照すると、ツール(152)、(154)、(156)及び(158)、並びにそれらに関連するAPIsを示すブロック図(200)が与えられている。図示されるように、複数のツールが人工知能プラットフォーム(205)の内部に埋め込まれ、それらのツールは、API0(212)に関連付けられるグラフ・マネージャ(252)、API1(222)に関連付けられるMLマネージャ(254)、API2(232)に関連付けられるフィードバック・マネージャ(256)、及び、API3(242)に関連付けられるモニタ(258)を含む。各々のAPIsは、1つ又は複数の言語及びインターフェース仕様で実装することができる。
図示されるように、API0(212)は、グラフ・マネージャ(252)によって示される機能をサポートし可能にするように構成される。API0(212)は、2つ又はそれ以上の収集されたアプリケーション・アーティファクトに基づいて、1つ又は複数の依存関係グラフを生成するための機能的サポートを与え、API1(222)は、依存関係グラフと1つ又は複数の収集されたパイプライン・アーティファクトとの間の関係を捕捉し、検出されたアプリケーション変更の1つ又は複数のパイプライン・アーティファクトに対する影響をマッピングの形式で識別し、識別された影響に対応するマッピングされた変更をパイプラインにエンコードするための機能的サポートを与え、API2(232)は、変更に関してアプリケーションを監視するための機能的サポートを与え、API3(242)は、MLモデルを将来のプロセスのためにさらに訓練する能動学習法においてユーザ・フィードバックを利用するための機能的サポートを与える。図示されるように、APIs(212)、(222)、(232)、及び(242)の各々は、動作可能に、別に統合層として知られるAPIオーケストレータ(260)に結合され、その統合層は、当技術分野では、別々のAPIsを透過的に繋ぐための抽象化層として機能することが理解されている。一実施形態において、別々のAPIsの機能を結合又は組み合わせることができる。このように、本明細書において示されるAPIsの構成は、限定的であると考えるべきではない。従って、本明細書において示されるように、ツールの機能は、それらそれぞれのAPIsによって具体化又はサポートすることができる。
図3を参照すると、アプリケーション・アーティファクトとパイプライン・アーティファクトとの間の関係を決定するための影響分析を行うプロセスを示すフローチャート(300)が与えられる。図示されるように、2つ又はそれ以上のアプリケーション・アーティファクトが識別される(302)。アプリケーション・アーティファクトの例には、限定されるものではないが、アプリケーション・ソース・コード、試験コード、アプリケーション・プログラミング・インターフェース(API)仕様、アプリケーション構成、デプロイメント・スクリプト、及び変数が含まれる。アプリケーション・アーティファクトの識別に続いて、1つ又は複数のパイプライン・アーティファクト(単数又は複数)が識別される(304)。パイプライン・アーティファクトの例には、限定されるものではないが、能力、プロセス、及びコンポーネントが含まれる。識別されたアプリケーション・アーティファクトについて依存関係グラフが生成される(306)。各々の依存関係グラフは、アプリケーションの部分の間の関係を示し、より具体的には、グラフは、アプリケーション変更の各々の部分が、アプリケーションの1つ又は複数の他の部分又は関連するアプリケーションにどのような影響を与え得るかを明確に表す。例えば、アプリケーションの1つに対して検出された変更が、1つ又は複数の関連するアプリケーションの1つ又は複数のAPI試験を引き起こす可能性がある。従って、依存関係グラフは、アプリケーション・アーティファクトの相互依存関係を捕捉する。
依存関係グラフの作成に続いて、依存関係グラフに反映されるアプリケーション・アーティファクトと1つ又は複数のパイプライン・アーティファクト(単数又は複数)との間の影響分析が行われる(308)。一実施形態において、相関ルール学習アルゴリズムが、影響分析を行うために利用される。当技術分野においては、アプリケーション・アーティファクトは、1つ又は複数のパイプライン・アーティファクトと相互作用する場合があると理解されている。この相互作用は、アプリケーション・アーティファクトとパイプライン・アーティファクトとの間の直接的関係である場合も間接的関係である場合もある。影響分析は、直接的関係及び間接的関係の両方を捕捉する。より具体的には、影響分析は、種々のパイプライン・アーティファクト(単数又は複数)が存在する場合に、それに対応するアプリケーション・アーティファクトの直接的関係及び間接的関係の両方を示す。例えば、マッピングは、アプリケーションに対して検出された変更が、パイプライン・アーティファクトに関連付けられるマイクロ・サービスにどのように影響することになるかについて依存関係情報を提供することができる。アプリケーション・アーティファクトとパイプライン・アーティファクトとの間の関係を示す影響分析を用いて、1つ又は複数の関連するMLモデル(単数又は複数)を訓練する(310)。従って、本明細書で示されるステップは、アプリケーション・アーティファクトを収集すること及びパイプライン・アーティファクトを収集することと、アプリケーション・アーティファクトの直接的関係及び間接的関係を捕捉する依存関係グラフを作成することと、アプリケーション・アーティファクトとパイプライン・アーティファクトとの間の関係を決定する影響分析を行って1つ又は複数のMLモデル(単数又は複数)を訓練することとを示す。
図1に示され、記述されるように、MLマネージャ(154)は、パイプラインの最適化をサポートし可能にするために、1つ又は複数のMLモデル(単数又は複数)(164A)~(164N)をサポートし可能にするように機能する。図4を参照すると、パイプラインの自動的かつ選択的な最適化のためのプロセスを示すフローチャート(400)が与えられる。図示されるように、パイプラインは、マイクロ・サービスのリデプロイメントに影響するか又はそれを引き起こすことになる1つ又は複数のアプリケーション・アーティファクトのあらゆる変更を識別するために、監視される(402)。図3において作成された1つ又は複数のMLモデル(単数又は複数)を利用して、識別された変更が1つ又は複数のパイプライン・アーティファクト(単数又は複数)に関連するかどうかを評価する判定が行われる(404)。判定に対する否定的な応答は、どのパイプライン・アーティファクト(単数又は複数)も識別された変更による影響を受けず、パイプラインがその時点での構成に維持されること(406)を示し、次いで、継続する監視のためにステップ(402)に戻る。ステップ(404)における判定に対する肯定的な応答は、識別された変更が1つ又は複数のパイプライン・アーティファクトに影響を及ぼし、影響を受けたパイプライン・アーティファクトについてルールが作成されることを示す(408)。より具体的には、ステップ(408)において、各々の影響を受けたパイプライン・アーティファクトのサブルーチンを呼び出すように指示されるルールが作成される。例えば、ルール(単数又は複数)は、特定の影響を受けたパイプライン・アーティファクトのデプロイメント又はリデプロイメントを指示することができる。本明細書で示されるように、1つ又は複数のルールを作成することに加えて、ステップ(404)でなされた肯定的な判定からの対応する関係情報が、本明細書では、知識ベースに格納される(410)ように示されている。一実施形態においては、ステップ(408)におけるルールを更新することと、ステップ(410)における関係情報を格納することとが、並列に行われる場合がある。従って、1つ又は複数のマイクロ・サービスのリデプロイメントを引き起こす変更が識別され、この識別された変更が1つ又は複数のパイプライン・アーティファクト(単数又は複数)に影響を与えているかどうかを判定するための評価が行われる。
ステップ(408)に続いて、作成されたルールに基づいてフィードバックが収集され、対応するMLモデル(単数又は複数)に適用される(412)。一実施形態において、ステップ(412)で収集されたフィードバックは、サブジェクト・マター・エキスパート(SME)から発せられる。同様に、一実施形態において、収集されたフィードバックは、影響を受けたパイプライン・アーティファクトのデプロイメント又はリデプロイメントに対応する実時間データを含むことができる。一実施形態において、ステップ(412)におけるフィードバックの適用は任意である。作成されたルールは、パイプラインにエンコードされる(414)。依存関係パターンとも呼ばれる、作成されたルールと関連付けられるアプリケーション・アーティファクトとパイプライン・アーティファクトとの間の識別された関係は、将来のプロセスにおいて繰り返し可能なパターンを識別するために捕捉され(416)、捕捉された依存関係パターンは、MLモデルへのフィードバックとして知識ベースに格納される(418)。一実施形態において、データ処理を用いて、パイプライン・アーティファクトに関係するソフトウェア要素を識別することができる。識別されるパターンの一例は、アプリケーション・アーティファクト内の監視又は検出された変更に対応する1つ又は複数のマイクロ・サービスのデプロイメント又はリデプロイメントである。本明細書では、収集され、エンコードされたルールに組み入れられたあらゆるユーザ・フィードバック(420)も、知識ベースに格納される(418)ように示される。ステップ(416)における依存関係パターンの捕捉に続いて、エンコードされたルールを有するパイプラインがデプロイされる(422)。エンコードされたルールを有するパイプラインのデプロイメントは、ステップ(402)で識別された変更によって影響を受けるパイプライン・アーティファクトのみがリデプロイメントのためにパイプラインにエンコードされた、最適化されたパイプラインを作成する。最適化されたパイプラインは、信頼性のレベルを維持しながら、パイプラインのリデプロイメントのための効率的なプロセスを作成する。ステップ(422)に続いて、プロセスは、継続的監視のためにステップ(402)に戻る。従って、作成されたルールがパイプラインにエンコードされ、デプロイメントのための最適化されたパイプラインを作成する。
依存関係を学習することによって識別された変更に基づく自動的かつ選択的なパイプライン・アーティファクトを最適化する態様は、それぞれ図1及び図2に示されるツール及びAPIs、並びに図3及び図4に示されるプロセス、によって示され、説明される。機能ツール(152)、(154)、(156)、及び(158)並びにそれらに関連する機能の態様は、単一の場所におけるコンピュータ・システム/サーバに具体化することができ、或いは、一実施形態において、コンピューティング・リソースを共用するクラウド・ベースのシステムに配置することができる。図5を参照すると、図3及び図4に関して上述されたプロセスを実施するために、クラウド・ベースのサポート・システムと通信する、以後、ホスト(502)と呼ばれるコンピュータ・システム/サーバ(502)の一例を示すブロック図(500)が与えられている。ホスト(502)は、多くの他の汎用又は特定目的のコンピューティング・システム環境又は構成を用いて運用することができる。ホスト(502)による使用のために適切であり得る周知のコンピューティング・システム、環境若しくは構成又はこれらのすべての例には、限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルド又はラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能コンシューマ電子装置、ネットワークPCs、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上記のシステム、デバイス、及びそれらの等価物の何れかを含むファイル・システム(例えば、分散ストレージ環境及び分散クラウド・コンピューティング環境)を含むことができる。
ホスト(502)は、コンピュータ・システムによって実行されるプログラム・モジュールなどの、コンピュータ・システム実行可能命令の一般的文脈において説明することができる。一般に、特定のタスクを実行するか又は特定の抽象データ・タイプを実装するプログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。ホスト(502)は、通信ネットワークを通してリンクされる遠隔処理デバイスによってタスクが実行される分散クラウド・コンピューティング環境(510)で実施することができる。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔のコンピュータ・システム・ストレージ媒体のいずれにも配置することができる。
図5に示されるように、ホスト(502)は、汎用コンピューティング・デバイスの形態で示される。ホスト(502)のコンポーネントは、これらに限定されるものではないが、プロセッサ又は処理ユニット(504)、例えばハードウェア・プロセッサ、システム・メモリ(506)、及びシステム・メモリ(506)を含む種々のシステム・コンポーネントを処理ユニット(504)に結合するバス(508)を含むことができる。バス(508)は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの1つ又は複数を表すことができる。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロ・チャネル・アーキテクチャ(MCA:Micro Channel Architecture)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、及びPeripheral Component Interconnect(PCI)バスを含む。ホスト(502)は、一般的に、種々のコンピュータ・システム可読媒体を含み、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し媒体の両方とを含む。
メモリ(506)は、ランダム・アクセス・メモリ(RAM)(530)若しくはキャッシュ・メモリ(532)又はその両方など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体(図示されていず、一般的に「ハード・ドライブ」と呼ばれる)との間の読み出し及び書き込みのために、ストレージ・システム(534)を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピー・ディスク」)との間の読み出し及び書き込みのための磁気ディスク・ドライブと、CD-ROM、DVD-ROM又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、それぞれを、1つ又は複数のデータ媒体インターフェースによって、バス(508)に接続することができる。
限定ではなく例として、メモリ(506)内に、プログラム・モジュール(542)のセット(少なくとも1つ)を有するプログラム/ユーティリティ(540)、並びにオペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装を含むことができる。プログラム・モジュール(542)は、一般に、実施形態の機能若しくは方法又はその両方を実行し、依存関係を学習することによって識別された変更に基づくDevOpsアーティファクトを統合し、自動的に選択する。例えば、プログラム・モジュール(542)は、図1に示されるようなツール(152)、(154)、(156)及び(158)を含むことができる。
ホスト(502)は、キーボード、ポインティング・デバイスなどの1つ又は複数の外部デバイス(514)、ディスプレイ(524)、ユーザがホスト(502)と対話することを可能にする1つ又は複数のデバイス、若しくはホスト(502)が1つ又は複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデム等)又はそれらの組み合わせと通信することもできる。このような通信は、入力/出力(I/O)インターフェース(522)を介して行うことができる。さらにまた、ホスト(502)は、ネットワーク・アダプタ(520)を介して、ローカル・エリア・ネットワーク(LAN)、汎用広域ネットワーク(WAN)若しくは公衆ネットワーク(例えば、インターネット)又はそれらの組み合わせなどの1つ又は複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ(520)は、バス(508)を介して、ホスト(502)の他のコンポーネントと通信する。一実施形態において、分散型ファイル・システム(図示せず)の複数のノードが、I/Oインターフェース(522)を介して又はネットワーク・アダプタ(520)を介して、ホスト(502)と通信している。図示されないが、ホスト(502)と共に他のハードウェア・コンポーネント若しくはソフトウェア・コンポーネント又はその両方を使用できることを理解されたい。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システム等が含まれる。
本文書において、「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」及び「コンピュータ可読媒体」という用語は、一般に、RAM(530)、キャッシュ(532)及びストレージ・システム(534)などのメイン・メモリ、並びに取り外し可能ストレージ・ドライブ及びハードディスク・ドライブにインストールされたハードディスクといった媒体を指すために使用される。
コンピュータ・プログラム(コンピュータ制御論理とも呼ばれる)は、メイン・メモリ(506)に格納される。そのようなコンピュータ・プログラムは、実行されたときに、コンピュータ・システムが本明細書で論じられる本実施形態の特徴を実施することを可能にする。特に、コンピュータ・プログラムは、実行されたときに、処理ユニット(504)がコンピュータ・システムの特徴を実施することを可能にする。従って、そのようなコンピュータ・プログラムは、コンピュータ・システムのコントローラを表す。
一実施形態において、ホスト(502)は、クラウド・コンピューティング環境のノードである。当技術分野において周知のように、クラウド・コンピューティングは、最小限の管理労力又はサービスのプロバイダとの対話で迅速にプロビジョニングし、かつ解放することができる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの、便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、及び少なくとも4つのデプロイメント・モデルを含むことができる。そうした特徴の例は、以下の通りである。
オンデマンド・セルフ・サービス:クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソース・プール化:プロバイダのコンピューティング・リソースは、マルチテナントモデルを用いて複数のコンシューマにサービスを提供するためにプールされ、異なる物理及び仮想リソースが要求に応じて動的に割り当て及び再割り当てされる。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を持たないという点で、位置とは独立しているといえるが、より抽象化レベルの高い位置(例えば、国、州、又はデータセンタ)を特定できる場合がある。
迅速な弾力性:機能を、迅速かつ弾力的に、場合によっては自動的に、プロビジョニングしてすばやくスケールアウトし、迅速に解放して素早くスケールインすることができる。コンシューマにとって、プロビジョニングに利用可能な機能は、多くの場合、無制限であるように見え、いつでもどんな量でも購入できる。
計測されるサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告して、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
サービス・モデルは、以下の通りである。
Software as a Service(SaaS):コンシューマに提供される機能は、クラウド・インフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。これらのアプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインターフェースを通じて、種々のクライアントデバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を想定される例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション能力機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):コンシューマに提供される機能は、プロバイダによってサポートされるプログラミング言語及びツールを用いて作成された、コンシューマが作成又は取得したアプリケーションを、クラウド・インフラストラクチャ上にデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージを含む基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、デプロイされたアプリケーション、及び場合によってはアプリケーションをホストする環境構成を制御する。
Infrastructure as a Service(IaaS):コンシューマに提供される機能は、コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアをデプロイして実行させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションに対する制御、及び場合によってはネットワークコンポーネント(例えば、ホストのファイアウォール)選択に対する限定された制御を有する。
デプロイメント・モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。これは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。これは、それらの組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループによって利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションのポータビリティを可能にする標準化技術又は専用技術(例えば、クラウド間の負荷平衡のためのクラウドバースティング)によって互いに結び付けられた、2つ又はそれより多いクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
クラウド・コンピューティング環境は、サービス指向であり、ステートレス性、低結合性、モジュール性、及びセマンティック相互運用性に焦点を置く。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで図6を参照すると、例示的なクラウド・コンピューティング環境(600)が示される。図示のように、クラウド・コンピューティング環境(600)は、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信できる1つ又は複数のクラウド・ノード(610)を有するクラウド・コンピューティング環境(650)を含む。これらのローカル・コンピューティング・デバイスの例として、これらに限定されるものではないが、携帯情報端末(PDA)若しくは携帯電話(654A)、デスクトップコンピュータ(654B)、ラップトップ・コンピュータ(654C)、若しくは自動車コンピュータ・システム(654N)又はそれらの組み合わせが挙げられる。ノード(610)内の個々のノードはさらに、互いに通信することができる。それらのノード(610)は、上述されるプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、又はハイブリッド・クラウド、又はその組み合わせなどの、1つ又は複数のネットワークにおいて物理的に又は仮想的にグループ化することができる。このことは、クラウド・コンピューティング環境(600)が、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないInfrastructure as a Service、Platform as a Service若しくはSoftware as a Service又はその組み合わせを提供することを可能にする。図6に示されるコンピューティング・デバイス(654A~N)のタイプは、単に例示的であることが意図され、クラウド・コンピューティング環境(650)は、任意のタイプのネットワーク若しくはネットワーク・アドレス指定可能な接続又はその両方を介して、任意のタイプのコンピュータ化されたデバイスと通信することが可能である(例えば、ウェブブラウザを用いて)ことが理解される。
ここで図7を参照すると、図6のクラウド・コンピューティング・ネットワークによって提供される機能抽象化層(700)のセットが示される。図7に示されるコンポーネント、層及び機能は単に例示であることを意図し、本発明の実施形態はそれらに限定されないことを予め理解されたい。示されるように、以下の層及び対応する機能、すなわち、ハードウェア及びソフトウェア層(710)、仮想化層(720)、管理層(730)及び作業負荷層(740)が提供される。
ハードウェア及びソフトウェア層(710)は、ハードウェア・コンポーネント及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、IBM(登録商標)zSeries(登録商標)システムを一例とするメインフレームと、IBM pSeries(登録商標)システムを一例とするRISC(Reduced Instruction Set Computer(縮小命令セット・コンピュータ))アーキテクチャ・ベースのサーバと、IBM xSeries(登録商標)システムと、IBM BladeCenter(登録商標)システムと、ストレージ・デバイスと、ネットワーク及びネットワーキング・コンポーネントとが含まれる。ソフトウェア・コンポーネントの例として、IBM WebSphere(登録商標)アプリケーション・サーバ・ソフトウェアを一例とするネットワーク・アプリケーション・サーバ・ソフトウェアと、IBM DB2(登録商標)データベース・ソフトウェアを一例とするデータベース・ソフトウェアとが含まれる。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere、及びDB2は、世界中の多数の管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。)
仮想化層(720)は、抽象化層を提供し、この層により、仮想エンティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーション及びオペレーティング・システム、並びに仮想クライアントを提供することができる。
一例においては、管理層(730)は、以下で説明される機能、すなわち、リソース・プロビジョニング、計量及び価格決定、ユーザ・ポータル、サービス・レベル管理、及びSLA計画及び履行を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格決定は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡と、これらのリソースの消費に対する課金又は請求とを提供する。一例においては、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクに対する識別情報の検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータルは、コンシューマ及びシステム管理者のために、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、要求されるサービス層が満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス層アグリーメント(Service Layer Agreement、SLA)の計画及び履行は、SLAに従って将来的な必要性が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
作業負荷層(740)は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができる作業負荷及び機能の例として、これらに限定されるものではないが、マッピング及びナビゲーション、ソフトウェア開発及びライフサイクル管理、仮想教室教育配信、データ分析処理、トランザクション処理、及び自動的かつ選択的なパイプラインの最適化が挙げられる。
本実施形態の特定の実施形態について示し、説明したが、実施形態及びそのより広い態様から逸脱することなく、本明細書の教示に基づいて変更および修正を行うことができることが当業者には明らかであろう。従って、添付の特許請求の範囲は、実施形態の真の趣旨及び範囲内にあるような全てのそのような変更および修正をその範囲内に包含するものである。さらに、実施形態は、添付の特許請求の範囲によってのみ定められることを理解されたい。特定の数の導入された請求項の要素が意図される場合、そのような意図は請求項に明示的に記載され、そのような記載がない場合、そのような限定は存在しないことが当業者によって理解されるであろう。限定されたい例において、理解を助けるものとして、以下の添付の特許請求の範囲は、請求項要素を導入するための導入句「少なくとも1つの」及び「1つ又は複数の」の使用を含む。しかしながら、そのような句の使用は、不定冠詞「1つの(a)」又は「1つの(an)」による請求項要素の導入が、そのような導入された請求項要素を含むいずれかの特定の請求項を、それが導入句「1つ又は複数」又は「少なくとも1つの」と、「1つ(a)」又は「1つ(an)」などの不定冠詞とを含む場合でも、そのような要素を1つだけ含む実施形態に限定することを意味すると解釈されるべきではない。同じことが特許請求の範囲の定冠詞の使用にも当てはまる。
本発明は、システム、方法若しくはコンピュータ・プログラム製品又はそれらの組み合わせを含むことができる。さらに、本実施形態の選択された態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等)、又はソフトウェア若しくはハードウェアの態様又はその両方の態様を含む実施形態の形を取ることができ、本明細書では、それらを全て一般的に「回路」、「モジュール」又は「システム」と呼ぶことができる。さらに、本実施形態の態様は、プロセッサに本実施形態の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(単数又は複数)に具体化されたコンピュータ・プログラム製品の形を取ることができる。このように具体化され、開示されたシステム、方法若しくはコンピュータ・プログラム製品、又はそれらの組み合わせは、AIプラットフォームの機能及び動作を改善して、依存関係を学習することによって識別された変更に基づくDevOpsアーティファクト自動的かつ選択的に最適化するように動作可能である。
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ダイナミック又はスタティック・ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、次期ストレージ・デバイス、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカード若しくは命令がそこに記録された溝内の***構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク若しくは無線ネットワーク、又はそれらの組み合わせなどのネットワークを介して、外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、若しくはエッジ・サーバ、又はそれらの組み合わせを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び、「C」プログラミング言語若しくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述されるソース・コード又はオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネットサービスプロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路を個別化することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図若しくはブロック図又はその両方を参照して説明される。フローチャート図若しくはブロック図又はその両方の各ブロック、並びにフローチャート図若しくはブロック図又はその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
これらのコンピュータ可読プログラム命令を、コンピュータのプロセッサ、又は他のプログラム可能データ処理装置に与えて機械を製造し、それにより、コンピュータのプロセッサ又は他のプログラム可能データ処理装置によって実行される命令が、フローチャート若しくはブロック図又はその両方の1つ又は複数のブロック内で指定された機能/動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、特定の方式で機能するように、コンピュータ、プログラム可能データ処理装置若しくは他のデバイス又はその組み合わせに指示することができるコンピュータ可読媒体内に格納し、それにより、そこに命令が格納されたコンピュータ可読ストレージ媒体が、フローチャート若しくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製品を含むようにすることもできる。
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャート若しくはブロック図又は両方の1つ又は複数のブロックにおいて指定された機能/動作を実施するようにすることもできる。
図面内のフローチャート及びブロック図は、本発明の様々な実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、関与する機能に応じて、連続して示される2つのブロックが実際には同時に、実質的に同時に、部分的又は全体に時間的に重複する方法で実行されることもあり、又はこれらのブロックが場合によって逆順で実行されることもある。ブロック図若しくはフローチャート図又は両方の各ブロック、及びブロック図若しくはフローチャート図又はその両方におけるブロックの組み合わせは、指定された機能又は動作を実行する、又は、専用ハードウェアとコンピュータ命令との組み合わせを実行する特定用途向けハードウェア・ベースのシステムによって実装できることにも留意されたい。
本明細書において、特定の実施形態が例示のために説明されたが、実施形態の趣旨及び範囲から逸脱することなく、種々の変更を行うことができる。特に、知識ベースは、局所化しても、遠隔にあっても、多数のシステムにわたって散在してもよい。従って、実施形態の保護の範囲は、以下の特許請求の範囲及びその均等物によってのみ限定される。
Claims (20)
- メモリと動作可能に結合された処理ユニットと、
前記処理ユニットと動作可能に結合され、ソフトウェア開発及び運用(DevOps)のための継続的インテグレーション及び継続的デプロイメント(CI/CD)パイプラインをサポートする1つ又は複数のツールで構成された、人工知能(AI)プラットフォームと
を備え、
前記1つ又は複数のツールは、
2つ又はそれより多いアプリケーション・アーティファクトに基づいて1つ又は複数の依存関係グラフを生成するグラフ・マネージャと、
前記グラフ・マネージャと動作可能に結合された機械学習(ML)マネージャであって、MLモデルを利用して、前記1つ又は複数の依存関係グラフと1つ又は複数のパイプライン・アーティファクトとの間の関係を捕捉する、MLマネージャと、
前記アプリケーション・アーティファクトの1つ又は複数に対する変更を検出するモニタと
を含み、
前記検出された変更に応じて、前記MLマネージャが、
前記捕捉された関係を利用して、前記1つ又は複数のパイプライン・アーティファクトに対する前記検出された変更の影響を識別することと、
前記識別された影響に応じて、前記パイプラインを選択的に最適化することであって、前記最適化は前記識別された影響に対応するマッピングされた変更を前記パイプラインに自動的にエンコードすることを含む、最適化することと
を行い、
前記処理ユニットは、前記最適化されたパイプラインを実行する、
コンピュータ・システム。 - 前記1つ又は複数のパイプライン・アーティファクトに対する前記検出された変更の影響の前記識別は、前記MLマネージャが、前記影響の尺度を作成し、前記尺度を用いて前記パイプラインにおける前記アプリケーション・アーティファクトの変更の結果を予測することをさらに含む、請求項1に記載のコンピュータ・システム。
- 前記最適化されたパイプラインのあらゆる依存関係パターンを捕捉するフィードバック・マネージャをさらに含む、請求項1に記載のコンピュータ・システム。
- 実時間データ及び実時間データ・フィードバックを捕捉し、前記捕捉されたデータを利用して前記MLモデルを訓練する能動学習法を採用する前記フィードバック・マネージャをさらに含む、請求項3に記載のコンピュータ・システム。
- 前記アプリケーション・アーティファクトは、ソース・コード、試験コード、アプリケーション・プログラミング・インターフェース(API)仕様、構成、デプロイメント・スクリプト、又はそれらの組み合わせを含む、請求項1に記載のコンピュータ・システム。
- 前記1つ又は複数の依存関係グラフと前記1つ又は複数のパイプライン・アーティファクトとの間の前記捕捉された関係は、前記アプリケーション・アーティファクトと前記1つ又は複数のパイプライン・アーティファクトとの間の影響の依存関係を表す、請求項1に記載のコンピュータ・システム。
- 前記1つ又は複数のパイプライン・アーティファクトの各々は、対応する依存関係グラフを有する、請求項1に記載のコンピュータ・システム。
- ソフトウェア開発及び運用(DevOps)のための継続的インテグレーション及び継続的デプロイメント(CI/CD)パイプラインをサポートするためのコンピュータ・プログラム製品であって、プログラム・コードが具体化されたコンピュータ可読ストレージ媒体を備え、
前記プログラム・コードは、
2つ又はそれより多いアプリケーション・アーティファクトに基づいて、1つ又は複数の依存関係グラフを生成し、
機械学習(ML)モデルを利用して、前記1つ又は複数の依存関係グラフと1つ又は複数のパイプライン・アーティファクトとの間の関係を捕捉し、
前記アプリケーション・アーティファクトの1つ又は複数に対する変更を検出し、
前記検出された変更に応じて、前記MLモデルが、
前記捕捉された関係を利用して、前記1つ又は複数のパイプライン・アーティファクトに対する前記検出された変更の影響を識別することと、
前記識別された影響に応じて、前記パイプラインを選択的に最適化することであって、前記最適化は前記識別された影響に対応するマッピングされた変更を前記パイプラインに自動的にエンコードすることを含む、最適化することと
を行い、
前記最適化されたパイプラインを実行する
ように、プロセッサによって実行可能である、
コンピュータ・プログラム製品。 - 前記1つ又は複数のパイプライン・アーティファクトに対する前記検出された変更の影響の前記識別は、前記影響の尺度を作成し、前記尺度を用いて前記パイプラインにおける前記アプリケーション・アーティファクトの変更の結果を予測するプログラム・コードをさらに含む、請求項8に記載のコンピュータ・プログラム製品。
- 前記最適化されたパイプラインのあらゆる依存関係パターンを捕捉するプログラム・コードをさらに含む、請求項8に記載のコンピュータ・プログラム製品。
- 実時間データ及び実時間データ・フィードバックを捕捉し、前記捕捉されたデータを利用して前記MLモデルを訓練する能動学習法を採用するプログラム・コードをさらに含む、請求項10に記載のコンピュータ・プログラム製品。
- 前記アプリケーション・アーティファクトは、ソース・コード、試験コード、アプリケーション・プログラミング・インターフェース(API)仕様、構成、デプロイメント・スクリプト、又はそれらの組み合わせを含む、請求項8に記載のコンピュータ・プログラム製品。
- 前記アプリケーション・アーティファクトは、ソース・コード、試験コード、アプリケーション・プログラミング・インターフェース(API)仕様、構成、デプロイメント・スクリプト、又はそれらの組み合わせを含む、請求項8に記載のコンピュータ・プログラム製品。
- 前記1つ又は複数の依存関係グラフと前記1つ又は複数のパイプライン・アーティファクトとの間の前記捕捉された関係は、前記アプリケーション・アーティファクトと前記1つ又は複数のパイプライン・アーティファクトとの間の影響の依存関係を表す、請求項8に記載のコンピュータ・プログラム製品。
- 前記1つ又は複数のパイプライン・アーティファクトの各々は、対応する依存関係グラフを有する、請求項8に記載のコンピュータ・プログラム製品。
- 2つ又はそれより多いアプリケーション・アーティファクトに基づいて、1つ又は複数の依存関係グラフを生成することと、
機械学習(ML)モデルを利用して、前記依存関係グラフと1つ又は複数のパイプライン・アーティファクトとの間の関係を捕捉することと、
前記アプリケーション・アーティファクトの1つ又は複数に対する変更を検出することと、
前記検出された変更に応じて、前記MLモデルが、
前記捕捉された関係を利用して、前記1つ又は複数のパイプライン・アーティファクトに対する前記検出された変更の影響を識別することと、
前記識別された影響に応じて、継続的インテグレーション及び継続的デプロイメント(CI/CD)パイプラインを選択的に最適化することであって、前記最適化は前記識別された影響に対応するマッピングされた変更を前記パイプラインに自動的にエンコードすることを含む、最適化することと
を行い、
前記最適化されたパイプラインを実行することと
を含む方法。 - 前記1つ又は複数のパイプライン・アーティファクトに対する前記検出された変更の影響を識別することは、前記MLモデルが、前記影響の尺度を作成し、前記尺度を用いて前記パイプラインにおける前記アプリケーション・アーティファクト変更の結果を予測することをさらに含む、請求項16に記載の方法。
- 前記最適化されたパイプラインのあらゆる依存関係パターンを捕捉することと、実時間データ及び実時間データ・フィードバックを捕捉し、前記捕捉されたデータを利用して前記MLモデルを訓練する能動学習法を採用することとをさらに含む、請求項16に記載の方法。
- 前記アプリケーション・アーティファクトは、ソース・コード、試験コード、アプリケーション・プログラミング・インターフェース(API)仕様、構成、デプロイメント・スクリプト、又はそれの組み合わせを含む、請求項16に記載の方法。
- 前記1つ又は複数の依存関係グラフと前記1つ又は複数のパイプライン・アーティファクトとの間の前記捕捉された関係は、前記アプリケーション・アーティファクトと前記1つ又は複数のパイプライン・アーティファクトとの間の影響の依存関係を表す、請求項16に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/877,599 | 2020-05-19 | ||
US16/877,599 US11144289B1 (en) | 2020-05-19 | 2020-05-19 | Dynamic automation of selection of pipeline artifacts |
PCT/CN2021/094329 WO2021233281A1 (en) | 2020-05-19 | 2021-05-18 | Dynamic automation of selection of pipeline artifacts |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023527700A true JP2023527700A (ja) | 2023-06-30 |
Family
ID=78007786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022568536A Pending JP2023527700A (ja) | 2020-05-19 | 2021-05-18 | パイプライン・アーティファクトの選択の動的自動化 |
Country Status (10)
Country | Link |
---|---|
US (1) | US11144289B1 (ja) |
JP (1) | JP2023527700A (ja) |
KR (1) | KR20230002702A (ja) |
CN (1) | CN115668129A (ja) |
AU (1) | AU2021273796B2 (ja) |
CA (1) | CA3174819A1 (ja) |
DE (1) | DE112021002820T5 (ja) |
GB (1) | GB2610984A (ja) |
IL (1) | IL297210A (ja) |
WO (1) | WO2021233281A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11620454B2 (en) * | 2020-02-05 | 2023-04-04 | Hatha Systems, LLC | System and method for determining and representing a lineage of business terms and associated business rules within a software application |
US11915007B2 (en) * | 2021-06-08 | 2024-02-27 | Red Hat, Inc. | CI/CD pipeline to container conversion |
US12001327B2 (en) * | 2021-07-08 | 2024-06-04 | Red Hat, Inc. | Execution platform assignments in CI/CD systems |
US11645069B2 (en) * | 2021-08-26 | 2023-05-09 | International Business Machines Corporation | Synchronizing access controls for audited code development |
US11842188B2 (en) * | 2021-10-29 | 2023-12-12 | Red Hat, Inc. | Continuous integration and deployment pipeline selection based on dynamic mapping |
US20230379349A1 (en) * | 2022-05-17 | 2023-11-23 | Applied Research Associates, Inc. | Secure and repeatable deployment to an air-gapped system |
US11558254B1 (en) * | 2022-06-23 | 2023-01-17 | Kong Inc. | Configuration hash comparison |
US11758010B1 (en) * | 2022-09-14 | 2023-09-12 | International Business Machines Corporation | Transforming an application into a microservice architecture |
CN118314843A (zh) | 2023-01-09 | 2024-07-09 | Lx半导体科技有限公司 | 显示驱动设备和显示驱动方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294364A1 (en) | 2006-06-15 | 2007-12-20 | International Business Machines Corporation | Management of composite software services |
US8745585B2 (en) * | 2011-12-29 | 2014-06-03 | Unisys Corporation | Meta-data for single development test environment |
US20130174124A1 (en) * | 2011-12-29 | 2013-07-04 | Christina Watters | Version numbering in single development and test environment |
CN104520818A (zh) * | 2012-08-13 | 2015-04-15 | 惠普发展公司,有限责任合伙企业 | 连续部署管道中的性能测试 |
US9588876B2 (en) * | 2014-08-01 | 2017-03-07 | Microsoft Technology Licensing, Llc | Estimating likelihood of code changes introducing defects |
US9710258B2 (en) | 2015-05-27 | 2017-07-18 | International Business Machines Corporation | Identifying cause of incidents in the DevOps environment automatically |
US9612821B2 (en) | 2015-07-02 | 2017-04-04 | International Business Machines Corporation | Predicting the success of a continuous software deployment pipeline |
US10146673B2 (en) * | 2015-11-04 | 2018-12-04 | Sap Portals Israel Ltd. | Source code change resolver |
WO2017112801A1 (en) | 2015-12-21 | 2017-06-29 | Amazon Technologies, Inc. | Live pipeline templates-template creation and extensibility |
CN105631602A (zh) | 2016-01-11 | 2016-06-01 | ***通信集团广东有限公司 | 一种基于DevOps的业务级运维平台 |
CN105976421B (zh) | 2016-04-21 | 2018-06-19 | 浙江大学 | 一种渲染程序的在线优化方法 |
US10120668B2 (en) | 2016-06-27 | 2018-11-06 | Vmware, Inc. | Optimizing resource usage and automating a development and operations deployment pipeline |
US20180032322A1 (en) | 2016-07-29 | 2018-02-01 | Hewlett Packard Enterprise Development Lp | Automated devops application deployment |
US10157052B2 (en) * | 2016-09-29 | 2018-12-18 | Sap Se | Software change management |
US20180130024A1 (en) | 2016-11-08 | 2018-05-10 | Facebook, Inc. | Systems and methods to identify resumes based on staged machine learning models |
CN106997297A (zh) | 2017-03-31 | 2017-08-01 | 广东亿迅科技有限公司 | 一种基于DevOps的软件开发管理平台及方法 |
US10977005B2 (en) | 2017-06-14 | 2021-04-13 | International Business Machines Corporation | Congnitive development of DevOps pipeline |
US10635566B1 (en) * | 2017-07-31 | 2020-04-28 | Cisco Technology, Inc. | Predicting code change impact within an integrated development environment |
US11449677B2 (en) | 2018-10-18 | 2022-09-20 | International Business Machines Corporation | Cognitive hierarchical content distribution |
CN109583839A (zh) | 2018-12-03 | 2019-04-05 | 广东鸭梨科技集团股份有限公司 | 一种基于DevOps的研发管理***和方法 |
-
2020
- 2020-05-19 US US16/877,599 patent/US11144289B1/en active Active
-
2021
- 2021-05-18 DE DE112021002820.0T patent/DE112021002820T5/de active Pending
- 2021-05-18 WO PCT/CN2021/094329 patent/WO2021233281A1/en active Application Filing
- 2021-05-18 CA CA3174819A patent/CA3174819A1/en active Pending
- 2021-05-18 KR KR1020227039671A patent/KR20230002702A/ko active Search and Examination
- 2021-05-18 GB GB2218625.8A patent/GB2610984A/en active Pending
- 2021-05-18 AU AU2021273796A patent/AU2021273796B2/en active Active
- 2021-05-18 IL IL297210A patent/IL297210A/en unknown
- 2021-05-18 JP JP2022568536A patent/JP2023527700A/ja active Pending
- 2021-05-18 CN CN202180036221.2A patent/CN115668129A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE112021002820T5 (de) | 2023-04-20 |
CA3174819A1 (en) | 2021-11-25 |
WO2021233281A1 (en) | 2021-11-25 |
GB2610984A (en) | 2023-03-22 |
GB202218625D0 (en) | 2023-01-25 |
KR20230002702A (ko) | 2023-01-05 |
US11144289B1 (en) | 2021-10-12 |
AU2021273796B2 (en) | 2023-07-20 |
CN115668129A (zh) | 2023-01-31 |
IL297210A (en) | 2022-12-01 |
AU2021273796A1 (en) | 2022-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11379347B2 (en) | Automated test case generation for deep neural networks and other model-based artificial intelligence systems | |
JP2023527700A (ja) | パイプライン・アーティファクトの選択の動的自動化 | |
US11429434B2 (en) | Elastic execution of machine learning workloads using application based profiling | |
US11237806B2 (en) | Multi objective optimization of applications | |
US10545847B2 (en) | Grouping and isolating software changes to increase build quality | |
US11436129B2 (en) | System, method and recording medium for generating mobile test sequences | |
US11100233B2 (en) | Optimizing operating system vulnerability analysis | |
US11568242B2 (en) | Optimization framework for real-time rendering of media using machine learning techniques | |
US11061739B2 (en) | Dynamic infrastructure management and processing | |
US11972382B2 (en) | Root cause identification and analysis | |
US11288601B2 (en) | Self-learning selection of information-analysis runtimes | |
US20220358358A1 (en) | Accelerating inference of neural network models via dynamic early exits | |
US11017874B2 (en) | Data and memory reorganization | |
US20230077708A1 (en) | Microservice measurement and merging | |
US20220215286A1 (en) | Active learning improving similar task recommendations | |
US11614963B2 (en) | Machine learning based runtime optimization | |
US20230137184A1 (en) | Incremental machine learning for a parametric machine learning model | |
US11789774B2 (en) | Optimization of workload scheduling in a distributed shared resource environment | |
CN117716373A (zh) | 基于期望的度量值提供机器学习模型 | |
US20220122038A1 (en) | Process Version Control for Business Process Management | |
US11188317B2 (en) | Classical artificial intelligence (AI) and probability based code infusion | |
JP2022067642A (ja) | マイクロサービス識別を向上させるためにリファクタリングを識別および優先順位付するためのコンピュータシステム、コンピュータプログラムおよび方法(マイクロサービス識別を向上させるためにリファクタリングを識別および優先順位付するための方法およびシステム) | |
JP2023521695A (ja) | 空間的閉じ込め制約を伴う協調型ニューラル・ネットワーク | |
US11429381B1 (en) | Software application refactoring and modification | |
JP2023051815A (ja) | システム、コンピュータに実装された方法及びコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221122 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231026 |