CN112703485A - 使用机器学习方法支持对分布式系统内的计算环境的修改的实验评估 - Google Patents
使用机器学习方法支持对分布式系统内的计算环境的修改的实验评估 Download PDFInfo
- Publication number
- CN112703485A CN112703485A CN201980060129.2A CN201980060129A CN112703485A CN 112703485 A CN112703485 A CN 112703485A CN 201980060129 A CN201980060129 A CN 201980060129A CN 112703485 A CN112703485 A CN 112703485A
- Authority
- CN
- China
- Prior art keywords
- computing environment
- output
- machine learning
- learning model
- modification
- 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0866—Checking the configuration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种用于分布式系统中的计算环境的实验框架。机器学习模型可以被创建,该机器学习模型基于被提供给计算环境的至少一个输入预测由该计算环境产生的至少一个输出。在对计算环境的至少一个修改被做出之后的评估时间段期间,由计算环境产生的至少一个修改输出被确定。机器学习模型可以被用于计算如果至少一个修改未被做出时、计算环境将会在评估时间段期间产生的至少一个预测输出。还可以基于至少一个修改输出与至少一个预测输出的比较,来做出关于至少一个修改如何影响计算环境的确定。
Description
背景技术
分布式系统是一种计算机系统,其部件位于多个计算设备上。例如,分布式系统可以包括由一个或多个通信网络连接的多个独特的处理部件、存储器部件、存储部件、以及通信部件。分布式系统的各种部件可以彼此通信以便协调它们的动作。
分布式系统关于它们包括的部件的数目和类型以及关于这些部件之间的交互正变得更加复杂。另外,分布式系统的用户的数目可以相当大(例如,成百万的用户)。由于分布式系统的复杂性和所涉及的用户的巨大数目,分布式系统可能被部署在大量的(例如,成千的)计算设备上。在一些情况下,这些计算设备可能被分散在遍及广阔的地理区域。
云计算系统使用分布式系统的原则而被构建。云计算使对可配置的计算资源(例如,网络、服务器、存储装置、应用、服务)的共享池的访问变成可能,该共享池可以以最少的管理工作量或者服务提供方交互被快速供给(provision)和发布。对第三方云计算系统的使用可以使组织能够更紧密地集中于它们的核心业务,而不是在计算机基础架构和维护上消耗资源。
发明内容
公开了一种用于实验对分布式系统内的计算环境的修改的方法。根据该方法,针对计算环境的机器学习模型可以被创建。该机器学习模型可以基于被提供给该计算环境的至少一个输入来预测由计算环境产生的至少一个输出。当对计算环境的至少一个修改被做出时,该方法可以包括确定在至少一个修改被做出之后的评估时间段期间由该计算环境产生的至少一个修改输出。另外,机器学习模型可以被用于计算如果对计算环境的至少一个修改未被做出时、该计算环境将会在评估时间段期间产生的至少一个预测输出。至少一个修改输出与至少一个预测输出可以被比较以产生比较信息,该比较信息示出至少一个修改输出与至少一个预测输出之间的一个或多个差异。该至少一个修改如何影响计算环境的指示可以被输出。
该方法可以附加地包括验证机器学习模型,以核实至少一个预测输出满足关于至少一个修改输出的至少一个验证条件。在一些实现中,在机器学习模型已经被创建并且被验证之后,对计算环境的至少一个修改可以被做出。
计算至少一个预测输出可以包括在评估时间段期间向模拟的计算环境提供至少一个输入。模拟的计算环境可以利用机器学习模型来模拟犹如对计算环境的至少一个修改未被做出时、计算环境的性能。
在一些实现中,在对计算环境的至少一个修改被做出之后,机器学习模型可以被创建。在这样的实现中,机器学习模型可以基于历史数据而被创建。
对计算环境的至少一个修改可以涉及计算环境的软件配置、计算环境的硬件配置、或者与计算环境相关联的业务载荷中的至少一项。
输出指示可以响应于检测到至少一个修改输出与至少一个预测输出之间的差异超过阈值而发生。在一些实现中,该方法可以附加地包括响应于指示采取关于计算环境的纠正动作。
还公开了一种用于实验对分布式系统内的计算环境的修改的系统。该系统包括一个或多个处理器以及包括指令的存储器,该指令由一个或多个处理器可执行,以执行以上所描述的操作。还公开了一种非瞬态计算机可读介质。该非瞬态计算机可读介质包括被存储在其上的计算机可执行指令,该计算机可执行指令当被执行时使一个或多个处理器执行以上所描述的操作。
附图说明
图1A-图1C图示了根据本公开的实验框架的各方面。
图2图示了由计算环境产生的实际观测输出与由计算环境的模拟的版本产生的预测输出的比较的示例。
图3图示了与基于历史数据来确定机器学习模型有关的实验框架的附加方面。
图4图示了与响应于确定关于对计算环境的修改的信息而触发某些动作有关的实验框架的附加方面。
图5A-图5C图示了可以对计算环境的配置做出的不同种类的修改的示例。
图6是图示根据本公开的用于实验对分布式系统内的计算环境的修改的方法的流程图。
图7A-图7B图示了利用常规A/B测试的根据本公开的实验框架的比较。
图8图示了可以被包括在计算机系统内的某些部件。
具体实施方式
不时地,可能期望修改分布式系统的配置。例如,可能期望通过安装(或卸载)一个或多个软件部件或者改变软件设置来改变分布式系统的软件配置。作为另一个示例,可能期望通过添加(或移除)处理部件、存储器部件、存储部件和/或通信部件来改变分布式系统的硬件配置。还可能期望对分布式系统做出其他类型的改变。在向客户端设备供应内容的分布式系统中,这样的改变可以影响该分布式系统的各种部件接收的业务(例如,来自客户端设备的请求)的量和/或类型。
为了确定特定的改变将如何影响分布式系统,可以执行各种类型的测试。测试的一个类型通常被称为A/B测试。利用A/B测试,分布式系统内的一组计算设备(例如,一个或多个边缘节点)可以被指定为利用现有配置的控制组。分布式系统内的另一组节点可以被指定为实验组。所提议的改变可以被应用到实验组,并且可以比较实验组的性能与控制组的性能以确定所提议的改变的效应。
当执行A/B测试时,确保控制组在软件配置和硬件配置两方面以及关于其他因素方面(例如,诸如业务体量和业务的模式)等同于实验组是重要的。如果控制组不等同于实验组,则在测试过程期间被检测到的性能的任何差异可能不一定是由于作为测试主题的该所提议的改变引起的。
在一些情形中,在改变被应用到生产中的系统(例如,已经对预期用户可用的系统)之前,A/B测试可以在实验设置中被执行。使用该方法,合成的业务可以被生成以测量控制组与实验组之间的同等性。一个显著的问题是合成业务的质量必须极高,以使正在被测试的配置改变的准确测量成为可能。在复杂的分布式系统中,可能要求大量投资(在时间和金钱两方面),以使在实验设置中对生产工作载荷的准确仿真成为可能。由于所涉及的巨大成本,尽管有相关联的风险(诸如具有用户体验降级的性能),但是生产中的测试(例如,在系统已经对预期用户可用之后的测试)可能是许多类型的分布式系统的偏好选项。
用于生产中的A/B测试的一种方法涉及在单个环境内的一些被选择的机器上实验。然而,该方法覆盖非常有限的一组场景,并且要求对定制化配置的部署的手动干预或者对自动化的显著投资。该方法无法很好地扩展,并且其尤其不适于云计算环境。
用于生产中的A/B测试的另一种方法涉及使用拆分的环境。使用该方法,特定环境内的计算设备(例如,特定的地理位置)可以被划分成控制组和实验组。分布式系统可以包括许多不同类型的环境中的大量的计算设备。在一些情况下,分布式系统的仅某些环境可以被拆分成控制组和实验组。备选地,分布式系统的环境可以被拆分。在两种情况的任一种情况下,该方法的实用性实现是困难的。
例如,如果分布式系统的仅某些环境被拆分成控制组和实验组,这可能产生涉及实验结果的外推的问题。拆分的环境的软件配置和硬件配置可能与其他环境内的节点的软件配置和硬件配置不等同。另外,到拆分的环境的业务的分布可能与到其他环境的业务的分布不等同。
然而,将分布式系统的环境中的所有环境内的节点拆分成控制组和实验组也可能是不期望的。以这种方式拆分整个分布式系统(在时间和金钱两方面)的成本可能相当显著。同样,可能存在不期望的后果,诸如降低脱落效力(边缘节点摆脱其业务中的部分或全部业务的能力)。此外,拆分的环境中的A/B测试的效力依赖于在拆分的环境之间平均地散布业务载荷的能力。虽然载荷平衡部件是可用的,但是在实践中业务载荷可能并不总是随机被分布的。例如,与某个类型的业务相关联的传入请求可能相比实验组更多地被发送给控制组,反之亦然。结果,性能度量可能变得不可比较,这可能会引起实验的评估中的严重错误。并且,底层环境级硬件的运行中的差别可能会引起系统性错误(例如,一个拆分的环境可能会总是比其他拆分的环境显示更高的传输控制协议(TCP)重传率)。
确定特定更改将如何影响分布式系统的另一方式依赖于对时间序列预报模型的使用。例如,通过针对在一天期间遵循某些模式的度量而应用时间序列预报模型,用于控制组的数据可以被仿真。但是,该方法依赖于数据遵循特定的季节性模式的假设,并且该假设可能并不总是有效的。涉及用户行为的改变(例如,有关行业事件的改变,诸如技术会议、或者特定游戏或应用程序的发布)和/或涉及基础设施的改变(例如,对等重配置、中断和维护)可能会显著影响传入业务的体量和混合,从而以可能使所预报的数据不可用的方式偏移相关性能度量。
本公开一般涉及用于分布式系统的实验框架。根据本公开的实验框架使得以下是可能的:在没有显著成本以及与分布式系统的情境中的A/B测试的已知方法相关联的技术挑战的情况下,准确评估对分布式系统的特定修改的有效性。
如本文中所公开的实验框架可以被应用到分布式系统内的一个或多个计算环境。在该上下文中,术语“计算环境”可以是指分布式系统内的任一组计算资源,包括硬件资源(例如,处理、存储器、存储以及通信)和/或软件资源。计算环境可以包括多个计算设备或者仅单个计算设备。计算环境内的计算设备可以位于相同的地理区域内,或者它们可以跨不同的地理区域被分散。
如本文中所公开的实验框架可以利用机器学习以用于评估实验结果。根据本公开,机器学习技术可以被利用来创建针对计算环境的机器学习模型。机器学习模型可以是基于向计算环境的一个或多个输入来预测计算环境的一个或多个输出的功能。如以下将更详细地所讨论的,(多个)输出可以包括指示计算环境的有效性的一个或多个度量(或者其组合)。因此,机器学习模型可以基于向计算环境的一个或多个输入来预测计算环境的有效性。
在该上下文中,术语“输入”是指可以潜在地影响计算环境的性能的计算环境的任何特征或者特性。可以存在至少三个一般类别的向计算环境的输入:有关计算环境的硬件配置的输入,有关计算环境的软件配置的输入,以及有关与计算环境相关联的业务的输入。
计算环境的硬件配置包括影响计算环境的性能的物理部件。与硬件配置有关的向计算环境的输入的一些示例包括内存的量、磁盘大小、处理器数目、处理器的类型、和通信带宽。
计算环境的软件配置包括引导计算环境的操作的程序、例程、设置以及数据。与软件配置有关的向计算环境的输入的一些示例包括特定软件的构建版本、操作系统(OS)版本、OS级控件(例如,针对TCP协议的拥塞窗口)以及网络级控件。
如本文中所使用的,术语“业务载荷”是指与计算环境相关联的如下特性或因素:这些特性或者因素与硬件配置或者软件配置无关,但是仍然可以影响计算环境的性能。这样的特性或因素可以包括业务体量(计算环境接收的业务的量)和业务模式(业务体量如何随时间变化)。尽管业务载荷的一些特性可以在负责管理计算环境的个体的控制之内,但是业务载荷的至少某些特征可以在这样的个体的控制之外。与业务载荷有关的向计算环境的输入的一些示例包括在特定时段的时间所接收的客户端请求的数目(例如,每秒的请求)、网络带宽(指计算环境与请求客户端之间的通信信道的容量)、以及影响被路由到计算环境的业务的类型的路由决策。
在如本文中所公开的机器学习模型的上下文中,术语“输出”是指提供关于计算环境的性能(或者有效性)的信息的任何度量。输出的一些示例包括中央处理单元(CPU)利用率、存储器利用率、吞吐量、延时、功耗以及高速缓存命中率。
以上所提供的输入和输出的特定示例不应被解释为限制本公开的范围。存在可以根据本公开而被利用的许多附加的示例。如以上所指出的,机器学习模型可以是基于向计算环境的一个或多个输入来预测计算环境的一个或多个输出的功能。然而,根据本公开的机器学习模型不限于输入和输出的任何特定的集。适合用于特定实现的(多个)输入和(多个)输出的特定的集将取决于实现的目标是什么。
另外,本公开的范围不应限于任何特定类型的机器学习方法或算法。本领域技术人员将认识到,根据本公开,可以利用许多不同种类的机器学习方法和算法来创建机器学习模型。对于特定实现最佳的机器学习技术将取决于实现的目标是什么。
一旦对应于特定计算环境的机器学习模型已经被创建并且被验证,其然后就可以被用于评估对计算环境的修改的有效性。更具体地,在对计算环境的一个或多个改变被做出后,机器学习模型可以被用于预测如果改变未被做出时、计算环境将会产生的一个或多个输出。通过比较由机器学习模型预测的输出和计算环境自身的实际观测输出,对计算环境的改变的有效性可以被评估。
根据本公开的实验框架相对于已知方法提供若干优点。例如,所公开的实验框架使得能够实验任何类型的计算环境,无论是否存在可用于测试的另一个类似的计算环境(如常规A/B测试会要求的)。
所公开的实验框架还使得可能能够在实际用户正在与计算环境交互时实时地监视对计算环境的改变。除了支持有效性改善的评估之外,该特征还使得能够向用户警告退化(即,计算环境的性能下降)。例如,当退化被检测到时,可以向恰当的个体(例如,负责管理计算环境的个体)提供一个或多个警报。这对于实时生产系统尤其有用。在一些情形中,当退化被检测到时,本文中所公开的技术可以被利用来确定特定改变是否可能引起了退化。如所指示的,该类型的分析可以实时地被执行,或者在一些情况下,历史数据可以被用于这样的分析。
图1A-图1C图示了根据本公开的实验框架的各方面。该实验框架可以被应用到分布式系统内的计算环境102。实现该实验框架可以涉及创建对应于计算环境102的机器学习模型104。图1A图示了有关创建机器学习模型104的实验框架的方面。图1B图示了有关验证机器学习模型104的方面。图1C图示了有关使用机器学习模型104来评估对计算环境102的一个或多个改变的有效性的方面。
最初参考图1A。一个或多个输入106可以被提供给计算环境102,并且一个或多个输出108也可以由计算环境102产生。被提供给计算环境102的输入106和由计算环境102产生的输出108可以被提供给模拟的计算环境112,模拟的计算环境112利用机器学习来创建计算环境102的模拟的版本。在一些实现中,模拟的计算环境112可以在和计算环境102自身相同的硬件部件上运行。备选地,模拟的计算环境112可以在不同的硬件部件上运行。无论其在何处被实现,模拟的计算环境112都可以评估输入106和输出108以创建机器学习模型104。机器学习模型104可以是基于向计算环境102的一个或多个输入106来预测计算环境102的一个或多个输出108的功能。
如上所示,向计算环境102的输入106可以宽泛地被分类成有关计算环境102的硬件配置的输入106、有关计算环境102的软件配置的输入106、以及有关与计算环境102相关联的业务载荷的输入。在一些实现中,机器学习模型104的训练可以在与计算环境102的硬件配置和软件配置有关的输入106不改变的时间段期间发生。在训练机器学习模型104的训练期间保持计算环境102的硬件配置和软件配置恒定可以简化创建机器学习模型104的过程。然而,本公开的范围不应限于此方面。机器学习模型104的训练可以在有关计算环境102的硬件配置和/或软件配置的输入106的确改变的时间段期间发生。有关这些改变的数据可以被收集,并且改变可以经由机器学习模型104中的参数而被考虑。
在模拟的计算环境112已经被提供有足够量的数据(输入106和输出108)使得由机器学习模型104做出的预测可能是准确的之后,机器学习模型104可以被验证。例如,与所定义的时间量对应的输入106和输出108已经被评估之后,机器学习模型104可以被验证。该时间量取决于特定实现。针对一些实现,可能能够使用来自相对短时段的时间的数据来创建足够准确的机器学习模型104。例如,在有许多输入106和输出108频繁发生时可以是这种情况。针对其他种类的实现,可能期望在机器学习模型104被验证之前等待,直到对应于更长时段的时间(例如,分钟、小时、天)的数据已经被评估为止。
现在参考图1B,其图示了示出机器学习模型104可以如何被验证的示例。一般来说,验证机器学习模型104的目的是为了确定由机器学习模型104做出的预测是否足够准确使得它们可以被合理地依赖以用于评估对计算环境102的改变的目的。
为了支持验证,模拟的计算环境112可以利用机器学习模型104来确定预测输出114,预测输出114是关于如下的预测:基于向计算环境102的输入106的计算环境102的输出将是什么。因此,在验证期间,输入106可以被提供给计算环境102自身以及模拟的计算环境112两者。然而,在验证期间,计算环境102的输出108不应当被提供给模拟的计算环境112,因为验证的目的是为了测试机器学习模型104的准确性。模拟的计算环境112应当被允许在不知道计算环境102的实际输出108的情况下做出关于计算环境102的输出将是什么的预测。
为了评估机器学习模型104的准确性,由计算环境102产生的实际观测输出108可以与由模拟的计算环境112产生的预测输出114比较。图1B中示出验证模块116以用于提供该功能性。
验证模块116可以确定一个或多个验证条件118是否被满足,并且验证模块116可以输出一个或多个验证结果120。验证条件118可以定义如下情况,在该情况下,机器学习模型104被视为已经被验证。在一些实现中,验证条件118可以定义预测输出114与观测输出108之间的差异的可接受范围。例如,一个或多个阈值可以被定义,该一个或多个阈值表示预测输出114与观测输出108之间的最大可允许差异。如果预测输出114与观测输出108之间的差异在可接受范围内(例如,小于相关的阈值),则验证结果120可以指示机器学习模型104的验证是成功的。另一方面,如果预测输出114与观测输出108之间的差异不在可接受范围内,则验证结果120可以指示机器学习模型104的验证是不成功的。
如果机器学习模型104的验证不是成功的,则可能还没有足够量的数据用于训练。因此,附加的时间(和/或附加的数据)可以被投入来训练机器学习模型104。可能能够在时间中回溯并且取回可以被用于提供用于机器学习模型104的附加训练的历史数据(如果可用)。
在一些情况下,如果机器学习模型104未被验证,则这可以指示关于机器学习模型104的某些假设可能不正确。例如,假设出于创建机器学习模型104的目的做出如下假设:计算环境102的软件配置和硬件配置是基本恒定的。进一步假设,然而,对这些配置中的一者或两者的改变在训练时段期间发生。在该示例中,验证可能失败,因为机器学习模型104未考虑那些改变。为了解决该失败,一个方法可以是标识当对软件配置和/或硬件配置的(多个)改变发生时的时间点,然后从该点向前开始训练机器学习模型104。另一个方法可以是向机器学习模型104自身添加附加的参数(对应于软件配置和/或硬件配置的经改变的方面)。
如果机器学习模型104的验证是成功的,则机器学习模型104可以被用于评估可以对计算环境102做出的改变。有利地,这可以实时完成。现在参考图1C,对计算环境102的一个或多个修改122可以被做出。修改122可以包括对计算环境102的软件配置和/或硬件配置的改变。修改122还可以包括对计算环境102的改变的其他类型,包括对由计算环境102经历的业务载荷的改变。例如,被路由到计算环境102的业务的类型可以被改变。修改122可以引起修改计算环境102a,该修改计算环境102a产生修改输出108a的。修改输出108a是在修改122被做出后由修改计算环境102a产生的输出(该术语如以上所定义)。
为了确定修改122的效应,由模拟的计算环境112产生的预测输出114可以与由修改计算环境102a产生的修改输出108a比较。示出评估模块124用于提供该功能性。基于可以被定义的一个或多个评估条件126,评估模块124可以比较预测输出114与修改输出108a。预测输出114是如果修改122未被做出时、计算环境102将会产生的输出的预测。因此,通过将预测输出114与修改输出108a(其对应于修改计算环境102a的实际观测输出)比较,可能能够确定修改122对计算环境102的性能具有什么效应(如果有)。评估模块124可以输出描述这些效应的评估结果128。
存在评估结果128可以被输出的各种方式。例如,评估结果128可以被显示在一个或多个显示屏幕上。作为另一个示例,一个或多个通知消息可以被发送给负责管理计算环境102的一个或多个个体。通知消息可以包括评估结果128中的至少一些评估结果。在一些情况下,如果预测输出114与修改输出108a之间的差异是显著的(例如,超过阈值),则评估结果128可以被输出。
预测输出114与修改输出108a的比较可以实时发生。换言之,在与修改计算环境102a运行并且产生修改输出108a时基本相同的时间,模拟的计算环境112可以产生预测输出114。因此,可能能够在与修改输出108a被产生时基本相同的时间,将预测输出114与修改输出108a比较。
如果由修改计算环境102a产生的修改输出108a从预测输出114偏离太多,则这可以指示修改122导致问题。负责管理计算环境102的一个或多个个体可以被通知潜在的问题,并且他们可以选择回滚修改122。例如,如果(多个)预测输出114与(多个)修改输出108a的比较指示修改122对计算环境102具有有害效应,则计算环境102的管理员可以撤销修改122。
评估条件126可以定义预测输出114与修改输出108a将如何被比较。在一些实现中,预测输出114和修改输出108a两者都可以按有效性度量被表达。为了确定修改122对计算环境102的性能的效应,评估条件126可以指定:对应于预测输出114的有效性度量可以与对应于修改输出108a的有效性度量比较。
图2是图示由计算环境(例如,计算环境102)产生的实际观测输出208与由计算环境的模拟的版本(例如,模拟的计算环境112)产生的预测输出214的比较的示例的曲线图。为了清楚起见,将结合图1A-图1C中所图示的实验框架的各种部件来解释该曲线图。
在所描绘的示例中,观测输出208和预测输出214两者都按有效性度量而被表示。有效性度量可以仅表示单个输出,或者其可以表示若干输出的组合(可能是经加权的)。图2所示的曲线图的x轴线对应于时间,并且该曲线图的y轴线对应于在各个时间点处的有效性度量的值(针对观测输出208和预测输出214两者)
曲线图上表示了三个不同的时间段:训练时间段230、验证时间段232以及评估时间段234。在训练时间段230期间,模拟的计算环境112创建机器学习模型104。因为模拟的计算环境112在训练时间段230期间具有对计算环境102的输出208的访问,所以在训练时间段230期间由模拟的计算环境112产生的预测输出214非常接近由计算环境102产生的实际观测输出。
在验证时间段232期间,机器学习模型104的准确性被测试。在所描绘的示例中,在验证时间段232期间由模拟的计算环境112产生的预测输出214非常接近在验证时间段232期间由计算环境102产生的实际观测输出208。因此,在该示例中,机器学习模型104的验证可以被视为是成功的。
在评估时间段234期间,机器学习模型104可以被用于评估对计算环境102所做出的修改122的效应。在所描绘的示例中,修改122改变计算环境102的性能,使得修改计算环境102a的性能与计算环境102的性能不同。因此,存在由修改计算环境102a产生的修改输出208a与由模拟的计算环境112产生的预测输出214之间的差异。通过比较修改输出208a和预测输出214,可能能够评估对计算环境102所做出的修改122的效应。
图3图示了根据本公开的实验框架的附加的方面。在图3所示的示例中,机器学习模型304可以基于历史数据336(即,已经从过去的事件被保存的数据)而被确定。更具体地,被提供给计算环境302的输入306和由计算环境302产生的输出308可以被存储为历史数据336。然后在随后的某个时间点处,模拟的计算环境312可以评估历史数据336,以创建针对计算环境302的机器学习模型304。
图3中所描绘的方法的一个益处是它提供关于对计算环境302的修改何时可以被评估的附加的灵活性。例如,假设分布式系统的管理员在他们已经创建针对计算环境302的机器学习模型304之前修改计算环境302。进一步假设计算环境302的性能在修改被做出后剧烈改变,并且管理员想要尝试确定性能的改变是否由修改导致。如果对应于计算环境302的输入306和输出308已经被保存为历史数据336,则依然可能能够利用本文中所公开的技术来评估对计算环境302的修改的效应,即使修改已经被做出。换而言之,通过使用对应于在对计算环境302做出修改之前的时段的时间的历史数据336,可能能够创建如下机器学习模型304,该机器学习模型304模拟计算环境302在修改被做出之前的性能。有利地,这可以在对计算环境302的修改已经被做出后的时间点被完成。在修改后的计算环境302的实际观测输出308可以与由机器学习模型304做出的预测比较,以查看修改是否导致已经观测到的性能的降级。
保留历史遥测信号一些时间经常是生产系统的默认行为。因此,在计算环境302包括生产系统的情况下,经常是对应于计算环境302的输入306和输出308作为历史数据336可能可用。此外,即使包括输入306和输出308的历史数据336不可用,如果对应于机器学习模型304的其他参数的数据被保存,也依然可能能够在修改已经被做出后评估对计算环境302的修改的效应。这样的数据可以比包括输入306和输出308的历史数据336占用更少的存储空间。
图3中示出了存储部件338用于存储历史数据336。尽管图3中示出仅单个存储部件338,但是多个存储部件可以被利用来存储历史数据336。
图4图示了根据本公开的实验框架的附加的方面。更具体地,图4图示了被确定关于对计算环境402的修改422的信息可以如何触发某些动作。
如先前所讨论的,由模拟的计算环境412产生的预测输出414可以与由修改计算环境402a产生的修改输出408a比较。示出评估模块424用于提供该功能性。评估模块424可以被配置为当某些条件被满足时采取一个或多个动作。
例如,当修改输出408a与预测输出414之间的差异达到某个点时,这可以指示修改计算环境402a的性能已经降级到不可接受的水平。一个或多个阈值440可以被定义为指示修改输出408a与预测输出414之间的差异何时已经变得过多。响应于检测到修改输出408a与预测输出414之间的差异超过所定义的阈值440,一个或多个动作可以被采取。例如,响应于确定阈值440已经被超过,评估模块424可以自动地向有兴趣方发送一个或多个通知消息442。在图4中,示出评估模块424向管理员系统444发送通知消息442,该管理员系统444旨在表示与关于分布式系统处于授权位置(例如,IT管理员)的某人相关联的计算机系统。
图5A-图5C图示了可以对计算环境502的配置做出的不同种类的改变的示例。在图5A-图5C中的每个图中,在时间t1处计算环境502被示出具有硬件配置546、软件配置548以及业务配置550。在时间t2处修改计算环境被示出。
在图5A中,修改计算环境502a包括修改硬件配置546a,但是软件配置548和业务配置550与在计算环境502中相同。因此,图5A图示了如下场景:在该场景中,对计算环境502的硬件配置546已经做出了一个或多个修改。
在图5B中,修改计算环境502a'包括修改软件配置548a,但是硬件配置546和业务配置550与在计算环境502中相同。因此,图5B图示了如下场景:在该场景中,对计算环境502的软件配置548已经做出了一个或多个修改。
在图5C中,修改计算环境502a”包括修改业务配置550a,但是硬件配置546和软件配置548与在计算环境502中相同。因此,图5C图示了如下场景:在该场景中,对计算环境502的业务配置550已经做出了一个或多个修改。
当然,根据本公开,图5A-图5C所示的修改的各种组合也是可能的。本文中所公开的技术可以被利用来评估许多不同类型的修改的有效性,包括对计算环境502的硬件配置546、软件配置548和/或业务配置550的修改。
图6是图示根据本公开的方法600的示例的流程图,方法600用于实验对分布式系统内的计算环境102的修改。为了清楚起见,将结合图1A-图1C中所图示的实验框架的各个部件来说明方法600。
方法600涉及创建602针对分布式系统内的计算环境102的机器学习模型104。机器学习技术可以被利用来训练机器学习模型104,以预测会由计算环境102基于被提供给计算环境102的至少一个输入106而产生的至少一个输出114。方法600还可以包括验证604机器学习模型104,以核实(多个)预测输出114满足关于由计算环境102产生的(多个)实际输出108的一个或多个验证条件118。一旦机器学习模型104被验证604,机器学习模型104就可以被用于评估可以对计算环境102做出的改变。
更具体地,在对计算环境102的修改122被做出606后(由此产生修改计算环境102a,修改计算环境102a产生修改输出108a),方法600可以包括确定608至少一个修改输出108a,该至少一个修改输出108a在修改122被做出之后由修改计算环境102a产生。方法600还可以包括使用机器学习模型104来计算610如果修改122未被做出时、计算环境102将会产生的至少一个预测输出114。
为了确定修改122的效应(如果有),由机器学习模型104预测的(多个)输出114可以与由修改计算环境102产生的(多个)修改输出108a比较612。如果任何显著的差异在(多个)预测输出114与(多个)修改输出108a之间被检测到(例如,如果预测输出114与修改输出108a之间的差异超过所定义的阈值),则方法600可以包括输出616修改122如何影响计算环境102的指示。例如,(多个)预测输出114与(多个)修改输出108a之间的任何显著差异(例如,超过阈值的差异)的概要可以被显示在一个或多个显示屏幕上。作为另一个示例,一个或多个通知消息可以被发送给有兴趣方,诸如计算环境102的管理员。通知消息可以包括关于已经在(多个)预测输出114与(多个)修改输出108a之间被检测到的差异的信息。
在一些情况下,方法600还可以包括采取618关于计算环境102的纠正动作。例如,如果(多个)预测输出114与(多个)修改输出108a的比较指示修改122对计算环境102具有有害效应,则计算环境102的管理员可以撤销修改122。换而言之,管理员可以将计算环境102恢复回到其在修改122被做出之前的样子。
图7A-图7B图示了利用常规A/B测试根据本公开的实验框架的比较。最初参考图7A,其图示了常规A/B测试框架的示例。三个阶段被示出。在阶段一中,完全相同的代码和配置(其在图7A中被命名为A和A')被部署在具有完全相同的硬件部件的两个计算环境处。实验可以被执行以核实A计算环境的性能与A'计算环境的性能的等同性。该实验可以被称为A/A'实验。A/A'实验可以如必要久的被保持运行,以收集与A计算环境的性能有关的观测度量752的足够数目的值和与A'计算环境的性能有关的观测度量754的足够数目的值。统计评估756可以关于观测度量752、754被执行。如果在观测度量752、754之间存在显着差异,则可以做出尝试来标识并且纠正正在引起这些差异的无论什么。A/A'实验可以被继续,直到统计评估756的结果在统计上是显著的并且观测度量752、754之间的差异是可忽略的为止。此时,总体方法可以进行到阶段二。
在阶段二期间,对应于当前发布的代码和配置被部署在在阶段一中被测试的计算环境中的一个计算环境中,并且对应于新候选的代码和配置被部署在在阶段一中被测试的另一个计算环境中。针对阶段二的目的,这些计算环境可以被称为A计算环境(其具有对应于当前发布的代码和配置)和B计算环境(其具有对应于新候选的代码和配置)。实验可以被执行以评估A计算环境的性能与B计算环境的性能之间的差异。该实验可以被称为A/B实验。A/B实验可以如必要久的被保持运行,以收集与A计算环境的性能有关的观测度量758的足够数目的值和与B计算环境的性能有关的观测度量760的足够数目的值。统计评估756可以关于观测度量758、760被执行。A/B实验可以被继续,直到统计评估762的结果在统计上是显著的为止。此时,总体方法可以进行到阶段三。
在阶段三期间,观测度量752、754、758、760与已经被做出的统计评估756、762之间的比较可以被做出,可以从这些比较得出推理764。来自指定硬件部件的部署改变也可以在阶段三期间被清理。
根据本公开的实验框架可以改变图7A中被虚线包围的部件。如图7B所描绘的,这些部件可以被机器学习驱动的仿真替换。换而言之,根据本公开,在第二硬件部件上的实际实验可以被实验的仿真替换。
关于图7A所示的常规A/B测试,应注意在A/A'测试期间确保等同性的过程在复杂的分布式系统(例如,云计算环境)的情境中可能相当困难。与确保A计算环境和A'计算环境以关于统计测试相同的方式来执行相比,使用机器学习驱动的仿真代替第二计算环境可以简单得多。确保两个有区别的计算环境接收等同的载荷并且相似地处理该载荷可能是困难的并且可能要求持续的纠正。
现在参考图7B,其图示了根据本公开的实验框架的示例。再次地,三个阶段被示出。在阶段一期间,代码和配置被部署在特定计算环境处。这是图7B中的“A实验”。另外,计算环境(具有所部署的代码和配置)的机器学习仿真可以被创建。这是图7B中的“ML实验”。机器学习仿真可以被精细化,直到统计评估770指示对应于机器学习仿真的观测度量768基本等同于对应于计算环境自身的观测度量766为止。此时,总体方法可以进行到阶段二。
在阶段二期间,对计算环境的一个或多个改变可以被做出。这些改变可以与被部署在计算环境上的代码和配置、和/或计算环境的硬件配置、和/或由计算环境经历的业务载荷有关。这是图7B所示的“B实验”。统计评估776可以关于与B实验相关联的观测度量774的值和与ML实验(其模拟在改变被做出前的计算环境的性能)相关联的观测度量772的值被执行。在阶段三期间,观测度量766、768、772、774与已被做出的统计评估770、776之间的比较可以被做出,并且推理764可以从这些比较被得出。
存在本文中所公开的实验框架的许多可能的应用。例如,如先前所指出的,根据本公开的实验框架可以在特定改变被发往生产前被利用来评估这些改变对系统性能的效应,在改变已经被部署到生产后检测重要度量上的退化(性能的降级),估计分布式系统性能的全局改善,以及在对业务改变的情况下预测对性能的改变。
图8示出了可以被包括在计算机系统800内的某些部件。一个或多个计算机系统800可以被用于实现本文中所描述的各种设备、部件和系统。
计算机系统800包括处理器801。处理器801可以是通用单芯片或多芯片微处理器(例如,高级RISC(精简指令集计算机)机器(ARM))、专用微处理器(例如,数字信号处理器(DSP)、微控制器、可编程门阵列等。处理器801可以被称为中央处理单元(CPU)。尽管在图7的计算机系统800中仅示出了单个处理器801,但是在备选的配置中,处理器的组合(例如,ARM和DSP)可以被使用。
计算机系统800还包括与处理器801电子地通信的存储器803。存储器803可以是能够存储电子信息的任何电子部件。例如,存储器803可以被实施为随机存取存储器(RAM)、只读存储器(ROM)、磁盘存储介质、光学存储介质、RAM中的闪存设备、与处理器一起被包括的板上存储器、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)存储器、寄存器等,包括前述的组合。
指令805和数据807可以被存储在存储器803中。指令805由处理器801可执行,以实现本文中所公开的步骤、操作、动作或者其他功能性中的一些或全部步骤、操作、动作或者其他功能性。执行指令805可以涉及使用被存储在存储器803中的数据807。本文中所描述的模块和部件的示例中的任何示例可以部分或全部地被实现为被存储在存储器803中并且由处理器801执行的指令805。本文中所描述的数据的示例中的任何示例可以在如下数据807之中,该数据807被存储在存储器803中并且在指令805的执行期间被处理器801使用。
计算机系统800还可以包括用于与其他电子设备通信的一个或多个通信接口809。(多个)通信接口809可以基于有线通信技术、无线通信技术、或者两者。通信接口809的一些示例包括通用串行总线(USB)、以太网适配器、根据电气和电子工程师协会(IEEE)802.11无线通信协议而操作的无线适配器、无线通信适配器、以及红外(IR)通信端口。
计算机系统800还可以包括一个或多个输入设备811和一个或多个输出设备813。输入设备811的一些示例包括键盘、鼠标、麦克风、远程控制设备、按钮、操纵杆、轨迹球、触摸板以及光笔。输出设备813的一些示例包括扬声器和打印机。通常被包括在计算机系统800中的一个特定类型的输出设备是显示设备815。与本文中所公开的实施例一起被使用的显示设备815可以利用任何适当的图像投影技术,诸如液晶显示器(LCD)、发光二极管(LED)、气体等离子体、电致发光等。显示控制器817还可以被提供,用于将被存储在存储器803中的数据807转换为在显示设备815上(如恰当地)被示出的文本、图形和/或移动图像。
计算机系统800的各个部件可以被一个或多个总线耦合在一起,该总线可以包括电源总线、控制信号总线、状态信号总线、数据总线等。为了清楚起见,各种总线在图8中被图示为总线系统819。
除非具体地被描述为以特定方式被实现,否则本文中所描述的技术可以以硬件、软件、固件或其任何组合来实现。被描述为模块、部件等的任何特征也可以在集成逻辑设备中被实现在一起,或者被单独地实现为离散的但是可互操作的逻辑设备。如果以软件来实现,则该技术可以至少部分地通具有存储在其上的计算机可执行指令的非瞬态计算机可读介质来实现,该计算机可执行指令当由至少一个处理器执行时,执行本文中所描述的步骤、操作、动作或者其他功能性中的一些或所有步骤、操作、动作或者其他功能性。指令可以被组织为例程、程序、对象、部件、数据结构等,其可以执行特定的任务和/或实现特定的数据类型,并且可以在各种实施例中按需被组合或者被分布。
在不背离权利要求的范围的情况下,本文中所描述的方法的步骤、操作和/或动作可以与彼此互换。换而言之,除非所描述的方法的正常运行要求步骤、操作和/或动作的特定顺序,否则可以在不背离权利要求的范围的情况下,修改特定步骤、操作和/或动作的顺序和/或使用。
术语“确定”涵盖多种动作,因此,“确定”可以包括计算(calculating)、计算(computing)、处理、推导、调差、查找(例如,在表、数据库或者另一种数据结构中查找)、查明等。并且,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。并且,“确定”可以包括解析、选择、挑选、建立等。
术语“包括”、“包含”和“具有”旨在是包含性的,并且意味着除所列元素以外,还可以有其他元素。附加地,应当理解,对本公开的“一个实施例”或“实施例”的引用不旨在被解释为排除也包含所叙述特征的附加实施例的存在。例如,在兼容的情况下,关于本文中的一个实施例被描述的任何元素或特征与本文中所描述的任何其他实施例的任何元素或特征是可组合的。
在不脱离本发明的精神或者特性的情况下,本发明可以以其他特定的形式来体现。所描述的实施例应被认为是说明性的而非限制性的。因此,本公开的范围由所附权利要求而不是前述描述来指示。在权利要求的等价的含义和范围内的改变应被包含在权利要求的范围之内。
Claims (15)
1.一种用于实验对分布式系统内的计算环境的修改的方法,包括:
创建针对所述计算环境的机器学习模型,其中所述机器学习模型基于被提供给所述计算环境的至少一个输入来预测由所述计算环境产生的至少一个输出;
确定由所述分布式系统内的所述计算环境产生的至少一个修改输出,所述至少一个修改输出在评估时间段期间被产生,所述评估时间段在对所述计算环境的至少一个修改被做出之后;
计算如果对所述计算环境的所述至少一个修改未被做出时、所述计算环境将会在所述评估时间段期间产生的至少一个预测输出,其中所述至少一个预测输出是使用所述机器学习模型而被计算的;
比较所述至少一个修改输出与所述至少一个预测输出以产生比较信息,所述比较信息示出所述至少一个修改输出与所述至少一个预测输出之间的一个或多个差异;以及
基于所述比较信息来输出所述至少一个修改如何影响所述计算环境的指示。
2.根据权利要求1所述的方法,还包括验证所述机器学习模型,以核实所述至少一个预测输出满足关于所述至少一个修改输出的至少一个验证条件。
3.根据权利要求1所述的方法,其中:
计算所述至少一个预测输出包括:在所述评估时间段期间,向模拟的计算环境提供所述至少一个输入;并且
所述模拟的计算环境利用所述机器学习模型来模拟犹如对所述计算环境的所述至少一个修改未被做出时、所述计算环境的性能。
4.根据权利要求1所述的方法,其中在所述机器学习模型已经被创建并且被验证后,对所述计算环境的所述至少一个修改被做出。
5.根据权利要求1所述的方法,其中:
在对所述计算环境的所述至少一个修改被做出之后,所述机器学习模型被创建;并且
所述机器学习模型基于历史数据而被创建。
6.根据权利要求1所述的方法,其中对所述计算环境的所述至少一个修改涉及以下至少一项:
所述计算环境的软件配置;
所述计算环境的硬件配置,或者
与所述计算环境相关联的业务载荷。
7.根据权利要求1所述的方法,其中输出所述指示响应于检测到所述至少一个修改输出与所述至少一个预测输出之间的差异超过阈值而发生。
8.根据权利要求1所述的方法,还包括响应于所述指示采取关于所述计算环境的纠正动作。
9.一种用于实验对分布式系统内的计算环境的修改的系统,包括:
一个或多个处理器;以及
包括指令的存储器,所述指令由所述一个或多个处理器可执行,以执行包括以下的操作:
创建针对所述计算环境的机器学习模型,其中所述机器学习模型基于被提供给所述计算环境的至少一个输入来预测由所述计算环境产生的至少一个输出;
确定由所述分布式系统内的所述计算环境产生的至少一个修改输出,所述至少一个修改输出在评估时间段期间被产生,所述评估时间段在对所述计算环境的至少一个修改被做出之后;
计算如果对所述计算环境的所述至少一个修改未被做出时、所述计算环境将会在所述评估时间段期间产生的至少一个预测输出,其中所述至少一个预测输出是使用所述机器学习模型而被计算的;
比较所述至少一个修改输出与所述至少一个预测输出以产生比较信息,所述比较信息示出所述至少一个修改输出与所述至少一个预测输出之间的一个或多个差异;以及
基于所述比较信息来输出所述至少一个修改如何影响所述计算环境的指示。
10.根据权利要求9所述的系统,其中所述操作还包括验证所述机器学习模型,以核实所述至少一个预测输出满足关于所述至少一个修改输出的至少一个验证条件。
11.根据权利要求9所述的系统,其中:
计算所述至少一个预测输出包括:在所述评估时间段期间,向模拟的计算环境提供所述至少一个输入;并且
所述模拟的计算环境利用所述机器学习模型来模拟犹如对所述计算环境的所述至少一个修改未被做出时、所述计算环境的性能。
12.根据权利要求9所述的系统,其中在所述机器学习模型已经被创建并且被验证后,对所述计算环境的所述至少一个修改被做出。
13.根据权利要求9所述的系统,其中:
在对所述计算环境的所述至少一个修改被做出之后,所述机器学习模型被创建;并且
所述机器学习模型基于历史数据而被创建。
14.根据权利要求9所述的系统,其中对所述计算环境的所述至少一个修改涉及以下至少一项:
所述计算环境的软件配置;
所述计算环境的硬件配置,或者
与所述计算环境相关联的业务载荷。
15.根据权利要求9所述的系统,其中输出所述指示响应于检测到所述至少一个修改输出与所述至少一个预测输出之间的差异超过阈值而发生。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/132,212 US11423326B2 (en) | 2018-09-14 | 2018-09-14 | Using machine-learning methods to facilitate experimental evaluation of modifications to a computational environment within a distributed system |
| US16/132,212 | 2018-09-14 | ||
| PCT/US2019/038863 WO2020055492A1 (en) | 2018-09-14 | 2019-06-25 | Using machine-learning methods to facilitate experimental evaluation of modifications to a computational environment within a distributed system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN112703485A true CN112703485A (zh) | 2021-04-23 |
Family
ID=67211963
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201980060129.2A Pending CN112703485A (zh) | 2018-09-14 | 2019-06-25 | 使用机器学习方法支持对分布式系统内的计算环境的修改的实验评估 |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US11423326B2 (zh) |
| EP (1) | EP3850484A1 (zh) |
| CN (1) | CN112703485A (zh) |
| WO (1) | WO2020055492A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2024098170A1 (en) * | 2022-11-07 | 2024-05-16 | Shenzhen Tcl New Technology Co., Ltd. | Wireless communication method and wireless communication device |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112311605B (zh) * | 2020-11-06 | 2023-12-22 | 北京格灵深瞳信息技术股份有限公司 | 提供机器学习服务的云平台及方法 |
| US11556336B2 (en) * | 2021-02-16 | 2023-01-17 | Bank Of America Corporation | System for computer code development environment cloning and authentication using a distributed server network and machine learning |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016040699A1 (en) * | 2014-09-10 | 2016-03-17 | Amazon Technologies, Inc. | Computing instance launch time |
| US20170374165A1 (en) * | 2016-06-24 | 2017-12-28 | Microsoft Technology Licensing, Llc | Computing environment modification based on an impact curve |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5656946B2 (ja) * | 2012-09-27 | 2015-01-21 | 株式会社東芝 | データ分析装置及びプログラム |
| US9292354B2 (en) * | 2013-10-18 | 2016-03-22 | Microsoft Technology Licensing, Llc | Self-adjusting framework for managing device capacity |
| US10963810B2 (en) | 2014-06-30 | 2021-03-30 | Amazon Technologies, Inc. | Efficient duplicate detection for machine learning data sets |
| US10192134B2 (en) * | 2014-06-30 | 2019-01-29 | Microsoft Technology Licensing, Llc | Color identification using infrared imaging |
| US11113704B2 (en) * | 2015-12-07 | 2021-09-07 | Daniel J. Towriss | Systems and methods for interactive annuity product services using machine learning modeling |
| US10134070B2 (en) * | 2016-05-25 | 2018-11-20 | Bank Of America Corporation | Contextualized user recapture system |
| US10223426B2 (en) * | 2016-05-25 | 2019-03-05 | Bank Of America Corporation | System for providing contextualized search results of help topics |
| US10091904B2 (en) * | 2016-07-22 | 2018-10-02 | Intel Corporation | Storage sled for data center |
| US20190205792A1 (en) * | 2016-11-02 | 2019-07-04 | Intel Corporation | Automated generation of workflows |
| US10878144B2 (en) * | 2017-08-10 | 2020-12-29 | Allstate Insurance Company | Multi-platform model processing and execution management engine |
| US11099743B2 (en) * | 2018-06-29 | 2021-08-24 | International Business Machines Corporation | Determining when to replace a storage device using a machine learning module |
-
2018
- 2018-09-14 US US16/132,212 patent/US11423326B2/en active Active
-
2019
- 2019-06-25 WO PCT/US2019/038863 patent/WO2020055492A1/en not_active Ceased
- 2019-06-25 EP EP19737437.4A patent/EP3850484A1/en not_active Ceased
- 2019-06-25 CN CN201980060129.2A patent/CN112703485A/zh active Pending
-
2022
- 2022-08-10 US US17/884,829 patent/US11669374B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016040699A1 (en) * | 2014-09-10 | 2016-03-17 | Amazon Technologies, Inc. | Computing instance launch time |
| US20170374165A1 (en) * | 2016-06-24 | 2017-12-28 | Microsoft Technology Licensing, Llc | Computing environment modification based on an impact curve |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2024098170A1 (en) * | 2022-11-07 | 2024-05-16 | Shenzhen Tcl New Technology Co., Ltd. | Wireless communication method and wireless communication device |
Also Published As
| Publication number | Publication date |
|---|---|
| EP3850484A1 (en) | 2021-07-21 |
| WO2020055492A1 (en) | 2020-03-19 |
| US20200089651A1 (en) | 2020-03-19 |
| US11669374B2 (en) | 2023-06-06 |
| US20220383201A1 (en) | 2022-12-01 |
| US11423326B2 (en) | 2022-08-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN107005438B (zh) | 生成动态地可缩放网络负载的方法、系统和介质 | |
| US11556321B2 (en) | Deploying microservices across a service infrastructure | |
| US9612821B2 (en) | Predicting the success of a continuous software deployment pipeline | |
| US11669374B2 (en) | Using machine-learning methods to facilitate experimental evaluation of modifications to a computational environment within a distributed system | |
| US9215158B1 (en) | Computing resource availability risk assessment using graph comparison | |
| US10783002B1 (en) | Cost determination of a service call | |
| US9444717B1 (en) | Test generation service | |
| US9741005B1 (en) | Computing resource availability risk assessment using graph comparison | |
| US10909018B2 (en) | System and method for end-to-end application root cause recommendation | |
| US9137110B1 (en) | Availability risk assessment, system modeling | |
| US9619772B1 (en) | Availability risk assessment, resource simulation | |
| US10409699B1 (en) | Live data center test framework | |
| US8996341B2 (en) | Generating and evaluating expert networks | |
| US9396160B1 (en) | Automated test generation service | |
| EP4121856A1 (en) | Systems, methods, computing platforms, and storage media for administering a distributed edge computing system utilizing an adaptive edge engine | |
| US11212162B2 (en) | Bayesian-based event grouping | |
| Pfandzelter et al. | From zero to fog: Efficient engineering of fog‐based Internet of Things applications | |
| WO2020206699A1 (en) | Predicting virtual machine allocation failures on server node clusters | |
| CN108989153A (zh) | 一种性能测试方法及装置 | |
| US10884885B2 (en) | Proactively predicting failure in data collection devices and failing over to alternate data collection devices | |
| KR20200029574A (ko) | 시뮬레이터, 시뮬레이션 장치, 및 시뮬레이션 방법 | |
| US11093266B2 (en) | Using a generative model to facilitate simulation of potential policies for an infrastructure as a service system | |
| US10552282B2 (en) | On demand monitoring mechanism to identify root cause of operation problems | |
| US8428921B2 (en) | Dynamically adjusting simulation fidelity based on checkpointed fidelity state | |
| Wu et al. | Cloudnativesim: A Toolkit for Modeling and Simulation of Cloud‐Native Applications |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| AD01 | Patent right deemed abandoned | ||
| AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20250627 |