上QQ阅读APP看书,第一时间看更新
1.3.5 可管理性
在控制理论中,与可观测性对应的概念是可控制性,它表示在有限的时间间隔内,外部输入改变系统的状态或输出的能力。这个概念将我们带到了云原生的最后一个主要属性,也就是可管理性。
再次借鉴控制理论,我们可以说可管理性是衡量外部输入改变系统状态和输出的便利程度和效率。用更少的数学术语来讲,它是在不改变代码的情况下修改应用行为的能力。不要将它与“可维护性”混淆,可维护性衡量了从内部通过修改代码来改变系统的便利程度和效率。图1.6展示了可管理性是如何运作的。
可管理性所涉及的一个方面就是在部署和更新应用的时候,要保持整个系统的正常运行。可管理性的另一个元素就是配置,我将在本书中深入探讨这个问题。我们希望让云原生应用具有可配置性,这样就可以在不改变代码和构建新发布版本的情况下改变它们的行为。将数据源URL、服务凭证和证书等设置信息变成可配置的是很常见的。例如,根据不同的环境,我们可以使用不同的数据源,分别用于开发、测试和生产环境。其他类型的配置还包括特性标记,它们用来决定是否在运行时启用特定的特性。在本书中,我将会展示配置应用的不同策略,包括使用Spring Cloud Config Server、Kubernetes ConfigMaps与Secret,以及Kustomize。
可管理性不仅涉及变更本身,还包括如何便利和高效地应用这些变更。云原生系统是非常复杂的,所以必须要设计出能够适应功能、环境和安全性变化的应用。鉴于其复杂性,我们要尽可能地通过自动化来进行管理,这样我们就来到了上文所述“云原生3P”的最后一项,也就是实践。