前言
尽管“可靠性”有时被视为“可用性”的同义词,但这一属性实际上意味着系统的所有关键设计的保证:可用性、持久性和安全不变量等。
我们构建易于理解的系统的主要指导思想是,使用清晰的、有约束的组件来构造系统。其中一些组件可能构成其可信计算的基础,因此可以集中解决安全风险。
为了对系统的安全态势及其实现服务等级目标的能力有信心,你需要管理系统的复杂性:必须让系统、组件及其之间的交互形成有意义的解释和理解。对于不同的属性,系统的易理解程度可能有很大的差异。设计出一个易理解的系统,并且随着时间推移仍能保持这种易理解性,是需要付出努力的。
本文主要讨论系统架构设计的易理解性,因为它与系统生命周期的每个阶段都有相关。
我们将讨论软件设计(特别是应用程序框架和 API 的使用)如何显著地影响你对安全性和可靠性属性的解读能力。
本文中对系统易理解性的定义是,有相关技术背景的人员能够准确、自信地解释以下两点:
(1)系统运行时的行为;
(2)系统的不变性约束条件,包括安全性和可用性。
为什么易理解性很重要?
设计出一个易理解的系统,并且随着时间推移仍能保持这种易理解性,是需要付出努力的。然而,这些努力是值得的。因为一个容易理解的系统有以下几点好处。