JP2023547354A - Share insights between pre- and post-deployment to enhance cloud workload security - Google Patents

Share insights between pre- and post-deployment to enhance cloud workload security Download PDF

Info

Publication number
JP2023547354A
JP2023547354A JP2023522553A JP2023522553A JP2023547354A JP 2023547354 A JP2023547354 A JP 2023547354A JP 2023522553 A JP2023522553 A JP 2023522553A JP 2023522553 A JP2023522553 A JP 2023522553A JP 2023547354 A JP2023547354 A JP 2023547354A
Authority
JP
Japan
Prior art keywords
software system
performance
generated
software
alerts
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
JP2023522553A
Other languages
Japanese (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 JP2023547354A publication Critical patent/JP2023547354A/en
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3616Software analysis for verifying properties of programs using software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics

Abstract

実施形態は、総体的なクラウド・ワークロード・セキュリティを改善するように、クラウド・ワークロード・セキュリティ・システムにより、より正確および処理可能な警告を提供し得る技術を提供し得る。例えば、一実施形態において、方法は、プロセッサと、プロセッサによりアクセス可能なメモリと、メモリ内に記憶されプロセッサにより実行可能なコンピュータ・プログラム命令とを含むコンピュータ・システムにおいて実現することができる。方法は、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの開発中に生成することと、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成することと、ソフトウェア・システムの開発中に生成された性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成された性能およびセキュリティ情報と照合することとにより、エスカレーションすべき性能およびセキュリティ警告を決定することと、エスカレーションされた性能およびセキュリティ警告を報告することとを含み得る。Embodiments may provide techniques that may provide more accurate and actionable alerts by cloud workload security systems to improve overall cloud workload security. For example, in one embodiment, the method may be implemented in a computer system that includes a processor, memory accessible by the processor, and computer program instructions stored in the memory and executable by the processor. The method includes generating performance and security information related to a software system during development of the software system and generating performance and security information related to the software system during operation after deployment of the software system. performance and security information that should be escalated by checking the performance and security information generated during the development of the software system with the performance and security information generated during the post-deployment operation of the software system. The methods may include determining warnings and reporting escalated performance and security warnings.

Description

本発明は、総体的なクラウド・ワークロード・セキュリティを改善するように、クラウド・ワークロード・セキュリティ・システムにより、より正確および処理可能(actionable)な警告を提供し得る技術に関する。 The present invention relates to techniques that may provide more accurate and actionable alerts by cloud workload security systems to improve overall cloud workload security.

クラウド・ワークロード・セキュリティは、今日最も急速に高まっているセキュリティ関心事のうちの1つである。ラン・タイム・ワークロード・セキュリティ・システムが生み出す警告は、しばしば、偽陽性の割合が高い。偽陽性割合が高いことにより、システムが多くの陽性警告を無視すると、一部の真陽性を見逃すことが生じ得る。結果として、多くの攻撃がセキュリティ防御を回避し得ることになる。さらには、展開前セキュリティ試験で同じ問題に悩まされる結果、展開前セキュリティ試験における偽陽性警告の多さに起因して、時には真陽性(正当な警告)が無視される、または、検証されない、あるいはその両方であることがある。 Cloud workload security is one of today's fastest growing security concerns. Alerts generated by run-time workload security systems often have a high rate of false positives. A high false positive rate may cause the system to ignore many positive alerts and miss some true positives. As a result, many attacks are able to evade security defenses. Furthermore, pre-deployment security testing suffers from the same issues, resulting in a high number of false positive warnings in pre-deployment security testing, where sometimes true positives (legitimate warnings) are ignored or unverified, or Sometimes it's both.

よって、総体的なクラウド・ワークロード・セキュリティを改善するように、クラウド・ワークロード・セキュリティ・システムにより、より正確および処理可能な警告を提供し得る技術が必要性とされる。 Thus, there is a need for techniques that can provide more accurate and actionable alerts by cloud workload security systems to improve overall cloud workload security.

実施形態は、総体的なクラウド・ワークロード・セキュリティを改善するように、クラウド・ワークロード・セキュリティ・システムにより、より正確および処理可能な警告を提供し得る技術を提供することができる。 Embodiments may provide techniques that may provide more accurate and actionable alerts by cloud workload security systems to improve overall cloud workload security.

実施形態は、より正確および処理可能な警告を提供するために、クラウド・ソフトウェア・システムの開発試験(展開前)およびランタイム(展開後)モニタリングを組み合わせ、以て、展開前ソフトウェア環境と展開後ソフトウェア環境との間のインサイトを共有することができる。例えば、アプリケーション・ログ分析などのプロセスを用いて、インサイトを共有することができる。同じように、コール・グラフを用いて、ローカル・ログ・シーケンスを共有することができる。さらに、エラー・ハンドリングをセキュリティ弱点についての指示として用いることができる。 Embodiments combine development testing (pre-deployment) and run-time (post-deployment) monitoring of cloud software systems to provide more accurate and actionable alerts, thereby providing a comprehensive overview of the pre-deployment software environment and the post-deployment software environment. You can share insights with your environment. For example, insights can be shared using processes such as application log analysis. Similarly, call graphs can be used to share local log sequences. Additionally, error handling can be used as an indication of security weaknesses.

例えば、一実施形態において、方法は、プロセッサと、プロセッサによりアクセス可能なメモリと、メモリ内に記憶されプロセッサにより実行可能なコンピュータ・プログラム命令とを含むコンピュータ・システムにおいて実現することができ、方法は、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの開発中に生成することと、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成することと、ソフトウェア・システムの開発中に生成された性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成された性能およびセキュリティ情報と照合する(match)ことにより、エスカレーションすべき性能およびセキュリティ警告を決定することと、エスカレーションされた性能およびセキュリティ警告を報告することとを含み得る。 For example, in one embodiment, the method can be implemented in a computer system that includes a processor, a memory accessible by the processor, and computer program instructions stored in the memory and executable by the processor, the method , generating performance and security information related to the software system during the development of the software system; and generating performance and security information related to the software system during post-deployment operation of the software system. and performance and security information that should be escalated by matching performance and security information generated during software system development with performance and security information generated during the software system's deployed operation. The methods may include determining warnings and reporting escalated performance and security warnings.

実施形態において、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの開発中に生成することは、ソフトウェア・システムの開発中にソフトウェア・システムのコードの静的および動的試験を実施することにより、試験中に生成された警告の履歴を収集すること、ソフトウェア・システムの開発中にソフトウェア・システムのコードのサブシステムの動的試験を実施することにより、生み出された警告についてのアプリケーション・ログを生成すること、ならびに、ソフトウェア・システムの開発中にソフトウェア・システムのコードのユニットの動的試験を実施することにより、生み出された警告についてのエラー・ハンドリング・ログを生成することのうちの少なくとも1つを含み得る。方法は、ソフトウェア・システムにおけるルーチンどうしの間のコーリング関係性を表す生成されたコール・グラフを使用して、生成された各警告を中間ログ・シーケンスと関連付けることをさらに含み得る。ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成することは、ソフトウェアの展開後の動作をモニタリングし、モニタリングにより生み出された警告を収集することを含み得る。ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成することは、構成変更に関する情報、または、構成変更に関する警告、あるいはその両方を収集することを含むことができ、照合することは、収集された、構成変更に関する情報、または、構成変更に関する警告、あるいはその両方を、ソフトウェア・システムの展開後の動作中に生成された性能およびセキュリティ情報と照合するにより、エスカレーションすべき性能およびセキュリティ警告を決定することを含む。ソフトウェア・システムの開発中に生成された性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成された性能およびセキュリティ情報と照合することは、試験中に生成された警告の履歴を使用して、モニタリングにより生み出された警告の根本原因を決定することと、モニタリングにより生み出された警告の根本原因が、試験中に生成された警告の履歴中の近時の警告と照応するときに、モニタリングにより生み出された警告をエスカレーションすること、または、モニタリングにより生み出された警告と、試験中に生成された警告の履歴中の警告の両方をエスカレーションすることとを含み得る。モニタリングにより生み出された警告の根本原因を警告履歴中の近時の警告と照合することは、類似のログ・シーケンスまたはログ・グループに基づき、且つ、機械学習技術を使用して実施可能である。ソフトウェア・システムの開発中に生成された性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成された性能およびセキュリティ情報と照合することは、類似のログ・シーケンスまたはログ・グループに基づき、且つ、機械学習技術を使用して実施される、モニタリングにより生み出された警告の根本原因を警告履歴中の近時の警告と照合することと、近時の時間窓を使用してアプリケーション・ログを調査することにより、試験中に生成される警告のユニット試験エラー・ハンドリング・ログを、モニタリングにより生み出された警告と照合し、問題の既知のログ・シグネチャとの照応を探索し、少なくとも1つの照応が発見されると、モニタリングにより生み出された警告の重大度をエスカレーションすることと、モニタリングにより生み出された警告に関係する情報を、試験中に生成された警告を生じさせるソース・コードと関連付けることとをさらに含み得る。 In embodiments, generating performance and security information related to a software system during development of the software system includes performing static and dynamic testing of code of the software system during development of the software system. By collecting a history of warnings generated during testing, and by performing dynamic testing of subsystems of the software system's code during the development of the software system, generating logs and error handling logs for warnings produced by performing dynamic testing of units of code of the software system during development of the software system; may include at least one. The method may further include associating each generated alert with the intermediate log sequence using the generated call graph representing calling relationships between routines in the software system. Generating performance and security information related to the software system during post-deployment operation of the software system may include monitoring the post-deployment operation of the software and collecting alerts generated by the monitoring. . Generating performance and security information related to a software system during post-deployment operation of the software system may include collecting information about configuration changes and/or alerts about configuration changes. By comparing the collected configuration change information and/or configuration change warnings with performance and security information generated during post-deployment operation of the software system, Including determining performance and security alerts to escalate. Matching performance and security information generated during software system development with performance and security information generated during post-deployment operation of the software system uses the history of alerts generated during testing. to determine the root cause of the alert generated by the monitoring and when the root cause of the alert generated by the monitoring corresponds to recent alerts in the history of alerts generated during the test; It may include escalating alerts generated by monitoring, or escalating both alerts generated by monitoring and alerts in a history of alerts generated during testing. Matching the root cause of an alert generated by monitoring to recent alerts in the alert history can be performed based on similar log sequences or log groups and using machine learning techniques. Matching performance and security information generated during the development of a software system with performance and security information generated during post-deployment operation of the software system is based on similar log sequences or log groups. , and is performed using machine learning techniques to match the root cause of alerts generated by monitoring with recent alerts in the alert history and application logs using recent time windows. By examining the Unit Test Error Handling log for warnings generated during testing with warnings produced by monitoring, searching for correspondences with known log signatures of the problem, and checking for at least one Escalating the severity of the monitoring-generated alert when a correspondence is discovered and correlating information related to the monitoring-generated alert with the source code that gave rise to the alert generated during testing. It may further include.

一実施形態において、システムは、プロセッサと、プロセッサによりアクセス可能なメモリと、コンピュータ・プログラム命令であって、メモリ内に記憶され、プロセッサにより、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの開発中に生成することと、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成することと、ソフトウェア・システムの開発中に生成された性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成された性能およびセキュリティ情報と照合する(match)ことにより、エスカレーションすべき性能およびセキュリティ警告を決定することとを実施するように実行可能な、前記コンピュータ・プログラム命令とを含み得る。 In one embodiment, a system includes a processor, a memory accessible by the processor, and computer program instructions stored in the memory that cause the processor to generate performance and security information related to a software system. Generating during the development of the system and performance and security information related to the software system during operation after deployment of the software system and performance and security information generated during the development of the software system. and determining performance and security alerts to escalate by matching the information with performance and security information generated during post-deployment operation of the software system. and the computer program instructions.

一実施形態において、コンピュータ・プログラム製品は、プログラム命令が具現化される非一過性コンピュータ可読ストレージを含むことができ、プログラム命令は、コンピュータにより実行可能であり、コンピュータに、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの開発中に生成することと、ソフトウェア・システムに関係する性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成することと、ソフトウェア・システムの開発中に生成された性能およびセキュリティ情報を、ソフトウェア・システムの展開後の動作中に生成された性能およびセキュリティ情報と照合する(match)ことにより、エスカレーションすべき性能およびセキュリティ警告を決定することとを含む方法を実施させる。 In one embodiment, a computer program product can include non-transitory computer readable storage in which program instructions are embodied, the program instructions are executable by a computer, and the program instructions are associated with a software system. generating performance and security information related to the software system during development of the software system; generating performance and security information related to the software system during operation after deployment of the software system; Determining performance and security alerts to escalate by matching performance and security information generated during development with performance and security information generated during post-deployment operation of the software system. A method including:

本発明の構造および動作の両方に関する、本発明の詳細は、同様の参照番号および名称が、同様の要素を指す、付随する図面を参照することにより、最も良好に理解され得る。 The details of the invention, both regarding its structure and operation, may be best understood by reference to the accompanying drawings, in which like reference numbers and designations refer to like elements.

本技術の実施形態による、クラウド・ワークロード・アプリケーションが開発され、試験され、本番展開において使用され得る、例示的な環境を例示する図である。1 is a diagram illustrating an example environment in which cloud workload applications may be developed, tested, and used in production deployment, according to embodiments of the present technology; FIG. 本技術の実施形態による動作のプロセスの例示的なフロー図である。FIG. 2 is an exemplary flow diagram of a process of operation according to embodiments of the present technology. 本明細書において説明される実施形態に必然的に含まれるプロセスが実現され得る、コンピュータ・システムの例示的なブロック図である。1 is an example block diagram of a computer system in which processes implicit in embodiments described herein may be implemented; FIG.

実施形態は、総体的なクラウド・ワークロード・セキュリティを改善するように、クラウド・ワークロード・セキュリティ・システムにより、より正確および処理可能な警告を提供し得る技術を提供し得る。 Embodiments may provide techniques that may provide more accurate and actionable alerts by cloud workload security systems to improve overall cloud workload security.

実施形態は、より正確および処理可能な警告を提供するために、クラウド・ソフトウェア・システムの開発試験(展開前)およびランタイム(展開後)モニタリングを組み合わせ、以て、展開前ソフトウェア環境と展開後ソフトウェア環境との間のインサイトを共有し得る。例えば、アプリケーション・ログ分析などのプロセスが、インサイトを共有するために使用され得る。同じように、コール・グラフが、ローカル・ログ・シーケンス共有のために使用され得る。さらに、エラー・ハンドリングが、セキュリティ弱点についての指示として使用され得る。 Embodiments combine development testing (pre-deployment) and run-time (post-deployment) monitoring of cloud software systems to provide more accurate and actionable alerts, thereby providing a comprehensive overview of the pre-deployment software environment and the post-deployment software environment. Share insights with your environment. For example, processes such as application log analysis may be used to share insights. Similarly, call graphs may be used for local log sequence sharing. Additionally, error handling may be used as an indication of security weaknesses.

継続的インテグレーション(CI)は、コードに対する小さな変更を実装し、バージョン管理システムのバージョン管理リポジトリへの頻繁なチェック・インを可能にする、コーディング技術である。このため、CIにより、アプリケーションをビルド、パッケージ化、および試験するための、矛盾のない、且つ自動化された手立てを提供することが可能となる。このことによって、コード変更のより頻繁なコミットメントが可能となり、そのことは、より良好なコラボレーションおよびソフトウェア品質につながる。継続的デリバリ(CD)は、選択されたインフラストラクチャ環境へのアプリケーションのデリバリを自動化する。大多数のチームは、開発および試験環境などの、本番以外の複数の環境を作業の対象としており、CDによって、それらの環境にコード変更をプッシュするための自動化された手立てが確保される。継続的インテグレーションおよび継続的デリバリ(CI/CD)は、これらの2つの技術をコーディングと試験が統合されたワークフローへと組み合わせる。 Continuous integration (CI) is a coding technique that implements small changes to code and allows frequent check-ins to a version control repository of a version control system. CI thus allows for a consistent and automated way to build, package, and test applications. This allows for more frequent commitments to code changes, which leads to better collaboration and software quality. Continuous delivery (CD) automates the delivery of applications to selected infrastructure environments. Most teams work in multiple non-production environments, such as development and test environments, and CD ensures an automated way to push code changes to those environments. Continuous integration and continuous delivery (CI/CD) combines these two technologies into an integrated coding and testing workflow.

クラウド・ワークロード・アプリケーションが開発され、試験され、本番展開において使用され得る、例示的な環境100が、図1において示される。この例において、環境100は、CI/CD開発環境102と、クラウド本番展開104とを含み得る。CI/CD開発環境102は、コード・マージ・ブロック106、静的試験ブロック108、ビルド・ブロック110、動的試験ブロック112、および展開ブロック114などの処理ブロックを含み得る。コード・マージ・ブロック106は、バージョン管理のもとにあるソフトウェア・ソース・コード・ファイルに対してなされる複数個の変更を調停する動作である、コード・マージング(さらにはインテグレーションと呼ばれる)を実施し得る。例えば、ファイルが2つの独立したブランチ上で修正されるならば、異なるブランチをマージして、変更のすべてのセットを内包する、ファイルの単一のコレクションを形成することができる。実施形態では、自動マージングをCI/CD開発環境102中のバージョン管理システムにより実施することによって、(論理的な意味において)同時に発生した変更を調停することができる。自動マージングが非効果的または動作不能であるならば、手動マージングを必要であれば実施することができる。 An example environment 100 in which cloud workload applications may be developed, tested, and used in production deployment is shown in FIG. In this example, environment 100 may include a CI/CD development environment 102 and a cloud production deployment 104. CI/CD development environment 102 may include processing blocks such as code merge block 106, static test block 108, build block 110, dynamic test block 112, and deployment block 114. Code merge block 106 performs code merging (also referred to as integration), which is the act of reconciling multiple changes made to software source code files under version control. It is possible. For example, if a file is modified on two independent branches, the different branches can be merged to form a single collection of files that contains the entire set of changes. In embodiments, automatic merging may be implemented by a version control system in the CI/CD development environment 102 to reconcile changes that occur at the same time (in a logical sense). If automatic merging is ineffective or inoperable, manual merging can be performed if necessary.

静的試験ブロック108は、プログラムを実際に実行することなしに、コンピュータ・ソフトウェア、例えば、コード・マージ・ブロック106から出力されるソース・コードまたはオブジェクト・コードあるいはその両方のマージされたバージョンの試験および分析を行うことができる。実施形態において、そのような分析は、自動化されたツールにより実施され得る。ビルド・ブロック110は、オブジェクト・コードへのソース・コードのコンパイリング、オブジェクト・コードおよびライブラリ・オブジェクト・コードならびに他のソフトウェア・リソースのリンキング等を含む、完全なアプリケーションまたはソフトウェア・システムのビルディングを実施することによって、実行可能なコードのセットを形成することができる。動的試験ブロック112は、現実または仮想プロセッサ上でプログラムを実行してコンピュータ・ソフトウェアの分析を実施することにより、動作中のソフトウェアの実際の挙動をモニタリングすることができる。展開ブロック114は、コンピュータ・ソフトウェアの展開を実施し、そこには、例えば、ソフトウェアが容易にインストールされることを可能とするインストレーション・パッケージの生成や、当該ソフトウェアおよび動作に必要とされる関連ソフトウェアのインストレーション等が含まれる。 Static testing block 108 tests a merged version of computer software, e.g., source code and/or object code output from code merging block 106, without actually running the program. and analysis. In embodiments, such analysis may be performed by automated tools. Build block 110 performs building of a complete application or software system, including compiling source code to object code, linking object code and library object code and other software resources, etc. By doing so, you can create a set of executable code. Dynamic testing block 112 can monitor the actual behavior of the software during operation by running programs on real or virtual processors and performing analysis of the computer software. Deployment block 114 performs the deployment of computer software, including, for example, the generation of an installation package that allows the software to be easily installed, and the installation of the software and associated information required for operation. Includes software installation, etc.

クラウド本番展開104は、コンピュータ・ソフトウェア・アプリケーションおよびシステムの、ライブすなわち本番動作のための環境を提供することができ、ユーザ(人々、クライアント・コンピュータ、他のサーバ等)が直接的に相互作用できる環境を提供することができる。クラウド本番展開104は、クラウド・ワークロード・モニタリング・ブロック116と、CI/CDインサイト118とを含み得る。クラウド・ワークロード・モニタリング・ブロック116は、クラウド本番展開104における展開されたソフトウェアの動作およびワークロード・パラメータをモニタリングし、モニタリングされた動作に基づいて警告を生成することができる。CI/CDインサイト118は、警告履歴などの、CI/CD開発環境102から取得される、展開されたソフトウェアの動作に関する情報を含むことができ、クラウド・ワークロード・モニタリング・ブロック116がそれを利用することにより、クラウド本番展開104における展開されたソフトウェアの動作に関する拡張された情報を提供することができる。 A cloud production deployment 104 can provide an environment for live or production operation of computer software applications and systems with which users (people, client computers, other servers, etc.) can interact directly. environment can be provided. Cloud production deployment 104 may include cloud workload monitoring block 116 and CI/CD insights 118. Cloud workload monitoring block 116 may monitor the behavior of deployed software and workload parameters in cloud production deployment 104 and generate alerts based on the monitored behavior. CI/CD insights 118 can include information about the behavior of deployed software obtained from CI/CD development environment 102, such as alert history, which cloud workload monitoring block 116 uses to Utilization can provide enhanced information regarding the behavior of deployed software in cloud production deployment 104.

本実施形態による動作の例示的なプロセス200が、図2において示される。その図2は、図1との連関において最も良好に考察される。プロセス200は202で始まり、その202において、CI/CD試験が行われ、そのような試験からの警告履歴が、例えばCI/CDインサイト118内に保存され得る。そのようなCI/CD試験には、例えば、静的試験ブロック108により実施される構成試験およびコード試験などの静的試験、ならびに、動的試験ブロック112により実施される動的試験を含めることができる。静的試験中、コール・グラフを作製して、コンピュータ・ソフトウェアにおけるルーチンどうしの間のコーリング関係性を表すことができる。コール・グラフでドキュメント化されるように、生成される警告すべてを可能性のある中間ログ・シーケンス(有限ステップ)と関連付けることができる。204では、CI/CDサブシステム動的試験を実施して、生み出された警告についてのアプリケーション・ログを収集することができる。収集されたアプリケーション・ログは、例えばCI/CDインサイト118内に保存され得る。206では、CI/CDユニット試験を実施して、予想されない制御フローを指示するシーケンスを含み得るエラー・ハンドリング・ログを収集することができる。加えて、構成変更に関する情報、または、構成変更に関する警告、あるいはその両方を収集することができる。さらに、エラー・ハンドリング・ユニット試験のログ・シグネチャの特性評価を行うことができる。収集されたエラー・ハンドリング・ログおよび特性評価は、例えばCI/CDインサイト118内に保存され得る。 An exemplary process 200 of operation according to this embodiment is shown in FIG. That FIG. 2 is best considered in conjunction with FIG. Process 200 begins at 202, where CI/CD tests are performed and alert history from such tests may be stored, for example, within CI/CD Insight 118. Such CI/CD testing may include, for example, static tests such as configuration tests and code tests performed by static test block 108 and dynamic tests performed by dynamic test block 112. can. During static testing, a call graph can be constructed to represent the calling relationships between routines in the computer software. All generated warnings can be associated with possible intermediate log sequences (finite steps) as documented in the call graph. At 204, a CI/CD subsystem dynamic test may be performed to collect application logs for generated alerts. The collected application logs may be stored within CI/CD Insight 118, for example. At 206, CI/CD unit testing may be performed to collect error handling logs that may include sequences indicating unexpected control flow. Additionally, information about configuration changes and/or warnings about configuration changes can be collected. In addition, characterization of error handling unit test log signatures can be performed. The collected error handling logs and characterization may be stored within CI/CD Insight 118, for example.

ソフトウェアがクラウド本番展開104に展開された後、すなわち、展開後に、208において、クラウド・ワークロード・モニタリング・ブロック116がクラウド本番展開104の動作をモニタリングし、かかるモニタリングにより生み出されたすべての警告を収集することができる。そのようなワークロード警告が生じるとき、近時の時間窓を使用してアプリケーション・ログを調査することにより、近時のログ異常を検出することができる。210では、CI/CD警告履歴118を用いて、各ワークロード警告の根本原因分析が行われる。212では、ワークロード警告根本原因がCI/CD警告履歴118における近時の警告と照応するならば、ワークロード警告の、または、ワークロード警告およびCI/CD警告履歴118における警告の両方の警告スコアがエスカレーションされ、根本原因分析結果が、例えばgithub(R)上のCIに、例えばポストされることによって報告され得る。例えば、プロセス200は、code commitに基づいてgit commitに接続することができる。すなわち、警告に関係する情報は、CI/CD開発環境102のバージョン管理システムにおいて警告を生じさせていると決定されたソース・コードと関連付けられ得る。 After the software has been deployed to the cloud production deployment 104, ie, post-deployment, the cloud workload monitoring block 116 monitors the operation of the cloud production deployment 104 at 208 and reports any alerts generated by such monitoring. can be collected. When such workload warnings occur, recent log anomalies can be detected by examining application logs using recent time windows. At 210, root cause analysis of each workload alert is performed using the CI/CD alert history 118. At 212, if the workload alert root cause corresponds to a recent alert in the CI/CD alert history 118, the alert score of the workload alert or of both the workload alert and the alert in the CI/CD alert history 118. may be escalated and root cause analysis results may be reported, e.g., by posting, e.g., to a CI on github(R). For example, process 200 can connect to git commit based on code commit. That is, information related to the warning may be associated with source code determined to be causing the warning in the version control system of the CI/CD development environment 102.

ワークロード警告と、静的分析中に発見された警告(CI/CD警告履歴118)との間の照応は、類似のログ・シーケンス(またはログ・グループ)に基づいて決定することができる。例えば、機械学習技術や、さらには、1対1(One2one)照合、シーケンス・アライメント、DNA比較などの技術を含み得る、照合技術を用いて、照応を決定することができる。例えば、照合は、開発段階中の静的試験結果、構成変更、git log、および構成警告ログと、試験および初期展開段階からのシーケンシャル・アプリケーション・ログ・データとを相関させるように訓練を受け、そのように相関させることを試行する、DNN(ディープ・ニューラル・ネットワーク)分類器によって行うことができる。これらは、次いで、ランタイム中の警告と時間的に照合され得る。214では、ユニット試験エラー・ハンドリング・ログが、ワークロード警告と照合され得る。実施形態は、近時の時間窓を使用して、204において収集されたアプリケーション・ログを調査することにより、そのような照合を行うことができる。次いで、206において、プロセス200は、問題となるシナリオの既知のログ・シグネチャとの照応を探索することができる。1つまたは複数のそのような照応が発見されると、ワークロード警告の重大度をエスカレーションさせ、または上昇させることができ、例えば、コードに結び付けることにより、報告可能である。すなわち、警告に関係する情報は、CI/CD開発環境102のバージョン管理システムにおいて警告を生じさせていると決定されたソース・コードと関連付けられ得る。さらに、展開後のステージにおいて発見された警告は、CI/CD試験中に収集された、構成変更に関する情報、または、構成変更に関する警告、あるいはその両方と照合され得る。 Correspondence between workload alerts and alerts discovered during static analysis (CI/CD alert history 118) can be determined based on similar log sequences (or log groups). For example, matching techniques can be used to determine correspondences, which can include machine learning techniques and even techniques such as one-to-one matching, sequence alignment, DNA comparison, and the like. For example, the matcher is trained to correlate static test results, configuration changes, git logs, and configuration alert logs during the development phase with sequential application log data from the testing and initial deployment phases; It can be done by a DNN (deep neural network) classifier that attempts to do so. These can then be matched in time with warnings during runtime. At 214, unit test error handling logs may be checked against workload warnings. Embodiments may perform such a match by examining the application logs collected at 204 using a recent time window. Then, at 206, the process 200 can search for correspondences with known log signatures of the scenario in question. Once one or more such correspondences are discovered, the severity of the workload warning can be escalated or increased and can be reported, for example by being tied to a code. That is, information related to the warning may be associated with source code determined to be causing the warning in the version control system of the CI/CD development environment 102. Additionally, warnings discovered during the post-deployment stage may be matched with information about configuration changes and/or warnings about configuration changes collected during CI/CD testing.

本明細書において説明される実施形態に必然的に含まれるプロセスが実現され得る、コンピュータ・システム300の例示的なブロック図が、図3において示される。コンピュータ・システム300は、埋め込み型プロセッサ、システム・オン・チップ、パーソナル・コンピュータ、ワークステーション、サーバ・システム、および、ミニコンピュータもしくはメインフレーム・コンピュータなどの、1つもしくは複数のプログラムされる汎用コンピュータ・システムを使用して、または、分散型のネットワーク化されたコンピューティング環境において実現され得る。コンピュータ・システム300は、1つまたは複数のプロセッサ、CPU302A~302Nと、入出力回路304と、ネットワーク・アダプタ306と、メモリ308とを含み得る。CPU302A~302Nは、本通信システムおよび方法の機能を履行するために、プログラム命令を実行する。典型的には、CPU302A~302Nは、1つまたは複数のマイクロプロセッサである。図3は、複数個のプロセッサCPU302A~302Nがメモリ308、入出力回路304、およびネットワーク・アダプタ306などのシステム・リソースを共有する、単一のマルチ・プロセッサ・コンピュータ・システムとしてコンピュータ・システム300が実現される、一実施形態を例示する。しかしながら、本通信システムおよび方法は、さらには、シングル・プロセッサ・コンピュータ・システム、マルチ・プロセッサ・コンピュータ・システム、またはそれらの混合物であり得る、複数のネットワーク化されたコンピュータ・システムとしてコンピュータ・システム300が実現される、実施形態を含む。 An exemplary block diagram of a computer system 300 in which the processes implicit in the embodiments described herein may be implemented is shown in FIG. Computer system 300 includes one or more programmed general-purpose computers, such as embedded processors, systems on chips, personal computers, workstations, server systems, and minicomputers or mainframe computers. system or in a distributed, networked computing environment. Computer system 300 may include one or more processors, CPUs 302A-302N, input/output circuitry 304, network adapter 306, and memory 308. CPUs 302A-302N execute program instructions to implement the functionality of the present communication systems and methods. Typically, CPUs 302A-302N are one or more microprocessors. FIG. 3 illustrates computer system 300 as a single multi-processor computer system in which multiple processors CPUs 302A-302N share system resources such as memory 308, input/output circuitry 304, and network adapter 306. 1 illustrates one embodiment that may be implemented. However, the present communication systems and methods further include computer system 300 as a plurality of networked computer systems, which may be a single processor computer system, a multi-processor computer system, or a mixture thereof. Embodiments include embodiments in which the following is realized.

入出力回路304は、コンピュータ・システム300にデータを入力する、または、コンピュータ・システム300からデータを出力するための能力を提供する。例えば、入出力回路は、キーボード、マウス、タッチパッド、トラックボール、スキャナ、アナログ-デジタル変換器、その他などの入力デバイス、ビデオ・アダプタ、モニタ、プリンタ、その他などの出力デバイス、および、モデム、その他などの入出力デバイスを含み得る。ネットワーク・アダプタ306は、コンピュータ・システム300をネットワーク310とインターフェース接続する。ネットワーク310は、インターネットを含む、ただしそれに限定されない、任意の公衆または私設のLANまたはWANであり得る。 Input/output circuitry 304 provides the ability to input data to or output data from computer system 300 . For example, input/output circuits include input devices such as keyboards, mice, touch pads, trackballs, scanners, analog-to-digital converters, etc., output devices such as video adapters, monitors, printers, etc., and output devices such as modems, etc. It may include input/output devices such as. Network adapter 306 interfaces computer system 300 with network 310 . Network 310 may be any public or private LAN or WAN, including but not limited to the Internet.

メモリ308は、コンピュータ・システム300の機能を実施するための、CPU302A~302Nにより実行されるプログラム命令、ならびに、CPU302A~302Nにより使用および処理されるデータを記憶する。メモリ308は、例えば、インテグレーテッド・ドライブ・エレクトロニクス(IDE)インターフェース、または、エンハンストIDE(EIDE)もしくはウルトラ・ダイレクト・メモリ・アクセス(UDMA)などの、そのIDEインターフェースの変化形もしくは拡張、あるいは、スモール・コンピュータ・システム・インターフェース(SCSI)ベースのインターフェース、または、ファストSCSI、ワイドSCSI、ファスト・アンド・ワイドSCSI、その他などの、そのSCSIベースのインターフェースの変化形もしくは拡張、あるいは、シリアル・アドバンスト・テクノロジ・アタッチメント(SATA)、または、そのSATAの変化形もしくは拡張、あるいは、ファイバ・チャネル・アービトレーテッド・ループ(FC-AL)インターフェースを使用し得る、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、プログラマブル読み出し専用メモリ(PROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、フラッシュ・メモリ、その他などの電子メモリ・デバイス、および、磁気ディスク・ドライブ、テープ・ドライブ、光学ディスク・ドライブ、その他などの電気機械メモリを含み得る。 Memory 308 stores program instructions executed by and data used and processed by CPUs 302A-302N to implement the functions of computer system 300. The memory 308 may include, for example, an integrated drive electronics (IDE) interface, or a variation or extension of the IDE interface, such as Enhanced IDE (EIDE) or Ultra Direct Memory Access (UDMA), or a small A computer system interface (SCSI)-based interface, or a variation or extension of that SCSI-based interface, such as Fast SCSI, Wide SCSI, Fast and Wide SCSI, etc., or Serial Advanced Technology. - Random Access Memory (RAM), read-only memory that may use an Attachment (SATA), or a variation or extension of SATA, or a Fiber Channel Arbitrated Loop (FC-AL) interface. electronic memory devices such as (ROM), programmable read-only memory (PROM), electrically erasable programmable read-only memory (EEPROM), flash memory, and others; and magnetic disk drives, tape drives, optical disk drives, etc. It may include electromechanical memory such as drives, etc.

メモリ308の内容物は、コンピュータ・システム300が実施するようにプログラムされる機能に依存して変動し得る。図3において示される例において、上記で説明されたプロセスの実施形態についてのルーチンおよびデータを表す、例示的なメモリ内容物が示される。しかしながら、これらのルーチンは、それらのルーチンに関係付けられるメモリ内容物とともに、1つのシステムまたはデバイス上に含まれるのではないことがあり、むしろ、よく知られている工学考慮事項に基づいて、複数のシステムまたはデバイスの間で分散されることがあるということを、当業者は認識することになる。本システムおよび方法は、一切のそのような配置構成を含み得る。 The contents of memory 308 may vary depending on the functions that computer system 300 is programmed to perform. In the example shown in FIG. 3, exemplary memory contents are shown representing routines and data for the embodiments of the processes described above. However, these routines, along with their associated memory contents, may not be contained on a single system or device, but rather may be contained on multiple systems or devices based on well-known engineering considerations. Those skilled in the art will recognize that the information may be distributed among different systems or devices. The present systems and methods may include any such arrangement.

図3において示される例において、メモリ308は、コード・マージ・ルーチン314、静的試験ルーチン316、ビルド・ルーチン318、動的試験ルーチン320、および展開ルーチン322を含み得るCI/CDルーチン312と、クラウド・ワークロード・モニタリング・ルーチン326、CI/CDインサイト・データ328を含み得るクラウド本番展開324と、オペレーティング・システム330とを含み得る。CI/CDルーチン312は、上記で説明されたような、図1において示されるCI/CD開発環境102を実現するためのソフトウェア・ルーチンを含み得る。コード・マージ・ルーチン314は、上記で説明されたような、バージョン管理のもとにあるソフトウェア・ソース・コード・ファイルに対してなされる複数個の変更を調停する動作である、コード・マージング(さらにはインテグレーションと呼ばれる)を実施するためのソフトウェア・ルーチンを含み得る。静的試験ルーチン316は、上記で説明されたような、プログラムを実際に実行することのない、コンピュータ・ソフトウェアの試験および分析を実施するためのソフトウェア・ルーチンを含み得る。ビルド・ルーチン318は、上記で説明されたような、実行され得るコードのセットを形成するための、オブジェクト・コードへのソース・コードのコンパイリング、オブジェクト・コードおよびライブラリ・オブジェクト・コードならびに他のソフトウェア・リソースのリンキング、その他を含む、完全なアプリケーションまたはソフトウェア・システムのビルディングを実施するためのソフトウェア・ルーチンを含み得る。動的試験ルーチン320は、上記で説明されたような、動作におけるソフトウェアの実際の挙動をモニタリングするために現実または仮想プロセッサ上でプログラムを実行することにより実施される、コンピュータ・ソフトウェアの分析を実施するためのソフトウェア・ルーチンを含み得る。展開ルーチン322は、上記で説明されたような、例えば、ソフトウェアが容易にインストールされることを可能とするインストレーション・パッケージの生成、および、ソフトウェア、動作のために要される関連付けられるソフトウェアのインストレーション、その他を含む、コンピュータ・ソフトウェアの展開を実施するためのソフトウェア・ルーチンを含み得る。クラウド本番展開324は、上記で説明されたように、コンピュータ・ソフトウェア・アプリケーションおよびシステムの、活動中すなわち本番動作のための環境を提供するためのソフトウェア・ルーチンを含み得、ユーザ(人々、クライアント・コンピュータ、他のサーバ、その他)が直接的に相互作用し得る環境を提供し得る。クラウド・ワークロード・モニタリング・ルーチン326は、上記で説明されたように、クラウド本番展開における展開されるソフトウェアの動作およびワークロード・パラメータをモニタリングすることを実施するためのソフトウェア・ルーチンを含み得、モニタリングされる動作に基づいて警告を生成し得る。CI/CDインサイト・データ328は、上記で説明されたように、警告履歴などの、CI/CD開発環境102から取得される、展開されるソフトウェアの動作に関する情報を含み得、展開されるソフトウェア、クラウド本番展開の動作に関する増された情報を提供するために利用され得る。オペレーティング・システム330は、総体的なシステム機能性を提供し得る。 In the example shown in FIG. 3, memory 308 includes CI/CD routines 312, which may include code merge routines 314, static test routines 316, build routines 318, dynamic test routines 320, and deployment routines 322; A cloud production deployment 324 may include cloud workload monitoring routines 326 , CI/CD insight data 328 , and an operating system 330 . CI/CD routines 312 may include software routines for implementing CI/CD development environment 102 shown in FIG. 1, as described above. Code merge routine 314 performs code merging (as described above), which is an operation that reconciles multiple changes made to software source code files under version control. It may also include software routines for performing the integration (also referred to as integration). Static test routines 316 may include software routines for performing testing and analysis of computer software without actually executing a program, such as those described above. Build routine 318 performs the compilation of source code into object code, object code and library object code, and other components to form a set of code that can be executed, as described above. It may include software routines for implementing the building of a complete application or software system, including linking software resources, etc. Dynamic testing routine 320 performs an analysis of computer software, such as that described above, performed by running a program on a real or virtual processor to monitor the actual behavior of the software in operation. may include software routines to do so. Deployment routine 322 includes, for example, the generation of an installation package that allows the software to be easily installed, and the installation of associated software required for operation, as described above. may include software routines for implementing deployment of computer software, including deployment, etc. Cloud production deployment 324 may include software routines for providing an environment for active or production operation of computer software applications and systems, as described above, and for providing an environment for users (people, clients, etc.). computers, other servers, etc.) may directly interact with each other. Cloud workload monitoring routines 326 may include software routines for implementing monitoring the operation and workload parameters of deployed software in a cloud production deployment, as described above; Alerts may be generated based on monitored behavior. CI/CD insight data 328 may include information regarding the behavior of deployed software obtained from CI/CD development environment 102, such as warning history, as described above, and may include information about the behavior of deployed software, such as warning history. , can be utilized to provide increased information about the operation of cloud production deployments. Operating system 330 may provide overall system functionality.

図3において示されるように、本通信システムおよび方法は、マルチ・プロセッサ、マルチ・タスキング、マルチ・プロセス、またはマルチ・スレッド・コンピューティング、あるいはその組合せを提供する、1つまたは複数のシステム上での実現形態、および、シングル・プロセッサ、シングル・スレッド・コンピューティングのみを提供するシステム上での実現形態を含み得る。マルチ・プロセッサ・コンピューティングは、2つ以上のプロセッサを使用してコンピューティングを実施することを必然的に含む。マルチ・タスキング・コンピューティングは、2つ以上のオペレーティング・システム・タスクを使用してコンピューティングを実施することを必然的に含む。タスクは、オペレーティング・システムにより実行されているプログラム、および、使用されるブックキーピング情報の組合せを指すオペレーティング・システム概念である。プログラムが実行されるときはいつも、オペレーティング・システムは、そのプログラムのために新しいタスクを作成する。タスクは、そのタスクが、タスク番号によってプログラムを識別し、他のブックキーピング情報をそのプログラムに付属させるという点において、プログラムのためのエンベロープのようなものである。多くのオペレーティング・システムは、多くのタスクを同時に走らせる能力をもち、マルチタスキング・オペレーティング・システムと呼ばれる。マルチ・タスキングは、2つ以上の実行可能ファイルを同時に実行するためのオペレーティング・システムの実力である。各実行可能ファイルは、その実行可能ファイル自体のアドレス空間内で走っており、そのことは、実行可能ファイルが、それらの実行可能ファイルのメモリのいずれも共有する手立てを有さないということを意味する。このことは利点を有し、なぜならば、いかなるプログラムも、システム上で走る他のプログラムのいずれかの実行に損害を及ぼすことは不可能であるからである。しかしながら、プログラムは、オペレーティング・システムを通す(または、ファイル・システム上に記憶されるファイルを読み出すことによる)ということを除いて、いかなる情報も交換する手立てを有さない。マルチ・プロセス・コンピューティングは、用語タスクおよびプロセスがしばしば互換的に使用されるので、マルチ・タスキング・コンピューティングと類似であるが、一部のオペレーティング・システムは、それら2つの間で区別をつける。 As shown in FIG. 3, the present communication systems and methods operate on one or more systems that provide multi-processor, multi-tasking, multi-process, and/or multi-threaded computing. and implementations on systems that provide only single-processor, single-threaded computing. Multi-processor computing entails using two or more processors to perform computing. Multi-tasking computing entails performing computing using two or more operating system tasks. A task is an operating system concept that refers to a combination of programs being executed by the operating system and bookkeeping information used. Whenever a program is run, the operating system creates a new task for that program. A task is like an envelope for a program in that it identifies the program by task number and attaches other bookkeeping information to the program. Many operating systems have the ability to run many tasks simultaneously and are called multitasking operating systems. Multitasking is the ability of an operating system to run two or more executable files simultaneously. Each executable runs within its own address space, which means that the executables have no way of sharing any of their memory. do. This has an advantage, since it is not possible for any program to damage the execution of any other programs running on the system. However, programs have no way of exchanging any information except through the operating system (or by reading files stored on the file system). Multi-process computing is similar to multi-tasking computing, as the terms task and process are often used interchangeably, although some operating systems draw a distinction between the two. .

本発明は、統合の任意の可能な技術的詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであり得る。コンピュータ・プログラム製品は、本発明の態様を履行することをプロセッサに行わせるためのコンピュータ可読プログラム命令を有する、コンピュータ可読ストレージ媒体(または複数の媒体)を含み得る。コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持および記憶し得る有形デバイスであり得る。 The invention may be a system, method, and/or computer program product at any possible level of technical detail of integration. A computer program product may include a computer readable storage medium (or media) having computer readable program instructions for causing a processor to implement aspects of the invention. A computer-readable storage medium may be a tangible device that can retain and store instructions for use by an instruction execution device.

コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または、前述の任意の適した組合せであり得、ただしそれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的な列挙は、後に続くもの:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック(R)、フロッピ(R)・ディスク、記録された命令を有するパンチ・カードまたは溝内の隆起構造などの機械的にエンコードされたデバイス、および、前述の任意の適した組合せを含む。本明細書において使用される際のコンピュータ可読ストレージ媒体は、本質的には、無線波もしくは他の自由伝搬する電磁波、導波路もしくは他の伝送媒体を通って伝搬する電磁波(例えば、光学ファイバ・ケーブルを通って進む光パルス)、または、電線を通して伝送される電気信号などの一過性信号であると解釈されるべきではない。 The computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. Not done. A non-exhaustive enumeration of more specific examples of computer readable storage media follows: portable computer diskettes, hard disks, random access memory (RAM), read only memory (ROM), erasable Programmable Read Only Memory (EPROM or Flash Memory), Static Random Access Memory (SRAM), Portable Compact Disk Read Only Memory (CD-ROM), Digital Versatile Disk (DVD), Memory Stick ( R), floppy disks, mechanically encoded devices such as punched cards or raised structures in grooves with recorded instructions, and any suitable combinations of the foregoing. A computer-readable storage medium, as used herein, refers essentially to radio waves or other free-propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., fiber optic cables). It should not be construed to be a transient signal, such as a pulse of light traveling through a wire, or an electrical signal transmitted through a wire.

