從入門到上癮,滴滴開源的 RDebug 讓人慾罷不能
點選上方“業餘草”,選擇“置頂公眾號”
第一時間獲取技術乾貨和業界資訊!
滴滴這家公司,不管它每年所說的虧了多少?賠了多少?也不管它到底有沒有方便我們出行?我們只討論它開源的幾個強悍的產品對我們開發的幫助和影響。
我不知道,大家還記得我前段時間所說的滴滴變色龍產品。《滴滴重磅開源 Chameleon(變色龍)讓各種小程式一鍋端!》,以及滴滴對員工的敬愛《滴滴員工竟然被裁出了幸福感》。滴滴的企業文化可能受阿里的影響比較深,畢竟滴滴的程維是從阿里出來的,價值觀還是有的。
最近,我看到了滴滴新開源的 Rdebug,非常震撼人心!
Rdebug 是滴滴開源的一款用於 RD 研發、自測、除錯的實用工具,可以被用來提升 RD 研發效率、保障程式碼質量進而減少線上事故。
背景
鑑於微服務具有易於擴充套件、部署簡單、技術異構性等優點,越來越多的服務都在採用微服務的架構模式。一個複雜的單體服務通常會被拆分成多個小的微服務,當然在享受微服務帶來的一系列便利的同時也要接受因為微服務改造帶來的問題:需要維護的服務數變多、服務之間 RPC 呼叫次數增加……
在服務化改造完成之後,原來的單體服務演化成一堆微服務,這就造成線下開發測試環境維護成本大大增加,其次線下環境涉及到的部門較多,維護一個長期穩定的線下環境也是一個挑戰;業務快速發展、需求不斷迭代,手寫單測又因複雜的業務邏輯以及複雜的服務呼叫需要 mock 多個下游服務,導致手寫單測成本特別的高;手動構造資料,又不夠全面真實。以上問題都嚴重影響 RD 的研發效率,並且增加線上發生事故的隱患。
我們固執地相信這個行業需要一場變革。
宗旨
提升研發效率、降低測試成本、縮短產品研發週期,保障程式碼質量、減少線上事故。
適用場景
適用於對已有介面進行程式碼重構、功能升級,且該介面已經有錄製的流量。
不適合新開發的介面 或 未進行流量錄製的介面。
支援新介面的方案在調研中。
技術方案
因為我們需要使用線上的真實流量來進行線下的回放測試,所以我們需要將線上的真實流量儲存下來,然後將儲存的真實流量線上下環境進行回放一遍。故 Rdebug 的核心技術方案就是 流量錄製和流量回放。
流量錄製: 即錄製線上服務的真實請求,包括呼叫下游服務的 RPC 請求。流量錄製的難點在於如何將上下游請求以及每次 RPC 的請求/響應一一對應。
流量回放: 即用線上錄製的流量,對線下測試程式碼進行回放,通過流量匹配 mock 掉下游 RPC 請求。因此,流量回放的難點在於請求的攔截和匹配。
整體架構圖
看完這個架構圖就知道,Rdebug 的核心是,它能夠將正式生產環境中的請求資料,請求流量給儲存下來。也就是 Rdebug 的流量錄製功能。
流量錄製完了之後,copy 到測試環境,或線上的映象環境中進行流量回放。這就相當於,將線上的真實流量自動的轉發的測試環境等。實際的測試,debug 就相當於線上上除錯一樣。
這就相當於,開發人員有一個 Buff 夾持,開了掛一樣可以對線上環境程式碼進行 debug。
這個功能如果你用到你們公司,真的會上癮啊,欲罷不能。想想你以前,苦逼的查日誌,本地是好的,線上是有問題的。現在有了它,基本能做到,本地就是線上,線上就是本地!
原文連結:https://www.xttblog.com/?p=3978
10T技術資源大放送!包括但不限於:C/C++,Linux,Python,Java,PHP,人工智慧,GO等等。在公眾號內回覆對應關鍵字或框架名字,即可免費獲取!!
你再主動一點點 我們就有故事了
相關文章
- 讓人慾罷不能的量子學
- 滴滴開源 | Rdebug:基於真實流量的研發、除錯、測試利器除錯
- 一個讓我欲罷不能的開源文件管理工具
- 從入門到上線一個天氣小程式
- 熱門API介面資源:從開發到上線,大大提速工作流程API
- 那些讓你欲罷不能的回合制Roguelike究竟有何魅力?
- WebSocket 從入門到寫出開源庫Web
- JavaScript入門⑤-欲罷不能的物件原型與繼承-全網一般圖文版JavaScript物件原型繼承
- 人類簡史:從動物到上帝
- vuex4 極速入門到上手Vue
- 如何讓玩家欲罷不能?為遊戲設計一個“Gacha”活動遊戲設計
- Linux學習路線圖(從入門到上崗,帶自學路線圖)Linux
- 5個讓你欲罷不能的電腦黑科技軟體,請大家低調使用
- 讓 AI 無處不在:滴滴與螞蟻金服開源共建 SQLFlowAISQL
- 遊戲化機制研究:遊戲是如何讓人“上癮”的?遊戲
- 如何使用網紅營銷推廣移動App產品:從入門到上手APP
- 滴滴開源小程式框架Mpx框架
- 黑客入門,從HTB開始黑客
- Rust讓我上癮了 - RedditRust
- 韓國人的網癮戰爭
- SpringBoot入門(一):從HelloWorld開始Spring Boot
- 小程式從入門到開發
- scala 從入門到入門+
- makefile從入門到入門
- 從零開始入門 K8s | Kata Containers 創始人帶你入門安全容器技術K8SAI
- 開源 | Python基礎入門課程Python
- 【Python從入門到精通】(七)Python字典(dict)讓人人都Python
- 滴滴 App 的質量優化框架 Booster,開源了!APP優化框架
- 三分鐘搭建一個自己的 ChatGPT (從開發到上線)ChatGPT
- 面向Web開發人員的Linux實用入門WebLinux
- 重磅!滴滴開源首次釋出年度報告
- PYTHON系列-從零開始的爬蟲入門指南Python爬蟲
- Jmeter(二十六) - 從入門到精通 - 搭建開源論壇JForum(詳解教程)JMeter
- 001 手把手用Git,Git從入門到上傳本地專案到Github,看這篇就夠了Github
- 華為開源專案ServiceComb快速入門
- 鴻蒙開發從開源進入到閉源(Harmony OS)開發主流鴻蒙
- 盤點大廠的那些開源專案 - 滴滴出行
- 硬核卻欲罷不能,為什麼老的遊戲比現在的難?遊戲