当前位置:网站首页>架构篇(二)架构的复杂度来源
架构篇(二)架构的复杂度来源
2022-08-11 02:07:00 【林木森^~^】
上一篇我们谈到,架构的本质就是解决业务和技术变化带来的复杂性。
那这一篇我们来谈一下复杂性到底来自于哪里。
业务复杂性
系统首先要满足当前的业务需求,在此基础上,还要满足将来的业务需求,因此系统要能不断地扩展变化,包括调整现有功能,以及增加新功能。
而且,系统的功能变化不能影响现有业务,不要一修改,就牵一发动全身,到处出问题。因此,在架构设计上,要做到系统的柔性可扩展,能够根据业务变化做灵活的调整。
此外,市场不等人,上新业务要快,之前花了半年上了个业务,这回再上个类似的新业务,需要短时间就能落地。因此,架构设计上,还要做到系统功能的可重用,这样才能通过快速复用,实现业务敏捷和创新。
技术复杂性
要保证一个业务能正常运行,除了满足业务功能之外,还要保证这个系统稳定可用。
一个复杂系统是由很多部分组成的,如应用程序、服务器、数据库、网络、中间件等,都可能会出问题。那怎么在出问题时,能够快速恢复系统或者让备用系统顶上去呢?
还有流量问题,平时流量不大,少量机器就可以处理,但在大促的时候,大量流量进来,系统是不是能够通过简单地加机器方式就能支持呢?
此外还有低成本的问题,系统能否做到,使用廉价设备而不是高大上的IOE设备,使用免费的开源组件而不是昂贵的商业套件,使用虚拟化技术而不是物理机,并且在流量低谷和高峰的不同时期,让系统能够弹性缩容和扩容呢?
因此,一个好的架构设计既要满足业务的可扩展、可复用;也要满足系统的高可用、高性能和可伸缩,并尽量采用低成本的方式落地。所以,对架构设计来说,技术和业务两手都要抓,两手都要硬。
边栏推荐
- WeChat public account background management
- Research on the Application of Privacy Computing Fusion
- This Thursday evening at 19:00, Lesson 5 of the sixth phase of knowledge empowerment丨OpenHarmony WiFi subsystem
- 生信实验记录(part3)--scipy.spatial.distance_matrix
- SyntaxError: invalid syntax
- 深度解析:什么是太爱速M抢单模式?
- nvidia-smi:控制你的 GPU
- leetcode 739. Daily Temperatures 每日温度(中等)
- How to solve the problem of Tomcat booting and crashing
- YTU 2411: 谁去参加竞赛?【简单循环】
猜你喜欢

SyntaxError: invalid syntax

两日总结十

88Q2110 access C45 phy address through C22

第二课第一周第4-6节 医学预后案例欣赏+作业解析

单面PCB布线阻抗的工程设计

Deep Learning【第二章】
![MySQL Basics [Part 1] | Database Overview and Data Preparation, Common Commands, Viewing Table Structure Steps](/img/61/bebf5661ef1013e233e8d32c79f9ae.png)
MySQL Basics [Part 1] | Database Overview and Data Preparation, Common Commands, Viewing Table Structure Steps

两日总结九

学军中学推理社2017届招新试题
![[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
随机推荐
【iframe父页面调用子页面的方法】踩坑:获取元素的时候需要用 `[x]`是关键,不能用`.eq(x)`否则获取不到。
软件测试面试题:验收测试包括哪三种类型?
数据存储全方案----详解持久化技术
ASEMI整流桥GBJ5010参数,GBJ5010电压,GBJ5010电流
Is container technology really the savior of environmental management?
络达开发---自定义Timer的实现
Pytorch/TensorFlow/Numpy常用函数汇总
Mysq_Note4
软件测试面试题:什么是数据的对立性,有几个层次?
MySQL中的DDL常规操作总结
Deep Learning [Chapter 2]
通过微透镜阵列的传播
OpenHarmony啃论文俱乐部-啃论文心得
软件测试面试题:在频繁的版本发布中,如何回归测试?
软件测试面试题:测试用例与测试脚本?
Matlab矩阵(数组)元素过滤常见方法详解
软件测试面试题:什么是Negative测试?
第二课第一周第4-6节 医学预后案例欣赏+作业解析
HPSO and multi-core LSSVM based network intrusion detection
如何开展性能测试,你知道吗?