本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せを介して、外部コンピュータまたは外部ストレージ・デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光学伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイスの中のコンピュータ可読ストレージ媒体内での記憶のために、コンピュータ可読プログラム命令を転送する。 The computer-readable program instructions described herein may be transmitted from a computer-readable storage medium to a respective computing/processing device or over a network, such as the Internet, a local area network, a wide area network, or a wireless network. It may be downloaded to an external computer or external storage device over a network, or a combination thereof. The network may include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or combinations thereof. A network adapter card or network interface within each computing/processing device receives computer readable program instructions from the network for storage within a computer readable storage medium within the respective computing/processing device. , transmitting computer readable program instructions.

本発明の動作を履行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態セッティング・データ、集積回路のための構成データ、または、Smalltalk(R)、C++、もしくは類するものなどのオブジェクト指向プログラミング言語、および、「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組合せにおいて書き表される、ソース・コードもしくはオブジェクト・コードのいずれかであり得る。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンド・アローン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上、および、部分的にリモート・コンピュータ上で、または、全体的にリモート・コンピュータもしくはサーバ上で実行され得る。最後のもののシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続され得、または、接続は、外部コンピュータに対して(例えば、インターネット・サービス・プロバイダを使用して、インターネットを通して)なされ得る。一部の実施形態において、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路が、本発明の態様を実施するために、電子回路をパーソナライズするために、コンピュータ可読プログラム命令の状態情報を利用することにより、コンピュータ可読プログラム命令を実行し得る。 Computer-readable program instructions for carrying out the operations of the present invention include assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, and instructions for integrated circuits. Configuration data or one or more programming languages, including object-oriented programming languages such as Smalltalk®, C++, or the like, and procedural programming languages such as the "C" programming language or similar programming languages. can be either source code or object code, written in any combination of . The computer-readable program instructions may be provided entirely on a user's computer, partially on a user's computer, as a stand-alone software package, partially on a user's computer, and partially on a remote computer. or may be executed entirely on a remote computer or server. In the last scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or wide area network (WAN), or the connection may be external It can be done to a computer (eg, over the Internet using an Internet service provider). In some embodiments, an electronic circuit, including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), is used to personalize the electronic circuit to implement aspects of the invention. Computer-readable program instructions may be executed by utilizing state information of the computer-readable program instructions to do so.

