当前位置:网站首页>架构篇(二)架构的复杂度来源
架构篇(二)架构的复杂度来源
2022-08-11 02:07:00 【林木森^~^】
上一篇我们谈到,架构的本质就是解决业务和技术变化带来的复杂性。
那这一篇我们来谈一下复杂性到底来自于哪里。
业务复杂性
系统首先要满足当前的业务需求,在此基础上,还要满足将来的业务需求,因此系统要能不断地扩展变化,包括调整现有功能,以及增加新功能。
而且,系统的功能变化不能影响现有业务,不要一修改,就牵一发动全身,到处出问题。因此,在架构设计上,要做到系统的柔性可扩展,能够根据业务变化做灵活的调整。
此外,市场不等人,上新业务要快,之前花了半年上了个业务,这回再上个类似的新业务,需要短时间就能落地。因此,架构设计上,还要做到系统功能的可重用,这样才能通过快速复用,实现业务敏捷和创新。
技术复杂性
要保证一个业务能正常运行,除了满足业务功能之外,还要保证这个系统稳定可用。
一个复杂系统是由很多部分组成的,如应用程序、服务器、数据库、网络、中间件等,都可能会出问题。那怎么在出问题时,能够快速恢复系统或者让备用系统顶上去呢?
还有流量问题,平时流量不大,少量机器就可以处理,但在大促的时候,大量流量进来,系统是不是能够通过简单地加机器方式就能支持呢?
此外还有低成本的问题,系统能否做到,使用廉价设备而不是高大上的IOE设备,使用免费的开源组件而不是昂贵的商业套件,使用虚拟化技术而不是物理机,并且在流量低谷和高峰的不同时期,让系统能够弹性缩容和扩容呢?
因此,一个好的架构设计既要满足业务的可扩展、可复用;也要满足系统的高可用、高性能和可伸缩,并尽量采用低成本的方式落地。所以,对架构设计来说,技术和业务两手都要抓,两手都要硬。
边栏推荐
猜你喜欢

络达开发---自定义Timer的实现

测试3年,开口就要25k?面试完最多给15k...

Tomca启动闪退问题如何解决

MySQL八股文背诵版(续)

如何防止离职员工把企业文件拷贝带走?法律+技术,4步走

年薪30W,BAT抢着要,懂面试技巧的测试人究竟多吃香?

JVM类加载机制

Oops Framework模板项目新手引导
![[The method of calling the child page from the parent page of the iframe] Stepping on the pit: It is the key to use `[x]` when getting elements. You cannot use `.eq(x)`, otherwise it will not be obtai](/img/ec/0cca8c7011770429c34a6aa1f36460.png)
[The method of calling the child page from the parent page of the iframe] Stepping on the pit: It is the key to use `[x]` when getting elements. You cannot use `.eq(x)`, otherwise it will not be obtai

FPGA learning column (xinlinx) serial communication -
随机推荐
MySQL基础篇【第一篇】| 数据库概述及数据准备、常用命令、查看表结构步骤
Ora - 00001 in violation of the only constraint
Qt 中的隐式共享
Inter-process communication method (2) Named pipe
数据库数据采集利器FlinkCDC
wincc如何实现远程监控1200PLC
Gaussian beam focused by thermal lens
本周四晚19:00知识赋能第六期第5课丨OpenHarmony WiFi子系统
The classification of inter-process communication (IPC) and the development of communication methods
软件测试面试题:谈谈你对 cmm 和 is9000 的认识?
掌握这几招,轻松K.O面试官,Offer拿到吐
Section 4-6 of the first week of the second lesson: Appreciation of medical prognosis cases + homework analysis
【C 数据存储详解】(1)——深度剖析整形数据在内存中的存储
研发项目流程规范
shell [stdin/stdout/stderr][重定向]
软件测试面试题:性能测试工作?
MySQL - an SQL in MySQL is how to be performed?
【PHP】入门知识
[Detailed explanation of C data storage] (1) - in-depth analysis of the storage of shaping data in memory
如何实现FPGA的可重复性设计