【从零开始学架构 架构基础】五 架构设计的复杂度来源:低成本、安全、规模

架构设计的复杂度来源其实就是架构设计要解决的问题,主要有如下几个:高性能、高可用、可扩展、低成本、安全、规模。复杂度的关键,就是新旧技术之间不是完全的替代关系,有交叉,有各自的特点,所以才需要具体问题具体分析,基于各方考虑设计合适的架构,存在合适的架构,不存在最好的架构。这篇主要讨论低成本、安全、规模的问题。

低成本

当我们设计"高性能""高可用"的架构时,通用的手段都是增加更多服务器来满足"高性能"和"高可用"的要求;而低成本正好与此相反,我们需要减少服务器的数量才能达成低成本的目标,低成本本质上是与高性能和高可用冲突的,所以低成本很多时候不会是架构设计的首要目标,而是架构设计的附加约束

  1. 我们首先设定一个成本目标,当我们根据高性能、高可用的要求设计出方案时,评估一下方案是否能满足成本目标
  2. 如果不行,就需要重新设计架构
  3. 如果无论如何都无法设计出满足成本要求的方案,那就只能找老板调整成本目标了。

低成本给架构设计带来的主要复杂度体现在,往往只有创新才能达到低成本目标。包括

  • 【大公司】开创一个全新的技术领域(这个要求对绝大部分公司太高),创造新技术的主要复杂度在于需要自己去创造全新的理念和技术,并且新技术跟旧技术相比,需要有质的飞跃
  • 【小公司】引入新技术。引入新技术的主要复杂度在于需要去熟悉新技术,并且将新技术与已有技术结合起来

安全

从技术的角度来讲,安全可以分为两类:一类是功能上的安全,一类是架构上的安全

  • 功能安全更多地是和具体的编码相关,与架构关系不大。现在很多开发框架都内嵌了常见的安全功能,能够大大减少安全相关功能的重复开发
  • 传统的架构安全主要依靠防火墙,防火墙最基本的功能就是隔离网络,通过将网络划分成不同的区域,制定出不同区域之间的访问控制策略来控制不同信任程度区域间传送的数据流

规模

规模带来复杂度的主要原因就是"量变引起质变",当数量超过一定的阈值后,复杂度会发生质的变化。常见的规模带来的复杂度有

  • 功能越来越多,导致系统复杂度指数级上升 :假设系统间的功能都是两两相关的,系统的复杂度 = 功能数量 + 功能之间的连接数量
  • 数据越来越多,系统复杂度发生质变:MySQL 单表的数据因不同的业务和应用场景会有不同的最优值,但不管怎样都肯定是有一定的限度的,一般推荐在 5000 万行左右

总结一下

低成本本质上是与高性能和高可用冲突的,所以低成本很多时候不会是架构设计的首要目标,而是架构设计的附加约束;安全一般接触不到,功能安全一般框架保证、架构安全一般运营商以及云服务保证;规模其实代表的是业务复杂度的上升对架构的挑战,其实扩展性不好的架构其规模复杂度往往也会随着业务不断升级,所以需要设计扩展性好的架构并且在预测到业务计算及数据规模可能影响正常业务的时候及时进行架构优化。

相关推荐
光影少年5 分钟前
AI Agent、自动化与未来工作
人工智能·算法·架构
嘟哩DuliDuli37 分钟前
AI创作工作区的项目上下文与多模态任务边界
android·人工智能·安全·ai·软件工程
xianyuCcCcCCCcc1 小时前
Ceph 分布式存储:核心架构与集群部署
分布式·ceph·架构
pusheng20251 小时前
普晟传感再获“消防产业核心配套优质品牌”:以可靠传感技术,让全球合规变简单
大数据·前端·人工智能·物联网·安全
EasyGBS2 小时前
通信基站/铁塔机房无人值守,国标GB28181公网平台EasyGBS视频能力怎么去管
深度学习·安全·音视频
小天源2 小时前
智叟云集系统整体架构解析:多语言 API 接入、异步监控与本地化部署
架构·数据采集·数据中台·ai监测系统·geo数据监测
真上帝的左手2 小时前
10. 软件设计&架构-分布式文件存储系统
分布式·架构·应用架构
弈栈录2 小时前
大模型服务抽象:兼容 OpenAI、通义千问与本地模型
java·后端·架构
深盾科技_Virbox3 小时前
软许可、加密锁和云许可混合使用时,授权接口应该怎么统一?
运维·网络·安全
是真的小外套3 小时前
第15章:网络安全主动防御技术原理及应用
安全·web安全