全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多

配置变更风险管理

更新时间:2017-12-28 15:38:42

本节介绍如何通过配置管理的一些最佳实践降低配置变更在生产上可能带来的风险。

如何更好地组织配置

ACM 提供了 dataId, group,app,namespace 等不同的维度来帮助您管理好您所在组织中的所有配置。如果勤于梳理并善用这些维度,则能很好地减少在配置管理过程中发生无心的错误,降低给系统稳定性带来的伤害。

推荐配置组织方式

  • dataId

    • 用来表示一组相关的 key=value 的配置项的集合。

    • 善用 dataId 命名,给 dataId 起一些有意义的名称,例如: com.company.trade.threadpool.params,trade.p1.props

  • group

    • 一般使用模块名或者云资源名,如果一个应用使用了 Nginx,SLB, 此处 group 可能就是 nginx,slb。
  • app

    • 应用分组,一般是一个简单的业务单元或者微服务分组,一般一个应用是由一个小型或者中型的 team 开发并维护。
  • namespace

    • 粗粒度隔离多个应用的配置,例如多环境。

做好配置影响分级

每个配置项的变更对系统的影响是非常不同的。例如日志级别的变更如果错了,会改变系统的日志量,此外一般不会有其它负面的影响。而连接池、线程池、限流阈值、主机配置之类的变更往往是一个 Server 级别或者一个应用服务集群级别的影响。

分布式系统的诸如全局路由规则,负载均衡策略,网络配置等之类则是非常重量级的配置,错误的变更往往会带来严重的后果。所以按照配置影响力,将配置分为 P0~P4 是一个非常好的实践方式。

以下是示例说明。

级别 影响力 例子
P0 全网 全局路由规则,网络配置,负载均衡配置
P1 应用集群 集群限流阈值,集群服务端点
P2 主机级别关键配置 主机资源配置,线程池大小
P3 进程级别非关键配置 日志级别
P4 无关紧要的配置 版本信息

尽量避免大配置

如果应用所有的配置项都放在一个配置里,则意味着所有的人都在一个配置集上修改。这不仅导致配置变更、推送变得相对频繁,也增加了互相冲突以及误操作的风险,为更好的配置授权和分级的变更流程管控设置了障碍。

重要配置变更一定要灰度

做好配置分级之后,应该考虑重要的配置,例如 P0,P1 级的配置应该考虑诸如变更审核,灰度等发布策略来降低变更的风险,这点非常重要。

如何确保配置安全

敏感配置信息请加密后存储在 ACM 里

ACM Server 在主机上以及配置存储中默认不做数据加密。对于一些敏感配置信息,如密码,Token,AccessKey之类的信息,必须加密后才可以往 ACM 上存储。

ACM 在 API 和控制台上,都提供了配置内容加密工具,帮助您将内容加密之后再存储到 ACM 里。

本文导读目录