diffy 方便的bug 以及流量測試系統


diffy 是twiiter 開源的流量以及bug 查找系統

參考使用圖

 

幾點說明

使用diffy我們需要三個角色

  • candidate instance 候選實例,運行新的代碼
  • primary instance 主實例,運行最新已知可運行的代碼
  • secondary instance 次要運行與primary 類似已知可運行的代碼
    當diffy 接受請求之后,會多播發送候選,主,以及次要實例,當這些服務發送回來響應之后,diffy 會進行比較
  • 候選與主的觀測的原始差異
  • 在主要和次要實例之間觀察到非確定性噪聲。由於這兩個實例都運行已知良好的代碼,因此應該期望響應達成一致。如果不是,服務可能具有非確定性行為,這是預期的

運行方式

以下為一個簡單的docker-compose 運行說明
詳細代碼參考 https://github.com/rongfengliang/diffy-docker-compose-demo

  • docker-compose文件
 
version: "3"
services: 
   app:
     build: ./
     ports: 
     - "9000:9000"
     - "9001:9001"
     - "9002:9002"
   diffy:
     image: diffy/diffy
     command: ["-candidate=app:9000","-master.primary=app:9001","-master.secondary=app:9002","-service.protocol=http","-serviceName=\"Test-Service\"","-proxy.port=:8880","-admin.port=:8881","-http.port=:8888","-rootUrl=localhost:8888"]
     ports: 
     - "8880:8880"
     - "8881:8881"
     - "8888:8888"
  • 效果

 

參考資料

https://github.com/twitter/diffy
https://blog.twitter.com/engineering/en_us/a/2015/diffy-testing-services-without-writing-tests.html
https://github.com/rongfengliang/diffy-docker-compose-demo


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM