大数跨境
0
0

软件架构的10个质量属性

软件架构的10个质量属性 中智凯灵
2023-03-14
0
导读:本文描述了软件的10个质量属性,可以挑选对产品最重要的质量属性,然后进行实现。




引言


一般地,对于软件系统的需求而言,分为两类:功能性需求和非功能性需求。软件系统的架构设计既要满足软件的功能性需求,还要满足软件的非功能性需求。特别地, 系统架构对软件非功能性需求的支撑成为架构的质量属性。本文描述了软件的10个质量属性, 但不意味着每个质量属性都会在架构设计中呈现,可以挑选对产品最重要的质量属性,然后进行实现。


1.可伸缩性

随着用户或请求数量的增加,系统运行和操作的能力也随之增加。在云平台上,可伸缩性可以通过机器的水平或垂直缩放或者简单地附加 AutoScalingGroup 来实现。

流量模式:了解系统的交通模式。尽可能多地产生机器是不划算的,即使它的利用率不高。

  • 日行模式: 特定地区的交通在早上增加,晚上减少。

  • 全局/区域模式: 区域大量使用应用程序。

  • 突发流量: 许多用户都在请求资源,但是只有少数几台机器可以为突发的流量提供服务。这些可能发生在高峰期或人口密集地区。

自动缩放:能够迅速产生一些机器,以处理流量的爆发,当需求正在减少时,优雅地收缩。

延迟:能够尽快为请求提供服务。这还包括优化算法和在用户位置附近复制系统,以减少请求的往返。


2.可用性
它以正常运行时间的百分比来衡量,并定义了系统正常运行和正常工作的时间比例。可用性受到系统错误、基础设施问题、恶意攻击和系统负载的影响。

部署标记:部署应用程序组件的多个独立副本,包括数据存储区

区域部署:将后端服务部署到一组地理节点中,每个节点都可以服务任何区域中的任何客户端请求。


3.可扩展性

可扩展性度量扩展了系统的能力和实现扩展所需的工作。扩展可以通过添加新功能或修改现有功能来实现,该原则规定在不损害当前系统功能的情况下进行增强。

模块化/可重用性:可重用性和可扩展性使得技术可以以更少的开发和维护时间转移到另一个项目,同时增强了可靠性和一致性。

可插拔性:能够轻松地插入其他组件,比如微内核架构。


4.一致性

一致性保证每个读操作返回最近的写操作。这意味着在执行每个操作之后,所有节点的数据都是一致的,因此,无论它们连接到哪个节点,所有客户端都可以同时看到相同的数据。一致性提高了数据的新鲜程度。


5.弹性

系统可以从容地处理意外故障和恶意故障并进行恢复,检测故障并快速有效地恢复对于保持弹性是必要的。

可恢复性:准备的过程和功能能够在发生意外更改后将服务返回到初始运行状态。意外的更改包括应用程序的软删除或硬删除或错误配置。灾难恢复包括了旨在防止或尽量减少灾难性事件造成的数据丢失和业务中断的最佳实践,涵盖了从设备故障和局部停电到网络攻击、民事紧急情况、犯罪或军事攻击以及自然灾害。

设计模式:

  • 隔离: 将应用程序的元素隔离到池中,以便在一个池失败时,其他元素继续运行。

  • 断路器: 当连接到远程服务或资源时,处理可能需要花费不同时间来修复的故障。

  • 选举: 通过选举一个实例作为负责管理其他实例的领导者,协调分布式应用程序中协作任务实例集合执行的操作。


6.易用性

【声明】内容源于网络
0
0
中智凯灵
中智凯灵(KeyLink)是国内领先的专业数字人才发展平台,面向科技研发型企业和组织提供数字化人才培养的专属成长地图,数字化转型的方法 + 智库。
内容 425
粉丝 0
中智凯灵 中智凯灵(KeyLink)是国内领先的专业数字人才发展平台,面向科技研发型企业和组织提供数字化人才培养的专属成长地图,数字化转型的方法 + 智库。
总阅读157
粉丝0
内容425