AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

我们实施 DevOps 的挑战之二 -- 配置文件的困惑

  • 2020-04-17
  • 本文字数:1821 字

    阅读完需:约 6 分钟

我们实施DevOps的挑战之二 -- 配置文件的困惑

在上一篇中谈到了「敏捷文化」,很多朋友质问我,上来就谈所谓“文化”太虚了吧,这不像你的风格啊。可我想说的是,在 DevOps 的路上,每天让我们感到最困难的,其实不是技术攻关,也未必是业务场景,而恰恰是敏捷思路与传统观念的转变。


技术,可以一针见血,无非出血量的多少罢了。


思路,只能慢慢培养,和谈恋爱其实差不多,开房很容易,但能一见面这就结婚吗?当然,这也可以,这却增加了离婚的可能性。


其实没什么,就是写写心得罢了。


当然,这种回复被身边的朋友叫做「这 B 装的我们给 100 分」「说不过你」。对此我来了个广告「请关注下一篇」。


没有 DevOps 之前,配置文件是怎么玩的呢?


在「群雄割据」的时代里,通常一个 Jar 或一个 War 就可以打天下,以 Spring+properties 为例,对配置文件的适用场景基本可分为两种类型:


配置文件位于 classpath 下


使用 spring 的 org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 类加载 Properties 配置文件,通过源码可以知道,默认加载的是 classpath 下的文件,配置如下:



如果有多个配置文件加载,则:



配置文件位于外部目录


但是对于外部目录的配置文件,使用 org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 也是可以加载的,不过要修改他的路径配置方式,如下:



这样就可以成功加载外部目录的配置文件了,${user.dir}是系统变量,指用户当前目录所在。


当我们从「群雄割据」来到「天下一统」的时期后,虽然 DevOps 提升了交付效率,越来越满足快速试错的原则,可随之而来的「技术污染」却与日体现:


…………


配置文件的版本如何与程序版本对应?


配置文件的管理如何更加简便?


配置文件的修改该有谁来操作?


配置文件的更新是否可以不影响正常服务?


…………


无论哪一项污染,只会与 DevOps 扯上关系,都是让人头痛不已。


撸起袖子,不要怂,咱们搞个配置中心吧。


有了 DevOps 之后,配置文件又是怎么玩的呢?


其实想通过 DevOps 获得业务收益,无论从哪个环节启动,都将是一场持久战。


随着系统产品化的改造,通过 DevOps 流水线的快速交付通道,任何一个交付版本都可以通过 CI 与 CD 环节后,利用自动化部署工具,轻松地完成升级或发布;


这段看似美妙的诱惑,首先挡住去路的,就是配置文件的使用与加载方式。


如果不将配置信息外移至配置中心,在 DevOps 中会出现哪些问题呢?


维护成本:系统拆分了更细了,增添 CI 与 CD 环境后,每个应用在每个节点下,都需要在本地维护一套完整的配置文件;


操作风险:配置修改随意,无操作痕迹,易出错;


版本需求:一切皆产品,一切皆版本,配置文件如何解决版本化控制问题?



图 1:配置中心在 DevOps 快速交付通道中


你不是常说你们的场景都是持续污染的吗?谈谈如何在污染环境下接入吧


的确,在整个接入过程中可以说是一波三折,原因很简单,之前「群雄割据」时期的每一位诸侯都有自己玩转配置的一套方案,现在你说统一就统一?


无法满足我要求的,我不接


这话表面看起来有些生硬,不过想想挺有道理的,所以在配置中心的方案中,我们提出了“三种适配器,两种推进器”的理念。


三种适配器



图 2:适配器 Trade,满足原有使用 Properites 的诸侯们



图 3:适配器 Native,满足已使用过自研独立配置服务的诸侯们



图 4:适配器 Ccms,满足使用 Key/Value 的诸侯们


两种推进器



图 5:希望采用 “文件被动加载” 的诸侯们



图 6:希望采用 “Key/Value 实时推送” 的诸侯们


从某种角度来说,就算没有配置中心的存在,我相信 DevOps 的推进也会顺理成章,只不过相对不会如此平滑,或多或少给未来造成风险


有了配置中心,诸侯们的确享受到了福利:


配置统一在服务端维护,同一环境下所有应用节点共享同一份配置;


配置控制台提供鉴权、操作日志等服务;


配置控制台实现了版本控制,修改的配置需要发布后生效,减少误操作;


配置发布后,实时通知应用端,无须重启即可使用;


配置版本支持一键回滚;


配置控制台实现了整体复制、导出、批量修改等功能;


写到这里,太阳出来了


