java开发中各个环境的适用场景


java开发中各个环境的适用场景

一.开发环境

在系统开发的经典模型,一般会分成 2 类 5 种环境:

  • 【线下】本地环境(local)、开发环境(dev)、测试环境(test)

  • 【线上】预发布环境(stage)、生产环境(prod)

  • 每个环境、每个项目使用独立的二级域名

  • 线下、线上各一套 MySQL 数据库,多个环境共享使用

  • 每个环境对应一个配置文件,后端使用 [application-{env}.yaml]文件,前端使用 [.env.{env} ]文件

二.本地环境

后端工程师使用 application-local.yaml 配置文件,在本地电脑启动后端服务,连接线下 MySQL 数据库。考虑到不影响 dev、test 环境,会配置禁用定时任务、MQ 集群消费的执行。

前端工程师也会在本地电脑启动前端服务,一般不使用 .env.local 配置文件,而是使用 .env.dev 配置文件,访问 dev 环境的后端服务。如果需要和后端进行本地联调,可以使用 .env.local 配置文件。

三.开发环境

dev 环境的用户是前端工程师、后端工程师,主要用于前后端的联调、又或者功能开发完后的自测。

一些公司可能不提供 dev 环境,直接使用 test 环境,适合团队规模较小的团队,可以降低服务器的成本。

不过,测试工程师可能比较反感 dev 和 test 环境不隔离,因为他们是按照测试用例,一轮一轮的进行验收。这个时候,如果前端或者后端工程师部署了 test 环境,“破坏”了他当前轮次的验收。

四.测试坏境

test 环境的用户是产品经理、测试工程师,主要用于他们的功能验收。

考虑到 test 环境的稳定性,一般建议由测试工程师使用 Jenkins 等工具,完成该环境的部署。

五.预发布环境

stage 环境的用户是产品经理、测试工程师,连接线上 MySQL 数据库,基于真实的数据,进行功能的全回归测试。

因为数据更加真实,且更具多样性,所以往往也会测试出较多的 Bug。比较好的解决方案,是将线上数据库定期脱敏,导入线下数据库。

考虑到 stage 环境的安全性,一般由技术经理、运维工程师进行部署。

一些公司可能不提供 stage 环境,直接上线到 production 环境,风险非常高,容易产生较多报错。

六.生产环境

production 环境的用户是真实用户,即线上环境。一般发布上线时,会进行核心功能的快速测试,避免主流程存在问题。

考虑到 production 环境的问题排查效率,会给技术核心开放 MySQL 数据库的读权限。

参考https://doc.iocoder.cn/dev-env/#_1-%E6%9C%AC%E5%9C%B0%E7%8E%AF%E5%A2%83

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/162377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Modbus转Profinet改变局面,PLC与电力仪表秒级响应

Modbus转Profinet改变了传统的局面,实现了PLC与电力仪表之间的秒级响应。在过去,由于Modbus通信协议的限制,PLC与电力仪表之间的数据传输速度受到了很大的限制,无法满足工业自动化领域对实时性的要求。然而,随着Modbus…

【云原生 Prometheus篇】Prometheus架构详解与核心组件的应用实例(Exporters、Grafana...)

Prometheus Part1 一、常用的监控系统1.1 简介1.2 Prometheus和zabbix的区别 二、Prometheus2.1 简介2.2 Prometheus的主要组件1)Prometheus server2)Exporters3)Alertmanager4)Pushgateway5)Grafana 2.3 Prometheus的…

openGauss学习笔记-130 openGauss 数据库管理-参数设置-重设参数

文章目录 openGauss学习笔记-130 openGauss 数据库管理-参数设置-重设参数130.1 背景信息130.2 GUC参数设置130.3 操作步骤130.4 示例 openGauss学习笔记-130 openGauss 数据库管理-参数设置-重设参数 130.1 背景信息 openGauss提供了多种修改GUC参数的方法,用户可…

【网络】数据链路层协议

数据链路层协议 一、链路层解决的问题二、以太网协议1、局域网技术2、令牌环网(了解)3、以太网通信原理4、 MAC地址5、以太网帧格式6、碰撞避免7、最大传输单元MTU 二、ARP协议1、ARP数据的格式2、ARP协议的工作流程3、ARP缓存表4、ARP协议中的一些问题7…

11月23日星期四今日早报简报微语报早读

11月23日星期四,农历十月十一,早报微语早读。 1、我国5G基站总数达321.5万个; 2、2023年两院院士增选结果揭晓,共133人当选; 3、北京低保标准提升至每人每月1395元; 4、上海制定体育发展条例&#xff1a…

多重背包问题的优化 学习笔记 AcWing 5. 多重背包问题 II(算法基础课)

