所有问题的前提要搞清楚我们今天面临的业务量有多大,增长走势是什么样,而且解决高并发的过程,一定是一个循序渐进逐步的过程 。合理的架构能够提前预见业务发展 1~2 年为宜 。这样可以付出较为合理的代价换来真正达到技术引领业务成长的效果 。
看看京东业务架构(网上分享图):
文章插图
2、产品架构
基础的产品框架脱胎于业务流程,但相比业务流程,更加注重产品功能的枚举、功能模块之间的分界 。
当我们打开一个系统,我们会看到一个精美的页面,一些丰富的信息、导航 。这些东西会引导我们去使用这个系统 。这些东西就是这个系统的组成部分,就是这个系统的功能模块 。产品架构,就是将这些不同用途的功能模块围绕特定的业务目标进行分类整合 。
功能模块是用户能够完成一个操作的最小粒度的完整功能 。比如一个展示可购买商品的列表页、一个修改用户密码的功能 。在功能模块设计过程中,需要确保用户能通过一个功能模块完整的完成一项工作,而不是半个工作 。
产品架构中,功能模块是根据其相互之间的关系来组织的 。一个产品中不同的功能模块之间的关系分直接关系和间接关系 。只有直接关系的功能模块才会被组织到一起,形成一个子系统 。那些存在间接关系的模块,会在不同的层级通过直接关系的模块产生联系 。
当具有直接关系的功能模块组合成一个子系统后,解决相同问题域的子系统就形成一个功能层级 。功能层级按照接近用户实操的距离程度进行从上到下,或者从左至右的划分,这就形成了产品架构的分层 。
3、应用架构(剖面架构,也叫逻辑架构图):
硬件到应用的抽象,包括抽象层和编程接口 。应用架构和业务架构是相辅相成的关系 。业务架构的每一部分都有应用架构 。
应用架构是要说明产品架构分哪些应用系统,应用系统间是如何集成的 。这就是应用架构和应用集成架构 。应用架构在产品架构的基础上考虑两个事情:第一、考虑的是子系统间的关系 。第二、考虑将可复用的组件或模块进行下沉,沉淀到平台层,为业务组件提供统一的支撑 。
类似:
文章插图
应用架构:应用作为独立可部署的单元,为系统划分了明确的边界,深刻影响系统功能组织、代码开发、部署和运维等各方面. 应用架构定义系统有哪些应用、以及应用之间如何分工和合作 。这里所谓应用就是各个逻辑模块或者子系统 。
应用架构图关键有 2 点:
1、职责划分: 明确应用(各个逻辑模块或者子系统)边界
-
逻辑分层
-
子系统、模块定义 。
-
关键类 。
2、职责之间的协作:
-
接口协议:应用对外输出的接口 。
-
协作关系:应用之间的调用关系 。
应用分层有两种方式:
一种是水平分(横向),按照功能处理顺序划分应用,比如把系统分为 web 前端/中间服务/后台任务,这是面向业务深度的划分 。
另一种是垂直分(纵向),按照不同的业务类型划分应用,比如进销存系统可以划分为三个独立的应用,这是面向业务广度的划分 。
应用的合反映应用之间如何协作,共同完成复杂的业务 case,主要体现在应用之间的通讯机制和数据格式,通讯机制可以是同步调用/异步消息/共享 DB 访问等,数据格式可以是文本/XML/JSON/二进制等 。
应用的分偏向于业务,反映业务架构,应用的合偏向于技术,影响技术架构 。分降低了业务复杂度,系统更有序,合增加了技术复杂度,系统更无序 。应用架构的本质是通过系统拆分,平衡业务和技术复杂性,保证系统形散神不散 。
系统采用什么样的应用架构,受业务复杂性影响,包括企业发展阶段和业务特点;同时受技术复杂性影响,包括 IT 技术发展阶段和内部技术人员水平 。业务复杂性(包括业务量大)必然带来技术复杂性,应用架构目标是解决业务复杂性的同时,避免技术太复杂,确保业务架构落地 。
推荐阅读
- Go 语言自带设计模式
- 如何做好表结构设计?
- 十个提高你网页设计能力的 CSS 技巧
- 求职|上海36岁设计师被HR喊叔,求职遭拒因为年龄不合适
- |三版人民币炼钢五元,设计精美,市场认知度高,收藏价值大
- 工装是什么意思(办公室装修)
- pe是什么材质(pe面料是什么材质)
- 包装设计是什么(包装设计的特点)
- 什么是产品设计(低碳环保的产品设计)
- 设计师接单平台排行__68design接单靠谱么?