滴滴开源支撑业务代码重构工具 Rdebug

栏目: 软件资讯 · 发布时间: 6年前

内容简介:近日,滴滴在 GitHub 上开源后端研发、调试、测试的实用工具 Rdebug,全称 Real Debugger,中文名 真・Debugger。使用真实的线上流量进行线下回放测试,提升研发效率、保障代码质量,进而减少线上事故。随着微服务架构的普及和应用,一个复杂的单体服务通常会被拆分成多个小而美的微服务。在享受微服务带来便利的同时,也要接受因为微服务改造带来的问题:需要维护的服务数变多、服务之间 RPC 调用次数增加。这就造成线下环境维护成本大大增加,其次线下环境涉及到的部门较多,维护一个长期稳定的线下环境

近日,滴滴在 GitHub 上开源后端研发、调试、测试的实用工具 Rdebug,全称 Real Debugger,中文名 真・Debugger。使用真实的线上流量进行线下回放测试,提升研发效率、保障代码质量,进而减少线上事故。

背景

随着微服务架构的普及和应用,一个复杂的单体服务通常会被拆分成多个小而美的微服务。在享受微服务带来便利的同时,也要接受因为微服务改造带来的问题:需要维护的服务数变多、服务之间 RPC 调用次数增加。

这就造成线下环境维护成本大大增加,其次线下环境涉及到的部门较多,维护一个长期稳定的线下环境也是一个挑战;业务快速发展、需求不断迭代,手写单测又因复杂的业务逻辑以及复杂的服务调用需要 mock 多个下游服务,导致手写和维护单测成本特别的高;手动构造数据,又不够全面真实。以上问题都严重影响 RD 的研发效率,并且增加线上产生事故的隐患。

RD 迫切需要一个只需在本地部署代码、不用搭建下游依赖、使用真实数据,进行快速开发、调试、测试的解决方案。Rdebug 基于流量录制、流量回放的思路,能够巧妙的实现上述方案。

宗旨

提升研发效率、降低测试成本、缩短产品研发周期,保障代码质量、减少线上事故。

滴滴开源支撑业务代码重构工具 Rdebug

使用全景图

全新的研发体验

  • 只需部署模块代码,无需搭建下游服务;
  • 在 macOS 本地回放,开发、调试、测试无需登录远程服务器;
  • 流量录制支持常用协议,FastCGI、HTTP、 Redis 、Thrift、 MySQL 等;
  • 回放速度快,单次回放秒级别。

路径重定向

为了方便 RD 在本地开发、测试,Rdebug 支持路径重定向。

当线上部署路径和本地代码路径不一致时,当代码中存在大量线上路径硬编码时,无需入侵式修改代码,只需要简单的配置即可实现路径重定向。

即代码可以存放在任何路径下回放。

时间偏移

流量回放时会自动把时间偏移到流量录制的时间点。

在代码中获取时间时,会获得录制时间点之后的时间。所以,当业务接口对时间敏感时,也无需担心。

文件 Mock

流量回放支持文件 Mock,指定文件路径和 Mock 的内容,即可快速实现文件 Mock。

结合录制上报功能,在线上上报配置读取,在线下使用文件 Mock 实现配置“重现”。

Elastic 搜索

对存储在 Elastic 中的流量,支持 URI、输入输出关键词、下游调用等多维度搜索。

回放支持指定文件,也支持上述搜索回放,使用体验更佳。

Xdebug 调试

最高效的功能是 Xdebug 联动调试,通过对代码设置断点即可使用线上流量进行调试。通过这种方式,可以用来研究代码、排查问题、查看下游接口响应格式及数据等,是一个开发调试利器。

滴滴开源支撑业务代码重构工具 Rdebug

回放报告

回放报告,汇总线上线下的输入、输出、结果对比,一目了然。

滴滴开源支撑业务代码重构工具 Rdebug

下游调用报告,会列举出所有的下游调用,包括协议、请求内容、匹配上的响应以及相识度。通过不同的背景颜色,标记出完全匹配的流量、存在噪点的调用、缺失的调用、新增的调用等。

滴滴开源支撑业务代码重构工具 Rdebug

结合 Xdebug 生成覆盖率报告,能够清楚的看到哪些代码被执行、哪些代码未被执行以及接口的覆盖率情况。

滴滴开源支撑业务代码重构工具 Rdebug

有关安装、使用过程以及常见问题解答,请查看以下链接:

GitHub: https://github.com/didi/rdebug

Wiki: https://github.com/didi/rdebug/wiki

Documentation: https://github.com/didi/rdebug/blob/master/doc/DocList.md


以上所述就是小编给大家介绍的《滴滴开源支撑业务代码重构工具 Rdebug》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beginning ARKit for iPhone and iPad

Beginning ARKit for iPhone and iPad

Wallace Wang / Apress / 2018-11-5 / USD 39.99

Explore how to use ARKit to create iOS apps and learn the basics of augmented reality while diving into ARKit specific topics. This book reveals how augmented reality allows you to view the screen on ......一起来看看 《Beginning ARKit for iPhone and iPad》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具