背景

在一些项目组中,使用springboot+yml文件的组合方式,进行应用开发和发布。

应用读取方式:yml文件通过configmap进行挂载到容器,让应用进行读取。

配置文件管理方式:yml文件统一存放在git中,git的权限配置为运维可操作。

这种管理模式存在一些问题:

  1. 效率低下:改动任何非敏感内容,都需要运维介入,增大沟通成本;
  2. 敏感信息泄露风险:运维作为信息管理者,敏感信息也可以获取,例如:数据库用户名和密码等
  3. 发布流程缺乏:配置文件更改后,没有对应的审核机制,容易产生误操作。
  4. 敏感信息暴露:使用confmap进行挂载,相关敏感信息也难以进行权限管理,也同时把敏感信息进行明文暴露

面对这些需求,使用Apollo作为底层配置文件存储,融入现有运维平台中,进行配置文件的管理

  1. Apollo作为存储yml配置文件底层;
  2. 对敏感信息进行加密处理;
  3. 将配置文件修改和配置文件发布审核权限进行分离;修改权限分给该应用的开发人员;发布权限分给对应指定人员;
  4. 将配置文件的拉取融入CI过程中;

逻辑架构图

  1. 新增、修改配置文件:应用开发人员对配置文件进行信息初始化(或者修改)
  2. 审核人员 or 敏感信息填写人员:审核人员:确定配置是否正常、通过发布请求;敏感信息填写人员:DBA填写数据库用户名和密码等
  3. 新增、修改、发布、加密敏感信息:平台发现敏感内容,则对其进行加密;配置文件封装完毕后,后台调用Apollo客户端进行CRUD
  4. 发布应用:配置文件审核通过后,开发人员可以自助进行发布;
  5. 拉取配置文件:CI过程中对配置文件进行拉取,并解密;把还原后的配置文件放置在对应的代码目录位置中;最后,对代码和配置文件进行jar打包;
  6. 线上变更:通过CD进行线上平台发布

效果图

配置文件入口

配置文件浏览

审核浏览

加密解密工具

                <dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.3</version></dependency>

Apollo API客户端

                <dependency><groupId>com.ctrip.framework.apollo</groupId><artifactId>apollo-openapi</artifactId><version>1.7.0</version></dependency>

效果

  1. 开发团队对配置文件进行自治管理;
  2. 敏感信息得到加密保存;
  3. 发布流程中,加入了审核环境,降低误修改几率;

后续改进

开发团队可以使用Apollo客户端,对配置文件进行读取,从而不需要在CI过载中,对配置文件进行装配