乘法原理 百度百科 乘法原理是说把多个步骤的所有方法相乘,表示整个事件所有可能的解决方法 原题 有 N� 种物品和一个容量是 V� 的背包。 第 i� 种物品最多有 si�� 件,每件体积是 vi&#…

程序员必读!深入解析Java线程调度算法神秘面纱!

哈喽大家好,我是小米!今天我们要聊的话题是关于Java中的线程调度算法。这可是一个技术大拿们在面试时常常拿出来考察我们的点子呢!废话不多说,让我们一起深入了解一下吧! 线程调度算法的背后 首先,让我们…

[Linux] shell脚本之循环

一、循环定义 一组被重复执行的语句称之为 循环体,能否继续重复,决定循环的终止条件。 循环语句 是由循环体及循环的终止条件两部分组成的。 二、for循环 2.1 带列表循环 语法 for 变量名 in 取值列表do 命令序列 done 花括号用法: 花括号{ }和seq在for循环…

设计模式——状态模式介绍

状态模式是一种行为设计模式,它允许对象在内部状态改变时改变它的行为。它基于对象的内部状态而改变其行为,看起来好像修改了对象的类。 状态模式的关键组件有三个:上下文(Context)、状态(State)和具体状态(Concrete State)。 下面是一个例…

年轻有为!2023两院院士增选揭榜 45岁颜宁当选

大家好,我是极智视界,欢迎关注我的公众号,获取我的更多前沿科技分享 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq 通常,两…

电商网站选择云服务器要考虑什么?

极高的安全性 交易平台最重要的是数据安全,这涉及到产品、用户、平台信息等,能够保护数据隐私的安全,是网站交易的首要原则。 2020年,数据泄露、网络渗透、大量数据被销售、勒索软件爆发......每个网站都可能成为黑客的目标&#…

CuratorFrameworkFactory.builder()方法可配置属性

CuratorFrameworkFactory.builder()方法可以配置以下属性: 1. connectString:ZooKeeper服务器的连接字符串。 2. sessionTimeoutMs:ZooKeeper会话超时时间。 3. connectionTimeoutMs:ZooKeeper连接超时时间。 4. retryPolicy&…

springboot自动重启及SpringBoot Developer tools简介

项目中引用了SpringBoot Developer tools&#xff0c;修改类后会自动重启。 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional&…

BTS-GAN:基于MRI和条件对抗性网络的乳腺肿瘤计算机辅助分割系统

BTS-GAN: Computer-aided segmentation system for breast tumor using MRI and conditional adversarial networks BTS-GAN&#xff1a;基于MRI和条件对抗性网络的乳腺肿瘤计算机辅助分割系统背景贡献实验方法Parallel dilated convolution module&#xff08;并行扩展卷积模块…

逸学java【初级菜鸟篇】9.5枚举

hi&#xff0c;我是逸尘&#xff0c;一起学java吧 枚举是信息的标志和分类 当一个变量有几种固定可能的取值时&#xff0c;就可以将它定义为类型的枚举。 优点&#xff1a;代码可读性好&#xff0c;入参约束严谨&#xff0c;代码优雅&#xff0c;是最好的信息分类技术&#x…

【AI读论文】AutoML的8年回顾:分类、综述与趋势

论文标题&#xff1a;Eight years of AutoML: categorisation, review and trends 论文链接&#xff1a;https://link.springer.com/article/10.1007/s10115-023-01935-1 本文主要围绕自动机器学习&#xff08;AutoML&#xff09;展开了系统性的文献综述&#xff0c;总结了该领…

【文末送书】重磅!这本30w人都在看的Python数据分析畅销书:更新了!

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

div中添加el-loading(局部loading的使用)

效果&#xff1a;在div中实现el-loading <div class"content-main">{{ hotList }}</div>getHotList(columnType) {this.$nextTick(() > {var loading this.$loading({lock: true,text: "努力加载中...",spinner: "el-icon-loading&qu…

揭示卡尔曼滤波器的威力

一、说明 作为一名数据科学家&#xff0c;我们偶尔会遇到需要对趋势进行建模以预测未来值的情况。虽然人们倾向于关注基于统计或机器学习的算法&#xff0c;但我在这里提出一个不同的选择&#xff1a;卡尔曼滤波器&#xff08;KF&#xff09;。 1960 年代初期&#xff0c;Rudol…

天池 机器学习算法(一): 基于逻辑回归的分类预测

pytorch实战 课时7 神经网络 MSE的缺点&#xff1a;偏导值在输出概率值接近0或者接近1的时候非常小&#xff0c;这可能会造成模型刚开始训练时&#xff0c;偏导值几乎消失&#xff0c;模型速度非常慢。 交叉熵损失函数&#xff1a;平方损失则过于严格&#xff0c;需要使用更合…