CN109478161B - 使用调试容器提供关于生产容器的调试信息 - Google Patents

使用调试容器提供关于生产容器的调试信息 Download PDF

Info

Publication number
CN109478161B
CN109478161B CN201780042143.0A CN201780042143A CN109478161B CN 109478161 B CN109478161 B CN 109478161B CN 201780042143 A CN201780042143 A CN 201780042143A CN 109478161 B CN109478161 B CN 109478161B
Authority
CN
China
Prior art keywords
debug
container
executing
computer software
computer
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.)
Active
Application number
CN201780042143.0A
Other languages
English (en)
Other versions
CN109478161A (zh
Inventor
J·S·贝恩斯
K·F·L·克拉珀顿
D·J·克莱顿
R·M·利科里什
M·奈什
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 CN109478161A publication Critical patent/CN109478161A/zh
Application granted granted Critical
Publication of CN109478161B publication Critical patent/CN109478161B/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/36Preventing errors by testing or debugging software
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种方法以及相关联的系统,用于提供与在生产容器中执行的计算机软件相关联的调试信息。将生产容器复制为调试容器。在生产容器和调试容器中执行计算机软件。执行计算机软件包括将发送到在生产容器中执行的计算机软件的请求复制到在调试容器中执行的计算机软件。存储来自在生产容器中执行的计算机软件的请求以及对存储的请求的任何响应。存储由在调试容器中执行的计算机软件生成的调试信息。

Description

使用调试容器提供关于生产容器的调试信息
技术领域
本发明涉及提供关于生产容器的调试信息,更具体地说,涉及使用专用调试容器提供与在生产容器中执行的计算机软件相关联的调试信息。
背景技术
在企业级软件中启用调试跟踪和调试功能通常会对企业级软件的性能产生负面影响。因此,在测试环境中无法重新生成问题的情况下,使用本地部署(on-premise)解决方案的客户通常不愿意启用调试跟踪和其他调试功能。这可能使客户难以收集诊断信息以解决他们自己的问题。当客户要求调查所提供软件中的可能缺陷时,它也可能对支持服务产生负面影响。
发明内容
本发明提供了一种方法以及相关联的计算机系统和计算机程序产品,用于提供与在生产容器中执行的计算机软件相关联的调试信息。一个或多个处理器将生产容器复制为调试容器。一个或多个处理器在生产容器和调试容器中执行计算机软件,其中执行计算机软件包括将发送到在生产容器中执行的计算机软件的请求复制到在调试容器中执行的计算机软件。一个或多个处理器存储来自在生产容器中执行的计算机软件的请求以及对存储的请求的任何响应。一个或多个处理器存储由在调试容器中执行的计算机软件生成的调试信息。
附图说明
现在将参考附图仅通过示例更详细地描述本发明的实施例。
图1示出了其中可以实现提供调试信息的本发明的实施例的计算机系统。
图2是根据本发明实施例的计算机实现的方法的实施例的流程图,该方法提供与在生产容器中执行的计算机软件相关联的调试信息。
图3是根据本发明实施例的图2的请求和响应步骤的复制的实现的实施例的框图。
图4是根据本发明实施例的调用图2的计算机实现的方法的用户启动的第一计算机实现的方法的框图。
图5是根据本发明实施例的调用图2的计算机实现的方法的用户根据请求启动的第二计算机实现的方法的框图。
图6是根据本发明的实施例的使用先前记录的消息的重放来调用图2的计算机实现的方法的第三计算机实现的方法的框图。
图7是根据本发明实施例的调用图2的计算机实现的方法的第四计算机实现的方法的框图。
图8是可用于实现本发明实施例的示例性计算机系统的示意图。
图9描绘了根据本发明实施例的说明性云计算环境。
图10描绘了根据本发明实施例的由图9的云计算环境提供的一组功能抽象层。
具体实施方式
本发明改进了计算机系统的功能,特别是在云环境中操作的计算机系统的功能,这将从本发明的以下描述中变得明显。
本发明使得能够使用云或软件即服务(SaaS)中可用的设施来收集诊断信息以调试软件,以消除生产性能的风险并最小化调试跟踪的性能影响。本发明还能够减少云商品(cloud offering)上的调试操作的CPU时间定价。
混合云商品通常包括由云控制器组件编排的一组生产容器。网络边缘可以由网关软件或诸如
Figure BDA0001937054490000031
DataPowerGateway安全和集成平台的网关设备控制。在一个实施例中,可以通过现有的安全连接器连接到本地部署环境或私有云。容器可以从包含客户应用程序定义的共享存储网络位置自配置。
容器将计算机程序或其一部分包含在一个软件层中,该软件层无缝地连接到操作系统和它依赖于其执行的其他计算资源。将计算机程序放入容器中有许多好处。一个特别的优点是计算机程序可以快速且容易地从一台计算机移动到另一台计算机,例如,从程序员的笔记本电脑到测试系统再到云。
在本发明的实施例中,除了标准容器之外,还提供了针对调试活动而优化的专用容器。这些容器以多种方式专门化,包括但不限于:(i)可以实现计算机软件的运行调试版本(debug builds);(ii)底层硬件专门用于最小化调试成本,例如,底层硬件可能安装了固态存储设备(SSD),以便最小化写入跟踪信息的输入/输出(I/O)成本;(iii)默认情况下可以启用记录和重放设施等审计功能;以及(iv)默认情况下,可以开放调试端口,以允许支持人员实时调试调试系统上的问题。
本发明的实施例提供了将任何特定客户应用程序弹性缩放到调试容器以及生产容器上的能力。
尽管现有技术的专用调试实例在某种程度上可以减少诊断功能的影响,但仍然会对性能产生负面影响。因此,为了消除这种负面影响,当启用调试时,在本发明的实施例中,根据需要将现有客户容器图像旋转到本发明实施例的专用调试实例之一上。网关流量可以由位于网络边缘的网关设备或软件在调试容器和普通生产容器之间自动复制。同样,生产应用程序通过网络边缘的网关设备或通过安全连接器发出的任何传出请求都会与对传出请求的响应一起存储,以便可以使用相同的数据来模拟在调试容器实例中发生的实际请求。
在上述实施例中,诊断活动可以在定制的硬件和/或软件上运行,而不会对运行的生产工作负载产生任何影响。可以通过用于云商品的网络管理控制台直接向客户提供在调试信息中收集的诊断信息。诊断信息还可以可选地直接链接到云商品提供商的产品支持团队所使用的问题票务系统。调试实例也可以由支持人员通过直接虚拟专用网络(VPN)访问调试云环境进行调试。
图1示出了其中可以实现提供调试信息的本发明的实施例的计算机系统。云102包括生产容器106-112的生产组104。每个生产容器106-112将计算机程序(软件)或计算机程序的一部分包含在软件层中,该软件层无缝地连接到操作系统(图1中未示出)和计算机程序依赖于其运行的其他计算资源(图1中未示出)。该软件由客户在运营客户业务时用在生产环境中。云102还包括调试容器126-130的调试组124。每个调试容器126-130将计算机程序或计算机程序的一部分包含在软件层中,该软件层无缝地连接到操作系统和计算机程序依赖于其运行的其他计算资源。客户在运营客户业务时不在生产环境中使用该软件,而是将该软件用于获取诊断信息以帮助调试计算机程序的问题的目的。调试容器126-130的每个实例对应于生产容器106-112的单个实例。可以有任何数量的生产容器106-112和任何数量的调试容器126-130,但是调试容器126-130的每个实例必须对应于生产容器106-112的单个实例。生产容器106-112可以具有或不具有相应的调试容器126-130。生产容器106-112可以具有与生产容器相关联的多于一个的调试容器126-130,用于工作负载共享或类似目的。在一个实施例中,仅少量生产容器106-112将具有相应的调试容器126-130。
生产容器106-112和调试容器126-130在相同的网络环境中运行并共享网络存储器140,使得调试126-130和生产106-112容器可以加载共同的客户配置。在一个实施例中,调试容器126-130在专用硬件上执行。例如,执行调试容器126-130的硬件可以安装有SSD142,以便减少写入跟踪信息的I/O成本。当旋转容器(调试容器126-130或生产容器106-112)时,从共享网络存储器140上的位置加载配置数据和客户应用程序。
生产组104和调试组124执行所在的云102具有用于在客户本地部署外部进行通信的网关150,例如,到远程服务器310。云102还具有一个或多个安全连接器152,用于连接到客户本地部署内的另一个应用程序等。通常,网关150连接到因特网170以进行通信。云控制器172协调图1中的其他组件以确保云102的正确操作。
调试器162在远程支持系统160中执行。远程支持系统160可以位于远离生产组104和调试组124的地理位置,但是也可以与生产组104和调试组124处于相同的地理位置。根据众所周知的远程和本地的现有技术定义,远程支持系统160是远程的而不是本地的。远程支持系统160的功能是本领域技术人员公知的,并且在本发明的实施例的上下文中,远程支持系统160包括重新生成和解决与生产组104内的软件执行相关联的问题。调试器162的功能对于本领域技术人员来说也是公知的,并且在本发明的实施例的上下文中,调试器162包括对生产组104内的软件执行的分析,这可以通过分析在复制生产组104的调试组124内的软件执行来实现。虚拟专用网络(VPN)164提供远程支持160中的调试器162和在调试组124内执行的软件之间的安全通信路径。在一个实施例中。控制信息可以从调试器162通过VPN164传递到调试容器128,并且数据可以在调试器162和调试容器128之间通过VPN 164单向或双向通过。在其他实施例中,通过VPN的连接可以可选地转到调试组124或云102。
审计功能可以包括记录和重放166软件等项目。记录和重放166软件可以捕获由一条计算机软件、例如在调试组124中执行的调试容器128中的软件接收的输入事件,并允许该输入事件序列稍后重放到调试容器128中的软件。记录和重放166软件将捕获的输入事件发送到远程支持系统160内的重新生成(recreation)168软件,以便存储和以后使用。
在一个实施例中,调试容器126-130可以运行专用的软件版本。
在一个实施例中,生产容器106-112可以运行一个在禁用断言的情况下执行以实现最大性能的软件版本,而调试容器126-130可以执行一个启用断言以提供快速失败的软件版本。断言包含断言语句,该语句检查布尔条件,如果为真,则不执行任何操作,但如果为假,则立即终止程序。如可执行软件代码中所表达的,可以假设断言为真。断言语句可用于识别例如空指针。断言的使用允许故障更早出现并更接近错误的位置,从而使错误更易于诊断和修复。
在一个实施例中,生产容器106-112可以运行一个不具有调试符号以减少存储器使用的软件版本,而调试容器126-130可以执行一个具有调试符号以增加诊断能力的软件版本。调试符号包括识别计算机程序的源代码的哪个部分在可执行计算机软件的一部分中生成特定目标代码段的信息。调试符号使调试某个软件的人能够从原始源代码中获取有关目标代码的信息、例如变量和例程的名称。
在一个实施例中,生产容器106-112可以运行一个具有最大数量的编译器优化被启用以实现软件的最大性能的软件版本,而调试容器126-130可以运行一个具有最少的编译器优化以便提高其调试能力并减少编译器错误的影响的软件版本。编译器优化可以尝试最小化程序的执行时间,最小化由程序占用的内存量,最小化由程序消耗的功率或最大化或最小化可执行计算机程序的任何其他属性。优化转换,特别是那些对代码重新排序的转换,可能会使得在使用符号调试器时难以将输出代码与原始源代码中的行号相关联。
在一个实施例中,调试容器126-130可以具有专用配置。
在一个实施例中,生产容器106-112可以在总是关闭跟踪以获得最大性能的配置中执行软件,而调试容器126-130可以在总是完全打开跟踪以便尽可能多地捕获有关软件执行的信息的配置中执行软件。跟踪信息是记录的有关程序执行的信息,其中包括用于调试和软件问题的识别。在一个实施例中,跟踪是低级别事件。
在一个实施例中,生产容器106-112可以在审计功能总是被关闭以获得最大性能的配置中执行软件,而调试容器126-130可以在审计功能总是打开的配置中执行软件。审计功能可以包括记录和重放166软件。在一个实施例中,记录和重放166软件捕获由一条计算机软件接收的输入事件,并允许输入事件序列稍后重放到该软件。
在一个实施例中,生产容器106-112可以在禁用调试端口以获得最大性能的配置中执行软件,而调试容器126-130可以在启用调试端口以允许支持人员调试软件的配置中执行软件。调试端口是软件中包含的端口,用于简化开发和调试,但对于软件的正常操作不是必需的。在一个实施例中,禁用调试端口以防止未授权人员使用额外的功能。
在一个实施例中,调试容器126-130可以在专用硬件上执行。
在一个实施例中,生产容器106-112可以在没有安装任何SSD 142的硬件上执行软件,而调试容器126-130可以在安装有SSD 142的硬件上执行软件,以便减少存储跟踪信息的I/O成本。SSD 142提供更快的信息存储,但存储的成本更高。
在一个实施例中,生产容器106-112可以在具有较小存储容量的硬件上执行软件,以降低总拥有成本,而调试容器126-130可以在具有较大存储容量的硬件上执行软件,以考虑诊断的内存成本。在一个实施例中,客户可以根据实际使用的存储量来支付在硬件上执行软件的费用,因此在生产环境中,实际使用的存储量需要最小化。
在一个实施例中,生产容器106-112可以在具有较小CPU容量的硬件上执行软件,以降低总拥有成本,而调试容器126-130可以在具有较大CPU容量的硬件上执行软件,以考虑调试设施成本。客户通常可以根据实际使用的CPU容量来支付在硬件上执行软件的费用,因此在生产环境中,实际使用的CPU容量可以有利地最小化。
图2是根据本发明实施例的计算机实现的方法的实施例的流程图,该方法提供与在生产容器中执行的计算机软件相关联的调试信息。计算机实现的方法在步骤202开始。在步骤204,生产容器106-112被复制为与生产容器106-112并行的调试容器126-130。单个生产容器106-112或多个生产容器106-112可以被复制为调试容器126-130。然而,每个调试容器126-130通常与单个生产容器106-112一一对应。对此的例外可以是生产容器106-112可以具有与生产容器相关联的多于一个调试容器126-130以用于工作负载共享或类似目的。在图1的示例中,生产容器106可以与调试容器126相关联,生产容器108可以与调试容器128相关联,并且生产容器110可以与调试容器130相关联。生产容器112不与任何调试容器相关联,因此不会为生产容器提供调试信息。具有相关联的调试容器126-130的生产容器106-112的数量可以是零与可以在生产组104内同时执行的生产容器106-112的最大数量之间的任何数量。调试容器126-130的数量可以是零与实际上在生产组104内同时执行的生产容器106-112的数量之间的任何数量。如上所述,对此的例外可以是生产容器106-112可具有多于一个相关联的调试容器126-130,以用于工作负载共享或类似目的。
在步骤206,在生产容器(例如生产容器108)和复制的调试容器(例如调试容器128)中执行要调试的软件。在以下描述中,为了清楚起见,在以下描述中的参考将假设单个生产容器108已被复制到单个调试容器128。然而,实际上,如上所述,任何数量的生产容器106-112可具有相关联的复制的调试容器126-130。
在步骤208,位于网络边缘154的网关150将发送到在生产容器108中执行的计算机软件的请求复制到在调试容器128中执行的计算机软件的相应副本。在生产容器108中执行的每个计算机软件和在调试容器128中执行的计算机软件的相应副本执行该请求。每个容器中的执行之间的差异在于,在生产容器108中执行的计算机软件是在软件的生产版本上、以生产配置和在生产硬件上执行,而在调试容器108中执行的计算机软件是在软件调试的版本上、以调试配置和在调试硬件上执行。所有这些差异有助于收集与计算机软件的执行相关联的调试信息。在实施例中,差异可以是软件的调试版本、调试配置和调试硬件中的任何一个或多个。
在步骤210,将来自在生产容器108中执行的计算机软件的任何出站请求的副本与对所存储的请求的任何相关联的入站响应一起存储。这些请求可以是通过安全连接器152到本地服务器,或者是通过网关150到远程服务器310。
通过存储请求和任何相关联的响应,可以将存储的相关联的响应呈现给在调试容器128中执行的计算机软件,就好像响应是来自在调试容器128中执行的计算机软件的实际请求。不希望在调试容器128中执行的计算机软件实际上能够发出实际请求,因为由于在调试容器128中执行以及因此可能在软件的调试版本、以调试配置和在调试硬件上执行的计算机软件可能存在对做出请求产生的副作用。通过向在调试容器128中执行的计算机软件呈现相关响应的副本,向调试容器128呈现相同的刺激,确保在调试环境124中重新生成生产环境104中的任何问题,从而实现准确的收集要收集的诊断和调试信息以帮助确定问题解决方案,这些都是在对生产环境104的操作没有影响或影响最小的情况下实现的。
在步骤210之后,本发明的各种实施例是可能的。在图2所示的实施例中,在步骤210之后执行步骤212和214。在另一个实施例中,仅执行步骤212并存储调试信息以供以后分析。在另一实施例中,暂时存储调试信息,以便可以执行实时交互式调试,使得请求和调试信息被交互地发送到调试器162。
在步骤212,存储由在调试容器128中执行的计算机软件生成的调试信息。在一个实施例中,调试信息可以存储到与在生产容器108中执行的计算机软件共享的网络存储器140。在另一个实施例中,调试信息可以存储到SSD 142,以便最小化写入额外调试信息的I/O成本。
在步骤214,利用存储的调试信息来调试在生产容器108中执行的计算机软件。尽管存储的调试信息是从在调试容器128中执行的计算机软件获得的,但是存储的调试信息可以用于调试在生产容器108中执行的计算机软件,因为调试容器128是从生产容器108复制的。使用存储的调试信息的步骤以与常规存储的调试信息相同的方式执行。然而,本发明的实施例具有以下优点:生产容器108继续正常操作而不改变软件、配置或硬件,以便允许收集调试信息或者允许更有效地收集调试信息。计算机实现的方法在步骤216结束。
图3是根据本发明实施例的图2的208中的请求和响应步骤的复制的实现的实施例的框图。在步骤208,到生产容器108的所有流量由网络边缘154上的网关150设备复制,并且将请求的复制副本发送到专用调试容器128。类似地,如果请求是从生产容器108中产生的,通过网关150或通过安全连接器152传出到本地或私有云环境,则存储传出请求的副本和对传出请求的相关响应。因此,保存的响应可以透明地呈现给调试应用程序,而生产容器不向外界发出实际请求,从而防止运行调试容器126-130的副作用。
生产容器108可以通过位于网络边缘154的网关150从云环境向远程服务器310发出请求。生产容器108还可以通过安全连接器152向本地服务器发出请求。在任一情况下,网关150或安全连接器152将请求的消息上下文302与从远程服务器310接收的答复相关联,并将接收到的答复存储在存储器320中。然后由调试容器128实例通过安全连接器164访问与调试容器128相关联的存储器320。
所存储的消息上下文302数据是依赖于传输的,但是需要能够唯一地标识所做出的请求。在一个实施例中,该启用可以是端点地址和头部的某种组合,可以包括事务ID。
在调试容器128中执行的计算机软件可以将软件的传出请求路由到存储320而不是网络边缘154处的真实网关150或安全连接器152端点。消息上下文302用于查找存储的答复,然后将其呈现给在调试容器128中执行的计算机软件,就好像答复来自远程服务器310,但是没有实际调用可能具有不良副作用的真实的远程端点。
包括调试信息的诊断数据可以通过门户网站获得,并且可以通过与预先存在的问题票务系统直接集成进一步提供给支持人员。
可以以若干方式启动本发明的专用调试容器126-130的实施例。尽管下面在图4-7中描述了四种方式,本发明的实施例不限于这四种方式。调试容器126-130的实际复制可以由云控制器172或编排组件或类似物控制。现在将描述本发明的实施例的集成,其向云商品中提供专门的调试能力以提供全范围的调试选项。
图4示出了根据本发明实施例的调用图2的计算机实现的方法的用户启动的第一计算机实现方法的框图。在第一实施例中,用户可以通过使用网络控制面板402,具体地要求一特定应用程序运行在调试模式下。在第二实施例中,用户可以选择一定百分比的生产容器106-112运行在调试模式下。在第三实施例中,用户可以要求所有请求运行在调试模式下。在这些实施例的任何一个中,当用户通过发出请求404来启动图2的计算机实现的方法时,云控制器172通过请求406初始化适当数量的调试容器126-130并重新配置在网络边缘154的网关150和安全连接器152,使得请求被正确地路由到生产106-112和调试容器126-130(例如,调试容器128)。响应406、404可以通过云控制器172返回到网络面板402,以确认请求的正确路由。
图5是根据本发明实施例的调用图2的计算机实现的方法的用户根据请求启动的第二计算机实现的方法的框图。在一个实施例中,用户可以提交应该以调试模式运行的特定请求,这在例如当怀疑消息数据是所研究问题的触发者时可能是有用的。在该实施例中,该请求可以具有特殊的HTTP头部或URI参数,其指示应该打开调试。在图5中,用户做出的特定请求504被示为“获取特定端点”502,其可以是例如诸如“GET/msgflow?debug=true”的请求。“debug=true”部分是一个特定参数,其指示应该打开调试。在该实施例中,当用户向网关150提交启用了调试标志的特定请求时,用户向云控制器172提交请求508。云控制器172通过请求406初始化适当数量的调试容器126-130(例如,调试容器128),并重新配置在网络边缘154处的网关150和安全连接器152,以便将请求正确地路由到生产106-112和调试126-130容器。对云控制器172和网关150的响应406和请求508通过请求504返回给用户,以指示是否已经设置了调试容器128。一旦设置了调试容器128,调试容器128就通过网关150接收请求510并发送响应510。一旦请求被完全处理,调试容器就自动终止,调试信息已经保存到网络存储器140或SSD 142。
图6是根据本发明的实施例的使用先前记录的消息的重放来调用图2的计算机实现的方法的第三计算机实现的方法的框图。如果审计功能记录和重放166可用,则可以自动安排在调试容器126-130中执行的计算机软件上未成功处理的消息的重放。在该实施例中,调试容器126-130独立于生产容器106-112执行,并且作为批处理提交到调试容器126-130的消息。记录和重放(R&R)166向云控制器172提交604请求,云控制器172通过请求406初始化适当数量的调试容器126-130,并重新配置在网络边缘154处的网关150和安全连接器152,以使得请求被正确地路由到生产容器106-112和调试容器126-130。响应406、604用于指示调试容器128是否已成功设置。
图7是根据本发明的实施例的调用图2的计算机实现的方法的第四计算机实现的方法的框图,称为调试突发(debug bursting)702。如果用户在私有云环境或本地部署环境中遇到错误,则私有云环境或本地部署环境可能不具有在不影响私有云环境或本地部署环境的生产工作负载的情况下运行诊断工具的能力。类似地,用户可能无法访问托管云商品中可用的某些特制品,例如,访问内部调试版本。在该实施例中,基于用户从用户的本地部署或私有云环境提供的配置,在云商品中根据需要初始化调试容器126、128、130。私有云102环境中的生产容器108、110使用调试突发来向公共云704中的调试容器126-130发送信息。在该实施例中,调试容器126-130处于与生产容器108、110所在的公共云704不同的云(私有云102)中。
图8是可用于实现本发明的实施例的示例性计算机系统812的示意图。计算机系统812仅是合适的计算机系统的一个示例,并不旨在对本文描述的本发明的实施例的使用范围或功能提出任何限制。无论如何,计算机系统812能够实现和/或执行上文所述的任何功能。
计算机系统/服务器812可与众多其它通用或专用计算系统环境或配置一起操作。众所周知的适于与计算机系统/服务器812一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器812可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器812可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图8所示,计算机系统/服务器812以通用计算设备的形式示出。计算机系统/服务器812的组件可以包括但不限于:一个或者多个处理器或者处理单元816,表示一个或多个存储器的系统存储器828,连接不同系统组件、包括系统存储器828到处理单元816的总线818。
总线818表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的本地总线。作为示例而非限制,这些体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MAC)总线、增强型ISA总线、视频电子标准协会(VESA)本地总线以及外围组件互连(PCI)总线。
计算机系统/服务器812典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器812访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器828可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)830和/或高速缓存存储器832。计算机系统/服务器812可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统834可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图中未示出,可以提供一个或多个硬盘存储设备,包括用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线818相连。如下面将进一步显示和描述的,存储器828可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块842的程序/实用工具840可以存储在存储器828中,这样的程序模块842作为示例包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据。这些操作系统、一个或者多个应用程序、其它程序模块以及程序数据中的每一个或某种组合中可能包括网络环境的实现。程序模块842通常执行这里所描述的本发明的实施例中的功能和/或方法。
计算机系统/服务器812也可以与一个或多个外部设备814(例如键盘、指向设备、显示器824等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器812交互的设备通信,和/或与使得该计算机系统/服务器812能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口822进行。并且,计算机系统/服务器812还可以通过网络适配器820与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器820通过总线818与计算机系统/服务器812的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器812一起操作,例子包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问,可配置计算资源能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放(例如网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务)。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取和访问,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模型服务于多个消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为所利用的服务的服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了可能的有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图9,其中显示了示例性的云计算环境950。如图所示,云计算环境950包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点910,本地计算设备例如可以是个人数字助理(PDA)或移动电话954A、台式电脑954B、笔记本电脑954C和/或汽车计算机系统954N。云计算节点910之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点910进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境950提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图9显示的各类计算设备954A-N仅仅是示意性的,云计算节点910以及云计算环境950可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图10,其中显示了根据本发明的实施例的云计算环境(图9中的950)提供的一组功能抽象层。应当理解,图10所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图所示,提供下列层和对应功能:
硬件和软件层1060包括硬件和软件组件。硬件组件的例子包括:主机1061;基于RISC(精简指令集计算机)体系结构的服务器1062;服务器1063;刀片服务器1064;存储设备1065;及网络和网络组件1066。软件组件的例子包括:网络应用服务器软件。在一些实施例中,软件组件包括网络应用服务器软件1067和数据库软件1068。
虚拟层1070提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器1071;虚拟存储1072;虚拟网络1073,包括虚拟私有网络;虚拟应用和操作系统1074;以及虚拟客户端1075。
在一个示例中,管理层1080可以提供下述功能。资源供应1081提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取。计量和定价1082在云计算环境内对资源的使用进行成本跟踪,并为这些资源的消耗提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户1083为消费者和系统管理员提供对云计算环境的访问。服务水平管理1084提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行1085为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层1090提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航1091;软件开发及生命周期管理1092;虚拟教室的教学提供1093;数据分析处理1094;交易处理1095;以及调试信息1096。如上所述,上面针对图10描述的所有例子都仅仅是示例性的,本发明并不限于这些例子。
本发明可以是任何可能的技术细节集成级别的系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现
本发明的计算机程序产品包括一个或多个计算机可读硬件存储设备,其中存储有计算机可读程序指令,所述程序指令可由一个或多个处理器执行以实现本发明的方法。
本发明的计算机系统包括一个或多个处理器、一个或多个存储器、以及一个或多个计算机可读硬件存储设备,所述一个或多个硬件存储设备包含可由一个或多个处理器通过所述一个或多个存储器执行的程序指令,以实现本发明的方法。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (20)

1.一种用于提供与在生产容器中执行的计算机软件相关联的调试信息的方法,所述方法包括:
由一个或多个处理器将所述生产容器复制为调试容器;
由一个或多个处理器在所述生产容器和所述调试容器中执行所述计算机软件,所述在所述生产容器和所述调试容器中执行计算机软件包括:所述生产容器使用禁用断言执行所述计算机软件,所述调试容器使用启用断言执行所述计算机软件,所述断言包含断言语句,该语句检查布尔条件,如果为真,则不执行任何操作,但如果为假,则立即终止执行程序;
由一个或多个处理器通过网关将发送到在所述生产容器中执行的所述计算机软件的请求复制到在所述调试容器中执行的所述计算机软件;
由一个或多个处理器存储来自在所述生产容器中执行的所述计算机软件的请求以及对存储的请求的任何响应;以及
由一个或多个处理器存储由在所述调试容器中执行的所述计算机软件生成的调试信息。
2.如权利要求1所述的方法,其特征在于,所述方法还包括利用所存储的调试信息来调试在所述生产容器中执行的所述计算机软件。
3.如权利要求2所述的方法,其中所述利用所存储的调试信息包括通过网络接口利用所存储的调试信息。
4.如权利要求1所述的方法,其中所述生产容器运行一个具有最大数量的编译器优化被启用以实现软件的最大性能的软件版本,而调试容器运行一个具有最少的编译器优化以便提高其调试能力并减少编译器错误的影响的软件版本。
5.如权利要求1所述的方法,其中所述在所述调试容器中执行所述计算机软件包括通过将跟踪打开、将审计功能打开、启用调试端口或其组合在所述调试容器中执行所述计算机软件来优化用于生成调试信息的所述调试容器的配置。
6.如权利要求1所述的方法,其中在所述调试容器中的所述计算机软件在硬件上执行,所述硬件通过使用固态存储设备、更大存储容量、附加CPU容量或其组合被优化用于生成调试信息。
7.如权利要求1所述的方法,其中,所述方法还包括:
所述一个或多个处理器记录在所述生产容器中执行所述计算机软件的请求和响应,并随后重放到在所述调试容器中执行的所述计算机软件。
8.一种计算机系统,包括一个或多个处理器、一个或多个存储器、以及一个或多个计算机可读硬件存储设备,所述一个或多个硬件存储设备包含可由所述一个或多个处理器经由所述一个或多个存储器执行的程序指令,以实现一种用于提供与在生产容器中执行的计算机软件相关联的调试信息的方法,所述方法包括:
由一个或多个处理器将所述生产容器复制为调试容器;
由一个或多个处理器在所述生产容器和所述调试容器中执行所述计算机软件,所述在所述生产容器和所述调试容器中执行计算机软件包括:所述生产容器使用禁用断言执行所述计算机软件,所述调试容器使用启用断言执行所述计算机软件,所述断言包含断言语句,该语句检查布尔条件,如果为真,则不执行任何操作,但如果为假,则立即终止执行程序;
由一个或多个处理器通网关将发送到在所述生产容器中执行的所述计算机软件的请求复制到在所述调试容器中执行的所述计算机软件;
由一个或多个处理器存储来自在所述生产容器中执行的所述计算机软件的请求以及对存储的请求的任何响应;以及
由一个或多个处理器存储由在所述调试容器中执行的所述计算机软件生成的调试信息。
9.如权利要求8所述的计算机系统,所述方法还包括利用所存储的调试信息来调试在所述生产容器中执行的所述计算机软件。
10.如权利要求9所述的计算机系统,其中所述利用所存储的调试信息包括通过网络接口利用所存储的调试信息。
11.如权利要求8所述的计算机系统,其中所述生产容器运行一个具有最大数量的编译器优化被启用以实现软件的最大性能的软件版本,而调试容器运行一个具有最少的编译器优化以便提高其调试能力并减少编译器错误的影响的软件版本。
12.如权利要求8所述的计算机系统,其中所述在所述调试容器中执行所述计算机软件包括通过将跟踪打开、将审计功能打开、启用调试端口或其组合在所述调试容器中执行所述计算机软件来优化用于生成调试信息的所述调试容器的配置。
13.如权利要求8所述的计算机系统,其中在所述调试容器中的所述计算机软件在硬件上执行,所述硬件通过使用固态存储设备、更大存储容量、附加CPU容量或其组合被优化用于生成调试信息。
14.如权利要求8所述的计算机系统,其中所述方法还包括:
所述一个或多个处理器记录在所述生产容器中执行所述计算机软件的请求和响应,并随后重放到在所述调试容器中执行的所述计算机软件。
15.一种计算机存储介质,其中存储有计算机可读程序指令,所述程序指令可由计算机系统的一个或多个处理器执行以实现用于提供与在生产容器中执行的计算机软件相关联的调试信息的方法,所述方法包括:
由一个或多个处理器将所述生产容器复制为调试容器;
由一个或多个处理器在所述生产容器和所述调试容器中执行所述计算机软件,所述在所述生产容器和所述调试容器中执行计算机软件包括所述生产容器使用禁用断言执行所述计算机软件,所述调试容器使用启用断言执行所述计算机软件,所述断言包含断言语句,该语句检查布尔条件,如果为真,则不执行任何操作,但如果为假,则立即终止执行程序;
由一个或多个处理器通过网关将发送到在所述生产容器中执行的所述计算机软件的请求复制到在所述调试容器中执行的所述计算机软件;
由一个或多个处理器存储来自在所述生产容器中执行的所述计算机软件的请求以及对存储的请求的任何响应;以及
由一个或多个处理器存储由在所述调试容器中执行的所述计算机软件生成的调试信息。
16.如权利要求15所述的计算机存储介质,所述方法还包括利用所存储的调试信息来调试在所述生产容器中执行的所述计算机软件。
17.如权利要求16所述的计算机存储介质,其中所述利用所存储的调试信息包括通过网络接口利用所存储的调试信息。
18.如权利要求15所述的计算机存储介质,其中所述生产容器运行一个具有最大数量的编译器优化被启用以实现软件的最大性能的软件版本,而调试容器运行一个具有最少的编译器优化以便提高其调试能力并减少编译器错误的影响的软件版本。
19.如权利要求15所述的计算机存储介质,其中所述在所述调试容器中执行所述计算机软件包括通过将跟踪打开、将审计功能打开、启用调试端口或其组合在所述调试容器中执行所述计算机软件来优化用于生成调试信息的所述调试容器的配置。
20.如权利要求15所述的计算机存储介质,其中在所述调试容器中的所述计算机软件在硬件上执行,所述硬件通过使用固态存储设备、更大存储容量、附加CPU容量或其组合被优化用于生成调试信息。
CN201780042143.0A 2016-07-08 2017-06-06 使用调试容器提供关于生产容器的调试信息 Active CN109478161B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/205,143 US10372588B2 (en) 2016-07-08 2016-07-08 Providing debug information on production containers using debug containers
US15/205,143 2016-07-08
PCT/IB2017/053319 WO2018007884A1 (en) 2016-07-08 2017-06-06 Providing debug information on production containers using debug containers

Publications (2)

Publication Number Publication Date
CN109478161A CN109478161A (zh) 2019-03-15
CN109478161B true CN109478161B (zh) 2022-08-30

Family

ID=60910415

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780042143.0A Active CN109478161B (zh) 2016-07-08 2017-06-06 使用调试容器提供关于生产容器的调试信息

Country Status (5)

Country Link
US (3) US10372588B2 (zh)
JP (1) JP6912500B2 (zh)
CN (1) CN109478161B (zh)
GB (1) GB2566420B (zh)
WO (1) WO2018007884A1 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10372588B2 (en) 2016-07-08 2019-08-06 International Business Machines Corporation Providing debug information on production containers using debug containers
US10701137B2 (en) * 2016-09-30 2020-06-30 Micro Focus Llc Exchange service management contents with a cloud entity via a self-contained cloud content package
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
US11740898B2 (en) 2018-02-13 2023-08-29 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
KR102252137B1 (ko) 2018-02-13 2021-05-13 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 계산 장치 및 방법
US11630666B2 (en) 2018-02-13 2023-04-18 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
CN116991225A (zh) 2018-02-14 2023-11-03 上海寒武纪信息科技有限公司 处理器的控制装置、方法及设备
WO2019218896A1 (zh) 2018-05-18 2019-11-21 上海寒武纪信息科技有限公司 计算方法以及相关产品
JP7053891B2 (ja) 2018-06-27 2022-04-12 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッド オンチップコードのブレークポイントによるデバッグ方法、オンチッププロセッサ及びブレークポイントによるチップデバッグシステム
KR102519467B1 (ko) 2018-08-28 2023-04-06 캠브리콘 테크놀로지스 코퍼레이션 리미티드 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체
EP3859488A4 (en) 2018-09-28 2022-06-29 Shanghai Cambricon Information Technology Co., Ltd Signal processing device, signal processing method and related product
JP6759317B2 (ja) * 2018-12-13 2020-09-23 株式会社日立製作所 コンテナ提供支援システムおよびコンテナ提供支援方法
CN111385462A (zh) 2018-12-28 2020-07-07 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
CN111832738B (zh) 2019-04-18 2024-01-09 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
US11934940B2 (en) 2019-04-18 2024-03-19 Cambricon Technologies Corporation Limited AI processor simulation
US11676028B2 (en) 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
CN112085188B (zh) 2019-06-12 2024-04-02 上海寒武纪信息科技有限公司 一种神经网络的量化参数确定方法及相关产品
WO2021036904A1 (zh) 2019-08-23 2021-03-04 安徽寒武纪信息科技有限公司 数据处理方法、装置、计算机设备和存储介质
US11768701B2 (en) * 2019-09-17 2023-09-26 Western Digital Technologies, Inc. Exception analysis for data storage devices
CN110704324B (zh) * 2019-09-30 2023-11-10 聚好看科技股份有限公司 应用调试方法、装置及存储介质
US11113177B1 (en) * 2020-07-23 2021-09-07 Tracelink, Inc. Securely debugging different applications in a single short-lived container
CN112286820A (zh) * 2020-11-03 2021-01-29 深圳市广和通无线股份有限公司 软件调试方法、装置、计算机设备和存储介质
CN113010342A (zh) * 2021-03-12 2021-06-22 北京百度网讯科技有限公司 运维诊断的方法、装置、设备以及存储介质
US20220369064A1 (en) * 2021-05-14 2022-11-17 Headspin, Inc. Systems for controlling acquisition of test data from devices
CN114297089B (zh) * 2022-03-02 2022-07-29 杭州海康威视数字技术股份有限公司 基于容器的Python远程动态调试方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1959652A (zh) * 2005-11-03 2007-05-09 国际商业机器公司 在分布式调试器中调试计算机程序的方法和装置

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001325124A (ja) * 2000-05-17 2001-11-22 Fujitsu Ltd 計算機、システム管理支援装置及び管理方法
US7181507B1 (en) * 2000-07-18 2007-02-20 Harrow Products Llc Internet based access point management system
US7383537B2 (en) * 2003-08-20 2008-06-03 Microsoft Corporation Debugging an application that employs rights-managed content
US7992133B1 (en) 2006-02-14 2011-08-02 Progress Software Corporation Techniques for debugging distributed applications
CN100555240C (zh) * 2007-01-16 2009-10-28 国际商业机器公司 用于诊断应用程序的方法和系统
US7890299B2 (en) * 2007-05-21 2011-02-15 Qualcomm, Incorporated Providing event-controlled continuous logging for a mobile operating environment
KR101060181B1 (ko) * 2009-08-03 2011-08-29 강원대학교산학협력단 원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법
CN101763307B (zh) 2009-12-29 2012-05-02 山东中创软件商用中间件股份有限公司 一种网络容器及基于网络容器的程序调试方法
US8762947B2 (en) * 2010-04-01 2014-06-24 Salesforce.Com, Inc. System, method and computer program product for debugging an assertion
US8719804B2 (en) 2010-05-05 2014-05-06 Microsoft Corporation Managing runtime execution of applications on cloud computing systems
US9054975B2 (en) * 2010-08-30 2015-06-09 Deutsche Telekom Ag Virtualization and replay-based system for network debugging
US8495019B2 (en) * 2011-03-08 2013-07-23 Ca, Inc. System and method for providing assured recovery and replication
CN102200944B (zh) * 2011-06-16 2014-12-03 中国联合网络通信集团有限公司 Erp系统的测试环境克隆方法及系统
US8639984B2 (en) * 2011-08-09 2014-01-28 International Business Machines Corporation Checkpoint debugging using mirrored virtual machines
US9148304B2 (en) * 2011-11-16 2015-09-29 International Business Machines Corporation Generating production server load activity for a test server
US8763098B2 (en) * 2011-12-06 2014-06-24 Salesforce.Com, Inc. Mechanism for facilitating dynamic and continuous testing of security assertion markup language credentials in an on-demand services environment
US20130185770A1 (en) * 2012-01-12 2013-07-18 Salesforce.Com, Inc. Methods and systems for providing access to an online system
GB2504491A (en) * 2012-07-30 2014-02-05 Ibm Remote debug service in a cloud environment
JP6079267B2 (ja) * 2013-01-28 2017-02-15 富士通株式会社 中継サーバ、中継プログラム及び中継方法
CN103973741B (zh) 2013-01-31 2018-02-09 国际商业机器公司 用于在云系统中进行远程调试的方法和装置
US9047143B2 (en) * 2013-03-15 2015-06-02 Cisco Technology, Inc. Automation and programmability for software defined networking systems
CN104063258B (zh) * 2013-03-21 2017-05-03 国际商业机器公司 用于调试过程中的代码动态切换的方法和系统
US9117019B2 (en) 2013-07-26 2015-08-25 Sap Se Debugging remote software applications across WAN connections
US9875173B2 (en) * 2014-06-30 2018-01-23 Microsoft Technology Licensing, Llc Time travel debugging in managed runtime
US20160019081A1 (en) * 2014-07-21 2016-01-21 Vmware,Inc. Viewing a snapshot of a virtual machine
US9632914B2 (en) * 2015-05-21 2017-04-25 International Business Machines Corporation Error diagnostic in a production environment
US20160378528A1 (en) * 2015-06-26 2016-12-29 Vmware, Inc. Propagating changes from a virtual machine clone to a physical host device
US10503532B2 (en) * 2015-06-26 2019-12-10 Vmware, Inc. Creating a virtual machine clone of the host computing device and handling of virtual machine clone requests via an I/O filter
US9971634B2 (en) * 2015-09-25 2018-05-15 International Business Machines Corporation Detection of resource contention on computerized systems using co-located computer processes such as virtual machines
US9436583B1 (en) * 2015-11-06 2016-09-06 International Business Machines Corporation Minimally disruptive debugging in a production environment
CN105224466B (zh) 2015-11-17 2018-08-28 广州亦云信息技术有限公司 一种基于Docker的集成测试方法及系统
US10200271B2 (en) * 2016-04-12 2019-02-05 International Business Machines Corporation Building and testing composite virtual services using debug automation
US10176081B1 (en) * 2016-04-29 2019-01-08 Intuit Inc. Monitoring of application program interface integrations
US10855725B2 (en) * 2016-06-02 2020-12-01 Microsoft Technology Licensing, Llc Hardware-based virtualized security isolation
US10459823B1 (en) * 2016-06-29 2019-10-29 EMC IP Holding Company LLC Debugging using dual container images
US10372588B2 (en) 2016-07-08 2019-08-06 International Business Machines Corporation Providing debug information on production containers using debug containers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1959652A (zh) * 2005-11-03 2007-05-09 国际商业机器公司 在分布式调试器中调试计算机程序的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于IOC容器的工作流引擎的研究与设计;朱启明;《中国优秀硕士学位论文全文数据库 信息科技辑》;20090715;I138-382 *

Also Published As

Publication number Publication date
WO2018007884A1 (en) 2018-01-11
US20180011775A1 (en) 2018-01-11
US20190332521A1 (en) 2019-10-31
US10372588B2 (en) 2019-08-06
GB2566420A (en) 2019-03-13
GB2566420B (en) 2022-03-02
US11782818B2 (en) 2023-10-10
CN109478161A (zh) 2019-03-15
GB201900612D0 (en) 2019-03-06
JP6912500B2 (ja) 2021-08-04
US20220374330A1 (en) 2022-11-24
US11416373B2 (en) 2022-08-16
JP2019519852A (ja) 2019-07-11

Similar Documents

Publication Publication Date Title
CN109478161B (zh) 使用调试容器提供关于生产容器的调试信息
US11681785B2 (en) Detecting and tracking virtual containers
US9632914B2 (en) Error diagnostic in a production environment
US10977167B2 (en) Application monitoring with a decoupled monitoring tool
US10552304B2 (en) Using test workload run facts and problem discovery data as input for business analytics to determine test effectiveness
US20190278992A1 (en) System for maintenance and repair using augmented reality
US20180024876A1 (en) Tailoring diagnostic information in a multithreaded environment
US11379290B2 (en) Prioritizing and parallelizing the capture of data for debugging computer programs
US9513948B2 (en) Automated virtual machine provisioning based on defect state
US20180107723A1 (en) Content oriented analysis of dumps
US10200271B2 (en) Building and testing composite virtual services using debug automation
US20180067839A1 (en) Using workload profiling and analytics to understand and score complexity of test environments and workloads
US10643228B2 (en) Standardizing customer and test data and information collection for run time and historical profiling environments and workload comparisons
US10628840B2 (en) Using run-time and historical customer profiling and analytics to determine and score customer adoption levels of platform technologies
US20180074947A1 (en) Using run time and historical customer profiling and analytics to iteratively design, develop, test, tune, and maintain a customer-like test workload
US20190243745A1 (en) Debug session analysis for related work item discovery
US11989205B2 (en) Data replication in an active-active databases
US11734129B2 (en) Loop edge snapshotting
US20180074946A1 (en) Using customer profiling and analytics to create a relative, targeted, and impactful customer profiling environment/workload questionnaire
US20210021481A1 (en) Systems and methods for optimizing continuity of operations
US11360939B2 (en) Testing of file system events triggered by file access
US20230229586A1 (en) Environment specific software test failure analysis
WO2021009547A1 (en) Systems and methods for optimizing continuity of operations
WO2023031014A1 (en) Inaccessible prefix pages during virtual machine execution

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