【老猿说架构】系统架构设计目的是什么?

简介: 系统架构设计目的是什么?

大家好,我是老猿,今天开始推出专题【老猿说架构】,废话不说,直接进入主题。

1.什么是软件系统架构?

就是构建软件系统的构件(如子系统、模块、组件等)结构、关系及他们如何运行和协作的机制。

2.软件系统架构设计的目的是什么?

软件系统架构设计的核心目的是为了解决当前或未来软件系统复杂度(即软件系统之熵)带来的问题,所以软件系统架构设计先适用并满足当前业务容量和需求,随着业务发展和需求版本迭代开发而能不断扩展演进,那么良好的架构设计一定是简单、适用、可维护、可扩展、可演进的,所以脱离当前业务需要的架构设计都是耍流氓。

举个架构演进例子:

系统初期用户量和业务功能不多也不是很复杂,简单单体架构应用单节点服务部署或者小集群部署(见下图)。

1.jpg

2.jpg


系统发展中期用户量逐渐增加和业务功能越来越复杂,架构演进为分布式架构,服务部署见下图:

3.jpg

系统发展后期用户量规模化和业务功能非常复杂,架构演进为微服务架构,服务部署见下图:


4.jpg


3. 对软件系统架构设计目的理解的常见误区

误区1为了提高开发效率

做好架构设计就一定能提升开发效率吗?这个答案肯定是不一定。比如创业公司初期谈不上团队合作更谈不上架构设计,大家开发效率很高质量还可以,随着业务功能的快速增加或变更,不得不组建更大的团队,以团队分工合作方式协作时反而整体效率会下降很多,因此架构设计不一定能提高开发效率。

误区2:为了提升访问速度

架构设计和访问速度有关系,但没有直接关系,提升访问速度是系统工程,需要从系统端到端的输入输出每个节点的计算实现都要足够快才行。

      误区3:考虑未来系统高可用、高性能、可扩展,所以做架构设计

能想到这个的一般对架构设计有一定的思考,之所以做架构设计就是为了解决未来可预期和不可预期的业务发展。但往往新手架构师会过度设计带来巨大灾难,因为他们不管三七二十一,不理解业务和评估系统,直接就搞“高性能、高可用、高扩展”的生搬硬套的系统架构设计,恨不得把淘宝、京东,12306的架构搬过来,结果架构设计复杂无比,项目交付遥遥无期,团队天天吵等各种糟糕的现象,最后费尽九牛二虎之力将系统上线,却发现系统运行不稳定、经常出问题,出了问题难以解决,排查问题困难,加个功能要时间周期很长。


文/老猿,写代码写诗写职场的程序猿大叔,倾力原创简单实用的硬干货,转载此文请联系老猿