每次在结束语中都会诉诉苦,不过年末的各种事项的确有点打乱节奏,写作时间也随之调整到了工作日的清晨 6 点-8 点之间,所以效率与质量也或多或少受到影响。


本文主要讲述围绕配置信息管理和使用在 DevOps 过程中的那点事,所以对配置系统自身的原理与技术实现并未做详细的描述,如对这块有兴趣,欢迎大家在留言区中提出,我将通过独立的整篇文章加以叙述。


本文转载自头哥侃码公众号。


原文链接:https://mp.weixin.qq.com/s/99SqnEe9MGKzSbtvVR6sog


2020-04-17 15:062414

评论

发布
暂无评论
发现更多内容

专业的RAW图片处理:DxO PhotoLab 6 中文直装版

真大的脸盆

Mac Mac 软件 raw raw图片处理软件 Raw图像处理软件

深度访谈 NXTF_ 负责人|虚实联动才是通向未来的数字通行证

万事ONES

人工智能迎来iPhone时刻,拟人化AI进入爆发前夜

硬科技星球

智能、高效、便捷问题定位利器 —— 应用诊断分析平台 ATP 上线

OpenAnolis小助手

内存泄露 龙蜥社区 应用诊断 ATP 异常行为

Excel 进阶|只会 Excel 也能轻松搭建指标应用啦

Kyligence

数据分析 Excel数据分析 指标平台

一个有效的图表图像数据提取框架

合合技术团队

人工智能 计算机视觉 表格识别 图象识别

社招内推!JAVA、测开、数仓、前端均有坑

Qunar技术沙龙

互联网 工作 社招

常见的项目管理问题如何应对?| 得物技术

得物技术

超级MMM互助盘DAPP系统开发源代码(案例演示)

开发微hkkf5566

NFTScan 与 Dmail 达成合作伙伴,双方在 NFT 数据领域展开合作

NFT Research

NFT

测试流程规范如何推动落地?

老张

软件测试 目标识别 流程规范

云图说 | MSSI之应用业务模型ABM,搭建业务与技术的数据治理桥梁

华为云开发者联盟

大数据 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

Flink 流批一体方案在数禾的实践

Apache Flink

大数据 实时计算 flinkl

聚焦云原生 | MIAOYUN入选开源GitOps产业联盟生态图景2.0

MIAOYUN

云计算 开源 云原生 开源社区 开源生态

基础篇丨链路追踪(Tracing)其实很简单

阿里巴巴云原生

阿里云 云原生 Tracing

LED显示屏与DLP拼接屏的优缺点分析

Dylan

LED LED显示屏 户外LED显示屏

GPT-5紧急叫停?千名专家联名呼吁,AI技术的未来又该何去何从?

加入高科技仿生人

人工智能 AI技术 ChatGPT GPT-4

扫盲篇:Java中为啥一个 main 方法就能启动项目?

Java你猿哥

Java JVM ssm Java工程师

全球开源盛会!GOTC 2023 即将拉开帷幕,15 大分论坛不容错过!

kk-OSC

大会 #开源

CloudQuery 社区版重启 | 我们做了哪些准备?

BinTools图尔兹

数据库 社区版 数据库管理系统

Linux 的 TCP 连接数量最大不能超过 65535?

Java你猿哥

Java Linux 后端 ssm

普通程序员要成为架构师,需要掌握哪些知识体系?

程序员小毕

Java 面试 程序人生 后端 架构师

无线WiFi信号强度统计:WiFi Signal Strength Explorer 激活版

真大的脸盆

Mac wifi Mac 软件 无线管理 WiFi统计

全国首个政企采购云平台:政采云基于 Dubbo 的混合云跨网方案实践

阿里巴巴云原生

阿里云 云原生 dubbo

最全金融数据安全政策汇编,你应该需要它!( 附下载 )

极盾科技

数据安全

一看就懂,一学就会的Raft解析

爱德华

raft PAXOS 共识算法 深入理解分布式共识算法

云原生容器高可用运维能力应用

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

百套Web工业组态模板图库(长期更新)

2D3D前端可视化开发

组态软件 工业组态 组态图库 web组态图库 组态界面

几种快速传输大文件的方式

镭速

字节跳动 Flink 大规模云原生化实践

Apache Flink

大数据 flink 实时计算

YRCloudFile V6.10.0 功能新增对 NVIDIA GPUDirect 与回收站的支持

焱融科技

#高性能 #分布式文件存储 #文件存储 #全闪存储 #容器存储

我们实施DevOps的挑战之二 -- 配置文件的困惑_DevOps & 平台工程_头哥侃码_InfoQ精选文章