CN112567688A - 用于嵌入的云微服务的自动调谐器 - Google Patents

用于嵌入的云微服务的自动调谐器 Download PDF

Info

Publication number
CN112567688A
CN112567688A CN201980052545.8A CN201980052545A CN112567688A CN 112567688 A CN112567688 A CN 112567688A CN 201980052545 A CN201980052545 A CN 201980052545A CN 112567688 A CN112567688 A CN 112567688A
Authority
CN
China
Prior art keywords
microservice
timeout
based application
retry
values
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.)
Granted
Application number
CN201980052545.8A
Other languages
English (en)
Other versions
CN112567688B (zh
Inventor
S·帕萨萨拉斯
S·拉维钱德兰
F·奥利维拉
T·埃拉姆
A·纳格普尔卡·普里亚
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 CN112567688A publication Critical patent/CN112567688A/zh
Application granted granted Critical
Publication of CN112567688B publication Critical patent/CN112567688B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3428Benchmarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Feedback Control In General (AREA)
  • Stored Programmes (AREA)

Abstract

提供了一种优化基于微服务的应用的参数的方法和***。确定基于微服务的应用的微服务基础设施。确定与基于微服务的应用相关的一个或多个优化目标。对每个微服务测试超时和重试值的不同组合。为超时和重试值的不同组合中的每一个计算奖励值。微服务基础设施被设置成超时和重试值的组合,所述组合对于一个或多个优化目标具有最高奖励值。

Description

用于嵌入的云微服务的自动调谐器
技术领域
本披露总体上涉及网络计算,并且更具体地涉及基于云的分布式应用。
背景技术
近年来,云计算平台已经成为提供广泛范围的计算资源(如基础设施、平台和应用服务)的最流行方式。对此,不同供应商提供基于云的解决方案以优化其数据中心的使用。现代的基于云的应用是分布式的、异构的,并且可以快速地缩放以响应需求。这种灵活性通过使用细粒度的面向服务的体系结构(有时称为微服务体系结构)来促进。
微服务是提供单一目的并向共同实现给定应用的其他微服务公开API集合的web服务。这样的应用可以被构建为不同微服务的集合,而不是单片应用。基于微服务的应用的每个微服务可以自己运行,并且可以使用不同的编码或编程语言来创建。进一步,每个微服务可独立于基于微服务的应用的其他组成微服务来开发、部署和管理。对微服务的新特征和更新可以以快速、递增的方式被连续地递送,其中较新版本的微服务可以被连续地集成到生产部署中。以此方式开发的基于微服务的应用是动态的,因为它们可被频繁地更新和部署。
发明内容
根据各实施例,提供了一种用于优化基于微服务的应用的参数的计算设备、非暂态计算机可读存储介质和方法。确定基于微服务的应用程序的微服务基础设施。确定与基于微服务的应用相关的一个或多个优化目标。对基于微服务的应用的每个微服务测试超时和重试值的不同组合。为超时和重试值的不同组合中的每一个计算奖励值。微服务基础设施被设置成超时和重试值的组合,该组合对于一个或多个优化目标具有最高奖励值。
在一个实施例中,确定基于微服务的应用的微服务基础设施包括识别由基于微服务的应用使用的微服务和识别微服务之间的互连。
在一个实施例中,优化目标包括在基于微服务的应用的预定最大错误率内的最低端到端等待时间。
在一个实施例中,优化目标包括基于微服务的应用的预先确定的最大端到端等待时间内的最低错误率。
在一个实施例中,通过基于微服务的应用的模拟器来测试超时和重试值的不同组合中的每一个。
在一个实施例中,对超时和重试值的不同组合中的每一个的测试包括直接在基于微服务的应用上对每个组合进行测试。
在一个实施例中,对超时和重试值的不同组合的测试包括估计直接在基于微服务的应用上测试创建的超时和重试值的不同组合的时间长度。在确定时间长度等于或低于预定阈值时,在基于微服务的应用上直接测试超时和重试值的不同组合中的每一个。然而,在确定时间长度高于预定阈值时,模拟器用于为超时和重试值的不同组合中的每一个模拟基于微服务的应用的性能。
在一个实施例中,校正模型被应用于每个确定的奖励值,其中校正模型基于统计和机器学习技术将确定的奖励值作为输入并且产生奖励值的新估计作为输出。
这些和其他特征将从其说明性实施例的以下详细描述中变得显而易见,该详细描述将结合附图来阅读。
附图说明
附图具有说明性实施例。它们没有示出所有实施例。另外或替代地可以使用其他实施例。为了节省空间或为了更有效地说明,可以省略可能显而易见或不必要的细节。一些实施例可用附加的组件或步骤和/或不用示出的所有组件或步骤来实践。当相同的数字出现在不同的附图中时,它指代相同或相似的部件或步骤。
图1是与说明性实施例一致的用于实现一种用于自动调谐基于微服务的应用的***的示例架构。
图2是与说明性实施例一致的使用微服务的***的框图。
图3是与说明性实施例一致的***,该***包括相互作用的微服务的网。
图4A和4B示出了在示例场景中用于超时的不同设置。
图5是使用自动调谐器引擎来自动调整在云中实现的微服务的参数的***的概念框图。
图6呈现了与说明性实施例一致的一种用于自动调整基于微服务的应用的参数的过程。
图7是可以与不同联网部件通信的计算机硬件平台的功能框图图示。
图8描绘了与说明性实施例一致的云计算环境。
图9描绘了与说明性实施例一致的抽象模型层。
具体实施方式
在以下详细描述中,通过实例阐述了许多具体细节,以提供对相关教导的透彻理解。然而,应当显而易见的是,可以在没有这样的细节的情况下实践本教导。在其他实例中,已无细节地以相对高层级描述众所周知的方法、程序、组件和/或电路,以避免不必要地模糊本教导的方面。
本披露总体上涉及自动调整具有微服务的基于云的应用的***和方法。微服务应用基于分布式架构,其中服务被部署为单独的应用并且通过远程访问协议被远程访问。这种分布式架构的显著考虑包括管理微服务可用性和响应性。服务可用性涉及与一个微服务连接的能力,这样使得一个事件发生(例如,从其接收信息)。另一方面,服务响应性涉及一旦建立通信服务响应请求所花费的时间。
即使微服务架构通过定义的边界隔离故障,网络、硬件、数据库或应用问题的可能性很高,这可能导致微服务暂时不可用,在此统称为微服务故障。如果在预定时间内没有提供服务可用性,则微服务经受超时条件,其中对微服务的请求被终止。
针对微服务的请求可以重复预定次数,在此被称为重试。当误差本质上是瞬态的时,重试可能是有效的。例如,微服务可能暂时处于重负载下并且因此不响应——但可能在随后的尝试中可用。从终端用户的角度来看,不管基于微服务的应用的复杂性如何,端到端时延都应该被最小化。就这一点而言,本文的教导提供了自动调整重试次数和每次重试(即,超时)参数之间经过的时间的方法和***。
借助于在此讨论的概念,云的计算技术得到改进。更具体地,自动精细调节应用的微服务以改善其性能。本文描述的技术可以多种方式实现。以下参考以下附图提供示例实现。
示例架构
图1是与说明性实施例一致的用于实现一种用于自动调谐基于微服务的应用的***的示例架构100。架构100包括允许不同计算设备102(1)至102(N)彼此通信的网络106以及连接到网络106的其他元件(诸如分析服务器116和云120)。网络106可以包括但不限于诸如互联网的全球计算机网络、广域网(WAN)、局域网(LAN)、虚拟专用网(VPN)、卫星网络、电话或有线网络、蜂窝网络、诸如Wi-Fi或WiMAX的无线网络,或这些和其他类型的网络(例如,基于互联网协议(IP)的网络)的不同部分或组合。网络106包括中间点(诸如路由器、交换机等)、网关和形成网络骨干网以建立通信路径并实现网络端点之间的通信的其他元件。
网络106允许自动调谐器引擎110(其可以是在分析服务器116上运行的程序)与参考数据源112、云120、和计算设备102(1)至102(N)进行通信,以提供对在此讨论的微服务的自动调谐。云120可以包括私有或公共云计算***。云120的不同组件可以通过网络106和/或作为云120的一部分的LAN和WAN彼此通信。在一个实施例中,云120提供促进复杂应用的操作的微服务的服务结构。稍后更详细地讨论云120的架构。
出于稍后讨论的目的,计算设备102(1)至102(N)出现在附图中以表示可以用于表示终端用户的计算平台的一些示例。如今,计算设备通常采取便携式手机、智能电话、平板计算机、个人数字助理(PDA)和智能手表的形式,尽管它们可以其他形式因素来实现,包括消费者和商业电子设备。在其他实施例中,终端用户可以是另一个应用和/或微服务。计算设备102(1)至102(N)可用于生成对由调谐器引擎110优化的资源103(1)至103(N)的请求。
分析服务器116的自动调谐器引擎110可操作用于从终端用户(例如,102(1))接收对资源(例如,103(1))的请求。这些资源与可在云120中实现的基于微服务的应用有关。对于每个请求的资源,自动调谐器引擎110被配置为通过识别与其相关联的微服务的网络来确定与所请求的资源相关的微服务基础设施。每个微服务在不同的负载条件(例如,最佳(轻度使用)、标称(典型使用)和最差情况(重负载))下具有相关联的平均延迟。每个微服务的现有延迟可以由参考数据源112提供作为历史数据,如以下所讨论的。
在一些实施例中,对资源的请求包括定义在与云120相关联的服务提供商和与计算设备(例如,102(N))相关联的客户的账户之间占主导的承诺或约束的服务水平协议(SLA)的参数。在其他实施例中,这样的SLA可以由单独的商业规则数据库(未示出)提供,该商业规则数据库可以由自动调谐器引擎110经由网络106访问。SLA可由自动调谐器引擎110使用以识别最大错误率、延迟、置信水平、计算成本、超时限制、重试限制等或其任何组合。
可以存在参考数据源112,该参考数据源向自动调谐器引擎110提供训练数据113(本文有时被称为历史数据)。在一个实施例中,自动调谐器引擎110被配置为使用可以从训练数据语料库113学习和/或基于训练数据语料库113进行预测的算法,训练数据语料库113包括由参考数据源112提供的关键性能指标(KPI)。KPI可包括各种通信参数,诸如但不限于不同负载条件下的特定微服务之间的延迟、错误率、超时设置、导致成功的重试次数等。在一些实施例中,训练数据还可以来自使用相同微服务的其他应用。这样的学习算法通过从所接收的训练数据113构建模型来操作,以便做出数据驱动的预测或决策,而不是遵循严格静态的标准。机器学习可用于基于历史数据自动选择优化的超时和重试值。在不同实施例中,机器学习可以利用诸如监督学习、非监督学习、半监督学习、朴素贝叶斯、贝叶斯网络、决策树、神经网络、模糊逻辑模型和/或概率分类模型之类的技术。优化可以通过调整应用的每个所识别的微服务的超时和重试参数来实现,这为应用提供了最高的奖励值。奖赏值的概念在后面更详细地讨论。
在各个实施例中,在此所讨论的机器学习可以是受监督的或不受监督的。在监督学习中,自动调谐器引擎110可以被呈现阈值条件的示例训练数据113。换言之,训练数据113用作自动调谐器引擎110的学习算法的教师。在无监督学习中,训练数据113不提供可接受的任何标签,相反,其简单地将历史数据提供给自动调谐器引擎110的学习算法,该学习算法可以用于在训练数据113中找到其自己的结构以从其中创建模型。在不同实施例中,自动调谐器引擎110的模型然后可以用于创建模拟器以模拟基于微服务的应用的性能,创建校正模型以校正任何模拟和/或物理结果,和/或初始化应用的每个微服务的超时和重试参数。校正模型将确定的奖赏值作为输入,并且基于统计和机器学习技术产生奖赏值的新估计作为输出。
在各个实施例中,可以基于错误率、违反等待时间约束、估计中的置信水平、和其他KPI来实现最高奖励值。例如,可以针对应用的微服务的网络中的每个微服务来评估超时和重试的不同组合,从而实现最低的端到端等待时间(即,如由终端用户计算设备(例如,102(1))所感知的),而不超过阈值错误率。在另一实施例中,评估超时和重试的不同组合,使得在不超过最大阈值端到端等待时间的同时实现最低错误率。因此,借助于至少优化每个识别的微服务的超时和重试参数,在控制错误率的同时改善了基于微服务的应用的性能。
虽然通过示例的方式将参考数据源112和分析服务器116展示为在不同平台上,但将理解的是,在各种实施例中,可以将参考数据源112和学***台可由虚拟机或软件容器的形式的虚拟计算设备来实现,所述虚拟计算设备被托管在云120中,由此提供用于处理和存储的弹性架构。
示例块图
现在参见图2,该图是与说明性实施例一致的使用微服务的***的框图。终端用户202可以是另一应用的用户设备或另一应用。终端用户202可使用***200的服务结构来履行对资源的一个或多个请求。
网关204(有时在此被称为入口)是提供对***200的服务结构的访问的前端。例如,网关204可以接收与一个或多个微服务相关的API请求,在图2中通过举例表示为后端服务1至N,并且然后将响应从一个或多个微服务中继至适当的接收者,其可以是计算设备或另一应用(以示例的方式表示为终端用户202)。网关204还可以提供与网关相关联的其他功能,诸如实施安全策略、提供节流、授权、认证、审计和规章顺从等。在一个实施例中,网关204可收集与每个后端服务1至N相关联的延迟和/或超时的分析数据。网关还可以监视端到端等待时间和错误率,以及微服务之间的等待时间和对应的错误率。这些KPI和其他KPI可以存储在参考数据库中,类似于图1的参考数据源112。
例如,应用可以是基于分布式微服务的应用,其包括多个不同微服务的集合,包括例如第一微服务210(例如,后端服务1)、第二微服务212(例如,后端服务2)等,直到第N微服务214(例如,后端服务N)。微服务210至214可包括分布式细粒度web服务(诸如基于REST的web服务)的集合。微服务210至214可以使用标准应用协议(诸如HTTP和通信模式、请求-响应、发布-订阅等)在通信网络上彼此交互,这些标准的应用协议的语义被很好地理解。微服务210至214彼此松散地耦合,使得每个微服务可独立于使用这些微服务210至214的应用的其他微服务来更新和部署,只要它们调用的API是向后兼容的。例如,可以使用标准应用协议(如HTTP)来实现这种松散耦合,以便于容易地与其他微服务集成。
例如,基于微服务的应用可以涉及但不限于使用细粒度微服务210至214的集合的终端用户202的网络服务或移动计算服务。基于微服务的应用利用由托管云(例如,类似于图1的云120的托管云)提供的不同受管理服务,包括例如受管理数据库和诸如数据分析等其他类型的服务。这样的应用还可以与一个或多个第三方web服务集成,所述第三方web服务包括例如社交网络、移动推送通知服务、地理位置服务等。
在图2的示例中,针对微服务210,将在指定事件发生(即,超时)之前在***中被允许经过的指定时间段被设置为3秒。进一步,重试(即,在与微服务交互被认为失败之前的尝试次数)限于2。重试提供调用先前失败的操作的能力。***200将重试失败的操作达预定次数(例如,在本示例中对于微服务210为2次),然后前进到回退(恢复)以从高速缓存或默认值返回数据。例如,在本文称为重试周期的预定等待周期(例如,几秒)之后,微服务210可能由于高负载而不响应,但将可用于与网关204或请求其服务的任何其他微服务通信。在该示例中,重试将有助于从微服务210接收结果。
然而,连续重试服务而没有有意义的间隔可能导致不可接受的延迟,因为超时可能比微服务210的固有延迟更短,从而导致重复失败,最终花费时间给终端用户。为了减少这种延迟,3秒的超时限制为微服务210提供了截止。通过为超时提供足够的时间,避免了由于无效的重试而导致的过度的延迟。在一个实施例中,每次重试之后的超时增加。换言之,初始超时可能更激进,而第二超时被提供更多时间以增加与微服务成功交互的机会。
在一个实施例中,存在恢复机制,其中如果后端服务(例如,微服务210)在SLA的限制内不执行,则向终端用户呈现默认错误响应。例如,响应可以是在预定时间段之后重试。
将理解的是,每个微服务可以具有不同的延迟。例如,微服务210可以具有2秒的平均延迟,而另一个微服务(例如214)可以具有50毫秒的平均延迟。在一个方面,本文所讨论的自动调谐器引擎被配置为优化重试和超时值,使得由终端用户202感知的总体延迟被最小化,同时不超过阈值错误率。为此,自动调谐器引擎可以包括一组机器学习技术,其使得终端用户不仅能够通过SLA指定延迟约束,而且自动调谐每个服务的超时和重试参数以最小化***错误率。
图3是与说明性实施例一致的***,该***包括相互作用的微服务的网。来自终端用户302的请求由网关304接收,网关304提供对可托管在云320中的服务结构的访问。该请求可以涉及第一微服务***310,该第一微服务***链接到第二微服务***312和第三微服务***314。第三微服务314又连接到第四微服务316。在图3的示例中,第一微服务310具有约50ms的平均延迟,而其他微服务经历1秒的平均延迟。示例场景300提出的挑战是如何单独地优化每个微服务的超时和重试参数(即,相应地,310至316),从而使得最终用户302的端到端等待时间最小化。
现在参见图4A和4B,这些图示出了在示例场景中用于超时的不同设置。将理解的是,不同的微服务可以具有不同的通信特性,并且因此具有不同的延迟。例如,第一微服务410可以涉及产品页面,并且在正常条件下具有40ms的小延迟。第二微服务412可以涉及附加的细节,第三微服务414可以提供评论,而第四微服务416可以涉及评级,每个在标称条件下平均延迟为1秒。进一步地,每个微服务可以在不同负载下不同地响应。例如,第三微服务414可以比第四微服务416更严重地受到重负载的影响。这些延迟可以与延迟响应的处理、通信等待时间(例如,跨互联网传输)和故障有关。延迟可以在微服务之间显著变化。对此,产品页面(即,微服务410)可以避开对细节微服务(即,412)和评论微服务(即,414)的请求。如果在预定时间内未接收到响应,则该请求将超时。因此,每个请求者微服务受到两个主要参数的影响,即(i)超时和(ii)重试次数。
图4A表示以下场景:其中微服务412、414和416的超时被设置成以可能更高的错误率为代价来使端到端等待时间最小化。更具体地,通过使用微服务410和412之间、微服务410和414之间、以及微服务414和416之间的0.5秒到0.5秒的超时,实现大约1秒的端到端等待时间。然而,鉴于1秒的每个微服务412、414和416的平均延迟,这种积极的超时可能以可由终端用户402感知的更高错误率为代价。换言之,***400A可经受一次或多次重试以成功地满足(如果有的话)对终端用户402的服务的请求。
相比之下,图4B表示一种情景,其中微服务412、414和416的超时被设置成使终端用户402所感知的错误率最小化。为此,设置基本上大于每个对应微服务的平均延迟(例如,两倍)的超时以减轻超时。因而,重试的可能性较小。然而,通过使用更长的超时周期,当错误率减小时,在图4B的示例中,由终端用户402感知到的端到端延迟增加到大约4秒。因此,图4A和4B表明在超时和错误率之间存在相反的关系。
超时的最佳设置可以位于由图4A和4B表示的设置之间的某处。在图4A和4B的示例中,微服务***410使用微服务***412和414的结果。然而,在本实例中,微服务414被微服务416延迟。由此,对于超时的积极设置可能不适合于微服务412,因为微服务410仍然需要微服务414和扩展416的结果,结果稍后提供。
在一个方面中,自动调谐器引擎被配置成用于针对微服务410至416中的每个微服务评估超时和重试的不同排列,从而使得由终端用户402感知的有效端到端等待时间被最小化。例如,终端用户和/或SLA402可指定最大可接受的端到端等待时间。进而,自动调谐器引擎调整超时和重试参数,使得以最低可能的错误率满足要求。可替代地,基于来自终端用户402的规范和/或SLA,自动调谐器引擎使端到端等待时间最小化,同时处于或低于预定阈值错误率。
在一个实施例中,图1的自动调谐器引擎根据标量奖赏值制定优化超时和重试参数的问题,在以下等式1中提供:
Figure BDA0002935339690000101
其中:
l是终端用户或SLA指定的等待时间;
wi是应用程序中第ith个链路的权重;
ei是应用中第ith条链路上看到的误码率。
因此,当对于给定的超时错误率最小化端到端时等待时间,以上等式1的多目标优化提供了最高标量奖赏值。例如,当端到端等待时间与等式1中的极限“1”保持并且错误率最小化时,以上分析提供最高标量奖励值。错误率受到等待时间约束的影响而被最小化。该***还可以用于在将错误率保持在给定限制内的同时使等待时间最小化。例如,超时和重试的不同组合被独立地用于每个微服务,以便为基于微服务的应用实现最高奖励值。在一些实施例中,在多目标优化中使用附加的验证约束和/或置信水平。将理解的是,等式1的多目标优化在此仅以举例的方式而不是以限制的方式提供。也可以使用其他多目标优化方法。
可以使用不同分布式跟踪技术(如Zipkin和Istio分析)来标识应用的微服务网格中的延迟源。例如,在从终端用户402接收到对资源的请求时,网关404可以向每个微服务分配与请求一起传递的唯一标识符。每个微服务可以包括库,该库用于识别每个微服务的请求的入口和出口。然后,将数据传输回支持分布式跟踪技术的服务器(例如,图1的分析服务器116)。以此方式,每个微服务的KPI可以被标识并且可能被存储在参考数据源112中。在图4A和4B的示例中,存在四个互连的微服务410至416以适应基于微服务的应用。分布式跟踪工具可测量每个微服务相关联的时间长度和重试次数。以此方式,可以通过超时和重试的适当设置来标识和固化***中的瓶颈,如本文中所讨论的。
现在参见图5,图5是使用自动调谐器引擎来自动调整在云中实现的微服务的参数的***500的概念框图。***500包括在分析服务器516上运行的自动调谐器引擎570。存在云520,云520为基于微服务的应用提供微服务(即,510、512、514和516)的服务结构。网关504被配置为接收与基于微服务的应用的一个或多个微服务相关的API请求。网关504还与分析服务器516的自动调谐器引擎570通信以提供从云520的微服务收集的不同KPI。
自动调谐器引擎570包括优化器550,该优化器被配置成用于通过在此讨论的奖励值来搜索最优参数。为此,黑框优化或加强学***均条件)、最差情况(例如,重负载)等。在一个实施例中,基于微服务的应用的模型可基于由图1的参考数据源提供的训练数据113生成。这样,自动调谐器引擎570可以有效地评估参数设置的不同排列对端到端延迟和错误率的影响。
在一个实施例中,蒙特卡罗仿真用于探索超时和重试的不同排列。具体而言,蒙特卡罗模拟用于估计给定超时和重试参数设置558的应用程序的奖励值。
在一个实施例中,存在用于校正由模拟器554提供的奖励结果558的校正模型560。为此,校正模型使用基于来自实际的基于微服务的应用的训练数据562的机器学习模型。该模型通过初始地尝试在模拟器和真实应用两者上的几个不同的超时和重试设置并且然后计算模拟的奖励以及观察来自应用的真实奖励来获悉。校正模型可使用机器学习技术(诸如回归)来训练,以通过将现实世界奖励作为目标并将模拟奖励作为用于奖励预测的特征之一来对基于模拟奖励的真实世界奖励进行预测。用于获得此仿真奖励的其他特征(诸如超时和重试设置)也可被用于此预测。
在优化器550确定至少优化的超时和重试参数时,优化器550通过网关504将最终参数556发送至每个相应的微服务。以此方式,优化每个微服务以便实现最低的端到端等待时间,同时不超过阈值错误率。在一个实施例中,在不超过最大阈值端到端等待时间的同时实现最低错误率。因此,借助于至少优化每个识别的微服务的超时和重试参数,在控制错误率的同时改善了基于微服务的应用的性能。
示例过程
通过示例架构100和***200至500的前述概述,现在考虑示例过程的高级讨论可能是有帮助的。为此,图6呈现了与说明性实施例一致的用于自动调整基于微服务的应用的参数的过程600。过程600被示为逻辑流程图中的过程的集合,其中每个框表示可在硬件、软件或其组合中实现的操作序列。在软件的上下文中,这些过程表示计算机可执行指令,这些指令在由一个或多个处理器执行时执行所引用的操作。通常,计算机可执行指令可以包括执行功能或实现抽象数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且任何数量的所描述的过程可按任何顺序组合和/或并行执行以实现该过程。出于讨论的目的,参见图1的体系结构100来描述过程600。
在框602处,分析服务器116的自动调谐器引擎110可以确定用于基于微服务的应用的微服务基础设施。例如,识别用于基于微服务的应用的微服务以及这些微服务之间的互连。
在框610处,结合基于微服务的应用来确定服务水平协议(SLA)。在不同实施例中,SLA可以数据分组的形式从终端用户(例如,在对资源(例如,103(1))的请求的上下文中)或从商业规则数据库接收。SLA可用于确定一个或多个优化目标。例如,优化目标可以是具有预定最大错误率的最低等待时间。在另一示例中,优化目标可以是在最大阈值端到端等待时间内具有最低错误率。
在框620,确定用于基于微服务的应用的每个所识别的微服务的现有超时和重试值。现有的超时值可以在不同的条件下,诸如最佳情况、标称情况、最差情况等。在一个实施例中,根据从参考数据源112接收的历史训练数据113来确定现有的超时和重试值。在一些实施例中,现存的超时和重试值被主动地确定。
在框630处,基于框620的所确定的现有超时和重试值,准备超时和重试值的不同组合。为此,在各种实施例中,黑框优化、灰框优化或加强学***均超时和重试值的预定距离内的范围。以此方式,可以避免不切实际的组合。
在框640处,测试框630的所准备的组合的超时和重试值的未尝试的(例如,新的)组合。该测试可以直接在云上的基于微服务的应用上或通过模拟器来执行。在一个实施例中,自动调谐器引擎110估计测试主题应用的超时和重试值设置的每个识别的组合将花费的时间长度。如果时间长度高于预定阈值,则使用模拟器,由此节省主存微服务的云120的时间和/或计算资源。
在框650处,确定针对基于微服务的应用的微服务的超时和重试值的测试组合的奖励值。
在一个实施例中,校正模型用于校正由模拟器提供的奖赏值结果。对此,在块660,校正模型被应用于由模拟器提供的数据,以改进对于测试的组合的奖励值的准确性。
在框670处,自动调谐器引擎110确定是否已经测试了在框630中识别的超时和重试值的所有组合。如果不是(即,决策框670处的“否”),过程返回至框640以测试超时和重试值的新组合。在确定已经评估了所有组合时(即,在判定框670处“是”),该过程以框680继续。
在框680处,自动调谐器引擎110为基于微服务的应用的提供最高奖励值的每个微服务选择超时和重试值的组合。结果,每个识别的微服务被设置为它们测试的相应的超时和重试值。
示例计算机平台
如以上所讨论的,与使用随机序列嵌入的有效符号序列分析相关的功能可以通过使用经由无线或有线通信被连接用于数据通信的一个或多个计算设备来执行,如图1所示。图7是可与不同联网组件(诸如训练输入数据源、云等)通信的计算机硬件平台的功能框图图示。具体地,图7示出了如可以用于实现服务器(如图1的分析服务器116)的网络或主机计算机平台700。
计算机平台700可以包括连接至***总线702的中央处理单元(CPU)704、硬盘驱动器(HDD)706、随机存取存储器(RAM)和/或只读存储器(ROM)708、键盘710、鼠标712、显示器714、以及通信接口716。
在一个实施例中,HDD 706具有包括存储程序的能力,该程序可以以在此描述的方式执行不同过程,如自动调谐器引擎740。自动调谐器引擎740可具有被配置为执行不同功能的各种模块。例如,可存在交互模块742,其可操作以与一个或多个计算设备或数据源(诸如参考数据源112)交互以从其接收训练或历史数据113。交互模块742还可操作以与云120的服务通信,如本文所讨论的。
在一个实施例中,存在优化器模块744,该优化器模块可操作用于优化基于微服务的应用的每个微服务的超时和重试参数。在各种实施例中,优化器模块744可以与自动调谐器引擎740的一个或多个其他模块交互以提供黑盒优化、灰盒优化或加强学习技术以识别超时和重试值的不同组合。
在一个实施例中,存在机器学习模块746,该机器学习模块可操作用于对训练数据113和/或从在不同的超时和重试值下运行基于微服务的应用所获得的结果执行一个或多个机器学习技术,如支持向量机(SVM)、逻辑回归、神经网络等。例如,机器学习模块746可用于创建模拟器模块748和/或校正模块750。
相应地,可以存在模拟器模块748,该模拟器模块可操作用于经由数学模型模拟基于微服务的应用的性能。可以有校正模块750,用于校正由模拟器748模块提供的奖励值结果。
在一个实施例中,程序(如ApacheTM)可以被存储用于将***操作为网络服务器。在一个实施例中,HDD706可以存储包括一个或多个库软件模块的执行应用,诸如用于实现JVM(JavaTM虚拟机)的JavaTM运行时环境程序的那些。
示例云平台
如以上所讨论的,与基于微服务的应用的微服务的参数的自动调整相关的功能可以包括云200(参见图1)。应当理解,尽管本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本公开的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的、按需的网络访问,所述可配置计算资源可以用最小的管理努力或与服务提供者的交互被快速配置和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
按需自助服务:云消费者可以根据需要自动地单方面供应计算能力,如服务器时间和网络存储,而不需要与服务的提供商的人类交互。
广泛的网络接入:能力在网络上是可用的并且通过标准机制来访问,这些标准机制促进由异构的瘦或厚客户端平台(例如,移动电话、膝上型计算机、和PDA)使用。
资源池化:提供商的计算资源被池化以使用多租户模型服务多个消费者,其中不同的物理和虚拟资源根据需要被动态地分配和重新分配。存在位置独立性的意义,因为消费者通常对所提供资源的确切位置不具有控制或知识,但可能能够在较高抽象层级(例如,国家、州或数据中心)处指定位置。
快速弹性:可以快速且弹性地提供能力(在一些情况下,自动地)以快速缩小和快速释放以快速放大。对于消费者,可用于供应的能力通常显得不受限制,并且可以在任何时间以任何数量购买。
测量的服务:云***通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动地控制和优化资源使用。可监视、控制和报告资源使用,从而为所利用的服务的提供者和消费者两者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用提供商在云基础设施上运行的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口从不同客户端设备访问。消费者不管理或控制包括网络、服务器、操作***、存储或甚至个体应用能力的底层云基础结构,可能的例外是有限的用户特定的应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的应用部署到云基础设施上,所述应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作***或存储的底层云基础结构,但是具有对所部署的应用以及可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述任意软件可以包括操作***和应用。消费者不管理或控制底层云基础结构,而是具有对操作***、存储、所部署的应用的控制,以及对所选联网组件(例如,主机防火墙)的可能有限的控制。
部署模型如下:
私有云:云基础架构仅针对组织进行操作。它可由组织或第三方管理,并且可存在于场所内或场所外。
社区云:云基础结构由若干组织共享并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可由组织或第三方管理,并且可存在于场所内或场所外。
公共云:使云基础设施对公众或大型产业团体可用并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多个云(私有云、社区云或公共云)的组成部分,这些云保持唯一实体但通过标准化或专有技术绑定在一起,这些技术实现数据和应用便携性(例如,用于云之间的负载平衡的云突发)。
云计算环境是面向服务的,集中于状态、低耦合、模块性和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参见图8,描绘了说明性云计算环境800。如图所示,云计算环境800包括一个或多个云计算节点810,云消费者使用的本地计算设备(诸如个人数字助理(PDA)或蜂窝电话854A、台式计算机854B、膝上型计算机854C和/或汽车计算机***854N)可与云计算节点810通信。节点810可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境850提供基础设施、平台和/或软件作为服务,云消费者不需要为这些服务提供本地计算设备上的资源。应理解,图8中所示的计算装置854A-N的类型旨在仅是说明性的,并且计算节点810和云计算环境850可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化装置通信。
现在参见图9,示出了由云计算环境850(图8)提供的一组功能抽象层。应预先理解,图9中所示的部件、层和功能旨在仅是说明性的,并且本公开的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层960包括硬件和软件部件。硬件组件的示例包括:大型机961;基于RISC(精简指令集计算机)架构的服务器962;服务器963;刀片服务器964;存储设备965;以及网络和联网组件966。在一些实施例中,软件组件包括网络应用服务器软件967和数据库软件968。
虚拟化层970提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器971;虚拟存储972;虚拟网络973,包括虚拟专用网络;虚拟应用和操作***974;以及虚拟客户端975。
在一个示例中,管理层980可以提供以下描述的功能。资源供应981提供用于在云计算环境内执行任务的计算资源和其他资源的动态获取。计量和定价982在资源在云计算环境内被利用时提供成本跟踪,并针对这些资源的消费进行计费或***。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及对数据和其他资源的保护。用户门户983为消费者和***管理员提供对云计算环境的访问。服务级别管理984提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)计划和履行985为根据SLA预期未来要求的云计算资源提供预安排和采购。
工作负载层990提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航991;软件开发和生命周期管理992;虚拟课堂教育交付993;数据分析处理994;事务处理995;以及基于微服务的应用996,如本文所讨论的。
结论
已经出于说明的目的呈现了本教导内容的不同实施例的描述,但并不旨在是详尽的或限于所披露的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。选择在此使用的术语以最佳地解释实施例的原理、实际应用或在市场上找到的技术上的技术改进,或使得本领域普通技术人员能够理解在此披露的实施例。
虽然前述内容已经描述了什么被认为是最佳状态和/或其他示例,应当理解,可在其中做出不同修改,并且本文所公开的主题能够以不同形式和示例来实现,并且该教导可以应用于许多应用中,这里仅描述了其中一些应用。所附权利要求旨在要求保护落入本传授内容的真实范围内的任何和所有应用、修改和变化。
在此已经讨论的部件、步骤、特征、目的、益处和优点仅是说明性的。它们中的任何一个,以及与它们相关的讨论都不旨在限制保护范围。虽然本文已经讨论了各种优点,但应当理解,并非所有实施例都必须包括所有优点。除非另外说明,否则在本说明书中(包括在随后的权利要求书中)阐述的所有测量值、值、评级、位置、量值、大小和其他规格都是近似的,不是精确的。它们旨在具有与它们相关的功能以及它们所属领域的惯例一致的合理范围。
还考虑了许多其他实施例。这些包括具有更少、附加和/或不同的部件、步骤、特征、对象、益处和优点的实施例。这些还包括其中部件和/或步骤被不同地安排和/或排序的实施例。
在此参照根据本披露的实施例的方法、设备(***)、和计算机程序产品的流程图展示和/或框图对本披露的方面进行描述。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给计算机的处理器,专用计算机或其他可编程数据处理装置,以产生机器,其通过计算机或其他可编程数据处理装置的处理器执行,创建用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。这些计算机可读程序指令还可存储在可指导计算机的计算机可读存储媒质中,可编程数据处理装置,和/或以某种方式起作用的其他设备,使得具有存储在其中的指令的计算机可读存储媒质包括制品,该制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。
计算机可读程序指令还可以加载到计算机、其他可编程数据处理装置上,或使得在计算机上执行一系列操作步骤的其他装置,其他可编程装置或其他设备,以产生计算机实现的过程,使得在计算机上执行的指令,其他可编程装置或其他设备实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
本文的图中的流程图和框图示出了根据本公开的不同实施例的***、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现规定的逻辑功能的一个或多个可执行指令。在一些替代实施例中,框中所标注的功能可以不以图中所标注的次序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的***来实现,所述基于专用硬件的***执行指定的功能或动作或执行专用硬件与计算机指令的组合。
虽然前述内容已经结合示例性实施例进行了描述,但是应当理解,术语“示例性的”仅旨在作为实例,而不是最佳或优选的。除了如上刚刚陈述的,任何已陈述或示出的内容都不旨在或应被解释为引起任何部件、步骤、特征、对象、益处、优点或等效物专用于公众,而不管其是否在权利要求书中陈述。
将理解的是,在此所使用的术语和表达具有普通含义,如相对于其相应的查询和研究的相应领域与这些术语和表达相一致的,除非在此另外阐述了具体含义。诸如第一和第二等关系术语可仅用于将一个实体或动作与另一个实体或动作区分开,而不一定要求或暗示此类实体或动作之间的任何实际此类关系或次序。术语“包括(comprises)”、“包含(comprising)”或其任何其他变体旨在覆盖非排他性的包含,这样使得包括一系列要素的过程、方法、物品或装置不仅包括那些要素,而且可以包括未明确列出的或此类过程、方法、物品或装置固有的其他要素。在没有进一步限制的情况下,由“一个(a)”或“一种(an)”开始的元件不排除在包括该元件的过程、方法、物品或设备中存在额外的相同元件。
提供了本公开的摘要以允许读者快速确定技术公开的性质。应理解的是,它将不用于解释或限制权利要求的范围或含义。此外,在前述具体实施方式中,可以看到,为了使本公开流畅的目的,在各种实施方式中将各种特征组合在一起。本公开的这种方法不应被解释为反映所要求的实施例具有比每个权利要求中明确叙述的特征更多的特征的意图。相反,如以下权利要求所反映的,发明主题在于少于单个公开的实施例的所有特征。因此,以下权利要求由此并入具体实施方式中,其中每个权利要求独立地作为单独要求保护的主题。

