Day912.多环境配置隔离 -SpringBoot与K8s云原生微服务实践
多环境配置隔离
Hi,我是阿昌,今天学习记录的是关于多环境配置隔离的内容。
多环境支持,是现在互联网开发研发和交付的主流基本需求。通过规范多环境配置可以规范开发流程,并同时提示项目的开发质量和效率等。
一个公司应该规范隔离开项目的多个环境,每个公司都会不一样,而且随着每个公司不一样的规模会有不一样的多环境情况。
以一下4个环境隔离举例:
- DEV:开发环境,直接进行开发调试,一般都是开发人员的本机环境
- TEST:测试环境,一般都是独立进行数据库隔离的,其针对测试人员和开发人员对功能进行测试的第一环境
- UAT:用户接受测试环境,或灰度环境,对准备上线的功能最后一次测试
- PROD:正式环境,真正接受用户流量的环境

针对一个功能或需求,可以规范流程,如一个功能上线必须经过开发人员在DEV环境本地进行开发,后发布到TEST环境供测试人员进行功能的测试,完成基本测试后发布时候适配UAT环境进行最后一次测试,到最后真实发布到PROD环境。
有了环境发布流程,可以规范需求和功能上线的流程,就可以配合自动化测试发布的工具,也就可以集成CI/CD进行自动化工具发布。
多环境隔离优点
软件开发需要多环境配置隔离的主要原因是确保软件在不同的环境下都能够正确地运行,同时减少因为配置问题而引起的错误和故障。
在软件开发过程中,通常会存在多个不同的环境,例如开发环境、测试环境、生产环境等。
这些环境具有不同的特点和限制,例如硬件设备、网络配置、安全策略、数据存储等方面可能会有所不同。
如果在开发阶段不使用隔离的环境配置,开发人员可能会在开发环境中编写的代码在测试或生产环境中无法正常运行,因为这些环境的配置和限制不同。
这可能导致生产环境中出现不必要的错误和故障,严重影响软件的稳定性和可靠性。
通过使用多环境配置隔离,软件开发人员可以在不同的环境中使用相同的代码和配置,并确保软件在所有环境中都能够正确地运行。
此外,隔离的环境配置还可以防止在开发阶段意外影响生产环境,并提供更好的安全性和稳定性保障。因此,多环境配置隔离是软件开发中非常重要的一环,可以有效地提高软件开发和部署的效率和质量。
- 提高软件的稳定性:通过多环境配置隔离,可以保证不同环境中的配置和资源是独立的,避免不同环境之间的干扰和冲突,从而提高软件的稳定性和可靠性。
- 保障数据安全性:多环境配置隔离可以确保敏感数据不会在不同环境之间泄露或丢失,同时也可以避免不同环境之间的数据混淆和污染,提高数据的安全性和完整性。
- 便于问题排查和修复:在多环境配置隔离的情况下,如果出现问题,可以快速定位到问题所在的环境,进行问题排查和修复,同时不会影响其他环境的正常运行。
- 提高开发效率:通过多环境配置隔离,开发人员可以在独立的环境中进行开发和测试,不会受到其他环境的影响,从而提高开发效率和代码质量。
- 支持灵活的部署策略:多环境配置隔离可以支持灵活的部署策略,例如可以先部署到开发环境进行测试,然后再部署到测试环境进行验证,最终再部署到生产环境中,从而保证软件的质量和稳定性。
多环境配置隔离是一种有效的软件开发和部署策略,可以提高软件的稳定性、数据安全性和开发效率,同时也支持灵活的部署策略和问题排查和修复。
多环境隔离的缺点
- 需要额外的维护和管理成本:多环境配置隔离需要维护和管理多个环境的配置,包括开发、测试、预发布、生产等环境,需要投入更多的时间和精力进行管理和维护。
- 可能会引入新的问题:由于多环境配置隔离需要在不同的环境中运行相同的软件和配置,可能会引入新的问题,例如兼容性问题、性能问题、安全问题等等,需要进行额外的测试和验证。
- 可能会导致资源浪费:在多环境配置隔离的情况下,每个环境都需要独立的硬件和软件资源,可能会导致资源浪费,特别是对于小型团队或者资源有限的公司来说,这可能是一个问题。
- 需要考虑版本控制和部署:多环境配置隔离需要考虑不同版本的软件和配置的管理和部署,需要建立相应的版本控制和部署策略,使得不同环境中的软件和配置保持一致和同步。
多环境配置隔离虽然可以提高软件的稳定性和可靠性,但也需要投入更多的维护和管理成本,并且可能会引入新的问题和导致资源浪费。因此,在实施多环境配置隔离时需要仔细考虑其成本和收益,并制定相应的策略和规范。
服务框架的支持环境隔离的好处
服务框架(Service Framework)是一种将服务化思想应用到软件架构中的设计模式,它提供了一系列的工具和组件来简化服务开发、管理和部署的过程,从而提高软件的可靠性、可扩展性和可维护性。
其带来的好处如下:
- 抽象服务实现:服务框架可以将服务实现的具体细节隐藏在服务接口之后,使得服务提供者可以更加专注于业务逻辑的实现,而不必关注底层技术实现的细节,从而提高了开发效率和代码可维护性。
- 统一接口规范:服务框架提供了统一的接口规范,使得服务提供者和服务使用者可以以一种统一的方式进行通信,从而简化了服务集成和调用的过程,同时也提高了系统的可扩展性和可维护性。
- 基础设施自动化管理:服务框架提供了自动化的管理工具,包括服务注册、发现、调度、监控等,使得服务提供者可以更加方便地管理服务的生命周期,从而提高了系统的可靠性和稳定性。
- 分布式处理:服务框架支持分布式处理,可以将服务部署到不同的节点上,从而支持大规模的并发处理和高可用性的架构设计,同时也提高了系统的性能和可扩展性。
- 跨语言支持:服务框架支持多种编程语言和通信协议,使得不同的服务可以以一种统一的方式进行通信和协作,从而支持跨语言的服务调用和集成。
服务框架的支持可以提高软件的可靠性、可扩展性和可维护性,使得软件开发、集成和部署过程更加高效和简单。
针对如SpringBoot的服务框架,可以进行配置环境进行动态隔离和切换。
这样子可以开发人员针对同一套代码,灵活的适应不同的引用环境。
如在DEV环境不需要打对应的日志,则可以通过环境配置进行定制环境逻辑进行过滤。
代码如下举例:

