1. 识别系统复杂性
架构设计的本质目的是解决软件系统的复杂性,因此我们在设计架构时首先要分析系统的复杂性。 只有正确分析了系统的复杂度,后续的架构设计方案才不会偏离方向; 否则,如果对系统的复杂度判断错误,无论后续的架构设计方案多么完善和先进,都会走向相反的方向。 好吧,你犯的错误越多,就越令人发指。 架构的复杂性主要来自于“高性能”、“高可用性”和“可扩展性”等几个方面。 架构师在具体判断复杂度的时候,不能机械地照搬,认为架构在任何时候都必须同时满足这三个方面。 要求。 事实上,在大多数场景下,复杂度只是其中之一,少数情况下还包括其中两个。 如果真的有三个或者更多的复杂性需要同时解决,要么说明系统之前的设计有问题。 也有可能是建筑师的判断失误了。 即使他真的认为这三个要求必须同时满足,他也必须优先考虑它们。
2. 设计方案
架构设计备选方案的工作更多的是根据需求、团队、技术、资源等综合情况,对主流、成熟的架构模式进行选择、组合、调整、创新。设计备选方案时需要注意以下几点:
① 备选方案不要太详细。 替代阶段解决技术选择问题而不是技术细节。
②更佳选择数为3~5个。
③替代品之间的技术差异应该是明显的。
④不要将您的替代方案限制为您已经熟悉的技术。
3. 评估并选择替代方案
评估和选择替代方案需要关注质量属性。 质量属性包括性能、可用性、安全性、可扩展性等,这些属性在我之前的文章中已经讨论过,大家可以查看一下。 在评估这些质量属性时,需要遵循“适度原则”和“简洁原则”的架构设计原则,避免贪大求全。 基本上,某种品质属性能够满足一定时期内的业务发展就足够了。 在评估和选择备选方案时,常见的做法是列出这些重要的质量属性,然后将它们一一放入每个计划中进行评分。 评分时,最终将团队当前的技术能力、资源配置、项目成本、外部风险等因素相加、权衡,选择更优方案。
4、详细方案设计
详细方案设计就是对最终的备选方案进行细化,使备选方案成为可以实施的设计方案。 详细的方案设计包括以下几个方面:
1、数据存储设计。 需要根据业务评估5年内的业务数据量,然后考虑数据库技术选型。 对于一些数据增长比较快的业务,可以考虑是否使用分表分库或者大数据进行处理。 此外,还需要考虑高并发场景下的数据库备份和容灾、可用性和一致性解决方案。
2、通信协议设计。 在设计通信协议时,需要根据业务特点、业务性能需求、业务安全等因素来决定采用什么协议? 例如,在物联网系统中,设备与服务器之间的通信通常使用MQTT或COAP协议。 在微服务架构中,服务之间的内部调用通常使用HTTP(S)或RPC等协议就要系统,作为架构师,必须了解这些协议的优缺点和原理。 另外,在通信协议的设计中,对于消息的设计也有要求。 消息的大小和消息的数据结构是重要的考虑因素,因为在高并发场景下,这些细节可能会影响系统的整体性能。
3、界面设计。 界面设计主要体现在几个方面。 一是接口的友好性,指输入参数和返回值的命名规范、接口参数说明、调用示例等; 二是接口的隔离原则。 请记住,接口只做一件事。 第三件事是接口的安全性。 这一点非常重要,但一般却被很多人忽视。 接口的安全性一般采用token访问机制、数据签名/签名验证、白名单访问机制等。
4.缓存和消息队列设计。 在设计缓存和消息队列时,需要根据业务特点选择合适的组件。 目前业界有很多这方面的开源组件,大家在选择的时候一定不能盲目跟风。 另外,在设计缓存和消息队列时,需要考虑缓存和消息队列本身的单点故障。
未经允许不得转载! 作者:admin,转载或复制请以超链接形式并注明出处天心神途传奇手游发布网。
原文地址:《软件系统架构设计必须掌握的4步流程》发布于:2024-03-16




还没有评论,来说两句吧...