Claims (15)

1.一种在计算设备上执行的方法,其中所述计算设备包括:
处理器;
存储装置,其耦合到所述处理器;以及
存储在所述存储设备中的自动调谐器引擎,其中由所述处理器执行所述自动调谐器引擎配置所述计算设备以执行所述方法的以下步骤:
确定基于微服务的应用的微服务基础设施;
确定与所述基于微服务的应用相关的一个或多个优化目标;
为所述基于微服务的应用的每个微服务测试超时和重试值的不同组合;
为超时和重试值的不同组合中的每一个计算奖励值;并且
将所述微服务基础设施设置为具有对于所述一个或多个优化目标的最高奖励值的超时和重试值的组合。
2.如权利要求1所述的方法,其中确定所述基于微服务的应用的所述微服务基础设施包括:
识别由所述基于微服务的应用使用的微服务;以及
识别所述微服务之间的相互连接。
3.如权利要求1所述的方法,其中优化目标包括在所述基于微服务的应用的预定最大错误率内的最低端到端等待时间。
4.如权利要求1所述的方法,其中优化目标包括在所述基于微服务的应用的预定的最大端到端等待时间内的最低错误率。
5.如权利要求1所述的方法,其中:
所述自动调谐器引擎的执行进一步将所述计算设备配置为执行以下进一步的步骤:
为所述基于微服务的应用的每个微服务确定现有的超时值;以及
为所述基于微服务的应用的每个微服务确定现有的重试值;
所述现有超时和重试值基于从参考数据源接收的历史训练数据;以及
基于所确定的现有超时和重试值,对所述基于微服务的应用的每个微服务的超时和重试值的不同组合进行测试。
6.如权利要求1所述的方法,其中:
所述自动调谐器引擎的执行进一步将所述计算设备配置为执行以下进一步的步骤:
为所述基于微服务的应用的每个微服务确定现有的超时值;以及
为所述基于微服务的应用的每个微服务确定现有的重试值;以及
每个微服务的现有超时和重试值是基于在高于典型负载的重负载下运行的所述微服务。
7.如权利要求1所述的方法,其中所述一个或多个优化目标来自服务级别协议(SLA),所述服务级别协议被接收在从所述基于微服务的应用的终端用户打包的数据中。
8.如权利要求1所述的方法,其中所述测试超时和重试值的不同组合中的每一个是通过所述基于微服务的应用的模拟器。
9.如权利要求1所述的方法,其中所述测试超时和重试值的不同组合中的每一个包括:直接在所述基于微服务的应用上测试每一个组合。
10.如权利要求1所述的方法,其中所述测试超时和重试值的不同组合包括:
估计直接在所述基于微服务的应用上测试创建的超时和重试值的不同组合的时间长度;
在确定所述时间长度等于或低于预定阈值时,直接在基于微服务的应用上测试超时和重试值的不同组合中的每一个;以及
在确定所述时间长度高于预定阈值时,使用模拟器对超时值和重试值的不同组合中的每一个来模拟所述基于微服务的应用的性能。
11.如权利要求1所述的方法,其中通过以下各项中的至少一项来创建每个微服务的超时和重试值的所述不同组合:(i)黑盒子优化,(ii)灰盒子优化,以及(iii)强化学习技术。
12.如权利要求1所述的方法,其中对于所述基于微服务的应用的每个微服务,在每次重试之后增加所述超时值的设置。
13.如权利要求1所述的方法,其中所述自动调谐器引擎的执行进一步将所述计算设备配置为执行以下进一步的步骤:将校正模型应用于每个确定的奖励值,其中所述校正模型基于统计和机器学习技术将所述确定的奖励值作为输入并且产生所述奖励值的新估计作为输出。
14.一种***,包括适于执行根据任一前述权利要求所述的方法的所有步骤的装置。
15.一种计算机程序,包括用于当在计算机***上执行所述计算机程序时执行根据以上任一方法权利要求所述的方法的所有步骤的指令。
CN201980052545.8A 2018-10-12 2019-10-03 用于嵌入的云微服务的自动调谐器 Active CN112567688B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/159,597 US10673708B2 (en) 2018-10-12 2018-10-12 Auto tuner for cloud micro services embeddings
US16/159,597 2018-10-12
PCT/IB2019/058416 WO2020075017A1 (en) 2018-10-12 2019-10-03 Auto tuner for cloud micro services embeddings

