CN115827500B - 一种云原生应用的调试方法、装置、设备及存储介质 - Google Patents

一种云原生应用的调试方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115827500B
CN115827500B CN202310163815.0A CN202310163815A CN115827500B CN 115827500 B CN115827500 B CN 115827500B CN 202310163815 A CN202310163815 A CN 202310163815A CN 115827500 B CN115827500 B CN 115827500B
Authority
CN
China
Prior art keywords
cloud native
native application
service node
application
request
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
CN202310163815.0A
Other languages
English (en)
Other versions
CN115827500A (zh
Inventor
梁庆聪
李跃森
叶小朋
王德勇
李文斌
魏兴国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianyi Cloud Technology Co Ltd
Original Assignee
Tianyi Cloud Technology Co Ltd
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 Tianyi Cloud Technology Co Ltd filed Critical Tianyi Cloud Technology Co Ltd
Priority to CN202310163815.0A priority Critical patent/CN115827500B/zh
Publication of CN115827500A publication Critical patent/CN115827500A/zh
Application granted granted Critical
Publication of CN115827500B publication Critical patent/CN115827500B/zh
Priority to PCT/CN2023/140016 priority patent/WO2024174701A1/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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请实施例涉及云原生远程调试技术领域,具体涉及一种云原生应用的调试方法、装置、设备及存储介质,旨在实现云原生应用的快速远程调试。所述方法包括:当本地端接收到远程端的云原生应用发出的调试请求时,根据调试请求,对本地端的云原生应用进行程序调试,得到调试后的云原生应用;本地端通过调试后的云原生应用向云原生应用对应的sidecar服务节点发出第一调用请求;sidecar服务节点将第一调用请求发送至被调用应用;sidecar服务节点接收被调用应用发送的返回数据,根据预设的数据处理规则对返回数据进行处理,将处理后的返回数据发送至调试后的云原生应用;当调试后的云原生应用正常加载并运行返回数据时,将调试后的云原生应用部署至远程端。

Description

一种云原生应用的调试方法、装置、设备及存储介质
技术领域
本申请实施例涉及云原生远程调试技术领域,具体而言,涉及一种云原生应用的调试方法、装置、设备及存储介质。
背景技术
云原生是基于分布部署和统一运管的分布式云,云原生应用是针对云原生环境设计的应用程序,在使用云原生技术后,开发者无需考虑底层的技术实现,可以充分发挥云平台的弹性和分布式优势,在开发应用程序时达到快速部署、按需伸缩、不停机交付效果。在进行云原生应用开发时,需要进行远程调试,现有技术中在对云原生应用进行远程调试时,需要在本地对云原生应用进行程序调试,每调试一次之后,都需要将调试后的云原生应用部署至云原生环境中进行测试,这样才能查看到代码修改后的效果。
现有技术中对云原生应用进行调试时,多次调试并部署云原生应用程序,调试过程十分繁琐,开发调试人员的工作量巨大,影响了云原生应用远程调试的效率。
发明内容
本申请实施例提供一种云原生应用的调试方法、装置、设备及存储介质,旨在实现云原生应用的快速远程调试。
本申请实施例第一方面提供一种云原生应用的调试方法,所述方法包括:
当本地端接收到云原生环境中的远程端的云原生应用发出的调试请求时,根据所述调试请求,对所述本地端的云原生应用进行程序调试,得到调试后的云原生应用;
所述本地端通过所述调试后的云原生应用向所述云原生应用对应的sidecar服务节点发出第一调用请求,以对所述调试后的云原生应用进行运行测试;
所述sidecar服务节点将所述调用请求发送至所述第一调用请求对应的被调用应用;
所述sidecar服务节点接收所述被调用应用发送的返回数据,根据预设的数据处理规则对所述返回数据进行处理,将处理后的返回数据发送至所述本地端;
当所述调试后的云原生应用在加载所述处理后的返回数据后的运行过程中无报错信息产生时,将所述调试后的云原生应用部署至所述远程端,替代所述远程端的云原生应用。
可选地,所述方法还包括:
所述sidecar服务节点将所述第一调用请求发送至所述远程端的云原生应用;
所述远程端的云原生应用受到所述调用请求的触发,向所述sidecar服务节点发出与所述第一调用请求内容相同的第二调用请求;
所述sidecar服务节点将所述第二调用请求进行拦截;
所述sidecar服务节点将所述返回数据进行拷贝并将拷贝的返回数据发送至所述远程端的云原生应用。
可选地,所述方法还包括:
当所述sidecar服务节点接收到针对所述远程端的云原生应用发出的第三调用请求时,将所述第三调用请求发送至所述调试后的云原生应用;
所述调试后的云原生应用将所述第三调用请求对应的返回数据发送至所述sidecar服务节点;
所述sidecar服务节点将所述返回数据发送至提出所述第三调用请求的应用;
当所述调试后的云原生应用根据所述第三调用请求正常发送返回数据时,将所述调试后的云原生应用部署至所述远程端,替代所述远程端的云原生应用。
可选地,所述方法还包括:
所述sidecar服务节点将所述第三调用请求发送至所述远程端的云原生应用;
所述远程端的云原生应用将所述第三调用请求对应的返回数据发送至所述sidecar服务节点;
所述sidecar服务节点对所述返回数据进行拦截。
可选地,所述sidecar服务节点是预先部署在所述云原生环境中的,所述sidecar服务节点在所述云原生环境中的配置步骤包括:
将所述sidecar服务节点设置为所述远程端的云原生应用的代理服务节点;
在所述sidecar服务节点上设置所述云原生应用对应的请求拦截规则以及数据处理规则。
可选地,所述将所述sidecar服务节点设置为所述远程端的云原生应用的代理服务节点,包括:
将所述远程端的云原生应用的入口地址修改为所述sidecar服务节点的地址;
将所述远程端的云原生应用的出口地址修改为所述sidecar服务节点的地址。
可选地,所述在所述sidecar服务节点上设置所述云原生应用对应的请求拦截规则以及数据处理规则,包括:
所述sidecar服务节点接收所述云原生应用对应的配置文件;
所述sidecar服务节点根据所述配置文件确定所述云原生应用对应的请求拦截规则以及数据处理规则。
可选地,所述当本地端接收到云原生环境中的远程端的云原生应用发出的调试请求时,根据所述调试请求,对所述本地端的云原生应用进行程序调试,得到调试后的云原生应用,包括:
所述本地端根据所述调试请求中包含的报错信息,定位所述远程端的云原生应用出现的故障;
针对所述故障,对所述本地端的云原生应用进行程序调试,得到调试后的云原生应用。
可选地,所述sidecar服务节点将所述调用请求发送至所述第一调用请求对应的被调用应用,包括:
所述sidecar服务节点根据预设的请求拦截规则,从接收到的所有请求中确定所述第一调用请求;
所述sidecar服务节点根据所述第一调用请求,确定所述第一调用请求对应的被调用应用;
所述sidecar服务节点将所述第一调用请求发送至所述被调用应用。
可选地,所述sidecar服务节点接收所述被调用应用发送的返回数据,根据预设的数据处理规则对所述返回数据进行处理,将处理后的返回数据发送至所述本地端,包括:
所述sidecar服务节点根据预先设置的数据处理规则,对所述返回数据的参数进行调整;
将所述处理后的返回数据发送至所述本地端。
可选地,所述将所述调试后的云原生应用部署至所述远程端,包括:
所述本地端将所述调试后的云原生应用发送至所述云原生环境中的远程端;
所述远程端将所述远程端的云原生应用替换为所述调试后的云原生应用。
可选地,所述方法还包括:
所述sidecar服务节点对所述被调用应用的返回数据进行检测,当所述返回数据为错误数据时,确定所述被调用应用存在故障;
所述sidecar服务节点向所述被调用应用发送对应的故障数据。
本申请实施例第二方面提供一种云原生应用的调试装置,所述装置包括:
云原生应用调试模块,用于当本地端接收到云原生环境中的远程端的云原生应用发出的调试请求时,根据所述调试请求,对所述本地端的云原生应用进行程序调试,得到调试后的云原生应用;
第一调用请求发送模块,用于所述本地端通过所述调试后的云原生应用向所述云原生应用对应的sidecar服务节点发出第一调用请求,以对所述调试后的云原生应用进行运行测试;
第一调用请求转发模块,用于所述sidecar服务节点将所述调用请求发送至所述第一调用请求对应的被调用应用;
返回数据转发模块,用于所述sidecar服务节点接收所述被调用应用发送的返回数据,根据预设的数据处理规则对所述返回数据进行处理,将处理后的返回数据发送至所述本地端;
云原生应用部署模块,用于当所述调试后的云原生应用在加载所述处理后的返回数据后的运行过程中无报错信息产生时,将所述调试后的云原生应用部署至所述远程端,替代所述远程端的云原生应用。
可选地,所述装置还包括:
第一调用请求拷贝发送模块,用于所述sidecar服务节点将所述第一调用请求发送至所述远程端的云原生应用;
第二调用请求发送模块,用于所述远程端的云原生应用受到所述调用请求的触发,向所述sidecar服务节点发出与所述第一调用请求内容相同的第二调用请求;
第二调用请求拦截模块,用于所述sidecar服务节点将所述第二调用请求进行拦截;
返回数据拷贝发送模块,用于所述sidecar服务节点将所述返回数据进行拷贝并将拷贝的返回数据发送至所述远程端的云原生应用。
可选地,所述装置还包括:
第三调用请求转发模块,用于当所述sidecar服务节点接收到针对所述远程端的云原生应用发出的第三调用请求时,将所述第三调用请求发送至所述调试后的云原生应用;
返回数据发送模块,用于所述调试后的云原生应用将所述第三调用请求对应的返回数据发送至所述sidecar服务节点;
第二返回数据转发模块,用于所述sidecar服务节点将所述返回数据发送至提出所述第三调用请求的应用;
第二云原生应用部署模块,用于当所述调试后的云原生应用根据所述第三调用请求正常发送返回数据时,将所述调试后的云原生应用部署至所述远程端,替代所述远程端的云原生应用。
可选地,所述装置还包括:
第三调用请求拷贝发送模块,用于所述sidecar服务节点将所述第三调用请求发送至所述远程端的云原生应用;
第二返回数据发送模块,用于所述远程端的云原生应用将所述第三调用请求对应的返回数据发送至所述sidecar服务节点;
返回数据拦截模块,用于所述sidecar服务节点对所述返回数据进行拦截。
可选地,所述sidecar服务节点是预先部署在所述云原生环境中的,所述sidecar服务节点在所述云原生环境中的配置步骤包括:
将所述sidecar服务节点设置为所述远程端的云原生应用的代理服务节点;
在所述sidecar服务节点上设置所述云原生应用对应的请求拦截规则以及数据处理规则。
可选地,所述将所述sidecar服务节点设置为所述远程端的云原生应用的代理服务节点,包括:
将所述远程端的云原生应用的入口地址修改为所述sidecar服务节点的地址;
将所述远程端的云原生应用的出口地址修改为所述sidecar服务节点的地址。
可选地,所述在所述sidecar服务节点上设置所述云原生应用对应的请求拦截规则以及数据处理规则,包括:
所述sidecar服务节点接收所述云原生应用对应的配置文件;
所述sidecar服务节点根据所述配置文件确定所述云原生应用对应的请求拦截规则以及数据处理规则。
可选地,所述云原生应用调试模块包括:
故障定位子模块,用于所述本地端根据所述调试请求中包含的报错信息,定位所述远程端的云原生应用出现的故障;
程序调试子模块,用于针对所述故障,对所述本地端的云原生应用进行程序调试,得到调试后的云原生应用。
可选地,所述第一调用请求转发模块包括:
第一调用请求确定子模块,用于所述sidecar服务节点根据预设的请求拦截规则,从接收到的所有请求中确定所述第一调用请求;
被调用应用确定子模块,用于所述sidecar服务节点根据所述第一调用请求,确定所述第一调用请求对应的被调用应用;
第一调用请求发送子模块,用于所述sidecar服务节点将所述第一调用请求发送至所述被调用应用。
可选地,所述返回数据转发模块包括:
返回数据参数调整子模块,用于所述sidecar服务节点根据预先设置的数据处理规则,对所述返回数据的参数进行调整;
返回数据转发子模块,用于将所述处理后的返回数据发送至所述本地端。
可选地,所述云原生应用部署模块包括:
云原生应用发送子模块,用于所述本地端将所述调试后的云原生应用发送至所述云原生环境中的远程端;
云原生应用替换子模块,用于所述远程端将所述远程端的云原生应用替换为所述调试后的云原生应用。
可选地,所述装置还包括:
返回数据分析模块,用于所述sidecar服务节点对所述被调用应用的返回数据进行检测,当所述返回数据为错误数据时,确定所述被调用应用存在故障;
故障数据发送模块,用于所述sidecar服务节点向所述被调用应用发送对应的故障数据。
本申请实施例第三方面提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本申请第一方面所述的方法中的步骤。
本申请实施例第四方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本申请第一方面所述的方法的步骤。
采用本申请提供的云原生应用的调试方法,当本地端接收到云原生环境中的远程端的云原生应用发出的调试请求时,根据所述调试请求,对所述本地端的云原生应用进行程序调试,得到调试后的云原生应用;所述本地端通过所述调试后的云原生应用向所述云原生应用对应的sidecar服务节点发出第一调用请求,以对所述调试后的云原生应用进行运行测试;所述sidecar服务节点将所述调用请求发送至所述第一调用请求对应的被调用应用;所述sidecar服务节点接收所述被调用应用发送的返回数据,根据预设的数据处理规则对所述返回数据进行处理,将处理后的返回数据发送至所述本地端;当所述调试后的云原生应用在加载所述处理后的返回数据后的运行过程中无报错信息产生时,将所述调试后的云原生应用部署至所述远程端,替代所述远程端的云原生应用。本申请中,当远程端的云原生应用出现故障时,远程端向本地端发出调试请求,本地端对云原生应用进行进行程序调试,在对程序调试完毕之后进行测试时,设置了一个sidecar服务节点,通过该sidecar服务节点转发需要进行测试的功能的调用请求和返回数据,在本地端即可对云原生应用进行测试,不需在每次调试完毕后都将云原生应用部署在云原生环境中之后再进行测试,云原生应用在本地端调试完毕并且测试结果没有问题之后,再将最终版本的云原生应用部署至云原生环境中,使用调试后的云原生应用替代远程端上原有的云原生应用,实现了对故障云原生应用的快速远程调试。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提出的云原生应用的调试方法的流程图;
图2是本申请一实施例提出的调用流程示意图;
图3是本申请一实施例提出的结果返回流程示意图;
图4是本申请一实施例提出的正向调用场景示意图;
图5是本申请一实施例提出的反向调用场景示意图;
图6是本申请一实施例提出的云原生应用的调试装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,图1是本申请一实施例提出的云原生应用的调试方法的流程图。如图1所示,该方法包括以下步骤:
S11:当本地端接收到云原生环境中的远程端的云原生应用发出的调试请求时,根据所述调试请求,对所述本地端的云原生应用进行程序调试,得到调试后的云原生应用。
本实施例中,云原生环境是基于云原生架构建立起来的环境。云原生应用是在云原生环境中开发出的应用程序。本地端是云原生应用的开发测试人员操作的终端,远程端是云原生环境中的一个终端,远程端与本地端通过网络相互连接。调试请求是远程端发出的用于通知本地端对云原生应用进行程序调试的请求。程序调试是为了对故障程序进行修复而对故障程序的代码进行修改。调试后的云原生应用是根据调试请求,对故障进行修复后的云原生应用。
本实施例中,一个云原生应用在开发出来之后,部署在云原生环境中,本地端与远程端中同时部署有该云原生应用,当远程端的云原生应用出现故障,某些功能不能够正常使用或者数据出现错误时,远程端会生成针对该云原生应用的调试请求,将该调试请求发送至本地端,本地端在接收到调试请求后,根据调试请求中包含的云原生应用在运行中出现的错误数据,对云原生应用进行程序调试,在调试完毕之后,得到调试后的云原生应用。
示例地,远程端的云原生应用的账号注册功能出现故障,此时远程端生成对该云原生应用的调试请求,将该请求发送至本地端,调试请求中包含了账号的注册功能出现故障的消息,还包含了故障的相关数据。
S12:所述本地端通过所述调试后的云原生应用向所述云原生应用对应的sidecar服务节点发出第一调用请求,以对所述调试后的云原生应用进行运行测试。
本实施例中,sidecar(挎斗)服务节点是通过sidecar模式运行的网络节点,sidecar模式是将应用程序的组件部署到单独的进程或者容器中,提供隔离和封装,此模式还允许应用程序由异构组件和技术实现。sidecar服务节点可以屏蔽不同编程语言的差异,统一实现微服务的可观察性、监控、日志记录、配置、断路器等功能。通过sidecar服务节点,可以对云原生应用进行功能扩展,对云原生应用的请求与返回数据进行拦截。第一调用请求是由本地端上的调试后的云原生应用向sidecar服务节点发送的对云原生环境中的另外一个或多个应用的调用请求。
本实施例中,本地端在对云原生应用进行初步的调试完毕之后,需要对调试后的云原生应用进行测试,确认故障是否已经排除,此时将第一调用请求发送至sidecar服务节点中,通过sidecar服务节点对第一调用请求进行转发,sidecar服务节点接收调试后的云原生应用从本地端发出的第一调用请求。
示例地,当本地端的云原生应用调试完毕后,在测试阶段,向sidecar服务节点发出第一调用请求,该第一调用请求用于调用云原生环境中的应用A上的部分功能。
S13:所述sidecar服务节点将所述调用请求发送至所述第一调用请求对应的被调用应用。
本实施例中,sidecar服务节在接收到的所有请求中确定第一调用请求,进而确定第一调用请求对应的被调用应用,将第一调用请求发送至被调用应用中。
示例地,sidecar服务节点接收到的第一调用请求是针对应用A的,sidecar服务节点确定被调用应用为应用A,将第一调用请求发送至应用A中。
S14:所述sidecar服务节点接收所述被调用应用发送的返回数据,根据预设的数据处理规则对所述返回数据进行处理,将处理后的返回数据发送至所述本地端。
本实施例中,返回数据是由被调用应用根据第一调用请求的请求内容,向sidecar发送的对应的数据,对返回数据进行处理,就是对返回数据进行分析检查,看返回数据本身是否存在问题,当返回数据本身存在问题时,对该返回数据进行处理。
本实施例中,sidecar服务节点在接收到被调用应用发送的返回数据之后,对返回数据进行处理,根据预先设置的数据处理规则,对返回数据的参数进行修改,对确缺失的参数进行补全,以使得返回数据可以在调试后的云原生应用中正常运行。将处理的后的返回数据发送至本地端。
示例地,调试后的云原生应用发出的第一调用请求是请求注册该应用的用户的账户数据,被调用应用将用户的账户数据发送至sidecar服务节点,服务节点对用户的账户数据进行分析,发现用户的账户数据中某些地方出现缺失,例如住址不全,接收到的数据的住址为“南京市,XX区”,而标准的格式为“XX省,XX市,XX区”,此时将该住址补全为“江苏省,南京市,XX区”。
S15:当所述调试后的云原生应用在加载所述处理后的返回数据后的运行过程中无报错信息产生时,将所述调试后的云原生应用部署至所述远程端,替代所述远程端的云原生应用。
本实施例中,报错信息是应用在运行过程中向系统上报的运行过程出现错误的具体信息。
本实施例中,当调试后的云原生应用在加载处理后的返回数据后的运行过程中无报错信息产生时,将调试后的云原生应用部署至云原生环境中的远程端上,远程端上删除发生故障的云原生应用,使用调试后的云原生应用替代原有的云原生应用,实现了对云原生应用的远程调试。
本实施例中,当调试后的云原生应用正常加载处理后的返回数据,并在加载处理后的返回数据后正常运行,在运行过程中不出现报错信息,说明调试后的云原生应用可以正常发送请求并接收运行对应的返回数据,运行测试表明调试后的云原生应用运行正常,已经解决了调试请求对应的故障,运行测试完毕后,将调试后的云原生应用部署至远程端上,代理远程端上原有的发生故障的云原生应用。
本实施例中,通过sidecar服务节点对本地端的云原生应用的请求与返回数据进行转发,实现了在本地端对云原生应用的各种功能进行调试,不需要在本地端每次调试完程序之后都要部署至云原生环境中进行测试,大大提升了云原生应用远程调试的速度。
在本申请的另一个实施例中,所述方法还包括:
S21:所述sidecar服务节点将所述第一调用请求发送至所述远程端的云原生应用。
本实施例中,sidecar服务节点在接收到本地端上的第一调用请求时,为了不在远程端上产生脏数据,将接收到的第一调用请求进行复制,将第一调用请求同时发送至远程端,远程端接收到该第一调用请求,会记录保存该第一调用请求的相关数据,对云原生应用与其他应用之间的交互有对应的记录。
S22:所述远程端的云原生应用受到所述第一调用请求的触发,向所述sidecar服务节点发出与所述第一调用请求内容相同的第二调用请求。
本实施例中,当远程端接收到sidecar服务节点发送的第一调用请求时,远程端被该第一调用请求触发,向sidecar服务节点发送第二调用请求,第二调用请求与第一调用请求的内容相同,区别在于第一调用请求是由本地端发送的,第二调用请求是远程端发送的,发送第二调用请求的目的是将本该在远程端的云原生应用执行的步骤,在远程端的云原生应用上重复一次,保证远程端上不产生脏数据。
示例地,当本地端代替远程端,向某应用请求用户账户数据,经过该操作,数据库中会存储该用户的账户数据,但该操作本来是应该由远程端执行的,但远程端上的该部分功能出现故障,本地端在调试云原生应用后代为执行,远程端如果不发出同样的请求,那么在远程端看来,数据库中多出了用户的账户数据,但远程端并未请求过该数据,就会将该账户数据视为脏数据。而sidecar服务节点将第一调用请求复制一次,发送至第远程端,远程端的云原生应用受到触发后向sidecar服务节点发出同样的请求,这样子在远程端上会记录该次请求,当数据库中出现用户账户数据时,不会将该数据视为脏数据,保证了远程端的云原生应用的其他功能的运行不受影响。
S23:所述sidecar服务节点将所述第二调用请求进行拦截。
本实施例中,sidecar服务节点将第二调用请求拦截下来,不会将该第二调用请求转发至被调用应用,避免产生重复请求。
S24:所述sidecar服务节点将所述返回数据进行拷贝并将拷贝的返回数据发送至所述远程端的云原生应用。
本实施例中,sidecar服务节点在接收到返回数据时,将返回数据拷贝一份并发送至远程端的云原生应用,远程端会存储该返回数据,避免了脏数据的产生。
本实施例中,通过sidecar服务节点作为云原生应用调试的切入点,在接收本地端的请求以及接收响应数据的同时,将请求以及响应数据拷贝并发送至被调试的应用,即远程端的云原生应用,使得远程端可以记录云原生应用在调试期间发出的请求,避免了脏数据的产生。本地端与远程端互为影子,在调试应用时可以灵活切换。
在本申请的另一个实施例中,所述方法还包括:
S31:当所述sidecar服务节点接收到针对所述远程端的云原生应用发出的第三调用请求时,将所述第三调用请求发送至所述调试后的云原生应用。
本实施例中,第三调用请求是云原生环境中的其他应用对远程端上的被调试的云原生应用发出的数据调用请求。
本实施例中,云原生应用在云原生环境中会调用其他应用的数据,也会被其他应用所调用,在本地端对云原生应用进行调试之后,当sidecar服务节点接收到针对远程端的云原生应用发出的第三调用请求时,sidecar服务节点根据预先设置的规则,拦截针对远程端的云原生应用发出的数据调用请求,将该数据调用请求发送至本地端。
示例地,当远程端的云原生应用的某项功能出现故障时,在进行程序调试时,在sidecar服务节点上预先配置对该功能对应的调用请求进行拦截,当sidecar服务节点接收到针对远程端的云原生应用发出的该功能的相关请求,即第三调用请求时,将该调用请求拦截下来并发送到本地端,由本地端上的调试后的云原生应用对该请求进行响应。
S32:所述调试后的云原生应用将所述第三调用请求对应的返回数据发送至所述sidecar服务节点。
本实施例中,当本地端上的调试后的云原生应用接收到sidecar服务节点发送的第三调用请求时,根据该第三调用请求,将第三调用请求所对应的返回数据发送至sidecar服务节点中。
S33:所述sidecar服务节点将所述返回数据发送至提出所述第三调用请求的应用中。
本实施例中,sidecar服务节点在接收到调试后的云原生应用发送的返回数据,将返回数据发送至提出该第三调用请求的应用。
S34:当所述调试后的云原生应用根据所述第三调用请求正常发送返回数据时,将所述调试后的云原生应用部署至所述远程端,替代所述远程端的云原生应用。
本实施例中,当调试后的云原生应用可以根据第三调用请求正常发送返回数据时,将调试后的云原生应用部署至远程端,替代远程端上发生故障的云原生应用。
本实施例中,当调试后的云原生应用可以根据第三调用请求正常发送返回数据时,说明云原生应用上的故障功能已经被修复,可以正常的接收请求并发送数据,说明调试后的云原生应用已经调试无误,将调试无误的云原生应用程序部署至云原生环境中的远程端,替代远程端上出现故障的云原生应用。
本实施例中,在本地端对云原生应用进行调试后,当云原生环境中的其余应用调用远程端的云原生应用时,sidecar服务节点会拦截其余应用针对远程端的云原生应用发出的调用请求,将该调用请求发送至本地端上调试后的云原生应用中,对调试后的云原生应用的功能进行测试,当测试无误后,将调试后的云原生应用部署至远程端。
在本申请的另一个实施例中,所述方法还包括:
S41:所述sidecar服务节点将所述第三调用请求发送至所述远程端的云原生应用。
本实施例中,sidecar服务节点在接收到其他应用发送的第三调用请求时,同时将第三调用请求拷贝并发送至远程端的云原生应用中。
S42:所述远程端的云原生应用将所述第三调用请求对应的返回数据发送至所述sidecar服务节点。
本实施例中,远程端的云原生应用接收到第三调用请求时,将第三调用请求对应的返回数据发送至sidecar服务节点。
S43:所述sidecar服务节点对所述返回数据进行拦截。
本实施例中,sidecar服务节点在接收到远程端的云原生应用发送的返回数据时,对返回数据进行拦截,不将该返回数据发送至提出该调用请求的应用。
本实施例中,当sidecar服务节点将云原生环境中的其余应用发送的针对远程端的云原生应用的调用请求拦截并发送至本地端上时,同时将该调用请求发送至远程端的云原生应用,并拦截远程端的云原生应用发送的返回数据,使得远程端的云原生应用可以对该次请求以及返回数据进行记录,避免了脏数据的产生。
在本申请的另一个实施例中,所述sidecar服务节点是预先部署在所述云原生环境中的,所述sidecar服务节点在所述云原生环境中的配置步骤包括:
S51:将所述sidecar服务节点设置为所述远程端的云原生应用的代理服务节点。
本实施例中,代理服务节点用于代理远程端的云原生应用进行数据的传送,云原生应用的入口、出口请求都会经过该代理服务节点。
本实施例中,将所述sidecar服务节点设置为所述远程端的云原生应用的代理服务节点的具体步骤为:
S51-1:将所述远程端的云原生应用的入口地址修改为所述sidecar服务节点的地址。
S51-2:将所述远程端的云原生应用的出口地址修改为所述sidecar服务节点的地址。
本实施例中,通过修改远程端的云原生应用的四层网络协议(TCP(TransmissionControl Protocol,传输控制协议)/IP(Internet Protocol,网际互联协议))的访问路由,将远程端的云原生应用的入口、出口请求的地址都修改为sidecar服务节点的地址,此时远程端的云原生应用的入口、出口请求都会经过sidecar服务节点。
S52:在所述sidecar服务节点上所述云原生应用对应的请求拦截规则以及数据处理规则。
本实施例中,请求拦截规则是根据云原生应用发生的故障指定的,当某项功能发生故障时,就将该项功能相关的请求设置为被拦截的对象,加入白名单中,白名单中的请求都是需要进行拦截并发送至本地端的请求,剩余的请求可以不进行拦截,直接发送至远程端的云原生应用。数据处理规则是对接收到的请求数据以及返回数据的参数进行处理的规则,是在接收到的数据以及参数不符合规范或有数据缺失时,对参数进行修改以使得接收到的数据的参数符合云原生应用要求的规范。
本实施例中,每个云原生应用都对应一个sidecar服务节点,在对sidecar服务节点进行配置时,该节点载入对应的配置文件,配置文件中包含了对云原生应用进行测试时的请求拦截规则以及数据处理规则。
本实施例中,所述在所述sidecar服务节点上设置所述云原生应用对应的请求拦截规则以及数据处理规则,包括:
S52-1:所述sidecar服务节点接收所述云原生应用对应的配置文件。
本实施例中,在对sidecar服务节点进行配置时,将对应的配置文件加载至sidecar服务节点中,配置文件是根据远程端的云原生应用发出的调用请求中包含的需要进行调试的功能确定的。在配置文件中,通过正则表达式,在正则表达式中输入需要拦截的请求的相关参数,配置好的sidecar服务节点可根据该正则表达式拦截对应的请求。另外,在配置文件中写入了数据处理的规则,包括了检测到异常数据时,对异常数据的修改规则,以及对缺失数据的补全规则。
S52-2:所述sidecar服务节点根据所述配置文件确定所述云原生应用对应的请求拦截规则以及数据处理规则。
本实施例中,当sidecar服务节点加载配置文件之后,根据配置文件确定云原生应用对应的请求拦截规则以及数据处理规则。
本实施例中,sidecar服务节点加载配置文件,从配置文件中的正则表达式确定需要拦截的请求,在接收到请求时,通过该正则表达式进行匹配,匹配成功的请求就是需要拦截的请求。从配置文件中读取的数据修改的规则以及缺失数据的补全规则。
示例地,云原生应用中的账号注册功能出现了故障,则在sidecar服务节点中进行配置时,配置文件中写入了对应用的注册功能相关的请求进行拦截,例如请求显示注册验证码,请求注册用户的权限等数据请求。而数据处理规则就是对账号注册的相关数据的格式进行标准化,对账号注册的缺失数据的补全规则。
本实施例中,在本地端接收到远程端的云原生应用发出的调试请求时,根据该调试请求对sidecar服务节点进行配置,设置需要拦截的请求以及数据的处理规则,保证了对云原生应用上的故障功能进行针对性的调试。
在本申请的另一个实施例中,所述当本地端接收到云原生环境中的远程端的云原生应用发出的调试请求时,根据所述调试请求,对所述本地端的云原生应用进行程序调试,得到调试后的云原生应用,包括:
S61:所述本地端根据所述调试请求中包含的报错信息,定位所述远程端的云原生应用出现的故障。
本实施例中,报错信息是云原生应用在出现故障时系统进行报错的相关数据,相关数据中包括了故障的具体类型,故障发生的时间、次数等故障相关信息。
本实施例中,本地端在接收到调试请求后,根据调试请求中包含的报错信息,对云原生应用出现的故障进行定位。
示例地,报错信息中包含了“账号注册出现故障,无法正常实现新的用户账号的注册”等信息,则本地端根据该报错信息,定位云原生应用中出现故障的位置为账号注册模块,进而对账号注册模块的代码进行修改和测试。
S62:针对所述故障,对所述本地端的云原生应用进行程序调试,得到调试后的云原生应用。
本实施例中,在定位了云原生应用出现的故障之后,对本地端的云原生应用进行调试,调试出现故障的代码,得到调试后的云原生应用。
在本申请的另一个实施例中,所述sidecar服务节点将所述调用请求发送至所述第一调用请求对应的被调用应用,包括:
S71:所述sidecar服务节点根据预设的请求拦截规则,从接收到的所有请求中确定所述第一调用请求。
S72:所述sidecar服务节点根据所述第一调用请求,确定所述第一调用请求对应的被调用应用。
S73:所述sidecar服务节点将所述第一调用请求发送至所述被调用应用。
本实施例中,sidecar服务节点会接收到多个针对云原生应用的调用请求,根据预设的请求拦截规则,从接收到的所有请求中通过正则表达式匹配出出现故障的功能的相关请求,即第一调用请求,根据第一调用请求,确定第一调用请求对应的被调用应用,第一调用请求中包含有被调用应用的名称以及调用的数据,在确定第一调用请求对应的被调用应用后,将第一调用请求发送至对应的被调用应用中。
在本申请的另一个实施例中,所述sidecar服务节点接收所述被调用应用发送的返回数据,根据预设的数据处理规则对所述返回数据进行处理,将处理后的返回数据发送至所述本地端,包括:
S81:所述sidecar服务节点根据预先设置的数据处理规则,对所述返回数据的参数进行调整。
本实施例中,当sidecar服务节点接收到返回数据时,根据预先设置的数据处理规则,对返回数据的参数进行调整,按照规定格式对参数进行补全或精简,删除多余数据,对个别错误的参数值进行适应性调整,使得返回数据的参数满足调试后的云原生应用要求的规范。
S82:将所述处理后的返回数据发送至所述本地端。
本实施例中,在将返回数据处理完之后,sidecar服务节点将处理后的返回数据发送至本地端上,在调试后的云原生应用程序中加载运行。
在本申请的另一个实施例中,所述将所述调试后的云原生应用部署至所述远程端,包括:
S91:所述本地端将所述调试后的云原生应用发送至所述云原生环境中的远程端。
本实施例中,在本地端将云原生应用程序调试无误后,将调试后的云原生应用发送至远程端。
S92:所述远程端将所述远程端的云原生应用替换为所述调试后的云原生应用。
本实施例中,远程端在接收到调试后的云原生应用后,卸载原有的云原生应用,安装调试后的云原生应用。
在本申请的另一个实施例中,所述方法还包括:
S101:所述sidecar服务节点对所述被调用应用的返回数据进行检测,当所述返回数据为错误数据时,确定所述被调用应用存在故障。
S102:所述sidecar服务节点向所述被调用应用发送对应的故障数据。
本实施例中,在对本地端的云原生应用进行程序调试时,对该云原生应用出现故障报错的功能进行测试,当云原生应用可以正常发出请求时,sidecar服务节点接收本地端发出的调用请求,转发该请求后从被调用应用中获取返回数据,sidecar服务节点对返回数据进行数据检测,当检测到数据中存在数据与请求无法对应,返回的数据中存在大量的参数缺失,返回的数据中存在sidecar服务节点无法读取和识别的参数等情况时,确定返回数据为错误数据,本地端的云原生应用发出的请求是无误的,但返回的数据出现问题导致云原生应用的该功能不能正常运行,则很有可能是被调用应用出现了故障导致返回的数据出现了问题,则确定被调用应用出现故障,而本地端的云原生应用程序的该功能无故障。sidecar服务节点向被调用应用发送故障对应的故障数据,以提醒被调用应用返回的数据错误,可能出现故障。
进一步的,参考图2,图2是本申请一实施例提出的调用流程示意图,如图2所示,在通过sidecar服务节点对地端与远程端的云原生应用进行调试时,首先部署sidecar控制器,即sidecar服务节点,在sidecar服务节点中配置对应的规则,包括拦截地址请求方法和数据处理规则,将sidecar服务节点设置为被调试的应用的网络代理,在本地端向服务节点发出调用请求时,服务节点将调用请求拷贝并发送至被调试应用(即远程端的云原生应用),被调试应用受到触发之后也将同样的调用请求发送至服务节点中,服务节点将本体和影子的调用请求进行合并,实质上是扣留了影子发出的调用请求,只转发本地端发出的调用请求,其中,本地端的云原生应用和远程端上的被调试的云原生应用互为影子关系,在调用时通过sidecar服务节点实现了位置置换,通过本地端的云原生应用代替远程端上的被调试的云原生应用进行请求的发送。
参考图3,图3是本申请一实施例提出的结果返回流程示意图,如图3所示,云原生环境中的被调用应用向服务节点返回结果数据,服务节点基于配置的规则调整结果数据,将结果数据发送至本地端,再拷贝一份结果数据发送至远程端上的被调试应用(即远程端的云原生应用)。
参考图4,图4是本申请一实施例提出的正向调用场景示意图,如图4所示,在正向调用场景中,在本地环境,即本地端中,开发者对本地端云原生应用进行调试且通过本地端向服务节点发送调用请求,服务节点将调用请求转发至B应用和C应用,再将请求发送至远程端上的被调试应用(即远程端的云原生应用)中,被调试应用向服务节点发送返回数据。
参考图5,图5是本申请一实施例提出的反向调用场景示意图,如图5所示,在反向调用场景中,服务节点将B应用和C应用的请求转发至本地端,本地端的云原生应用向服务节点返回数据,服务节点同时给远程端上的被调试应用(即远程端的云原生应用)发送请求,被调试应用向服务节点返回结果数据,服务节点将返回数据发送至B应用和C应用中,被调试应用的返回数据被拦截在服务节点中,不进行转发,只转发本地端发出的返回数据。
基于同一发明构思,本申请一实施例提供一种云原生应用的调试装置。参考图6,图6是本申请一实施例提出的云原生应用的调试装置600的示意图。如图6所示,该装置包括:
云原生应用调试模块601,用于当本地端接收到云原生环境中的远程端的云原生应用发出的调试请求时,根据所述调试请求,对所述本地端的云原生应用进行程序调试602,得到调试后的云原生应用;
第一调用请求发送模块603,用于所述本地端通过所述调试后的云原生应用向所述云原生应用对应的sidecar服务节点发出第一调用请求,以对所述调试后的云原生应用进行运行测试;
第一调用请求转发模块604,用于所述sidecar服务节点将所述调用请求发送至所述第一调用请求对应的被调用应用;
返回数据转发模块605,用于所述sidecar服务节点接收所述被调用应用发送的返回数据,根据预设的数据处理规则对所述返回数据进行处理,将处理后的返回数据发送至所述本地端;
云原生应用部署模块606,用于当所述调试后的云原生应用在加载所述处理后的返回数据后的运行过程中无报错信息产生时,将所述调试后的云原生应用部署至所述远程端,替代所述远程端的云原生应用。
可选地,所述装置还包括:
第一调用请求拷贝发送模块,用于所述sidecar服务节点将所述第一调用请求发送至所述远程端的云原生应用;
第二调用请求发送模块,用于所述远程端的云原生应用受到所述调用请求的触发,向所述sidecar服务节点发出与所述第一调用请求内容相同的第二调用请求;
第二调用请求拦截模块,用于所述sidecar服务节点将所述第二调用请求进行拦截;
返回数据拷贝发送模块,用于所述sidecar服务节点将所述返回数据进行拷贝并将拷贝的返回数据发送至所述远程端的云原生应用。
可选地,所述装置还包括:
第三调用请求转发模块,用于当所述sidecar服务节点接收到针对所述远程端的云原生应用发出的第三调用请求时,将所述第三调用请求发送至所述调试后的云原生应用;
返回数据发送模块,用于所述调试后的云原生应用将所述第三调用请求对应的返回数据发送至所述sidecar服务节点;
第二返回数据转发模块,用于所述sidecar服务节点将所述返回数据发送至提出所述第三调用请求的应用;
第二云原生应用部署模块,用于当所述调试后的云原生应用根据所述第三调用请求正常发送返回数据时,将所述调试后的云原生应用部署至所述远程端,替代所述远程端的云原生应用。
可选地,所述装置还包括:
第三调用请求拷贝发送模块,用于所述sidecar服务节点将所述第三调用请求发送至所述远程端的云原生应用;
第二返回数据发送模块,用于所述远程端的云原生应用将所述第三调用请求对应的返回数据发送至所述sidecar服务节点;
返回数据拦截模块,用于所述sidecar服务节点对所述返回数据进行拦截。
可选地,所述sidecar服务节点是预先部署在所述云原生环境中的,所述sidecar服务节点在所述云原生环境中的配置步骤包括:
将所述sidecar服务节点设置为所述远程端的云原生应用的代理服务节点;
在所述sidecar服务节点上设置所述云原生应用对应的请求拦截规则以及数据处理规则。
可选地,所述将所述sidecar服务节点设置为所述远程端的云原生应用的代理服务节点,包括:
将所述远程端的云原生应用的入口地址修改为所述sidecar服务节点的地址;
将所述远程端的云原生应用的出口地址修改为所述sidecar服务节点的地址。
可选地,所述在所述sidecar服务节点上设置所述云原生应用对应的请求拦截规则以及数据处理规则,包括:
所述sidecar服务节点接收所述云原生应用对应的配置文件;
所述sidecar服务节点根据所述配置文件确定所述云原生应用对应的请求拦截规则以及数据处理规则。
可选地,所述云原生应用调试模块包括:
故障定位子模块,用于所述本地端根据所述调试请求中包含的报错信息,定位所述远程端的云原生应用出现的故障;
程序调试子模块,用于针对所述故障,对所述本地端的云原生应用进行程序调试,得到调试后的云原生应用。
可选地,所述第一调用请求转发模块包括:
第一调用请求确定子模块,用于所述sidecar服务节点根据预设的请求拦截规则,从接收到的所有请求中确定所述第一调用请求;
被调用应用确定子模块,用于所述sidecar服务节点根据所述第一调用请求,确定所述第一调用请求对应的被调用应用;
第一调用请求发送子模块,用于所述sidecar服务节点将所述第一调用请求发送至所述被调用应用。
可选地,所述返回数据转发模块包括:
返回数据参数调整子模块,用于所述sidecar服务节点根据预先设置的数据处理规则,对所述返回数据的参数进行调整;
返回数据转发子模块,用于将所述处理后的返回数据发送至所述本地端。
可选地,所述云原生应用部署模块包括:
云原生应用发送子模块,用于所述本地端将所述调试后的云原生应用发送至所述云原生环境中的远程端;
云原生应用替换子模块,用于所述远程端将所述远程端的云原生应用替换为所述调试后的云原生应用。
可选地,所述装置还包括:
返回数据分析模块,用于所述sidecar服务节点对所述被调用应用的返回数据进行检测,当所述返回数据为错误数据时,确定所述被调用应用存在故障;
故障数据发送模块,用于所述sidecar服务节点向所述被调用应用发送对应的故障数据。
基于同一发明构思,本申请另一实施例提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的云原生应用的调试方法中的步骤。
基于同一发明构思,本申请另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的云原生应用的调试方法中的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的云原生应用的调试方法、装置、设备及存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (15)

1.一种云原生应用的调试方法,其特征在于,所述方法包括:
当本地端接收到云原生环境中的远程端的云原生应用发出的调试请求时,根据所述调试请求,对所述本地端的云原生应用进行程序调试,得到调试后的云原生应用;
所述本地端通过所述调试后的云原生应用向所述云原生应用对应的sidecar服务节点发出第一调用请求,以对所述调试后的云原生应用进行运行测试;
所述sidecar服务节点将所述第一调用请求发送至所述第一调用请求对应的被调用应用;
所述sidecar服务节点接收所述被调用应用发送的返回数据,根据预设的数据处理规则对所述返回数据进行处理,将处理后的返回数据发送至所述调试后的云原生应用;
当所述调试后的云原生应用在加载所述处理后的返回数据后的运行过程中无报错信息产生时,将所述调试后的云原生应用部署至所述远程端,替代所述远程端的云原生应用。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述sidecar服务节点将所述第一调用请求发送至所述远程端的云原生应用;
所述远程端的云原生应用受到所述调用请求的触发,向所述sidecar服务节点发出与所述第一调用请求内容相同的第二调用请求;
所述sidecar服务节点将所述第二调用请求进行拦截;
所述sidecar服务节点将所述返回数据进行拷贝并将拷贝的返回数据发送至所述远程端的云原生应用。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述sidecar服务节点接收到针对所述远程端的云原生应用发出的第三调用请求时,将所述第三调用请求发送至所述调试后的云原生应用;
所述调试后的云原生应用将所述第三调用请求对应的返回数据发送至所述sidecar服务节点;
所述sidecar服务节点将所述返回数据发送至提出所述第三调用请求的应用;
当所述调试后的云原生应用根据所述第三调用请求正常发送返回数据时,将所述调试后的云原生应用部署至所述远程端,替代所述远程端的云原生应用。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述sidecar服务节点将所述第三调用请求发送至所述远程端的云原生应用;
所述远程端的云原生应用将所述第三调用请求对应的返回数据发送至所述sidecar服务节点;
所述sidecar服务节点对所述返回数据进行拦截。
5.根据权利要求1所述的方法,所述sidecar服务节点是预先部署在所述云原生环境中的,所述sidecar服务节点在所述云原生环境中的配置步骤包括:
将所述sidecar服务节点设置为所述远程端的云原生应用的代理服务节点;
在所述sidecar服务节点上设置所述云原生应用对应的请求拦截规则以及数据处理规则。
6.根据权利要求5所述的方法,其特征在于,所述将所述sidecar服务节点设置为所述远程端的云原生应用的代理服务节点,包括:
将所述远程端的云原生应用的入口地址修改为所述sidecar服务节点的地址;
将所述远程端的云原生应用的出口地址修改为所述sidecar服务节点的地址。
7.根据权利要求5所述的方法,其特征在于,所述在所述sidecar服务节点上设置所述云原生应用对应的请求拦截规则以及数据处理规则,包括:
所述sidecar服务节点接收所述云原生应用对应的配置文件;
所述sidecar服务节点根据所述配置文件确定所述云原生应用对应的请求拦截规则以及数据处理规则。
8.根据权利要求1所述的方法,其特征在于,所述当本地端接收到云原生环境中的远程端的云原生应用发出的调试请求时,根据所述调试请求,对所述本地端的云原生应用进行程序调试,得到调试后的云原生应用,包括:
所述本地端根据所述调试请求中包含的报错信息,定位所述远程端的云原生应用出现的故障;
针对所述故障,对所述本地端的云原生应用进行程序调试,得到调试后的云原生应用。
9.根据权利要求1所述的方法,其特征在于,所述sidecar服务节点将所述第一调用请求发送至所述第一调用请求对应的被调用应用,包括:
所述sidecar服务节点根据预设的请求拦截规则,从接收到的所有请求中确定所述第一调用请求;
所述sidecar服务节点根据所述第一调用请求,确定所述第一调用请求对应的被调用应用;
所述sidecar服务节点将所述第一调用请求发送至所述被调用应用。
10.根据权利要求1所述的方法,其特征在于,所述sidecar服务节点接收所述被调用应用发送的返回数据,根据预设的数据处理规则对所述返回数据进行处理,将处理后的返回数据发送至所述本地端,包括:
所述sidecar服务节点根据预先设置的数据处理规则,对所述返回数据的参数进行调整,得到处理后的返回数据;
将所述处理后的返回数据发送至所述本地端。
11.根据权利要求1所述的方法,其特征在于,所述将所述调试后的云原生应用部署至所述远程端,包括:
所述本地端将所述调试后的云原生应用发送至所述云原生环境中的远程端;
所述远程端将所述远程端的云原生应用替换为所述调试后的云原生应用。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述sidecar服务节点对所述被调用应用的返回数据进行检测,当所述返回数据为错误数据时,确定所述被调用应用存在故障;
所述sidecar服务节点向所述被调用应用发送对应的故障数据。
13.一种云原生应用的调试装置,其特征在于,所述装置包括:
云原生应用调试模块,用于当本地端接收到云原生环境中的远程端的云原生应用发出的调试请求时,根据所述调试请求,对所述本地端的云原生应用进行程序调试,得到调试后的云原生应用;
第一调用请求发送模块,用于所述本地端通过所述调试后的云原生应用向所述云原生应用对应的sidecar服务节点发出第一调用请求,以对所述调试后的云原生应用进行运行测试;
第一调用请求转发模块,用于所述sidecar服务节点将所述调用请求发送至所述第一调用请求对应的被调用应用;
返回数据转发模块,用于所述sidecar服务节点接收所述被调用应用发送的返回数据,根据预设的数据处理规则对所述返回数据进行处理,将处理后的返回数据发送至所述本地端;
云原生应用部署模块,用于当所述调试后的云原生应用在加载所述处理后的返回数据后的运行过程中无报错信息产生时,将所述调试后的云原生应用部署至所述远程端,替代所述远程端的云原生应用。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现如权利要求1至12任一所述的方法中的步骤。
15.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1至12任一所述的方法的步骤。
CN202310163815.0A 2023-02-24 2023-02-24 一种云原生应用的调试方法、装置、设备及存储介质 Active CN115827500B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202310163815.0A CN115827500B (zh) 2023-02-24 2023-02-24 一种云原生应用的调试方法、装置、设备及存储介质
PCT/CN2023/140016 WO2024174701A1 (zh) 2023-02-24 2023-12-19 一种云原生应用的调试方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310163815.0A CN115827500B (zh) 2023-02-24 2023-02-24 一种云原生应用的调试方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115827500A CN115827500A (zh) 2023-03-21
CN115827500B true CN115827500B (zh) 2023-04-14

Family

ID=85522299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310163815.0A Active CN115827500B (zh) 2023-02-24 2023-02-24 一种云原生应用的调试方法、装置、设备及存储介质

Country Status (2)

Country Link
CN (1) CN115827500B (zh)
WO (1) WO2024174701A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115827500B (zh) * 2023-02-24 2023-04-14 天翼云科技有限公司 一种云原生应用的调试方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112491634A (zh) * 2020-12-21 2021-03-12 北京云思畅想科技有限公司 一种微服务场景下全链路智能故障模拟及评估防御方法
CN112929230A (zh) * 2021-01-22 2021-06-08 中信银行股份有限公司 测试处理方法、装置、电子设备及计算机可读存储介质
WO2022007406A1 (zh) * 2020-07-10 2022-01-13 苏州浪潮智能科技有限公司 一种基于k8s的服务部署方法、装置、设备、介质
CN114168460A (zh) * 2021-11-29 2022-03-11 北京五八信息技术有限公司 混合开发中前端代码的远程调试方法、设备及存储介质
CN115203035A (zh) * 2022-07-15 2022-10-18 上海道客网络科技有限公司 一种基于边车技术的云原生应用测试方法和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013121394A1 (en) * 2012-02-15 2013-08-22 Universidade Do Porto Remote debugging service
CN114064475B (zh) * 2021-11-11 2024-08-20 中国联合网络通信集团有限公司 云原生应用测试方法、装置、设备及存储介质
CN114205342B (zh) * 2021-12-10 2023-05-16 易保网络技术(上海)有限公司 服务调试的路由方法、电子设备及介质
CN115599677A (zh) * 2022-10-20 2023-01-13 中国农业银行股份有限公司(Cn) 一种Paas云远程调试方法、装置及设备
CN115827500B (zh) * 2023-02-24 2023-04-14 天翼云科技有限公司 一种云原生应用的调试方法、装置、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022007406A1 (zh) * 2020-07-10 2022-01-13 苏州浪潮智能科技有限公司 一种基于k8s的服务部署方法、装置、设备、介质
CN112491634A (zh) * 2020-12-21 2021-03-12 北京云思畅想科技有限公司 一种微服务场景下全链路智能故障模拟及评估防御方法
CN112929230A (zh) * 2021-01-22 2021-06-08 中信银行股份有限公司 测试处理方法、装置、电子设备及计算机可读存储介质
CN114168460A (zh) * 2021-11-29 2022-03-11 北京五八信息技术有限公司 混合开发中前端代码的远程调试方法、设备及存储介质
CN115203035A (zh) * 2022-07-15 2022-10-18 上海道客网络科技有限公司 一种基于边车技术的云原生应用测试方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
码农小军.Sidecar模式.《知乎,网址:https://zhuanlan.zhihu.com/p/419917109》.2021,全文. *
阿里云术语库.云原生必备知识: Sidecar.《阿里云开发者社区,网址:https://developer.aliyun.com/article/745478》.2020,全文. *

Also Published As

Publication number Publication date
WO2024174701A1 (zh) 2024-08-29
CN115827500A (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
US9672137B1 (en) Shadow test replay service
US10489283B2 (en) Software defect reporting
KR100575497B1 (ko) 내고장성 컴퓨터 시스템
CN107026760B (zh) 一种故障修复方法及监控节点
US11722360B2 (en) Software defined networking control plane resiliency testing
KR20160044484A (ko) 클라우드 배치 기반구조 검증 엔진
CN109254864A (zh) 一种应用程序故障修复方法、装置及电子设备
CN115827500B (zh) 一种云原生应用的调试方法、装置、设备及存储介质
US20100005455A1 (en) Managing software dependencies during software testing and debugging
JP2011197785A (ja) ログ収集システムおよびログ収集プログラム
CN114064475B (zh) 云原生应用测试方法、装置、设备及存储介质
JP2009294837A (ja) 障害監視システム及びデバイスと監視装置並びに障害監視方法
CN110990289B (zh) 一种自动提交bug的方法、装置、电子设备及存储介质
JP6555721B2 (ja) 障害復旧システム及び方法
CN116915516A (zh) 软件跨云交付方法、中转服务器、目标云及存储介质
KR102111392B1 (ko) 테스트 통합 관리시스템 및 그 제어방법
CN114785763B (zh) 一种问题复现处理方法、装置及系统
CN114860619B (zh) 一种数据库审计程序回归测试方法和装置
Tomak et al. Measuring performance of fault management in a legacy system: An alarm system study
CN115373885A (zh) 一种故障修复方法、装置、存储介质及电子设备
CN115269424A (zh) 生产流量的自动回归测试方法、装置、设备及存储介质
Jebbar et al. Architecture for the automation of live testing of cloud systems
EP4127939B1 (en) Architecture, method and system for live testing in a production environment
US12107720B2 (en) Script discrimination apparatus, script discrimination method and script discrimination system
US20240330477A1 (en) System and method for evaluating active backups using penetration testing

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
CP02 Change in the address of a patent holder

Address after: 100007 room 205-32, floor 2, building 2, No. 1 and No. 3, qinglonghutong a, Dongcheng District, Beijing

Patentee after: Tianyiyun Technology Co.,Ltd.

Address before: 100093 Floor 4, Block E, Xishan Yingfu Business Center, Haidian District, Beijing

Patentee before: Tianyiyun Technology Co.,Ltd.

CP02 Change in the address of a patent holder