相关文章
|
2月前
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
505 3
|
4月前
|
存储 边缘计算 Cloud Native
“论模型驱动架构设计方法及其应用”写作框架,软考高级,系统架构设计师
模型驱动架构设计是一种用于应用系统开发的软件设计方法,以模型构造、模型转换和精化为核心,提供了一套软件设计的指导规范。在模型驱动架构环境下,通过创建出机器可读和高度抽象的模型实现对不同问题域的描述,这些模型独立于实现技术,以标准化的方式储存,利用模型转换策略来驱动包括分析、设计和实现等在内的整个软件开发过程。
234 3
|
1月前
|
监控 Android开发 iOS开发
深入探索安卓与iOS的系统架构差异:理解两大移动平台的技术根基在移动技术日新月异的今天,安卓和iOS作为市场上最为流行的两个操作系统,各自拥有独特的技术特性和庞大的用户基础。本文将深入探讨这两个平台的系统架构差异,揭示它们如何支撑起各自的生态系统,并影响着全球数亿用户的使用体验。
本文通过对比分析安卓和iOS的系统架构,揭示了这两个平台在设计理念、安全性、用户体验和技术生态上的根本区别。不同于常规的技术综述,本文以深入浅出的方式,带领读者理解这些差异是如何影响应用开发、用户选择和市场趋势的。通过梳理历史脉络和未来展望,本文旨在为开发者、用户以及行业分析师提供有价值的见解,帮助大家更好地把握移动技术发展的脉络。
60 6
|
4月前
|
存储 数据采集 数据挖掘
“湖仓一体架构及其应用”写作框架,系统架构设计师
随着5G、大数据、人工智能、物联网等技术的不断成熟,各行各业的业务场景日益复杂,企业数据呈现出大规模、多样性的特点,特别是非结构化数据呈现出爆发式增长趋势。在这一背景下,企业数据管理不再局限于传统的结构化OLTP(On-Line Transaction Processing)数据交易过程,而是提出了多样化、异质性数据的实时处理要求。传统的数据湖(Data Lake)在事务一致性及实时处理方面有所欠缺,而数据仓库(Data Warehouse)也无法应对高并发、多数据类型的处理。因此,支持事务一致性、提供高并发实时处理及分析能力的湖仓一体(Lake House)架构应运而生。湖仓一体架构在成本、
112 2
|
4月前
|
存储 消息中间件 API
“论微服务架构及其应用”写作框架,软考高级,系统架构设计师
论微服务架构及其应用近年来,随着互联网行业的迅猛发展,公司或组织业务的不断扩张,需求的快速变化以及用户量的不断增加,传统的单块(Monolithic)软件架构面临着越来越多的挑战,已逐渐无法适应互联网时代对软件的要求。在这一背景下,微服务架构模式(MicroserviceArchitecturePattern)逐渐流行,它强调将单一业务功能开发成微服务的形式,每个微服务运行在一个进程中;采用HTTP等通用协议和轻量级API实现微服务之间的协作与通信。这些微服务可以使用不同的开发语言以及不同数据存储技术,能够通过自动化部署工具独立发布,并保持最低限制的集中式管理。
223 4
|
3月前
|
存储 搜索推荐 API
业务系统架构实践问题之单系统内架构形态中,起步时的domain设计问题如何解决
业务系统架构实践问题之单系统内架构形态中,起步时的domain设计问题如何解决
|
3月前
|
存储 搜索推荐 API
业务系统架构实践问题之分层架构中的四层定位是什么
业务系统架构实践问题之分层架构中的四层定位是什么
|
4月前
|
边缘计算 Cloud Native IDE
“论SOA在企业集成架构设计中的应用”写作框架,系统架构设计师
企业应用集成(Enterprise Application Integration, EAI)是每个企业都必须要面对的实际问题。面向服务的企业应用集成是一种基于面向服务体系结构(Service-OrientedArchitecture,SOA)的新型企业应用集成技术,强调将企业和组织内部的资源和业务功能暴露为服务,实现资源共享和系统之间的互操作性,并支持快速地将新的应用以服务的形式加入到已有的集成环境中,增强企业IT环境的灵活性。
|
4月前
|
运维 监控 Cloud Native
“论云原生架构及其应用”写作框架,系统架构设计师
近年来,随着数字化转型不断深入,科技创新与业务发展不断融合,各行各业正在从大工业时代的固化范式进化成面向创新型组织与灵活型业务的崭新模式。在这一背景下,以容器和微服务架构为代表的云原生技术作为云计算服务的新模式,已经逐渐成为企业持续发展的主流选择。云原生架构是基于云原生技术的一组架构原则和设计模式的集合,旨在将云应用中的非业务代码部分进行最大化剥离,从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全、可观测性、灰度等),使业务不再有非功能性业务中断困扰的同时,具备轻量、敏捷、高度自动化的特点。云原生架构有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用
192 0
|
5月前
|
存储 XML vr&ar
软件体系结构 - 架构风格(12)超文本系统架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(12)超文本系统架构风格
155 0