技术平台 & 应用开发专题月 | 应用多实例调试—开发者的福音
一、应用多实例调试的重要性
随着社会不断进步,人们对于效率的要求越来越高。对于研发人员来说效率更是重中之重。而应用多实例调试就是提升研发工程师的研发效率一大利器。普通的远程调试可以让研发工作人员很方便的定位线上环境问题,但是在一个复杂的调用链路中,一个应用开启远程调试就会阻塞所有人的正常使用,进而使整个环境响应慢、阻塞、甚至完全瘫痪。用户想要验证一次代码修改是否正确,只能通过提交代码,走一遍流水线构建流程来发布和验证,有时候这个流程需要较长的时间,所以就出现一种十分尴尬的问题:改代码一分钟,应用部署需要十分钟。但是,这不是我们想要看到的局面,应用多实例的出现,可以让开发工程师或架构师在不影响正常业务使用的前提下进行线上调试,业务也就可以持续提供线上服务的能力。
二、应用多实例调试解决的核心问题
在各领域的日常开发工作中,都会遇见两种场景。第一,远程进行代码调试时会将整个环境进行阻塞。第二,执行一次流水线进行问题验证会消耗太多时间,降低很多效率。这两个场景便成为研发工作中的两个痛点。调试实例就是为了解决这两个痛点。
由上图可以看到,在工作台 old 当开发人员 B 对 App2 进行远程调试过程中,原本正常访问的用户 A 会被阻塞。当工作台添加了应用多实例调试功能后,开发人员 B 在调试 App2 时会带有指定的 Cookie,用户 A 可以正常访问原来的链路,不受影响。应用多实例调试让开发人员可以携带指定 Cookie 进行访问,流量会进入到调试实例中,此时在调试实例上进行远程 debug,就完全不会影响正常环境的使用,并且能够像普通的远程调试一样定位线上问题。这样就很好的解决了第一个痛点。
结合上图可知,当开发人员通过执行流水线进行线上验证时,会浪费一定时间,而应用多实例调试可以通过开启 SFTP 服务,用户可以在本地连接在线容器,进行文件上传和下载,通过 kill 原来的进程自动重启一个新的服务进程,达到快速验证问题的目的。这样第二个痛点也就完美解决。
三、应用多实例调试使用方法
云原生技术平台采用应用多实例调试后如虎添翼,接下来咱们就看看技术中台如何利用应用多实例调试提升研发效率的吧。
如上图所示,选择携带 Cookie 方式,携带此 Cookie 的请求将进入调试实例中。可选择固定 Cookie 和随机 Cookie 两种方式,具体使用场景:
1、单个服务使用调试实例,两种 Cookie 皆可;
2、多个开启调试实例的服务,如果想要连续调用调试实例,则使用固定 Cookie(需要使用一致的 Cookie 进入到调试实例中);
如果想要多个服务之间互不影响,建议使用随机 Cookie。选择是否要开启 SFTP 服务,如果只是远程调试可以不开,如果要实时更新容器内服务代码,实现热部署,则选择是。这样就可以省去执行流水线的时间,提升效率。
待实例状态变成“运行中”后,点击“调试信息”查看调试实例的 IP、服务调试端口。本地使用 IDEA 连接远程调试端口,创建 Remote 类型连接,填入上一步调试信息中的 IP 和调试端口。
在使用应用多实例调试时,也需要注意调试实例本身是为了方便研发调试和验证而生的,所以只在测试环境、日常环境放开始用,以避免生产环境等放开造成的安全隐患。
四、期待您的加入
提升效率本身就是提升生产力的一个过程,应用多实例调试的出现,极大提升了开发人员的调试效率,在用友内部技术团队中得到了一致的好评,我们也欢迎所有热爱技术或与技术相关的同学,入驻到用友云原生技术平台,亲身体验一下技术平台应用调试实例以及其他技术的魅力,云原生技术平台也会回馈给你其强大的技术能力,助力业务快速实现商业创新与管理创新。
扩展阅读:
技术平台&应用开发专题月 | 业务上云后的调试利器—云机一体
技术平台&应用开发专题月 | 企业上云利器-YMS(Yon Middleware Service)
评论