Publications (2)

Publication Number Publication Date
CN112567688A true CN112567688A (zh) 2021-03-26
CN112567688B CN112567688B (zh) 2023-04-28

Family

ID=70160625

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980052545.8A Active CN112567688B (zh) 2018-10-12 2019-10-03 用于嵌入的云微服务的自动调谐器

Country Status (6)

Country Link
US (1) US10673708B2 (zh)
JP (1) JP7355404B2 (zh)
CN (1) CN112567688B (zh)
DE (1) DE112019003405T5 (zh)
GB (1) GB2587765B (zh)
WO (1) WO2020075017A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360321A (zh) * 2021-06-23 2021-09-07 平安普惠企业管理有限公司 微服务重试调用方法、装置、电子设备及存储介质
CN115250230A (zh) * 2022-07-22 2022-10-28 中国电信股份有限公司 基于微服务的网元计时器管理方法、***及相关设备
CN115941504A (zh) * 2022-12-08 2023-04-07 哈尔滨工业大学 一种面向微服务***运行及治理的建模与仿真方法

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5785556B2 (ja) * 2009-12-10 2015-09-30 ロイヤル バンク オブ カナダ ネットワーク化されたコンピューティングリソースを用いたデータの同期処理
CN106533804A (zh) * 2016-12-22 2017-03-22 成都西加云杉科技有限公司 一种网络运营支撑***
US11182689B2 (en) * 2018-03-28 2021-11-23 International Business Machines Corporation Adaptive learning rate schedule in distributed stochastic gradient descent
US11249803B2 (en) * 2019-03-11 2022-02-15 Nec Corporation Usecase specification and runtime execution
US11570271B2 (en) * 2019-04-10 2023-01-31 Cisco Technology, Inc. Differentiated smart sidecars in a service mesh
US11388273B2 (en) * 2019-05-05 2022-07-12 International Business Machines Corporation Achieving atomicity in a chain of microservices
CN112291178B (zh) * 2019-07-22 2024-03-22 京东方科技集团股份有限公司 一种服务提供方法、装置及电子设备
US11159990B2 (en) * 2019-10-29 2021-10-26 At&T Intellectual Property I, L.P. Microservices coordinator for 5G or other next generation network
US11038763B1 (en) 2019-12-02 2021-06-15 At&T Intellectual Property I, L.P. Intelligent policy control engine for 5G or other next generation network
US11337108B2 (en) * 2020-02-19 2022-05-17 Verizon Patent And Licensing Inc. Uplink congestion control based on SIP messaging
US11488064B2 (en) * 2020-03-30 2022-11-01 International Business Machines Corporation Machine learning model for micro-service compliance requirements
US11237806B2 (en) 2020-04-30 2022-02-01 International Business Machines Corporation Multi objective optimization of applications
US11288109B2 (en) * 2020-06-11 2022-03-29 International Business Machines Corporation Determination of timeout value of an application service in a microservice architecture
US11461162B2 (en) 2020-07-06 2022-10-04 Ringcentral, Inc. Maze-driven self-diagnostics using reinforcement learning
US11178034B1 (en) * 2020-07-30 2021-11-16 Bank Of America Corporation Resilient network framework for mitigating predicted response time delays
US11223522B1 (en) * 2021-01-15 2022-01-11 Dell Products L.P. Context-based intelligent re-initiation of microservices
US20220385552A1 (en) * 2021-05-27 2022-12-01 At&T Intellectual Property I, L.P. Record and replay network traffic
US11968231B2 (en) * 2021-08-04 2024-04-23 International Business Machines Corporation Intelligent request routing within service mesh
US20230086068A1 (en) * 2021-09-22 2023-03-23 Ridgeline, Inc. Enabling an action based on a permission identifier for real-time identity resolution in a distributed system
US11522949B1 (en) * 2021-11-19 2022-12-06 Jpmorgan Chase Bank, N.A. Systems and methods for cloud-based hybrid service meshes in microservice architectures
US11782775B2 (en) 2022-02-15 2023-10-10 International Business Machines Corporation Dynamic management of network policies between microservices within a service mesh
US11563636B1 (en) * 2022-02-15 2023-01-24 International Business Machines Corporation Dynamic management of network policies between microservices within a service mesh
US20230370338A1 (en) * 2022-05-16 2023-11-16 T-Mobile Usa, Inc. Machine learning monitoring of wireless network infrastructure application servers
US20230396686A1 (en) * 2022-06-06 2023-12-07 International Business Machines Corporation Configurable and adaptive resiliency in microservice architectures
US11973839B1 (en) * 2022-12-30 2024-04-30 Nutanix, Inc. Microservice throttling based on learned demand predictions
CN117041330B (zh) * 2023-10-10 2023-12-15 三峡高科信息技术有限责任公司 一种基于强化学习的边缘微服务细粒度部署方法及***
CN117648123B (zh) * 2024-01-30 2024-06-11 中国人民解放军国防科技大学 一种微服务快速集成方法、***、设备及存储介质
CN117692503B (zh) * 2024-02-04 2024-04-26 国网湖北省电力有限公司信息通信公司 动态微服务图部署和概率请求路由的联合优化方法及***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105557015A (zh) * 2013-10-21 2016-05-04 英特尔Ip公司 用于无线网络中流量引导的度量
US20170242784A1 (en) * 2016-02-19 2017-08-24 International Business Machines Corporation Failure recovery testing framework for microservice-based applications
US20180039570A1 (en) * 2016-08-05 2018-02-08 International Business Machines Corporation Prioritizing resiliency tests of microservices
CN107846295A (zh) * 2016-09-19 2018-03-27 华为技术有限公司 微服务配置装置及方法
US20180101848A1 (en) * 2016-10-12 2018-04-12 Bank Of America Corporation System for managing a virtual private ledger and distributing workflow of authenticated transactions within a blockchain distributed network
US20180159747A1 (en) * 2016-12-05 2018-06-07 General Electric Company Automated feature deployment for active analytics microservices
US20180203767A1 (en) * 2015-09-18 2018-07-19 Alibaba Group Holding Limited Method and apparatus for job operation retry

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816954B2 (en) 2002-07-29 2004-11-09 Lsi Logic Corporation System and method for tuning retry performance
US8468196B1 (en) 2010-05-20 2013-06-18 Google Inc. System and method of reducing latency using adaptive retransmission timeouts
US9015289B2 (en) 2012-04-12 2015-04-21 Netflix, Inc. Method and system for evaluating the resiliency of a distributed computing service by inducing a latency
US9292039B2 (en) 2012-09-18 2016-03-22 Amazon Technologies, Inc. Adaptive service timeouts
US9652752B2 (en) 2014-07-31 2017-05-16 Ncr Corporation Dynamic network timeout tuning
WO2016065080A1 (en) 2014-10-21 2016-04-28 Twilio, Inc. System and method for providing a miro-services communication platform
CN105635331B (zh) 2014-11-18 2019-10-18 阿里巴巴集团控股有限公司 一种分布式环境下的服务寻址方法及装置
US20170187785A1 (en) * 2015-12-23 2017-06-29 Hewlett Packard Enterprise Development Lp Microservice with decoupled user interface
US10051006B2 (en) 2016-05-05 2018-08-14 Keysight Technologies Singapore (Holdings) Pte Ltd Latency-based timeouts for concurrent security processing of network packets by multiple in-line network security tools
US9716617B1 (en) 2016-06-14 2017-07-25 ShieldX Networks, Inc. Dynamic, load-based, auto-scaling network security microservices architecture
US10142356B2 (en) * 2016-07-29 2018-11-27 ShieldX Networks, Inc. Channel data encapsulation system and method for use with client-server data channels
US10511589B2 (en) * 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
US9875086B1 (en) 2016-09-29 2018-01-23 International Business Machines Corporation Optimizing performance of applications driven by microservices architecture
JP6972796B2 (ja) 2016-10-21 2021-11-24 富士通株式会社 ソフトウェアサービス実行装置、システム、及び方法
US10140152B2 (en) 2016-12-02 2018-11-27 Vmware, Inc. Dynamic timeout as a service
US10223109B2 (en) 2016-12-22 2019-03-05 Juniper Networks, Inc. Automatic scaling of microservices applications
US10108381B1 (en) * 2017-04-28 2018-10-23 Kyocera Document Solutions Inc. Distributed printing device management methods and devices
US10523507B2 (en) * 2017-05-11 2019-12-31 Nirmata, Inc. Method and system for tuning performance of microservices-based applications
CN108021447B (zh) 2017-11-28 2021-08-03 象翌微链科技发展有限公司 一种基于分布式数据确定最优资源策略的方法及***

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105557015A (zh) * 2013-10-21 2016-05-04 英特尔Ip公司 用于无线网络中流量引导的度量
US20180203767A1 (en) * 2015-09-18 2018-07-19 Alibaba Group Holding Limited Method and apparatus for job operation retry
US20170242784A1 (en) * 2016-02-19 2017-08-24 International Business Machines Corporation Failure recovery testing framework for microservice-based applications
US20180039570A1 (en) * 2016-08-05 2018-02-08 International Business Machines Corporation Prioritizing resiliency tests of microservices
CN107846295A (zh) * 2016-09-19 2018-03-27 华为技术有限公司 微服务配置装置及方法
US20180101848A1 (en) * 2016-10-12 2018-04-12 Bank Of America Corporation System for managing a virtual private ledger and distributing workflow of authenticated transactions within a blockchain distributed network
US20180159747A1 (en) * 2016-12-05 2018-06-07 General Electric Company Automated feature deployment for active analytics microservices

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360321A (zh) * 2021-06-23 2021-09-07 平安普惠企业管理有限公司 微服务重试调用方法、装置、电子设备及存储介质
CN113360321B (zh) * 2021-06-23 2023-02-07 平安普惠企业管理有限公司 微服务重试调用方法、装置、电子设备及存储介质
CN115250230A (zh) * 2022-07-22 2022-10-28 中国电信股份有限公司 基于微服务的网元计时器管理方法、***及相关设备
CN115941504A (zh) * 2022-12-08 2023-04-07 哈尔滨工业大学 一种面向微服务***运行及治理的建模与仿真方法
CN115941504B (zh) * 2022-12-08 2024-03-22 哈尔滨工业大学 一种面向微服务***运行及治理的建模与仿真方法