本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の、フローチャート図またはブロック図あるいはその両方を参照して、本明細書において説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、および、フローチャート図またはブロック図あるいはその両方におけるブロックの組合せが、コンピュータ可読プログラム命令により実現され得るということが理解されることになる。 Aspects of the invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/行為を実現するための手段を作り出すように、マシンを生み出すために、汎用コンピュータ、専用コンピュータ、または、他のプログラマブル・データ処理装置のプロセッサに提供され得る。これらのコンピュータ可読プログラム命令は、さらには、記憶された命令を有するコンピュータ可読ストレージ媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/行為の態様を実現する命令を含む製造品の構成物となるように、個別の様式において機能するように、コンピュータ、プログラマブル・データ処理装置、または、他のデバイス、あるいはその組合せに指図し得る、コンピュータ可読ストレージ媒体内に記憶され得る。 These computer readable program instructions are such that the instructions executed by a processor of a computer or other programmable data processing device perform the functions/acts specified in one or more blocks of the flowcharts and/or block diagrams. A processor of a general purpose computer, special purpose computer, or other programmable data processing device may be provided to produce a machine for producing the means for. These computer readable program instructions further include instructions for a computer readable storage medium having stored instructions to implement aspects of the functions/acts specified in one or more blocks of the flowcharts and/or block diagrams. stored in a computer-readable storage medium capable of directing a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a discrete manner so as to constitute a component of an article of manufacture containing can be done.

