知识卡片
观察系统的三个层次:事件、行为、结构
内容
事件层面——系统中发生的具体事情,本质是系统属性(存量或流量的另一种表达)发生了什么状态变化(比如上线新功能获得多少新增用户、高并发时响应时间变慢了多少);对黑盒系统来说,事件是观察系统的重要窗口,透过外在事件可以推导系统更深层的内在信息(DDD的”事件风暴”正是用事件反推系统的实体和属性)。行为层面——比单个事件更有意义,因为事件只是一个静态的已发生结果、一个点,而行为呈现的是系统在某个时间段内的趋势,需要通过分析大量事件才能发现重复出现的规律性模式(某月用户量增加是一个事件,但过去几年用户数稳步提升的结论才是一种行为);行为比事件更有价值体现在两点——能明确说明系统某方面的发展趋势、便于推断未来存量变化并及时采取措施;行为模型还揭示了[[系统的动态描述:存量/流量,与调节/增强回路|反馈回路]],说明这个行为是如何一步步发生的。结构层面——关注整个系统及其组成元素相互作用形成的结构特征;事件和行为都是”结果”,结构才是导致这些结果发生的”原因”,让我们不仅”知其然”还能”知其所以然”;每一次流量发生都会引起存量变化并最终产生一个事件,这些事件累积呈现出特定趋势即行为,但无论事件还是行为,最终都由系统自身的结构决定——结构是系统的根本所在,结构一旦改变,系统很可能就变成了另一个完全不同的系统,而行为和事件则可以不断被调整;因此了解结构是观察系统时最高、也最重要的层次。可迁移启发:诊断一个反复出现的生产问题时,先判断自己目前的分析停留在哪个层次——如果只是在罗列”又发生了一次超时”这类事件,说明分析还停留在最浅层;只有追到”这类事件为什么会反复以这种模式出现(行为)、又是系统的哪种结构决定了这种模式会反复发生(结构)”,才算真正触及了问题的根本。
结构图:
flowchart TB
E["事件层面<br/>(单点,已发生的属性变化,如一次超时)"]
B["行为层面<br/>(趋势,大量事件中的规律模式,如响应时间逐步升高)"]
S["结构层面<br/>(系统组成元素的相互作用关系,导致行为和事件的'原因')"]
S -->|决定| B
B -->|累积产生| E
S -.结构变=系统变成另一个系统,最根本.-> R["观察系统的最高层次"]
参考来源
- 位置:《架构师启示录:知识模型、落地方法与思维模式》第9章《系统维护》之"9.1.2 观察系统的3个层次"(源文件:_epub-src/EPUB/xhtml/chapter13.xhtml)
- 结论依据:原文说明"事件往往只是一个点、一个切面,它是一个静态的已发生结果……行为则呈现出系统在某一个时间段内的一种趋势……事件和行为都是结果,而结构则是导致这些结果发生的原因……如果一个系统的结构发生变化,很可能就会变成另外一个完全不同的系统。但是,系统的行为和事件可以不断地进行调整", 直接支撑本卡关于事件/行为/结构三层次及结构最重要的结构图。
- 原始内容:通过对结构的掌握,我们能够更全面地理解整个系统的运作机制,也可以合理地推导系统的行为和事件。