软件架构的质量属性
2023-02-27 17:42:56 1 举报
AI智能生成
软件架构的质量属性
作者其他创作
大纲/内容
可伸缩性
流量模式
日行模式
特定地区的交通在早上增加,晚上减少。
全局/区域模式
区域大量使用应用程序。
突发流量
许多用户都在请求资源,但是只有少数几台机器可以为突发的流量提供服务。这些可能发生在高峰期或人口密集地区。
自动绽放
能够迅速产生一些机器,以处理流量的爆发,当需求正在减少时,优雅地收缩。
延迟
能够尽快为请求提供服务。这还包括优化算法和在用户位置附近复制系统,以减少请求的往返。
可用性
部署标记
部署应用程序组件的多个独立副本,包括数据存储区
区域部署
将后端服务部署到一组地理节点中,每个节点都可以服务任何区域中的任何客户端请求。
可扩展性
可插拔性
能够轻松地插入其他组件,比如微内核架构。
模块化/可重复性
可重用性和可扩展性使得技术可以以更少的开发和维护时间转移到另一个项目,同时增强了可靠性和一致性。
一致性
一致性保证每个读操作返回最近的写操作。这意味着在执行每个操作之后,所有节点的数据都是一致的,因此,,无论它们连接到哪个节点,所有客户端都可以同时看到相同的数据。一致性提高了数据的新鲜程度。
弹性
可恢复性
准备的过程和功能能够在发生意外更改后将服务返回到初始运行状态。意外的更改包括应用程序的软删除或硬删除或错误配置。灾难恢复包括了旨在防止或尽量减少灾难性事件造成的数据丢失和业务中断的最佳实践,涵盖了从设备故障和局部停电到网络攻击、民事紧急情况、犯罪或军事攻击以及自然灾害。
设计模式
隔离
将应用程序的元素隔离到池中,以便在一个池失败时,其他元素继续运行。
断路器
当连接到远程服务或资源时,处理可能需要花费不同时间来修复的故障。
选举
通过选举一个实例作为负责管理其他实例的领导者,协调分布式应用程序中协作任务实例集合执行的操作。
易用性
易访问性
让具有最广泛特征和功能的人可以使用该软件。这包括失聪、失明、色盲等用户。
易学性
用户学习如何使用软件有多容易?
api契约
对于内部团队,理解 API 契约有助于轻松接入任何系统。
可观测性
日志记录
在每个请求中生成不同类型的日志: 事件日志、事务日志、消息日志和服务器日志。
警报和监控
准备监控仪表板,创建 SLI (服务水平指示器)并设置关键警报。
L1/L2/L3
为 L1/L2设置随叫随到的支持流程。L1支持包括与客户交互,L2支持 L1路由到它们的工单,并帮助进行故障排除。L3是支持的最后一环,通常包括一个解决技术问题的开发团队。
安全性
可审核性
审核并跟踪系统活动,以便在发生安全性缺陷时,可以确定缺陷的机制和程度。远程存储审计跟踪(可以防止入侵者掩盖其踪迹。
合法性
遵守
遵守 GDPR、 《个保法》等关于数据保护的法律法规。
隐私
对公司内部员工隐藏事务的能力(加密的事务,甚至 DBA 和网络架构师也看不到它们)。
身份验证
确保用户身份的安全性要求。
授权
确保用户只能访问应用程序中的某些功能(通过用例、子系统、网页、业务规则、字段级别等)。
持久性
复制
涉及共享信息,以确保冗余资源之间的一致性,从而提高可靠性、容错性或可访问性。
容错性
容错性是一种特性,它使系统能够在某些组件出现一个或多个故障时继续正常运行。
可归档性
数据是否需要在一段时间后归档或删除?(例如,客户数据将在三个月后被删除,或被标记为过时,并存档在备用数据库中,以便将来访问。)
敏捷性
可维护性
可测试性
开发人员和其他人员测试软件的容易程度
易于开发
开发人员在不引入缺陷或降低现有产品质量的情况下修改软件的程度
可部署性
在提交部署之后到代码投入生产的时间。
可安装性
易于在所有必要的平台上安装系统。
可升级性
在服务器和客户端上从此应用程序/解决方案的以前版本轻松/快速升级到较新版本的能力。
可移植性
系统是否需要在多个平台上运行?(例如,前端是否需要针对 Oracle 和 SAP 运行?)
可配置性
最终用户可以轻松地更改软件配置的各个方面(通过可用的接口)。
兼容性
产品、系统或组件在共享相同的硬件或软件环境时,与其他产品、设计或成员交换信息并执行所需功能的程度。
0 条评论
下一页