コンピュータ可読プログラム命令は、さらには、コンピュータ、他のプログラマブル装置、または、他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/行為を実現するように、一連の動作ステップが、コンピュータで実現されるプロセスを生み出すように、コンピュータ、他のプログラマブル装置、または、他のデバイス上で実施されることを生じさせるために、コンピュータ、他のプログラマブル・データ処理装置、または、他のデバイス上へとロードされ得る。 Computer-readable program instructions further include instructions for execution on a computer, other programmable apparatus, or other device to perform the functions/acts specified in one or more blocks of flowcharts and/or block diagrams. A computer, other programmable apparatus, or other device for causing a sequence of operational steps to be performed on a computer, other programmable apparatus, or other device to produce a computer-implemented process. programmable data processing apparatus or other device.

図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実現形態のアーキテクチャ、機能性、および動作を例示する。この点について、フローチャートまたはブロック図における各ブロックは、指定される論理機能を実現するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部分を表し得る。一部の代替的実現形態において、ブロックにおいて記される機能は、図において記される順序を外れて現れ得る。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行され得、または、ブロックは、時には、必然的に含まれる機能性に依存して、逆の順序において実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、および、ブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定される機能もしくは行為を実施する、または、専用ハードウェアおよびコンピュータ命令の組合せを履行する、専用ハードウェア・ベースのシステムにより実現され得るということが、さらには指摘されることになる。 The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions that includes one or more executable instructions for implementing the specified logical functions. In some alternative implementations, the functions noted in the blocks may appear out of the order noted in the figures. For example, two blocks shown in succession may actually be executed substantially simultaneously, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. . Each block in the block diagrams and/or flowchart diagrams, and combinations of blocks in the block diagrams and/or flowchart diagrams, perform designated functions or acts, or implement a combination of specialized hardware and computer instructions. It is further pointed out that this can be realized by a dedicated hardware-based system.