Also Published As

Publication number Publication date
CN112567688B (zh) 2023-04-28
US20200120000A1 (en) 2020-04-16
JP2022504087A (ja) 2022-01-13
JP7355404B2 (ja) 2023-10-03
US10673708B2 (en) 2020-06-02
DE112019003405T5 (de) 2021-04-22
GB2587765B (en) 2021-08-25
GB202101375D0 (en) 2021-03-17
GB2587765A (en) 2021-04-07
WO2020075017A1 (en) 2020-04-16

Similar Documents

Publication Publication Date Title
CN112567688B (zh) 用于嵌入的云微服务的自动调谐器
US10917316B2 (en) Constrained optimization of cloud micro services
US10552247B2 (en) Real-time monitoring alert chaining, root cause analysis, and optimization
US10409699B1 (en) Live data center test framework
US9444717B1 (en) Test generation service
US10373072B2 (en) Cognitive-based dynamic tuning
US10445138B2 (en) Optimizing simultaneous startup or modification of inter-dependent machines with specified priorities
US9396160B1 (en) Automated test generation service
US10621497B2 (en) Iterative and targeted feature selection
US10795937B2 (en) Expressive temporal predictions over semantically driven time windows
US10782949B2 (en) Risk aware application placement modeling and optimization in high turnover DevOps environments
US11829496B2 (en) Workflow for evaluating quality of artificial intelligence (AI) services using held-out data
US11755954B2 (en) Scheduled federated learning for enhanced search
US20230205664A1 (en) Anomaly detection using forecasting computational workloads
US11410023B2 (en) Lexicographic deep reinforcement learning using state constraints and conditional policies
US11930092B2 (en) Programmable delivery network
WO2023025781A1 (en) Providing a machine learning model based on desired metric values
US11080632B2 (en) Optimization of steady state cost for multi-site high availability application deployment of management and managed intrastructure
US20230196081A1 (en) Federated learning for training machine learning models
US20230185791A1 (en) Prioritized data cleaning
Chow et al. Atlas: Hybrid Cloud Migration Advisor for Interactive Microservices

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
GR01 Patent grant
GR01 Patent grant