如何在yml中加上git用户名和密码的验证_使用Apollo升级一下yml文件管理和发布相关推荐

  1. hive获取mysql里的文件_apache – 如何在hive中获取数据库用户名和密码

    我正在编写jdbc程序来连接hive数据库.我想要用户名和密码在连接网址中提供. 我不知道如何使用hive QL获取用户名和密码. 任何人都可以帮助我吗? Exception in thread &q ...

  2. 如何在IDEA中使用git

    如何在IDEA中使用git? 以下是本文目录大纲 在 idea 中配置 git 将工程添加至 git 从远程仓库克隆 从服务端拉取代码 1. 在 idea 中配置 git 安装好IntelliJ ID ...

  3. 是程序员都可能用到版本控制,如何使用它?如何在Vim中使用Git?

    版本控制是本章的重要内容之一.虽然本书选择的版本控制系统是Git,但是本章的知识也适用于其他版本控制系统.本章只提供了一节内容简略地介绍版本控制,如果读者想要更深入地了解,还需要有针对性地阅读相关材料 ...

  4. java对密码进行加密的方法_如何在JAVA中使用MD5加密对密码进行加密

    如何在JAVA中使用MD5加密对密码进行加密 发布时间:2020-11-25 17:12:40 来源:亿速云 阅读:118 作者:Leah 本篇文章为大家展示了如何在JAVA中使用MD5加密对密码进行 ...

  5. 这意味着您在wp-config.php文件中指定的用户名和密码信息不正确

    天哪,来来回回创建删除数据库,来来回回建站点,进入正题: 我是用wordpress和宝塔面板搭建个人网站的,搭建好网站点,解压wordpress,无论是建站时创建mysql数据库还是建好站后创建数据库 ...

  6. php 清除浏览器记住密码,网页登录中实现记住用户名和密码的功能(完成自动登录)...

    网页记住用户名,就是我们经常会用到的,登录下面有一个复选框,可以设置用户7天内或1个月不需要登录,只要你进行本网站系统查询cookie是否有相差用户名与密码如果是就把信息提取再到数据库中查询,如果co ...

  7. 十八.用户注册 ---- 用户名/用户密码/手机号验证 2021-04-07

    十八.用户注册 ---- 用户名/用户密码/手机号验证 引言 注:该篇文章接上一篇 十七.用户注册 ---- 图形验证码 在上一篇文章我们实现了用户注册中的图形验证码过程,接下来我们要实现用户名验证, ...

  8. 模拟一个“系统登陆“窗体,进行用户名和密码的验证: 1.当用户名和密码都正确时,弹出一个对话框,提示“用户名和密码正确”, 2.用户名错误,弹出一个对话框,提示“用户名错误,请重新输入!”

    模拟一个"系统登陆"窗体,进行用户名和密码的验证: 1.当用户名和密码都正确时,弹出一个对话框,提示"用户名和密码正确", 2.用户名错误,弹出一个对话框,提示 ...

  9. 删除git中缓存的用户名和密码

    我们使用Git命令去clone Gitlab仓库的代码时,第一次弹框提示输入账号密码的时候输错了,然后后面就一直拒绝,不再重复提示输入账号密码,怎么破? git报错信息 运行一下命令缓存输入的用户名和 ...

最新文章

  1. R语言分类模型:逻辑回归模型LR、决策树DT、推理决策树CDT、随机森林RF、支持向量机SVM、Rattle可视化界面数据挖掘、分类模型评估指标(准确度、敏感度、特异度、PPV、NPV)
  2. oracle创建用户、表空间、临时表空间、分配权限步骤详解
  3. 初学scrum及首次团队开发
  4. linux scp 输入密码,Linux scp远程复制数据不需要输入密码
  5. 悄悄告诉你,在硅谷,有一种工作比程序员挣得多
  6. php和全栈,php与h5全栈工程师是什么意思
  7. android zip4j之--解压zip文件并实时显示解压进度
  8. 电源线径大小与用电负荷的关系
  9. 如何把网站程序文件快速上传到服务器空间经历分享
  10. spa项目开发之tab页实现
  11. 如何推动数字经济新时代产业转型升级
  12. C语言求6阶余子式,usdt交易 -usdt交易V3.6.39
  13. 模拟卷Leetcode【普通】714. 买卖股票的最佳时机含手续费
  14. 谷歌学术403异常处理
  15. MySQL DDL 在指定位置新增字段
  16. Codeforces Round #663 (Div. 2) A-D
  17. 网易前端微专业课程讨论区问答精选
  18. 智能家居Homekit解决方案
  19. 迹美 java_三款图像处理软件人像美容效果大比拼
  20. 世界上最遥远的距离 泰戈尔

热门文章

  1. ruby require
  2. Docker 领衔 OpenSource.com 2014十佳开源软件排行榜
  3. Hyper-V的安装准备
  4. [转] new 和delete
  5. 3110: [Zjoi2013]K大数查询
  6. 高并发编程基础(线程池基础)
  7. sql server 碎片整理——DBCC SHOWCONTIG
  8. setTimeout,setInterval你不知道的事
  9. 《机器学习实战》学习笔记
  10. HDU2191——悼念512汶川大地震遇难同胞——珍惜现在,感恩生活