本発明の特定の実施形態が説明されたが、説明された実施形態と均等である他の実施形態が存在するということが、当業者により理解されることになる。よって、本発明は、特定の例示された実施形態によってではなく、添付の特許請求の範囲によってのみで限定されるべきであるということが理解されるべきである。 Although particular embodiments of the invention have been described, it will be understood by those skilled in the art that there are other embodiments that are equivalent to the described embodiments. It is therefore to be understood that the invention is to be limited not by the particular illustrated embodiments, but only by the scope of the appended claims.

Claims (20)

プロセッサと、前記プロセッサによりアクセス可能なメモリと、前記メモリ内に記憶され前記プロセッサにより実行可能なコンピュータ・プログラム命令とを含むコンピュータ・システムで実現される方法であって、
ソフトウェア・システムに関係する第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの開発中に生成することと、
前記ソフトウェア・システムに関係する第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの展開後の動作中に生成することと、
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき1つまたは複数の性能およびセキュリティ警告を決定することと、
エスカレーションされた性能およびセキュリティ警告を報告することと
を含む、方法。
A method implemented in a computer system including a processor, a memory accessible by the processor, and computer program instructions stored in the memory and executable by the processor, the method comprising:
generating first performance and security information related to a software system during development of the software system;
generating second performance and security information related to the software system during post-deployment operation of the software system;
by matching the first performance and security information generated during the development of the software system with the second performance and security information generated during the post-deployment operation of the software system; , determining one or more performance and security alerts to escalate;
and reporting escalated performance and security alerts.
前記ソフトウェア・システムに関係する前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記開発中に生成することは、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの静的および動的試験を実施することにより、1つまたは複数の生成された警告の履歴を収集すること、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの1つまたは複数のサブシステムの第1の動的試験を実施することにより、前記1つまたは複数の生成された警告についての1つまたは複数のアプリケーション・ログを生成すること、ならびに、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの1つまたは複数のユニットの第2の動的試験を実施することにより、前記1つまたは複数の生成された警告についての1つまたは複数のエラー・ハンドリング・ログを生成すること
のうちの少なくとも1つを含む、請求項1に記載の方法。
Generating the first performance and security information related to the software system during the development of the software system comprises:
collecting a history of one or more generated warnings by performing static and dynamic testing of code of the software system during the development of the software system;
one about the one or more generated warnings by performing a first dynamic test of one or more subsystems of code of the software system during the development of the software system; or generate multiple application logs, and
one or more of the one or more generated warnings by performing a second dynamic test of one or more units of code of the software system during the development of the software system; 2. The method of claim 1, comprising at least one of generating a plurality of error handling logs.
前記ソフトウェア・システムにおけるルーチンどうしの間の1つまたは複数のコーリング関係性を表す1つまたは複数の生成されたコール・グラフを使用して、前記1つまたは複数の生成された警告の各々を中間ログ・シーケンスと関連付けることをさらに含む、請求項2に記載の方法。 Intermediate each of the one or more generated alerts using one or more generated call graphs representing one or more calling relationships between routines in the software system. 3. The method of claim 2, further comprising associating with a log sequence. 前記ソフトウェア・システムに関係する前記第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成することは、前記ソフトウェアの前記展開後の動作をモニタリングし、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された1つまたは複数のモニタ警告を収集することを含む、請求項3に記載の方法。 generating the second performance and security information related to the software system during the post-deployment operation of the software system includes monitoring the post-deployment operation of the software; 4. The method of claim 3, comprising collecting one or more monitor alerts generated by monitoring post-deployment operations. 前記ソフトウェア・システムに関係する前記第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成することは、1つまたは複数の構成変更に関する情報、および、前記1つまたは複数の構成変更に関する1つまたは複数の生み出された警告のうちの少なくとも1つを収集することを含み、前記照合することは、前記1つまたは複数の構成変更、および、前記1つまたは複数の構成変更に関する前記1つまたは複数の生み出された警告のうちの少なくとも1つに関する前記収集された情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき性能ならびに前記1つまたは複数の性能およびセキュリティ警告を決定することを含む、請求項4に記載の方法。 Generating the second performance and security information related to the software system during the post-deployment operation of the software system includes information regarding one or more configuration changes; collecting at least one of one or more generated alerts regarding a plurality of configuration changes, the collating includes collecting at least one of the one or more generated alerts regarding the one or more configuration changes; the collected information regarding at least one of the one or more generated alerts regarding configuration changes to the second performance and security information generated during the post-deployment operation of the software system; 5. The method of claim 4, comprising determining performance to escalate and the one or more performance and security warnings by comparing the performance and security warnings to the performance and security warnings. 前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することは、
前記静的および動的試験中に生成された警告の前記履歴を使用して、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の根本原因を決定することと、
前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因が、前記静的および動的試験中に生成された前記警告の履歴中の近時の警告と照応することに応答して、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記警告をエスカレーションすること、または、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記警告と、前記静的および動的試験中に生成された前記警告履歴中の前記警告の両方をエスカレーションすることと
を含む、請求項4に記載の方法。
Matching the first performance and security information generated during the development of the software system with the second performance and security information generated during the post-deployment operation of the software system. ,
using the history of alerts generated during the static and dynamic testing to determine the root cause of alerts generated by monitoring the post-deployment behavior of the software;
the root cause of the alert generated by monitoring the post-deployment behavior of the software corresponds to a recent alert in the history of alerts generated during the static and dynamic testing; in response, escalating the alert generated by monitoring the post-deployment behavior of the software, or escalating the alert generated by monitoring the post-deployment behavior of the software; 5. The method of claim 4, comprising: escalating both alerts in the alert history generated during static and dynamic testing.
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき前記1つまたは複数の性能およびセキュリティ警告を決定することは、
1つまたは複数の類似のログ・シーケンス、および、1つまたは複数のログ・グループのうちの少なくとも1つに基づき、且つ、1つまたは複数の機械学習技術を使用して実施される、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因を前記警告履歴中の前記近時の警告と照合することと、
近時の時間窓を使用して前記1つまたは複数のアプリケーション・ログを調査することにより、前記静的および動的試験中に生成される警告の1つまたは複数のユニット試験エラー・ハンドリング・ログを、前記ソフトウェアの前記展開された動作をモニタリングすることにより生み出された1つまたは複数のモニタ警告と照合し、問題の既知のログ・シグネチャとの1つまたは複数の照応を探索し、少なくとも1つの照応が発見されると、前記ソフトウェアの前記展開された動作をモニタリングすることにより生み出された前記警告の重大度をエスカレーションすることと、
前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記1つまたは複数の警告に関係する情報を、前記静的および動的試験中に生成された前記1つまたは複数の警告を生じさせるソース・コードと関連付けることと
をさらに含む、請求項6に記載の方法。
by matching the first performance and security information generated during the development of the software system with the second performance and security information generated during the post-deployment operation of the software system; , determining the one or more performance and security alerts to escalate comprises:
said software based on at least one of one or more similar log sequences and one or more log groups and implemented using one or more machine learning techniques; matching the root cause of the alert generated by monitoring the post-deployment behavior of the alert to the recent alert in the alert history;
one or more unit test error handling logs for warnings generated during the static and dynamic tests by examining the one or more application logs using a recent time window; to one or more monitor alerts produced by monitoring the deployed operation of the software, searching for one or more correspondences with known log signatures of the problem, and at least one escalating the severity of the alert generated by monitoring the deployed behavior of the software if one anaphora is discovered;
information related to the one or more alerts generated by monitoring the post-deployment behavior of the software that caused the one or more alerts generated during the static and dynamic testing; 7. The method of claim 6, further comprising: associating with source code that causes the process to occur.
システムであって、プロセッサと、前記プロセッサによりアクセス可能なメモリと、コンピュータ・プログラム命令であって、前記メモリ内に記憶され、前記プロセッサにより、
ソフトウェア・システムに関係する第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの開発中に生成することと、
前記ソフトウェア・システムに関係する第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの展開後の動作中に生成することと、
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき1つまたは複数の性能およびセキュリティ警告を決定することと、
エスカレーションされた性能およびセキュリティ警告を報告することと
を実施するように実行可能な、前記コンピュータ・プログラム命令とを含む、システム。
A system comprising a processor, a memory accessible by the processor, and computer program instructions stored in the memory and executed by the processor:
generating first performance and security information related to a software system during development of the software system;
generating second performance and security information related to the software system during post-deployment operation of the software system;
by matching the first performance and security information generated during the development of the software system with the second performance and security information generated during the post-deployment operation of the software system; , determining one or more performance and security alerts to escalate;
and reporting escalated performance and security alerts.
前記ソフトウェア・システムに関係する前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記開発中に生成することは、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの静的および動的試験を実施することにより、1つまたは複数の生成された警告の履歴を収集すること、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの1つまたは複数のサブシステムの第1の動的試験を実施することにより、前記1つまたは複数の生成された警告についての1つまたは複数のアプリケーション・ログを生成すること、ならびに、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの1つまたは複数のユニットの第2の動的試験を実施することにより、前記1つまたは複数の生成された警告についての1つまたは複数のエラー・ハンドリング・ログを生成すること
のうちの少なくとも1つを含む、請求項8に記載のシステム。
Generating the first performance and security information related to the software system during the development of the software system comprises:
collecting a history of one or more generated warnings by performing static and dynamic testing of code of the software system during the development of the software system;
one about the one or more generated warnings by performing a first dynamic test of one or more subsystems of code of the software system during the development of the software system; or generate multiple application logs, and
one or more of the one or more generated warnings by performing a second dynamic test of one or more units of code of the software system during the development of the software system; 9. The system of claim 8, comprising at least one of generating a plurality of error handling logs.
前記ソフトウェア・システムにおけるルーチンどうしの間の1つまたは複数のコーリング関係性を表す1つまたは複数の生成されたコール・グラフを使用して、前記1つまたは複数の生成された警告の各々を中間ログ・シーケンスと関連付けることをさらに含む、請求項9に記載のシステム。 Intermediate each of the one or more generated alerts using one or more generated call graphs representing one or more calling relationships between routines in the software system. 10. The system of claim 9, further comprising associating with a log sequence. 前記ソフトウェア・システムに関係する前記第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成することは、前記ソフトウェアの前記展開後の動作をモニタリングし、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された1つまたは複数のモニタ警告を収集することを含む、請求項10に記載のシステム。 generating the second performance and security information related to the software system during the post-deployment operation of the software system includes monitoring the post-deployment operation of the software; 11. The system of claim 10, comprising collecting one or more monitor alerts generated by monitoring post-deployment operations. 前記ソフトウェア・システムに関係する前記第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成することは、1つまたは複数の構成変更に関する情報、および、前記1つまたは複数の構成変更に関する1つまたは複数の生み出された警告のうちの少なくとも1つを収集することを含み、前記照合することは、前記1つまたは複数の構成変更、および、前記1つまたは複数の構成変更に関する前記1つまたは複数の生み出された警告のうちの少なくとも1つに関する前記収集された情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき性能ならびに前記1つまたは複数の性能およびセキュリティ警告を決定することを含む、請求項11に記載のシステム。 Generating the second performance and security information related to the software system during the post-deployment operation of the software system includes information regarding one or more configuration changes; collecting at least one of one or more generated alerts regarding a plurality of configuration changes, the collating includes collecting at least one of the one or more generated alerts regarding the one or more configuration changes; the collected information regarding at least one of the one or more generated alerts regarding configuration changes to the second performance and security information generated during the post-deployment operation of the software system; 12. The system of claim 11, comprising determining performance to escalate and the one or more performance and security alerts by comparing the performance and security warnings to the performance and security warnings. 前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することは、
前記静的および動的試験中に生成された警告の前記履歴を使用して、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の根本原因を決定することと、
前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因が、前記静的および動的試験中に生成された前記警告の履歴中の近時の警告と照応することに応答して、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記警告をエスカレーションすること、または、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記警告と、前記静的および動的試験中に生成された前記警告履歴中の前記警告の両方をエスカレーションすることと
を含む、請求項11に記載のシステム。
Matching the first performance and security information generated during the development of the software system with the second performance and security information generated during the post-deployment operation of the software system. ,
using the history of alerts generated during the static and dynamic testing to determine the root cause of alerts generated by monitoring the post-deployment behavior of the software;
the root cause of the alert generated by monitoring the post-deployment behavior of the software corresponds to a recent alert in the history of alerts generated during the static and dynamic testing; in response, escalating the alert generated by monitoring the post-deployment behavior of the software, or escalating the alert generated by monitoring the post-deployment behavior of the software; and escalating both the alerts in the alert history generated during static and dynamic testing.
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき前記1つまたは複数の性能およびセキュリティ警告を決定することは、
1つまたは複数の類似のログ・シーケンス、および、1つまたは複数のログ・グループのうちの少なくとも1つに基づき、且つ、1つまたは複数の機械学習技術を使用して実施される、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因を前記警告履歴中の前記近時の警告と照合することと、
近時の時間窓を使用して前記1つまたは複数のアプリケーション・ログを調査することにより、前記静的および動的試験中に生成される警告の1つまたは複数のユニット試験エラー・ハンドリング・ログを、前記ソフトウェアの前記展開された動作をモニタリングすることにより生み出された1つまたは複数のモニタ警告と照合し、問題の既知のログ・シグネチャとの1つまたは複数の照応を探索し、少なくとも1つの照応が発見されると、前記ソフトウェアの前記展開された動作をモニタリングすることにより生み出された前記警告の重大度をエスカレーションすることと、
前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記1つまたは複数の警告に関係する情報を、前記静的および動的試験中に生成された前記1つまたは複数の警告を生じさせるソース・コードと関連付けることと
をさらに含む、請求項13に記載のシステム。
by matching the first performance and security information generated during the development of the software system with the second performance and security information generated during the post-deployment operation of the software system; , determining the one or more performance and security alerts to escalate comprises:
said software based on at least one of one or more similar log sequences and one or more log groups and implemented using one or more machine learning techniques; matching the root cause of the alert generated by monitoring the post-deployment behavior of the alert to the recent alert in the alert history;
one or more unit test error handling logs for warnings generated during the static and dynamic tests by examining the one or more application logs using a recent time window; to one or more monitor alerts produced by monitoring the deployed operation of the software, searching for one or more correspondences with known log signatures of the problem, and at least one escalating the severity of the alert generated by monitoring the deployed behavior of the software if one anaphora is discovered;
information related to the one or more alerts generated by monitoring the post-deployment behavior of the software that caused the one or more alerts generated during the static and dynamic testing; 14. The system of claim 13, further comprising: associating with source code that causes
プログラム命令が具現化された非一過性コンピュータ可読ストレージを含むコンピュータ・プログラム製品であって、前記プログラム命令は、コンピュータにより実行可能であり、前記コンピュータに、
ソフトウェア・システムに関係する第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの開発中に生成することと、
前記ソフトウェア・システムに関係する第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの展開後の動作中に生成することと、
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき1つまたは複数の性能およびセキュリティ警告を決定することと、
エスカレーションされた性能およびセキュリティ警告を報告することと
を含む方法を実施することを前記コンピュータに行わせるように実行可能である、コンピュータ・プログラム製品。
A computer program product comprising a non-transitory computer readable storage embodying program instructions, the program instructions being executable by a computer, the program instructions being executable by a computer;
generating first performance and security information related to a software system during development of the software system;
generating second performance and security information related to the software system during post-deployment operation of the software system;
by matching the first performance and security information generated during the development of the software system with the second performance and security information generated during the post-deployment operation of the software system; , determining one or more performance and security alerts to escalate;
and reporting escalated performance and security alerts.
前記ソフトウェア・システムに関係する前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記開発中に生成することは、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの静的および動的試験を実施することにより、1つまたは複数の生成された警告の履歴を収集すること、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの1つまたは複数のサブシステムの第1の動的試験を実施することにより、前記1つまたは複数の生成された警告についての1つまたは複数のアプリケーション・ログを生成すること、ならびに、
前記ソフトウェア・システムの前記開発中に前記ソフトウェア・システムのコードの1つまたは複数のユニットの第2の動的試験を実施することにより、前記1つまたは複数の生成された警告についての1つまたは複数のエラー・ハンドリング・ログを生成すること
のうちの少なくとも1つを含む、請求項15に記載のコンピュータ・プログラム製品。
Generating the first performance and security information related to the software system during the development of the software system comprises:
collecting a history of one or more generated warnings by performing static and dynamic testing of code of the software system during the development of the software system;
one about the one or more generated warnings by performing a first dynamic test of one or more subsystems of code of the software system during the development of the software system; or generate multiple application logs, and
one or more of the one or more generated warnings by performing a second dynamic test of one or more units of code of the software system during the development of the software system; 16. The computer program product of claim 15, comprising at least one of generating a plurality of error handling logs.
前記ソフトウェア・システムにおけるルーチンどうしの間の1つまたは複数のコーリング関係性を表す1つまたは複数の生成されるコール・グラフを使用して、前記1つまたは複数の生成された警告の各生成された警告を中間ログ・シーケンスと関連付けることをさらに含む、請求項16に記載のコンピュータ・プログラム製品。 each of the one or more generated alerts using one or more generated call graphs representing one or more calling relationships between routines in the software system; 17. The computer program product of claim 16, further comprising associating an alert with an intermediate log sequence. 前記ソフトウェア・システムに関係する前記第2の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成することは、1つまたは複数の構成変更に関する情報、および、前記1つまたは複数の構成変更に関する1つまたは複数の生み出された警告のうちの少なくとも1つを収集することを含み、前記照合することは、前記1つまたは複数の構成変更、および、前記1つまたは複数の構成変更に関する前記1つまたは複数の生み出された警告のうちの少なくとも1つに関する前記収集された情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき性能ならびに前記1つまたは複数の性能およびセキュリティ警告を決定することを含む、請求項17に記載のコンピュータ・プログラム製品。 Generating the second performance and security information related to the software system during the post-deployment operation of the software system includes information regarding one or more configuration changes; collecting at least one of one or more generated alerts regarding a plurality of configuration changes, the collating includes collecting at least one of the one or more generated alerts regarding the one or more configuration changes; the collected information regarding at least one of the one or more generated alerts regarding configuration changes to the second performance and security information generated during the post-deployment operation of the software system; 18. The computer program product of claim 17, comprising determining performance to escalate and the one or more performance and security alerts by comparing the performance and security warnings to the performance and security warnings. 前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することは、
前記静的および動的試験中に生成された警告の前記履歴を使用して、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の根本原因を決定することと、
前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因が、前記静的および動的試験中に生成された前記警告の履歴中の近時の警告と照応することに応答して、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記警告をエスカレーションすること、または、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記警告と、前記静的および動的試験中に生成された前記警告履歴中の前記警告の両方をエスカレーションすることと
を含み、 前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因を前記警告記履歴中の近時の警告と照合することは、類似のログ・シーケンスまたはログ・グループに基づき、機械学習技術を使用して実施される、請求項18に記載のコンピュータ・プログラム製品。
Matching the first performance and security information generated during the development of the software system with the second performance and security information generated during the post-deployment operation of the software system. ,
using the history of alerts generated during the static and dynamic testing to determine the root cause of alerts generated by monitoring the post-deployment behavior of the software;
the root cause of the alert generated by monitoring the post-deployment behavior of the software corresponds to a recent alert in the history of alerts generated during the static and dynamic testing; in response, escalating the alert generated by monitoring the post-deployment behavior of the software, or escalating the alert generated by monitoring the post-deployment behavior of the software; escalating both warnings in the warning history generated during static and dynamic testing, and escalating the root causes of warnings generated by monitoring the post-deployment behavior of the software 19. The computer program product of claim 18, wherein matching against recent alerts in the alert log history is performed using machine learning techniques based on similar log sequences or log groups.
前記ソフトウェア・システムの前記開発中に生成された前記第1の性能およびセキュリティ情報を、前記ソフトウェア・システムの前記展開後の動作中に生成された前記第2の性能およびセキュリティ情報と照合することにより、エスカレーションすべき前記1つまたは複数の性能およびセキュリティ警告を決定することは、
1つまたは複数の類似のログ・シーケンス、および、1つまたは複数のログ・グループのうちの少なくとも1つに基づき、且つ、1つまたは複数の機械学習技術を使用して実施される、前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された警告の前記根本原因を前記警告履歴中の前記近時の警告と照合することと、
近時の時間窓を使用して前記1つまたは複数のアプリケーション・ログを調査することにより、前記静的および動的試験中に生成される警告の1つまたは複数のユニット試験エラー・ハンドリング・ログを、前記ソフトウェアの前記展開された動作をモニタリングすることにより生み出された1つまたは複数のモニタ警告と照合し、問題の既知のログ・シグネチャとの1つまたは複数の照応を探索し、少なくとも1つの照応が発見されると、前記ソフトウェアの前記展開された動作をモニタリングすることにより生み出された前記警告の重大度をエスカレーションすることと、
前記ソフトウェアの前記展開後の動作をモニタリングすることにより生み出された前記1つまたは複数の警告に関係する情報を、前記静的および動的試験中に生成された前記1つまたは複数の警告を生じさせるソース・コードと関連付けることと
をさらに含む、請求項19に記載のコンピュータ・プログラム製品。
by matching the first performance and security information generated during the development of the software system with the second performance and security information generated during the post-deployment operation of the software system; , determining the one or more performance and security alerts to escalate comprises:
said software based on at least one of one or more similar log sequences and one or more log groups and implemented using one or more machine learning techniques; matching the root cause of the alert generated by monitoring the post-deployment behavior of the alert to the recent alert in the alert history;
one or more unit test error handling logs for warnings generated during the static and dynamic tests by examining the one or more application logs using a recent time window; to one or more monitor alerts produced by monitoring the deployed operation of the software, searching for one or more correspondences with known log signatures of the problem, and at least one escalating the severity of the alert generated by monitoring the deployed behavior of the software if one anaphora is discovered;
information related to the one or more alerts generated by monitoring the post-deployment behavior of the software that caused the one or more alerts generated during the static and dynamic testing; 20. The computer program product of claim 19, further comprising: associating source code for causing the computer program product to perform a computer program.
JP2023522553A 2020-11-06 2021-10-26 Share insights between pre- and post-deployment to enhance cloud workload security Pending JP2023547354A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/091,386 US11947444B2 (en) 2020-11-06 2020-11-06 Sharing insights between pre and post deployment to enhance cloud workload security
US17/091,386 2020-11-06
PCT/IB2021/059855 WO2022096982A1 (en) 2020-11-06 2021-10-26 Sharing insights between pre and post deployment to enhance cloud workload security

