外部配置存储模式——云计算架构常用设计模式

背景

大多数应用程序的运行时环境都包括配置文件,在部署应用的时候,通常会随着应用程序一起进行部署。针对配置文件而言,放置位置及管理的不当可能造成很多额外的问题。

  • 当中途编辑修改配置文件后,也要求重新部署应用程序,从而导致意外的停机和额外的管理开销;
  • 本地配置文件将配置信息限定到单个应用程序。而很多时候,跨多个应用程序共享配置设置非常有用,如数据库的连接,主题信息共享等等;
  • 管理应用程序多个实例的本地配置的更改,特别是云托管环境中,可能具有挑战性。如在更新配置时,可能导致实例适用不同的配置信息;
  • 应用程序的更新可能需要更改配置模式,而很多配置系统不支持不同版本的配置信息。

目的

外部配置存储是指把配置文件从应用部署转移到一个集中的位置。这种模式有利于管理和控制配置信息,以及在跨应用实例之间共享配置信息。

解决方案

方案:

  • 将配置信息存储在外部存储器,提供一个可用于高速、高效读取和更新配置设置的接口,这种存储凡是依赖于应用程序的宿主和运行时环境。在云中,通常是一个基于云存储的服务;
  • 为配置信息选择后被存储应当由一个合适的借口统一封装,该接口以可控的方式提供一致并且易于使用的访问通道,从而实现复用。理想情况下,该实现可以以正确的数据类型及接口来展现配置信息,还会对用户的访问进行授权以保护配置数据,并且以足够灵活的方式存储配置信息的多个版本。

注意:根据实际使用的后备存储类型和延迟,实现高速缓冲机制可能是有利的。

考虑因素

  • 选择一个具有高性能、高可用性、稳健性的后备存储方式,并作为应用程序维护和管理过程的一部分来进行备份;
  • 将后备存储的架构设计成可容纳灵活多样的配置信息类型,确保其提供了所有配置需求。另外,这个架构应该是易于扩展的,防止需求的变化而引起过大的变动;
  • 后备存储的物理容量及如何与配置信息的存储方式和对性能的影响产生关联。另外,高速缓存设置可以帮助抵消较慢的读取性能。
  • 配置接口如何授权管控配置设置的作用域和继承。例如,如何给配置设置限定的作用域,如何支持在不同的作用域进行访问控制授权,如何运行或组织单个应用程序对配置进行重写和设置;
  • 确保配置接口以要求的数据格式来公开配置数据;
  • 当设置包含错误或不存在后备存储时,配置存储接口将如何运转。恰当的做法可能是返回默认配置和记录错误日志。
  • 运行时更改应用程序行为的集中存储配置很重要,应采用与部署应用程序相同的机制进行部署、更新和管理,来确保配置应用到整个应用程序。另外,可能需要使用完整样例和分阶段部署的方法来执行,确保配置更改对所有的应用程序是良性的;
  • 如果应用程序缓存了配置信息,一旦配置改变,需要提醒应用程序,因此,可以在缓存上添加过期策略来定期刷新内容。

适用情况

  • 多个应用程序需要共享配置或需要使用一个相同的标准配置的场景;
  • 需要提供多种配置设置的场景;
  • 允许应用程序重写部分或全部集中存储的场景。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值