配置管理与金丝雀发布:提升系统可靠性与部署效率
1. 配置更改验证
配置更改往往是系统故障的主要原因,因此验证配置更改是维护系统可靠性的关键步骤。建议在配置执行后立即验证生成的配置数据,仅进行语法验证(如检查 JSON 是否可解析)往往无法发现很多错误。在进行通用模式验证后,还需检查特定于应用程序领域的属性,例如必填字段是否存在、引用的文件名是否存在以及提供的值是否在允许范围内。
对于 Jsonnet 的 JSON 验证,可以使用 JSONschema。对于使用协议缓冲区的应用程序,可以轻松从 Jsonnet 生成这些缓冲区的规范 JSON 形式,并且协议缓冲区实现在反序列化期间会进行验证。无论采用何种验证方式,都不应忽略未识别的字段名,因为它们可能表示配置语言层面的拼写错误。Jsonnet 可以使用 :: 语法屏蔽不应输出的字段。此外,在预提交钩子中执行相同的验证也是个不错的选择。
2. 有效运营配置系统
2.1 版本控制
配置语言通常会促使工程师编写模板库和实用函数库。通常一个团队维护这些库,但许多其他团队可能会使用它们。当需要对库进行重大更改时,有两种选择:
- 提交所有客户端代码的全局更新,重构代码以使其仍然正常工作(这在组织层面可能不可行)。
- 对库进行版本控制,以便不同的使用者可以使用不同的版本并独立迁移。选择使用弃用版本的使用者将无法获得新版本的好处,并会产生技术债务,将来他们必须重构代码以使用新库。
大多数语言(包括 Jsonnet)不提供特定的版本控制支持,而是可以轻松使用目录进行版本控制。例如在 Jsonnet 中,可以参考 ksonnet
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