总结
软件开发是一个复杂的过程,需要考虑很多方面的因素,包括开发流程、技术选型、部署策略等等。
在这个过程中,多环境配置隔离是一个非常重要的概念,它可以提高软件的稳定性、数据安全性和开发效率,同时也支持灵活的部署策略和问题排查和修复。
针对如上,其多环境隔离有好有坏,但最终好处还是大于坏处,其可以灵活的多环境隔离测试,对bug进行合理灵活的测试,也可以针对不同的环境有不同的特定需求,如是否打印日志,是否需要发送短信来做不一样的配置。
这样子的多环境,可以合理的规范需求开发上线的流程,保证一定程度上的代码质量,让代码更加的稳定,开发的效率更加的高效,和针对用户数据的安全,并支持灵活的部署策略和问题排查和修复。
相关文章:
Day912.多环境配置隔离 -SpringBoot与K8s云原生微服务实践
多环境配置隔离 Hi,我是阿昌,今天学习记录的是关于多环境配置隔离的内容。 多环境支持,是现在互联网开发研发和交付的主流基本需求。通过规范多环境配置可以规范开发流程,并同时提示项目的开发质量和效率等。 一个公司应该规范…...
Imx6ull交叉编译nginx
Imx6ull交叉编译nginx 需要下好的包 Nginx(下载压缩包源码) nginx-rtmp-module(可以下载压缩包源码也可以 git clone https://github.com/arut/nginx-rtmp-module.git) pcre(下载源码) zlib(下载源码) openssl(下载源…...
阿里云短信验证
1.了解阿里云用户权限操作 需要通过个人账户获得 授权码(id、密码),再通过这些信息获得服务 阿里云网址 :https://www.aliyun.com/ 1.登陆阿里云服务器2.进入个人账号然后点击 AccessKey 管理3.创建用户组4.添加用户组权限&…...
Excel常用可视化图表
目录柱状图与条形图折线图饼图漏斗图雷达图瀑布图及甘特图旭日图组合图excel图表:柱状数据条、excel热力图、mini图可视化工具的表现形式:看板、可视化大屏、驾驶舱 柱状图与条形图 条形图是柱状图的转置 类别: 单一柱状图:反映…...
虹科分享 | 网络流量监控 | 数据包丢失101
什么是数据包? 数据包是二进制数据的基本单位,在网络连接的设备之间编号和传输,无论是在本地还是通过互联网。一旦数据包到达其目的地,它就会与其他数据包一起按编号重新组合,回到最初传输的较大消息中。 数据包是我们…...
毕设常用模块之舵机介绍以及使用方法
舵机 舵机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为 20ms,宽度为 1.5ms 的基准信号,将获…...
残酷现实:大部分的App小程序,日活<100
残酷现实:99%的APP小程序,日活<100 日活跃用户数量(DAU)是一个核心指标 Daily Active Users 互联网的难度系数一路拉高 只有流过血的战士,才能意识到战场的残酷 趣讲大白话:赵本山小品台词, 残酷的现实已直逼我心理…...
excel 一对多数据查询公式 经典用法
所谓一对多,就是符合某个指定条件的有多个结果,要把这些结果都提取出来。 下面咱们就说说一对多查询的典型用法,先看数据源: A~D列是一些员工信息,要根据F2单元格指定的学历,提取出所有“本科”的人员姓名…...
Zookeeper3.5.7版本——客户端命令行操作(节点删除与查看)
目录一、节点删除示例1.1、节点删除1.2、递归节点删除二、查看节点状态示例一、节点删除示例 1.1、节点删除 在客户端上创建 test 节点,并查看该节点 [zk: localhost:2181(CONNECTED) 5] create /test "123456"删除 test 节点,并查看该节点 […...
一句话设计模式6:享元模式
享元模式:局部单例模式。 文章目录 享元模式:局部单例模式。前言一、享元模式的作用二、如何实现享元模式总结前言 享元模式其实很简单,但是如果用好,确实可以达到减少内存,事半功倍的效果;适合 系统要创建大量相似对象,相同对象等; 一、享元模式的作用 1 享元模式可以解决对象…...
【C语言进阶】文本与二进制操作文件,优化通讯录。
前言:上篇文章,我们已经学习了有关本地磁盘文件的常用文件操作,已经能够对本地文件进行调用与读写。我们磁盘中还存在着一些内容用二进制存储的文件,这也就是我们今天将要讲解的内容。一、文本文件与二进制文件根据数据的组织形式…...
CleanMyMac X4.20最新Mac系统垃圾清理工具
CleanMyMac X是一款Mac系统垃圾清理工具,可以清除Mac系统多余的语言包、系统缓存、应用程序、PowerPc软件运行库等,是硬盘瘦身的好工具。在面对一款多功能型的软件时,复杂的操作面板是最容易让人头疼的,好在 CleanMyMac 一直以来都原生支持简体中文语言&…...
为什么做知识管理,就想选择Baklib呢?
随着科技的不断发展,知识管理已经成为现代企业不可或缺的一个重要组成部分。由于信息化快速发展,企业每天都会产生大量的数据和信息,如何高效地获取、整理和利用这些信息已经成为了企业成功的关键因素之一。为了更好地管理企业知识࿰…...
Spring Cloud融合gateway自带GatewayFilter使用 | Spring Cloud 15
一、Spring Cloud Gateway内置GatewayFilter 路由过滤器允许以某种方式修改传入的 HTTP 请求或传出的 HTTP 响应。路由过滤器的范围是特定路由。Spring Cloud Gateway 包括许多内置的 GatewayFilter 工厂。 官网地址:https://docs.spring.io/spring-cloud-gateway…...
SVN 版本控制软件
SVN 版本控制软件 属于C/S结构软件(客户端与服务端) 服务端软件:VisualSVN 网址:Downloads | VisualSVN 下载好:VisualSVN-Server-5.1.3-x64.msi 客户端软件:TortoiseSVN 网址:http://tor…...
全流程基于最新导则下的生态环境影响评价技术方法及图件制作与案例
目录 专题一、生态环境影响评价框架及流程 专题二、基于遥感解译的土地利用现状图的编制 专题三、生物多样性测定及R语言分析 专题四、植被类型及植被覆盖度图的编制 专题五、生物量与净初级生产力测定:实测及模型 专题六、生态系统类型及服务价值评估 专题七…...
(蓝桥真题)分果果(动态规划)
题目链接:P8746 [蓝桥杯 2021 省 A] 分果果 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 样例1输入: 5 2 6 1 2 7 9 样例1输出: 0 样例2输入: 5 5 6 1 2 7 9 样例2输出: 2 分析:这道题的状态表…...
【CSS】CSS 背景设置 ① ( 背景颜色 | 背景图片 | 背景平铺 )
文章目录一、背景颜色1、语法说明2、代码示例二、背景图片1、语法说明2、代码示例三、背景平铺一、背景颜色 1、语法说明 CSS 的背景颜色样式语法 : 默认的背景颜色是 transparent 透明 ; background-color:颜色值;background-color 属性 可以 定义 文本颜色 , 其颜色值有三种…...
uniCloud基础使用
获取openID云函数use strict; exports.main async (event, context) > {//event为客户端上传的参数console.log(event : , event)// jscode2session 微信小程序登录接口,获取openidconst {code} event;// 云函数中如需要请求其他http服务,则使用uni…...
5、Elasticsearch优化
一、Elasticsearch集群配置 1、硬件选择 Elasticsearch的基础是 Lucene ,所有的索引和文档数据是存储在本地的磁盘中, 具体的路径可在 ES 的配置文件 ../config/elasticsearch.yml 中配置,如下:磁盘在现代服务器上通常都是瓶颈。…...
从零开始:如何为你的深度学习项目选择最合适的开源数据集
从零开始:如何为你的深度学习项目选择最合适的开源数据集 当你站在深度学习项目的起点,面对琳琅满目的开源数据集时,如何做出明智的选择往往决定了项目的成败。数据集不仅是模型训练的"原材料",更是影响最终性能的关键变…...
分布式电池管理系统:基于微控制器架构的智能电池保护与均衡解决方案
分布式电池管理系统:基于微控制器架构的智能电池保护与均衡解决方案 【免费下载链接】SmartBMS Open source Smart Battery Management System 项目地址: https://gitcode.com/gh_mirrors/smar/SmartBMS SmartBMS是一个开源的智能电池管理系统,专…...
农业IoT部署卡在MQTT连接失败?Python异步通信优化全链路解析(含田间实测吞吐量对比数据)
第一章:农业IoT部署卡在MQTT连接失败?Python异步通信优化全链路解析(含田间实测吞吐量对比数据)在华北平原某智慧农场的边缘网关部署中,23台土壤温湿度传感器频繁出现MQTT连接超时与会话重置现象,平均重连耗…...
别再手动搬虚拟机了!vSphere DRS全自动负载均衡保姆级配置指南(附规则避坑)
别再手动搬虚拟机了!vSphere DRS全自动负载均衡保姆级配置指南(附规则避坑) 想象一下这样的场景:凌晨三点,你被监控告警惊醒——某台ESXi主机CPU负载飙升至95%,而同一集群内其他主机资源利用率不足30%。你不…...
OpCore Simplify:零基础黑苹果配置的终极自动化解决方案
OpCore Simplify:零基础黑苹果配置的终极自动化解决方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的OpenCore EFI配置而烦…...
OpenClaw自动化测试:百川2-13B量化模型多场景准确率评估
OpenClaw自动化测试:百川2-13B量化模型多场景准确率评估 1. 测试背景与目标 去年冬天,我在为团队寻找一个能处理本地自动化任务的AI助手时,偶然发现了OpenClaw这个开源框架。当时最让我头疼的是,市面上的大模型要么太贵…...
OpenClaw安全防护配置:Qwen3.5-9B任务执行边界与权限控制
OpenClaw安全防护配置:Qwen3.5-9B任务执行边界与权限控制 1. 为什么需要安全防护? 当我第一次在本地部署OpenClaw时,最让我不安的是这个AI助手拥有和我一样的系统权限。它能读写我的文件、发送邮件、甚至执行终端命令——这种能力就像把家门…...
保姆级教程:手把手教你将若依(RuoYi)项目从Java 8迁移到Java 17(含Spring Boot 3升级)
保姆级教程:手把手教你将若依(RuoYi)项目从Java 8迁移到Java 17(含Spring Boot 3升级) 最近几年Java生态发生了翻天覆地的变化,从Java 8到Java 17不仅仅是版本号的跳跃,更是一次技术栈的全面革新。作为国内广泛使用的…...
# 发散创新:用 Rust实现一个轻量级游戏日引擎的核心调度机制 在现代游戏开发中,**高效的任务调度与资源管理**是性能
发散创新:用 Rust 实现一个轻量级游戏日引擎的核心调度机制 在现代游戏开发中,高效的任务调度与资源管理是性能瓶颈的关键所在。尤其是在“游戏日”这类强调多线程并行处理、实时响应的场景下,传统基于 C 或 Python 的方案往往因内存安全问题…...
cv_unet_image-colorization模型压缩与量化:面向移动端的部署优化
cv_unet_image-colorization模型压缩与量化:面向移动端的部署优化 想把那个能把黑白照片变彩色的AI模型塞进手机里?这听起来挺酷,但实际操作起来,你会发现它又大又慢,手机根本跑不动。这就像你想把一台高性能游戏电脑…...
