多环境理论

在这里插入图片描述

根据实际需要,将一个项目(同一套代码)按照一定方法进行区分,将其与所需资源部署到不同的机器上。不同环境上的项目可以有不同的行为,保证能够同时存在互不影响
不同的团队有不同的区分,这里仅作参考学习。

  • 本地环境(自己的电脑localhost)
  • 开发环境(远程开发,大家连接同一台机器,开发方便)
  • 测试环境(测试,单元测试、性能测试、功能测试、系统集成测试,独立的数据库,服务器)
  • 预发布环境(体验服,和正式环境一致,正式的数据库,更严谨,可以排查更多问题)
  • 生产环境/线上环境(prod,对外公开访问,尽量确保项目“没问题”、不改动)
  • 沙箱环境(实验环境)

针对不同环境做不同的事,优势

  1. 每个环境互不影响
  2. 区分不同的阶段(开发/测试/生产)
  3. 对项目进行优化
    a. 日志级别
    b. 精简依赖,节省项目体积(如生产环境就可以去掉开发/测试环境所需的一些依赖)
    c. 不同的项目环境,根据环境质量,可以调整不同的参数(如jvm)

但是,环境也不是区分的越多越好,毕竟搭建环境是需要资源的!

本地环境

一般使用local标识,指前端或后端独立开发,自主测试的环境。通常就是我们自己的电脑,将项目所需的依赖、数据库、缓存、队列等服务都搭建到自己的电脑上。

开发环境

一般用dev标识,指前后端(或多个开发人员)一起协作开发、联调的环境。通常提供一个大家都可访问的开发机器,不用自己搭建环境,提高开发和协作效率。
一般来说,开发和本地环境有一套就OK了,本地环境也可以连接公用的``数据库等资源服务。

测试环境

一般用test标识,指项目开发完成,做出完整的功能,让测试人员去找bug的环境。通常测试环境需要独立的数据库等服务,且每次修改完bug,都要将项目再次发布到测试环境,重新测试。

预发布环境

一般用pre标识,和线上环境最接近的环境,一般是测试通过,产品经理体验过后,才能将项目发布到这个环境。实际上,预发布环境和线上环境的后端接口、数据库、服务等都和线上项目一致,唯一的区别就是前端访问的域名不同。因此,预发布环境看到的都是真实的用户数据,可以发现更多测试环境因数据不足查不出的bug。

生产环境

一般用prod标识,也叫线上环境,提供给所有真实用户访问使用的环境。因此不能随便修改,发布项目也需格外小心。线上的数据库、机器等资源一般也是由专业的运维来负责,想要登录机器、修改配置等等都需经过严格审批。

前端

用了umi框架,yarn build时会自动传入NODE_ENV === 'production'参数,start NODE_ENV 参数为 development

  • 启动方式:yarn build将项目打包,再将其上传到服务器,配合nginx发布即可。本地模拟生产环境可以先使用npm i -g serve安装serve,再切换到打包后的目录(dist)下,执行serve命令即可访问

image.png

  • 项目配置(不同框架有不同的配置文件,umi的配置文件是config,可根据配置文件后缀来区分不同环境,参考umi官网
    • 开发环境:config.dev.ts
    • 生产环境:config.prod.ts
    • 公共配置:config.ts
后端

Spring Boot项目,通过application.yml添加不同后缀来区分:

  • application.yml:公共配置
  • application-dev.yml:开发环境
  • application-prod.yml:生产环境

image.png

# 打包构建,跳过测试 
mvn package -DskipTests

# 运行
java -jar ./fuser-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

# 后台运行
nohup java -jar fuser-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod &

主要是改:

  • 依赖的环境地址:
    • 数据库地址
    • 缓存地址
    • 消息队列地址
    • 项目端口
  • 服务器配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值