微服务测试平台UP9的最新开源项目名为Mizu,这是一个实用工具,使开发人员能够在本地web应用程序中查看所有Kubernetes API流量。
你可以在Kubernetes中查看微服务之间的所有API通信,就像你使用Google ChromeDevTools查看web应用的流量一样。
Up9创始人兼首席执行官Alon Girmonsky说:“过去,通过流量检查进行故障排除是件容易的事。但在Kubernetes里,这不再容易。”
“如今,当开发人员遇到问题,想要排除故障时,没有流量,原因有很多——流量是分布式的,流量需要权限,流量处于加密层和新协议之下,需要在理解发生了什么之前进行解译。”
“流量是很难获得的。如果你看看行业中的其他工具,它们都需要代码检测。你必须安装SDK、代理或更改代码,以便在时机成熟时,能够真正查看通信内部,以了解发生了什么。”
相比之下,开发者可以下载大小为40兆字节的实用程序Mizu并查看流量。
Mizu是一个可观察性工具,它注入一个容器,在Kubernetes集群的节点级别执行类似tcpdump的操作。此操作可以通过CLI按需执行,无需准备即可使用。使用后,将容器取出。
在运行时,Mizu被动地观察网络级别的流量,而不是代理。Mizu不需要代码instrumentation。
CLI内置于Golang,无需安装即可下载和运行。Mizu使用kubectl,因此可以在配置kubectl的任何节点上运行。
Mizu可以作为可执行二进制文件下载,也可以作为源代码直接从其GitHub存储库下载。
使用正则表达式,你可以观察所有流量或特定的pod。Mizu运行时,将观察到名称与正则表达式匹配的pod,并记录它们的流量。
该可观察性工具支持HTTP/1.x、 HTTP/2、AMQP、Apache Kafka和Redis协议。需要Kubernetes服务器1.16.0或更高版本。
挖掘流量
对于一个正在使用API的现代云开发者来说,仅仅看到TCP数据包已经交付是不够的。
开发人员打开浏览器,查看Kubernetes集群内的实际流量。他们想深入挖掘:他们知道Kafa、gRPC、REST,这些协议是在整个网络堆栈上进行的。”
“如果我是一名网络开发者,我会使用Chrome DevTools来检查和查看流量。但是在Kubernetes,你没有Chrome DevTools;你甚至没有以前的tcpdump,你必须拥有运行它的权限。然后它只会给你TCP数据包,这在开发者看来,一切都是模糊的。”
“使用Mizu,获得权限,点击,翻译,在一个漂亮的用户界面中看到面前的一切。可以开始挖掘并试图找到问题的根源,并可能解决问题。”
也就是说,如果开发者在公司内部有权查看流量。该工具允许公司根据用户角色设置不同级别的授权。
Mizu包括一个建立在名为Basenine的数据库软件之上的过滤系统。它是无模式的,为尽可能快的写入速度和线性扩展的读取速度而构建。它接受JSON作为记录格式,只允许创建和读取访问。
过滤系统在Basenine数据库服务器内部使用Basenine过滤语言(BFL),以实现高效、精确的流量日志查询。
有了新的过滤语法,许多UI元素都是可查询的,结果可以加时间戳。
测试自动化
2011年,Girmonsky创建了Blazemeter,这是一种基于开源ApacheJMeter的负载测试云。它于去年9月被CA Technologies收购,后来被Broadcom收购,最近被Perforce收购。
在与Broadcom合作期间,Girmonsky和联合创始人Alex Haiut、Andrey Pokhilko和Refael Botbol Weiss遇到了一个反复出现的问题:新版本将破坏以前无缝工作的功能。
持续存在的问题使他们得出结论,软件测试在微服务时代已经被打破。
于是他们创建了UP9,这是一家总部位于加利福尼亚州帕洛阿尔托的初创公司,为微服务、Kubernetes和云原生技术提供开箱即用的测试自动化。它结合了机器学习和人工智能,是一种内部部署技术,而不是SaaS。
这些工具使开发人员能够解包API协议,如Kafka、REST、gRPC、Redis和RabbitMQ,并持续监控API有效负载,以检测漂移到生产中的漏洞。
该公司于十二月宣布收购基于英国的MoCKlab有限公司,开源API mocking工具WiReCK的创建者。
作为基于HTTP的API的模拟器,它使开发人员能够原型化尚未存在或尚未完成的API。你可以使用它来测试实际API无法可靠生成的边缘情况和故障模式。
原文链接:
https://thenewstack.io/open-source-mizu-unblocks-view-into-kubernetes-api-traffic/