• 效率方案:快速切换联调、测试、正式环境


      在项目的开发过程中,为了保证软件质量,服务端软件会被部署到多种环境中,目的是隔离开发、测试、正式环境。

      按照我们公司目前的架构,服务端软件会经历 “联调环境” -> "测试环境" -> "正式环境" 的环境切换。

      1. 联调环境,部署在本地服务器上,主要是用来给 APP 开发人员对接调试

      2. 测试环境,部署在线上服务器的测试环境,主要是用来给测试人员进行功能测试

      3. 正式环境,提供给正式用户使用

      以前我们公司的方式是,在同一份代码的基础上,打不同环境的安装包出来,但这种方式很容易出错,例如,QA 使用一个正式环境的包进行测试,发现数据不正确,然后向开发人员进行反馈,最后几经周折才发现是用错了安装包。

      二、任务需求

      当 APP 打好包之后,在不同的环境下,访问同一接口的时候,APP 将自动请求相关环境下的服务:

      1. 在联调环境中,APP 将自动请求联调服务器,api.local.odirus.me

      2. 在测试环境中,APP 将自动请求测试服务器,api.test.odirus.me

      3. 在正式环境中,APP 将访问正式服务器,       api.online.odirus.me

      三、解决方案

      我们进行了第一次尝试,使用记录的方式,大致流程如下:

      购买两台极路由,安装 Hosts 插件;在内网部署两台 Linux 服务器,安装 Nginx 软件。

      1. 在第一台路由器 router-a 上修改记录: api.online.odirus.me ->  nginx-1 服务器的 IP ,并且在 nginx-1 上做好 HTTP 转发规则:api.online.odirus.me ->  api.local.odirus.me

      2. 在第二台路由器 router-b 上修改记录: api.online.odirus.me ->  nginx-2 服务器的 IP,并且在 nginx-2 上做好 HTTP 转发规则:api.online.odirus.me -> api.test.local.me

      在使用APP的过程中,当设备连接 router-a 时,访问的接口服务将自动切换为 api.local.odirus.me;当设备连接 router-b 时,访问的接口服务奖自动切换为 api.test.local.me

      这种方案,看似很美好,不过在实际工作过程中,会遇到很多诡异的问题,例如设备连接 router-a  的时候,APP 最终还是请求的 api.online.odirus.me 线上服务,所以极路由的 Hosts 插件还是不太稳定。

      四、改进后的解决方案

      经过摸索,我们认为自建 DNS 服务器将会更加稳定,大致流程如下:

      在内网部署两台服务器,分别都安装 Nginx、dnsmasq,对应的IP、Nginx、dnsmasq 分别称为 server-1-ip, server-2-ip;server-1-nginx, server-2-nginx;server-1-dns, server-2-dns

      1. 在第一台服务器上,设置 dnsmasq 的域名配置为 api.online.odirus.me ->  server-1-ip,并且在 nginx-1 上做好 HTTP 转发规则:api.online.odirus.me ->  api.local.odirus.me

      2. 在第二胎服务器上,设置 dnsmasq 的域名配置为 api.online.odirus.me ->  server-2-ip,并且在 nginx-2 上做好 HTTP 转发规则: api.online.odirus.me -> api.test.odirus.me

      在使用APP的过程中,当设备的 dns 修改为 server-1-dns 时,访问的接口服务将自动切换为 api.local.odirus.me;当设备的 dns 修改为 server-2-dns 时,访问的接口服务奖自动切换为 api.test.local.me

  • 相关阅读:
    OC学习一周总结
    C语言基础学习总结
    123
    汇编中中括号[]作用以及lea和mov指令的区别
    C#获取局域网内所有的SQL Server服务器名
    .net 初中级程序员招聘
    C#在客户端与 JS 交互
    [ZT]Mac下安装mysql和workbench
    Eclipse文件夹导入Jar
    Tomcat配置后提示404的解决办法
  • 原文地址:https://www.cnblogs.com/odirus/p/8350630.html
Copyright © 2020-2023  润新知