业务架构图

简介:

一、背景知识

  1. 什么是业务
    网上对业务的定义有很多,其中个人认为较为准确的几种定义如下:
    Business is the organized efforts and activities of individuals to produce and sell goods and services for profit.
    业务是个人或企业为获利而生产、销售商品和提供服务的有组织的努力和活动。
    A usually commercial or mercantile activity engaged in as a means of livelihood
    作为谋生手段而从事的通常是商业或商业活动
    以医院为例:医院提供医疗服务,患者通过消费享受医院提供的医疗服务从而重新获得健康的身体。所以,可以把患者去医院看病理解为患者与医院的多阶段交易。而交易的“产品”就是医院提供的医疗服务。
  2. 架构域的分类
    在四种类型的架构(业务架构、技术架构、应用架构、数据架构)中,业务架构是其他架构的基础。首先要熟悉业务,形成业务架构。再根据业务架构,形成技术架构。再根据技术架构确认数据架构和应用架构。
    二、引言
  3. 什么是业务架构图
    如果使用一句话去概括的话:业务架构图是一种表达业务层级和关系的工具,通过对整个系统的业务进行拆分,对领域模型进行设计,将现实的业务转化为抽象对象。
  4. 为什么要画业务架构图
    绘制业务架构图的目的有两个方面,第一是面向客户,第二是面向开发者。
    对于客户而言:通过描绘业务的上下级关系,梳理出一整套完整、简单的业务视图,提高客户理解度,最终给客户最直观的业务体现。
    对于开发者而言:通过绘制业务架构图,可以看清楚系统包含哪几个部分,各部分的职责以及相互间的关系。可以让开发者以一个广角去整体了解这个系统,便于快速了解业务。
    三、绘制业务架构图的核心要义
    绘制业务架构图的过程可以理解为对业务的收集、提炼、拆解、归纳和分类的过程。
    简单来说可以分为三个步骤:分层、分模块、分功能。
  5. 业务架构图中的核心元素
    对开发人员来说绘制业务架构图有一点需要特别注意:业务架构图中要淡化技术相关的概念,而要专注于对业务的思考与整理。
    一个好的产品业务架构图需要具备以下三点:
    清晰的模块功能边界
    功能经过抽象,做到标准化、互相独立
    上下游产品功能边界清晰,架构分层明确合理,具备迭代优化的能力
  6. 核心要义之一:分层
    分层,是指将业务按照层级划分,每个层级都属于独立的板块。层级上要有逻辑关联,如下层为上层服务,或下层为上层提供能力支撑等。
    如图所示【业务能力层】为【业务应用层】提供业务能力上的服务。上层业务应用可以直接调用能力中心的服务,避免重复开发。
  7. 核心要义之二:分模块
    分模块,是指在同一层级中,分为哪些独立的模块,每个模块可以代表一个完整产品或同类业务的聚合。
    如图所示,我们可以将业务应用层分为门诊、住院、急诊、留观和通用医疗服务这五个模块,每个模块都可以在细化其功能矩阵。
  8. 核心要义之三:分功能
    分功能,是指在同一模块中,将独立的功能划分出来,该功能可以代表一个业务入口。
    如图在住院中,可以分为入院准备、住院诊疗、住院收费、住院药房等独立的功能模块,各个功能模块由同类功能聚合而来。
  9. 最后再给不同层级和模块之间加上信息流
    四、产品业务架构图示例
相关文章
|
1天前
|
SQL 运维 分布式计算
如何做好SQL质量监控
Cloud Native 在 SLS 中,用户可以通过 SQL 对日志数据(结构化、半结构化、无结构化)进行查询和分析。随着用户对 SQL 使用程度的不断加深,越来越多的用户希望了解自己使用 SQL 分析时的服务反馈(如请求量、成功率、数据量等等),以便对数据和分析行为进行精细管理或优化治理。 “现在我这个 Project 的 SQL 并发是多少?” “奇怪,我 SQL 请求并不多,为什么会有这么多 SQL 请求,是哪个业务线(Logstore)用的?” “我想了解我在 SLS 中使用 SQL 分析的整体情况,请问有什么监控数据或日志可以查看? 这些都是来自 SLS 真实用户的声音,可以看出用
|
22小时前
|
Java 测试技术 Linux
生产环境发布管理
在一个大型团队中,生产发布是一件复杂的事情,从dev(前后端联调)-->test(测试集成&压力测试)-->pre(灰度测试)-->prod(生产环境)的多环境推进,以及生产环境的热更新、回滚等问题一直在困扰着各个公司,今天我将基于公司的自动化部署平台为大家讲解下我们是如何做到多环境部署。
|
22小时前
|
运维 Devops 开发工具
生产环境缺陷管理
在一个大型团队中,bug协同管理是一件复杂的事情,发布经理要追版本bug,运维同学要评估bug影响范围,开发同学要在多个开发分支同时修复同一个bug,很容易出现bug漏提交、漏确认等生产安全问题。 本团队也出现过一起不同分支漏提交bugfix导致的一起P1故障(最高等级),该bug在生产环境进行hotfix时,漏掉了少量集群导致该二次故障。举个相似的例子,某品牌汽车发现潜在安全隐患进行召回,但却遗漏了某个小地区,偏偏在遗漏的地区,发生了安全事故导致有人员伤亡。 我们基于go-git开发实现了通用化的git-poison,通过分布式源码管理bug追溯、查询,可复制性高,适用于所有git仓库,与分
|
1天前
|
SQL 运维 分布式计算
|
22小时前
|
存储 运维 NoSQL
|
22小时前
|
存储 关系型数据库 MySQL
|
22小时前
|
存储 算法 Java
|
22小时前
|
Java 应用服务中间件 Linux