开源流量回放系统OTDD在传统架构上的应用
OTDD可应用于传统架构
继上一篇文章《流量回放神器-OTDD》发布后,获得强烈的反响,文章收藏率持续保持在25%以上,侧面说明了OTDD的欢迎程度!
但同时,由于OTDD的设计直接面向于目前最火的云原生/Service Mesh架构,也即k8s+istio架构,又有不少朋友私信问我,OTDD能否应用在传统架构上?答案是,当然能!
OTDD两块儿核心的内容:
1、流量的录制
2、流量的回放
其中,除了流量的录制和具体的架构有关外,流量的回放是完全可复用的!
OTDD的顶层设计
OTDD的顶层设计总共包含3个主要的模块
1、流量录制组件:和您具体的架构有关,OTDD默认提供k8s+istio下的流量录制;
2、otddserver:可独立部署,负责流量的存储、对接otdd-test-runner的请求,以及对流量的查看、编辑、回放选择、查看报告等。大部分的用户操作将在otddserver的web页面进行;
3、otdd-test-runner:可以docker方式/linux service方式运行,和您开发环境有关;
所以,对于传统的非k8s+istio架构,您只需要按OTDD的流量录制思路,实现流量的录制并存入otddserver即可,其他完全可以重用!
不同架构下的流量录制思路
不同架构下的流量录制可以很不相同,但只要遵循于利用时间gap来建立inbound/outbound的流量关系即可。
在这里为您提供几种思路,您可以根据自己的架构进行选择。
1、nginx+php-fpm下的流量录制方法
其思路下:
a.摘掉一台nginx流量(或者新增一台nginx),作为录制机。
b.选取一台nginx,安装串行转发逻辑转发到录制机。
c.在录制机上面用tcpdump录制流量。
2、直接应用内转发的流量录制方法
其思路下:
a.摘掉一台service流量(或者新增一台service),作为录制机。
b.选取一台service,应用特殊串行转发逻辑转发到录制机。
c.在录制机上面用tcpdump录制流量。
3、gateway层转发的流量录制方法
其思路下:
a.选取一台service,作为录制机
b.直接在gateway层部署特殊串行转发逻辑转发到录制机
c.在录制机上面用tcpdump录制流量
为此,OTDD配置了如下模块来支持传统架构下OTDD的应用:
1、otdd-tcpdump-parser
可将上述录制下来的tcpdump文件,解析并通过grpc存储到otddserver!
其github: https://github.com/otdd/otdd-tcpdump-parser
2、nginx-redirector-example
运行在nginx下的lua脚本,朋友们可以作为参考结合各自的架构来进行流量的串行转发。
其github: https://github.com/otdd/nginx-redirector-example