首页/开发/系统分析与架构设计速查/架构特征(-ilities)与取舍
架构风格与模式58 条

架构特征(-ilities)与取舍

架构特征是非功能维度的设计目标:可用性、可伸缩性、弹性、性能、安全性、可部署性、可测试性与可维护性等;它们相互制约,必须排出优先级。

架构特征是什么

架构特征是非功能维度的设计目标,也叫 -ilities:可用性、可伸缩性、弹性、性能、安全性、可部署性、可测试性、可维护性等。它们相互制约,提升一项往往牺牲另一项,例如强一致换取更高延迟、加密换取吞吐下降。因此架构工作的核心不是“全都满足”,而是排出优先级、给出可度量目标,并明确本版愿意让步的是什么。

常见特征

特征含义度量示例
可用性系统可对外服务的时间比例月度可用率、单次故障恢复时长
可伸缩性资源增加时容量与性能的提升程度水平扩容后吞吐变化曲线
弹性负载波动时按需自动伸缩的能力扩容触发到生效的时长
性能单位请求的延迟与吞吐p95 延迟、峰值 QPS
安全性抵御攻击与保护数据的能力高危漏洞数、越权测试通过率
可维护性修改与排错的难易程度变更前置时间、缺陷修复时长
可部署性发布与回滚的效率与风险发布耗时、回滚成功率

基本信息

识别时机需求阶段就要识别,架构阶段才有取舍依据
量化要求每个特征配上场景、指标与度量方式,否则无法验证
优先级显式排序为第一、第二、第三,避免“全都要”
让步项写明为满足首要特征主动牺牲了哪些次要特征
记录方式写入架构决策记录,作为后续评审基线

典型使用场景

  • 架构选型:按特征优先级比较候选方案,而不是按技术偏好
  • 评审答辩:回答“为什么这样设计”时给出特征与取舍证据
  • 压测目标制定:把性能与可用性特征转成可执行的测试指标
  • 预算与资源申请:用可用率与扩容指标解释成本构成
  • 技术债排序:以特征受损程度判断哪些债优先还
  • 上线验收:逐项核对特征目标是否被监控覆盖
特征数量要克制:一份架构方案同时宣称兼顾十项特征,通常意味着没有任何一项被真正验证过。
架构特征缺失或不排序时,评审容易退化成对具体技术栈的口味之争,最终决策无法追溯。

易错点

  • 把“高性能、高可用、高安全、易维护”全部列为目标,等于没有优先级,无法取舍
  • 特征只写名称不写指标与场景,验收时无法判定是否达标
  • 牺牲项不记录,后续维护者按被牺牲的特征提需求,被认为“架构选错了”
  • 只关注性能与可用性,忽略可部署性与可维护性,交付后每次发布都是高风险操作
  • 特征目标与监控指标脱节,线上发生退化时无人察觉

数据来源与参考

  • 《软件架构:架构模式、特征及实践指南》(Richards & Ford)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