Publications (1)

Publication Number Publication Date
JP2023547354A true JP2023547354A (en) 2023-11-10

Family

ID=81455335

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023522553A Pending JP2023547354A (en) 2020-11-06 2021-10-26 Share insights between pre- and post-deployment to enhance cloud workload security

Country Status (8)

Country Link
US (1) US11947444B2 (en)
JP (1) JP2023547354A (en)
KR (1) KR20230073320A (en)
CN (1) CN116457763A (en)
AU (1) AU2021375609A1 (en)
DE (1) DE112021005891T5 (en)
GB (1) GB2615677A (en)
WO (1) WO2022096982A1 (en)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8136162B2 (en) * 2006-08-31 2012-03-13 Broadcom Corporation Intelligent network interface controller
US8151247B2 (en) * 2006-10-09 2012-04-03 Sap Ag Test data management
US8418251B1 (en) 2009-04-27 2013-04-09 Symantec Corporation Detecting malware using cost characteristics
US20120060173A1 (en) * 2010-09-02 2012-03-08 James Malnati System and method for enhanced alert handling
CN104144063B (en) 2013-05-08 2018-08-10 朱烨 Web portal security monitoring and alarming system based on log analysis and firewall security matrix
US9606906B1 (en) * 2014-04-24 2017-03-28 Google Inc. Method for generating test data from expected product output
JP2016192185A (en) 2015-03-31 2016-11-10 株式会社日立製作所 Spoofing detection system and spoofing detection method
US20170076106A1 (en) 2015-09-16 2017-03-16 Qualcomm Incorporated Apparatus and method to securely control a remote operation
US9928055B1 (en) * 2015-10-23 2018-03-27 Sprint Communications Company L.P. Validating development software by comparing results from processing historic data sets
US10447525B2 (en) 2017-06-05 2019-10-15 Microsoft Technology Licensing, Llc Validating correlation between chains of alerts using cloud view
CN109117625B (en) 2017-06-22 2020-11-06 华为技术有限公司 Method and device for determining safety state of AI software system
US10789616B2 (en) 2017-06-30 2020-09-29 Rovi Guides, Inc. Systems and methods for presenting supplemental information related to an advertisement consumed on a different device within a threshold time period of an end of a corresponding advertisement slot
EP3470988A1 (en) * 2017-10-13 2019-04-17 Mastercard International Incorporated Method for replicating production behaviours in a development environment
US10740469B2 (en) * 2017-12-28 2020-08-11 Fmr Llc Automated secure software development management, risk assessment, and risk remediation
US11362910B2 (en) 2018-07-17 2022-06-14 International Business Machines Corporation Distributed machine learning for anomaly detection
US11586972B2 (en) 2018-11-19 2023-02-21 International Business Machines Corporation Tool-specific alerting rules based on abnormal and normal patterns obtained from history logs

