写点什么

基于 Portal 的 NJet 模拟环境

作者:通明湖
  • 2025-11-03
    北京
  • 本文字数:1496 字

    阅读完需:约 5 分钟

背景介绍

作为开发人员,经常碰到的问题是代码开发、测试都是好的,但在客户现场/生产环境,总是出各种各样的问题。这种问题,有可能是实现的逻辑,但更多的情况是现场人员的配置问题导致。因此开发人员需要一个和现场完全一致的环境,进行现场的故障复现,配置验证。

NJet 作为应用引擎,应用场景复杂,配置灵活,当然也面临此类问题。为了快速模拟 NJet 配置,验证整条业务链路是否通畅,同时检验系统在高压、大配置数据场景下的承载能力,并确认证书、限流等关键机制是否生效,NJet 的模拟环境应运而生。我们期望通过该环境:

  • 自动构建、完全模拟客户的网络环境拓扑

  • 可视化验证客户的配置有效性

  • 可进行批量/单独的功能测试

  • 能够进行域名解析,证书校验,客户端地址等模拟,辅助功能验证

同时,出于简化 GUI 管理的目的,该模拟应用利用 NJet 存在的 Portal 能力,避免了相关的认证授权的开发工作。

NJet 模拟应用的安装

随 NJet4.0 发布,NJet 发布了模拟应用的安装包,因此需首先安装 Portal 安装包,在 Portal 部署完成后,通过 GUI 安装模拟应用

  • 参考 https://njet.org.cn/cases/njet_portal/ 安装 NJet Portal

  • 在 portal 上添加 “Portal 版 NJet 模拟环境应用, 目前发布的模拟应用包为 simulate-app_1.0.2.npk,请从 NJet 的 release 站点下载


  • 模拟应用授权

如上图所显示,模拟应用部署后,请参考 https://njet.org.cn/cases/njet_portal/ 对模拟应用完成授权,用户关联。

  • 模拟应用配置

为支持网络拓扑模拟,以及调用可示化,模拟应用需要特定的配置,如下。请维持如下


  • 登录 portal 应用后,就可以看到模拟应用了

功能展示

配置导入

  • 功能模拟依赖于导入配置文件,目前配置文件需要使用 json 格式,目前需要手工把 nginx 格式的配置文件转换为 json,paste 或上传,在下个版本中,将直接支持 nginx.conf 格式的配置

  • 除导入外,模拟应用中也提供了多种示例配置,供参考

  • 除配置文件外,还可以配置模拟访问的特定的 client ip,供特定的业务模拟使用

如下图所显示,可以看到页面中有很多实例配置,可自由切换,也可以导入 JSON 文件的配置

拓扑展示

如点击 示例配置 1 (无证书)可直接进进入模拟页面,该页面直接生成了包括客户端->proxy->应用服务的网络拓扑,并详细描述 proxy 层面的业务配置,需着重说明的是,模拟环境中显示的 IP 地址,完全模拟了实际客户环境的地址。如下图所显示,展示了一个具备两个 server 的 proxy 层配置(test.backenda.com 和 test.backendb.com)

业务流程验证

在模拟环境中,下侧为 web terminal,可以输入特定的命令,单条或批量发送 HTTP 请求,验证配置的正确性。目前内置了 curl 和 wrk 命令,前者进行单条的功能测试,后者进行批量的测试

  • 单条测试

如下图所显示,单条测试中,在 GUI 界面可以看到完整的执行路径(图上的虚线涉及的点),比如通过 curl 发了一条到 testbackenda.com 的请求,可以从图上直观的看到,请求直接由 proxy 层的 path “/”处理了,没有转发到后端的应用服务

  • 批量测试

为了验证配置中某些特定的功能,如限流等,可以在 web terminal 输入 wrk 命令进行压测(批量命令的执行路径不会更新到 GUI 中)

其他功能

模拟应用除上述展示的能力外,还实现了如下功能,详情参考 NJet docs 站点,具体有

  • 通过导入证书,可以完整的模拟 HTTPS proxy 能力

  • 完整的模拟历史,供配置分析

  • Web terminal 的实现帮助

  • 客户端 ip 地址的任意更换,支持特定的算法

  • 超大规模的模拟配置支持(可支持多大 512 个 server,1000 个 location,512 个后端服务)

参考说明

  1. 目前只支持 json 格式的配置导入,json 格式请参考,json配置文件支持

  2. 依赖 NJet 4.0.0

  3. 出于安全考虑,NJet 安装后,需要修改 agw_admin 密码才能进行 portal 应用的安装

  4. 在下一版本中,将直接支持 nginx.conf 格式的导入,从而服务于 nginx 向 NJet 的迁移

发布于: 刚刚阅读数: 3
用户头像

通明湖

关注

让应用永远在线! 2022-10-13 加入

持续科技创新,信创应用交付领域的排头兵

评论

发布
暂无评论
基于Portal的NJet模拟环境_通明湖_InfoQ写作社区