你的系统稳定吗——系统中非功能性需求的思考

概要

设计系统时不仅要考虑功能性需求,还要考虑一些非功能性需求,比如:

  1. 扩展性
  2. 可靠性和冗余
  3. 安全和隐私
  4. 服务依赖
  5. SLA要求

下面对这5项需要考虑的事项做个简单的说明

1. 可扩展性

数据量增长如何扩展?
流量增长如何扩展?
业务功能增长如何扩展?  
你的系统最少需要多少资源?你应该做好高利用率的打算,并且要知道使用过多的资源可能会阻碍服务的扩展。
同时还要考虑当前的硬件支持状况:添加更多的资源可能比预料的时间多得多,或者成本太过昂贵。

2. 可靠性和冗余

如何处理瞬间突发错误,比如临时中断等情况?
如何发现数据存储中的数据损坏或丢失?  
有哪些因素会造成数据丢失?比如用户操作错误、程序漏洞、数据库故障。
如何应对数据丢失,数据丢失有什么影响?数据丢失如何修复,在恢复之间会发生什么?
如果只丢失了部分数据,你能继续提供服务吗?

3. 安全和隐私

列出所有已知的漏洞和潜在的不安全依赖关系。  
考虑可能潜在的攻击,如何预防或缓解攻击?
考虑是否有可能泄露隐私数据的可能,如何应对?
如果出于某种原因,你的应用程序没有考虑安全或隐私,需要明确说明原因。

4. 服务依赖

应用程序启动时必须要依赖哪些服务?
如果你依赖的其他服务在一段时间内不可用,会发生什么情况?  
引入的服务是否存在循环依赖,即依赖环?比如你依赖服务A,服务A依赖服务B,服务B依赖你的服务。

5. SLA 要求

有什么机制可以审计和监控应用程序的服务等级保证(SLG)?  
你如何保证承诺的可靠性水平?

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值