Also Published As

Publication number Publication date
GB202306233D0 (en) 2023-06-14
US11947444B2 (en) 2024-04-02
AU2021375609A9 (en) 2024-02-08
DE112021005891T5 (en) 2023-08-24
CN116457763A (en) 2023-07-18
KR20230073320A (en) 2023-05-25
WO2022096982A1 (en) 2022-05-12
US20220147635A1 (en) 2022-05-12
AU2021375609A1 (en) 2023-05-25
GB2615677A (en) 2023-08-16

Similar Documents

Publication Publication Date Title
Liu et al. Host-based intrusion detection system with system calls: Review and future trends
US7975257B2 (en) Iterative static and dynamic software analysis
US9684786B2 (en) Monitoring an application in a process virtual machine
US10169210B2 (en) Association between a test case and source code
KR20110076976A (en) System, method and program product for detecting presence of malicious software running on a computer system
EP3640826A1 (en) Utilizing heuristic and machine learning models to generate a mandatory access control policy for an application
US11048621B2 (en) Ensuring source code integrity in a computing environment
KR101796369B1 (en) Apparatus, method and system of reverse engineering collaboration for software analsis
EP3200080A1 (en) Methods and systems for memory suspect detection
US20180137279A1 (en) Scan time reduction in application code security scanning
CN112799939A (en) Incremental code coverage rate testing method and device, storage medium and electronic equipment
Kim et al. Prof-gen: Practical study on system call whitelist generation for container attack surface reduction
US11550567B2 (en) User and entity behavior analytics of infrastructure as code in pre deployment of cloud infrastructure
US11449408B2 (en) Method, device, and computer program product for obtaining diagnostic information
US20160283522A1 (en) Matching untagged data sources to untagged data analysis applications
US20200183816A1 (en) System level test generation using dnn translation from unit level test
US9519566B2 (en) Modeling memory use of applications
JP2023547354A (en) Share insights between pre- and post-deployment to enhance cloud workload security
US20170161176A1 (en) Trace recovery via statistical reasoning
CN116069650A (en) Method and device for generating test cases
US20230236922A1 (en) Failure Prediction Using Informational Logs and Golden Signals
WO2019118338A1 (en) Systems and methods for mapping software applications interdependencies
US20180225110A1 (en) Legacy program code analysis and optimization
Tobin et al. Forensic analysis of virtual hard drives
JP7302223B2 (en) Script detection device, method and program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230511

RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20230511

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240319