测试环境调试现状
常常听到”测试环境不好用影响开发效率“这样的抱怨,由于部署环境的差异性,相信很多开发者都碰到过在本地正常运行的代码,发布到测试环境后出现这样或那样的问题,这时我们就会想了如果测试环境可以进行debug那该多好,但是测试环境可以采取的调试手段比较单一,一般通过日志的方式获取运行中上下文信息,然后分析日志参数等信息,尝试在本地复现bug,这会带来的问题还是不少的,首先,你要在日志系统中找到你需要上下文信息,有时候bug是偶现的你需要反复执行操作寻找日志上下文信息。在比较理想的状态下,恰巧你记录了日志并恰巧通过日志上下文信息分析出了问题,但是现实往往是日志记录没有反映出问题,或者说我们没有记录日志,这时我们可能需要修改代码加日志->部署->执行操作->获取日志->分析日志,然后重复几次以上的操作来慢慢的逼近问题,此时你可能就想了测试环境调试就像在本地调试一样简单就好了,可以在本地打断点随意debug,实时查看上下文参数,那么解决问题的速度就大大提升了。
使用 KubeOrbit 调试
当你还在一行一行查看测试环境日志上下文信息的时候,你的同事已经打上断点进行debug分析了,在使用KubeOrbit之后你会发现调试测试环境的代码是如此的轻松,你可以将任意测试服务转发到本地进行断点调试,查看上下文信息,之前在测试环境中遇到的调试问题,在这里统统不是问题,
KubeOrbit使用起来也是如此的优雅,将本地服务启动后,只需一行命令:
./orbitctl forward --deployment portal-service-deployment --namespace apps --containerPo