写点什么

分布式系统架构学习总结(第四周)

用户头像
吴建中
关注
发布于: 2020 年 07 月 01 日
分布式系统架构学习总结(第四周)

软件开发要解决的问题是从需求而来。需求包括两大类,第一类是功能性需求,也就是要完成怎样的业务功能;第二类是非功能性需求,是业务功能之外的一些需求。非功能性需求也被分为两大类,一类称为执行质量(Execution qualities),如:吞吐、延迟、安全,它们可以在运行时通过运维手段被观察到的;而另一类称为演化质量(Evolution qualities),它们内含于一个软件的结构之中,包括可测试性、可维护性、可扩展性等。

非功能性需求与功能性需求相比同等重要,系统的良好性能、可用性、安全性、业务可扩展性、后期可维护性、数据一致性将直接影响系统运行情况,不能有半点差池,应该上升到架构层面,通过架构设计来保障质量属性。

下面描述场景的质量性需求及解决方案:



高可用性:要求保证系统在设计指标压力情况下的7*24小时长期稳定运行,将采用“集群部署”、“灰度发布”、“异步消息”、“分布式监控”等策略组合使用来确保高可用。高可用=可用+稳定的性能,如果系统在高并发下性能下降严重,系统持续处于疲劳状态或者高压状态,一旦崩溃就会影响高可用性,所以高可用不仅仅是指系统能响应,而且还包括稳定的性能,即不仅要活着,还要健康的活着。



高性能:按照“1-2-5-10”梯度原则规划每个功能的并发指标和性能指标,根据不同应用场景请求将在为1秒、2秒、5秒、10秒内返回,比如常规查询要求1秒内返回,复杂查询在2秒内返回,跨系统交互在5秒内返回等。将采用“分布式缓存”、“动静分离”、“CDN”、“数据库读写分离”、“集群部署”、“异步消息”、“硬件垂直伸缩”等策略组合使用来确保高性能。



可扩展性、可维护性:随着业务的复杂性和规模的提升,对系统的可扩展性和可维护性提出高要求,要避免出现牵一发而动全身的现象,系统设计时候应采用优秀的设计模式、设计原则,提高系统高内聚性和降低耦合性。将采用“标准统一”、“提高文档质量”、“设计模式”、“设计原则”、“服务拆分”、“devops文化”等策略组合使用来提高系统的可扩展性和可维护性。



安全性:安全建设从“以网络为中心”逐步过渡到“以数据为中心”,并围绕数据生命周期的各个阶段(数据收集或生成、安全使用、安全传输、安全存储、安全披露、安全流转与跟踪、安全销毁等)引入安全措施进行保护。安全不是喊口号,实际上安全是一项系统性工程,需要方法论的指导,也需要实践的参考。将采用“基于安全架构5A方法论”、“单体安全/微服务安全设计”、“代码质量评审”、“模拟攻击”等策略组合使用来提高系统的安全性。



可移植性:企业软硬件环境会不定期的升级,这就要求技术平台可移植到新的硬件平台上,应用不能耦合于某特定硬件环境。本技术方案规划的“全面拥抱云原生技术体系”,让应用和平台天生具有可移植,可以运行在不同云平台上。



数据一致性:分布式环境下业务流、数据流跨系统交互,由于网络环境无法确保100%高可用,所以网络波动可能造成业务、数据处理过程不一致现象。将采用“CAP理论”、“异步消息机制”、“幂等性设计”、“分布式事务及补偿”等策略组合使用确保数据最终一致性。



可监控性:分布式环境下系统交互、调用、消息传递的复杂性都远高于单体应用,应该让分布式系统交互过程透明化、白盒化,通过可视化界面监控系统的运行情况和业务开展情况。将采用“调用链监控”、“集中式日志监控ELK”、“消息传递监控”、“分布式集群运行状态监控”等策略组合来提高系统的可监控性和透明性。



下面是一个某公司招标文件中描述的非功能性需求,虽然是传统企业的需求,但是也能看到一些比较苛刻的需求点,如果能够灵活使用互联网架构技术和工具,是能够很好的应对。具体需求如下:

能够在公司总部及三家卷烟厂主要的用户终端上稳定、良好运行。系统具体性能要求如下但不限于如下要求:

(1)生产管控平台及三家卷烟厂MES系统都能够支持并发用户数大于500人。--并发量

(2)用户的操作响应通常要求2秒内响应,特殊复杂的操作响应要求在10秒内响应,排产响应时间1分钟以内。--性能要求

(3)常规统计报表的页面响应时间平均时间小于5秒钟,复杂统计报表的页面平均响应时间小于10秒。--性能要求

(4)因特殊原因导致的性能问题,最后性能的验收由用户的可接受度为标准。--性能要求

(5)在硬件环境和网络性能正常的情况下,并发消息处理能力峰值要求达到每秒100个并发,此时处理能力下降不超过十分之一。--性能要求

(6)在达到系统性能指标峰值要求的同时,系统处理能力还要求留有足够的余量,CPU、内存等系统资源的使用率低于70%;在达到系统性能指标平均值时,系统资源使用率应低于50%。--性能要求

(7)要求保证系统在设计指标压力情况下的7*24小时长期稳定运行。--高可用

(8)提供自动归档历史数据功能。--数据安全



用户头像

吴建中

关注

还未添加个人签名 2018.04.18 加入

还未添加个人简介

评论

发布
暂无评论
分布式系统架构学习总结(第四周)