B端产品人必看:如何绘制出一张高质量的产品架构图?
一提起架构图相信每位产品同学都不会陌生,在我们的日常工作中,我们已经见过了无数张所谓的产品架构图。
有这样子的画风高端,元素选择讲究,极具美术效果的架构图:
也有这样子的内容命名多用英文以凸显高端的产品架构图:
也有这样的,采用不同的色区,从而让架构图看起来五彩缤纷的架构图:
但是大家有没有思考过一个问题,面对市场上如此多的各种各样的架构图,究竟什么样的架构图才是一个正确且标准的产品架构图?
又或者说我们怎么样去评判一个产品架构图设计的正确与不正确呢?那今天呢我们就来谈一谈这个话题,如何去画好一个标准的产品架构图。
01产品架构定义的根本原则
如果用大白话来讲一个企业级产品架构的设计过程,其实就像家里的装修设计一样,请你想象一下,你要装修一个家,你会怎么开始设计?
首先,你需要一个整体的设计规划,做出一个装修蓝图,这个蓝图要考虑到你家庭的生活方式、未来几年的需求变化(企业战略发展方向和业务模式),然后决定各个房间的功能布局(系统的定位和功能)。
而在这个过程中,我们其实就是在进行产品架构的设计,而整个过程中最核心的就是两步:
--蓝图设计:也就是装修设计师画出的平面图,而对应产品上就是我们未来系统的整体发展规划,包括了功能架构蓝图、产品架构标准/原则等。
--系统边界和定义:就像确定哪些房间是你的,哪些是你邻居的,一个产品中有多个系统(多个房间或者楼层),通过明确各个系统的边界和定义来尽量将一组相同的功能放在一起(诸如影音房/棋牌室/书房等)。
02设计规范:产品架构分层
如果我们只设计一个域的产品时,比如订单域或者会员域我们可以按照上面的思路进行设计,但是我们要进行整个企业的所有系统通盘考虑时,这里的产品架构就升级为整个企业级的产品了。
此时我们也就需要升一个维度来看整个产品的规划,这里就需要再引入一个装修用到的“楼层”设计概念。
现在,我们把家想象成一个大型多楼层别墅,每层楼都有不同的功能,这些楼层对应着架构的不同层级。
基于这样的类比逻辑我们就可以给出这样的一个通用的产品架构分层模型:
01终端接入层(一楼大厅)
就像你家的一楼大厅,是接待客人的地方。终端就是企业暴露给外部客户的地方,如官网、APP等,从而让外部客户能够使用到企业的服务。
02终端管理层(二楼办公室)
二楼是你的办公室,用来管理一楼大厅的运营。管理后台就是用来管理对外系统的后台,又俗称业务系统,如内容发布,业务规则管控等。从而实现对外部系统的管理和监控功能。
03业务单元支撑层(三楼车间)(可选)
三楼是你的车间,用来生产产品。业务单元支持系统就是支持企业业务运作的系统,如SRM系统(采购)、WMS系统(仓储)等。
这里和前面的区别是如果企业内部有较为复杂的前后端(如电商:销售端=前端,供应链=后端)业务,那这里需要单独拆开增加一个业务单元支撑层,用于与业务部门架构匹配。
04职能单元支撑层(四楼后勤部门)
四楼是你的后勤部门,如财务、法务、人力、行政等。职能单元系统就是支持这些后勤部门的系统。在企业中为职能部门提供支持,保障企业的正常运作,注意这里的系统是和业务无直接关系的,在企业价值链中属于企业的公共支撑部门。
05基础服务层(地下室设备间)
地下室是你的设备间,存放着各种设备和管道。基础服务支撑系统就是提供基础服务能力的系统,如数据库、云服务器管理、服务调度等。
可以看到通过这样的5层划分我们就可以得到一个标准的企业级产品架构,如下图所示:
以后大家再去看一个完整的产品架构图时,也可以试着用这样的思路去审视是否全面,是否有缺失的部分。
03分层原理深究
看完了方法,你可能会问了,为什么产品架构设计要进行分层呢?其实在我刚入行的时候,我也困扰了好久。
为什么要进行系统应用架构分层,如果我们继续用装修例子来理解其实这个问题就容易回答了。
想象一下,你要装修一个复杂的房子,这个房子不仅有好多房间,还有各种功能区域与楼层,比如厨房、卧室、客厅等。如果你不进行合理的规划和分层,比如把电线、水管、家具都随意放置,那装修结果肯定是混乱不堪,使用起来也会非常不方便。
架构分层也是一样的道理,企业的业务是复杂多变的,有各种不同的功能模块和系统需要相互协作。如果没有进行架构分层,各个系统之间就会像一团乱麻,互相纠缠不清,不仅难以维护,还容易出错。
通过进行架构分层,可以把不同的功能模块和系统按照它们的作用和关系进行划分,使得整个架构更加清晰、有条理。这样,当某个部分需要修改或升级时,我们只需要关注相关的层级,而不需要影响到整个系统。
当然如果再翻译成工作上“周报”语言来给各位领导汇报就是:
这样做的好处与价值:
01提高系统的可维护性:分层架构使得每个层级都有明确的职责和边界,当某个层级出现问题时,我们可以更容易地定位和解决问题。
(大白话补充:就像房子里的某个房间出了问题,我们只需要修复那个房间,而不需要动整个房子。)
02增强系统的可扩展性:随着企业的发展,新的业务需求会不断涌现。通过分层架构,我们可以更容易地在某个层级添加新的功能模块或系统,而不需要对整个架构进行大的改动。
(大白话补充:就像给房子添加一个新的房间或功能区域,我们可以在不破坏原有结构的基础上进行扩展。)
03提升团队协作效率:分层架构使得不同的团队可以专注于不同的层级进行开发和维护,减少了团队之间的耦合和依赖。这样,每个团队都可以更加高效地工作,提高了整个项目的开发效率。
04降低系统复杂度:通过分层架构,我们可以把复杂的系统拆分成多个相对简单的层级,使得每个层级都更加容易理解和管理。就像把一个大问题拆分成多个小问题来解决一样,这样可以降低系统的整体复杂度。
05保障系统的稳定性:分层架构使得各个层级之间有一定的隔离和缓冲,当某个层级出现问题时,可以通过其他层级的冗余和备份来保障整个系统的稳定运行。
(大白话补充:就像房子里的某个电路出了问题,我们可以通过其他电路来保障照明和用电需求。)
最后我们总结一下产品架构图的本质或者说核心目的并不是为了追求好看或者高大上。
真正需要进行产品架构设计的唯一目的:为了在未来当我们面对业务量激增之后,我们必须要将整个团队进行扩充,从而去进行对应的高效率小组是分工时而需要把产品天然的划分成若干个模块,以此来实现各个单元发挥自己的最高作用。从而使整个产品整体得到良性的发展和驱动。
而这才是真正考验产品人真实功力的地方!