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 中配置,如下:磁盘在现代服务器上通常都是瓶颈。…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...