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 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...