应用配置管理演变及apollo概念拆解
前言 应用程序在运行的时候往往需要依赖一些配置信息进行逻辑运算,而且这些配置基本上伴随着应用程序的整个生命周期。 一般来说配置是独立于程序代码的的只读变量。应用程序去读取配置来改变自己的行为,但是其不能改变配置,而是交由其他入口完成修改这一动作。 故配置需要进行管理,同一个应用在不同的部署环境(开发、测试、预生产、生产)经常需要不同的配置,所以需要有便捷、完善的配置管理流程去进行管理。 代码配置管理的演变 开端 最开始的配置是如何编写及放置的呢? 当然是代码写到哪里,配置就加到哪里,这是最早期和顺手的做法,如下图。 (图中的提示语其实就是一个配置项) 这种做法最大的弊端就是:1、不能复用,一次修改,处处修改;2、不能按照不同环境所需进行调整。所以,此处应当进行抽离。 分工 逻辑代码一类,配置项一类,把配置内容进行抽离,独立放置到一个文件中,就是我所说的分工。既然配置项独立出一个文件了,那么后面的按环境加载就好办了。 一般来说,会对不同环境的配置文件使用不同的前缀进行命名,然后相应环境机器上也会有相关的一个环境变量供程序读取,读取后依靠这个环境变量进行按需加载配置文件就好了。 优点: 1、与项目关联紧密; 缺点: 1、更新及发布麻烦,需要修改代码; 2、缺失权限管理,安全性低; 3、不同应用项目配置不能共用; 4、配置零散,分散在各个项目代码中; 分权 按照前一个(分工