程序员如何做「配置管理」:不是硬编码,是灵活
配置管理是软件开发中最容易被忽视的部分。
硬编码的配置,让代码变得难以维护和部署。
一、为什么需要配置管理
1. 环境差异
开发、测试、生产环境配置不同。
2. 灵活调整
不重新部署就能修改行为。
3. 安全
数据库密码、API 密钥不能写在代码里。
4. 运维友好
运维人员不需要改代码,只需要改配置。
二、配置的类型
1. 环境配置
- 数据库连接
- 缓存服务器
- 消息队列
2. 应用配置
- 功能开关
- 阈值参数
- 业务规则
3. 敏感配置
- 数据库密码
- API 密钥
- OAuth Secret
三、配置管理的方法
1. 环境变量(推荐)
export DB_HOST=localhost
export DB_PORT=3306
在代码中读取环境变量。
2. 配置文件
- properties
- yaml
- json
3. 配置中心
- Apollo
- Nacos
- Spring Cloud Config
四、配置的最佳实践
1. 区分环境
- dev:开发环境
- test:测试环境
- prod:生产环境
2. 敏感信息加密
不要明文存储密码。
3. 配置有默认值
没有配置时用默认值,不至于启动失败。
4. 配置版本控制
配置文件也要进 Git,追踪变更历史。
5. 配置文档化
哪些配置项是干什么的,注释清楚。
五、一句话总结
配置管理 = 环境变量/配置中心 + 敏感加密 + 有默认值 + 版本控制。