menu

架构师

4A架构详解 — 结合PaaS/aPaaS/iPaaS场景

一、先用一个生活场景秒懂4A

假设你要开一家连锁奶茶店

业务架构 = 你要卖什么奶茶、怎么接单、怎么做、怎么送
           (业务流程和规则)

应用架构 = 你需要哪些软件系统:点单系统、库存系统、会员系统、外卖对接
           (用什么软件来支撑业务)

数据架构 = 每杯奶茶的配方数据、顾客数据、销售数据存在哪、怎么流转
           (数据怎么存、怎么流、怎么用)

技术架构 = 用什么服务器、什么数据库、什么网络、部署在哪个云上
           (底层技术基础设施)
四层关系(自上而下驱动):

  业务架构    "我们要做什么生意"
      ↓ 驱动
  应用架构    "需要哪些系统来支撑"
      ↓ 依赖
  数据架构    "系统之间的数据怎么流转"
      ↓ 承载于
  技术架构    "跑在什么基础设施上"

二、4A架构逐个详解

1. 业务架构(Business Architecture)

回答的问题:企业要做什么?业务怎么运转?

它不关心任何技术,只关心业务本身。

核心产出:
├── 业务能力地图    → 企业有哪些核心能力(销售、采购、生产、财务...)
├── 业务流程图      → 每个能力的具体流程(下单→审批→发货→收款)
├── 组织架构        → 谁负责什么(销售部、财务部、IT部)
└── 业务规则        → 满1000打折、超过5000需审批、库存低于100自动补货

举个例子 — 制造业企业:

业务能力地图:
┌─────────────────────────────────────────────┐
│  核心业务                                      │
│  ├── 销售管理(报价→合同→订单→发货→回款)      │
│  ├── 采购管理(需求→询价→采购→入库→付款)      │
│  ├── 生产管理(计划→排产→领料→生产→质检)      │
│  └── 仓储管理(入库→存储→出库→盘点)           │
│                                               │
│  支撑业务                                      │
│  ├── 财务管理(应收/应付/总账/报表)            │
│  ├── 人力资源(招聘/考勤/薪酬/绩效)           │
│  └── IT管理 (设备/权限/运维)                 │
└─────────────────────────────────────────────┘

为什么重要? 如果业务架构没搞清楚就去设计系统,结果就是做出来的系统和实际业务对不上,要反复改。


2. 应用架构(Application Architecture)

回答的问题:需要哪些应用系统?系统之间怎么协作?

把业务能力”翻译”成具体的软件系统。

核心产出:
├── 应用清单        → 需要哪些系统(ERP、CRM、OA、MES...)
├── 应用关系图      → 系统之间怎么调用和集成
├── 服务拆分方案    → 单体还是微服务?怎么拆?
└── 接口契约        → 系统间的API规范

接着上面制造业的例子:

业务能力              →    对应应用系统
─────────────────────────────────────
销售管理              →    CRM系统
采购管理              →    SRM系统(供应商管理)
生产管理              →    MES系统(制造执行)
仓储管理              →    WMS系统(仓储管理)
财务管理              →    ERP-财务模块
人力资源              →    HRM系统
全部打通              →    iPaaS集成平台(统一连接)
快速定制              →    aPaaS低代码平台(快速开发)

应用关系图:

                    ┌──────────┐
                    │  统一门户  │  ← 用户入口
                    └────┬─────┘
                         │
                 ┌───────┼───────┐
                 ↓       ↓       ↓
            ┌────────┐┌──────┐┌──────┐
            │  CRM   ││ ERP  ││ OA   │   ← 应用层
            └───┬────┘└──┬───┘└──┬───┘
                │        │       │
                └────────┼───────┘
                         ↓
                 ┌───────────────┐
                 │   iPaaS 集成层  │   ← 系统间数据流转
                 └───────────────┘

3. 数据架构(Data Architecture)

回答的问题:数据存在哪?怎么流转?怎么保证一致性?

核心产出:
├── 数据模型        → 有哪些核心数据实体(客户、订单、产品、供应商)
├── 主数据标准      → "客户"在CRM和ERP里的字段怎么统一
├── 数据流转图      → 数据从哪来、到哪去、怎么同步
├── 数据存储方案    → 用什么数据库、怎么分库分表
└── 数据治理规则    → 谁能看、谁能改、保留多久

继续制造业的例子 — 数据流转:

客户下单                    生产完成
  │                          │
  ↓                          ↓
CRM(客户信息)  ──→  ERP(订单)  ──→  MES(生产工单)  ──→  WMS(出库)
                      │                                    │
                      ↓                                    ↓
                   财务(应收账款)                        物流(发货通知)

问题来了:
  "客户"在CRM叫 customer_name,在ERP叫 client_name,在MES叫 buyer
  "产品"在CRM是SKU编码,在ERP是物料编码,在WMS是货品编码

  → 这就是为什么需要 MDM(主数据管理)来统一

主数据标准示例:

统一客户主数据模型:
┌────────────────────────────────────────────┐
│  字段            │ 标准名       │ 类型       │
├──────────────────┼─────────────┼───────────┤
│  客户统一ID       │ master_id   │ UUID       │
│  客户名称         │ name        │ VARCHAR    │
│  统一社会信用代码  │ uscc        │ CHAR(18)   │
│  联系人           │ contact     │ VARCHAR    │
│  联系电话         │ phone       │ VARCHAR    │
└────────────────────────────────────────────┘

映射关系:
  CRM.customer_name  ←→  主数据.name  ←→  ERP.client_name
  CRM.customer_id    ←→  主数据.master_id  ←→  ERP.client_code

4. 技术架构(Technology Architecture)

回答的问题:跑在什么基础设施上?用什么技术栈?

核心产出:
├── 技术选型        → 语言、框架、中间件、数据库
├── 部署架构        → 单机/集群/容器化/多云
├── 网络拓扑        → 内网/外网/DMZ/VPN
├── 安全架构        → 认证/加密/防火墙
└── 运维体系        → 监控/告警/日志/CI/CD

制造业例子的技术架构:

┌──────────────────────────────────────────┐
│  用户层                                    │
│  浏览器 / 移动APP / 小程序                  │
├──────────────────────────────────────────┤
│  网关层                                    │
│  Nginx + Spring Cloud Gateway              │
│  统一认证(OAuth2+JWT) + 限流(Sentinel)     │
├──────────────────────────────────────────┤
│  应用层(K8s集群)                          │
│  CRM服务 / ERP服务 / MES服务 / WMS服务      │
│  Spring Boot + Dubbo + RocketMQ            │
├──────────────────────────────────────────┤
│  数据层                                    │
│  MySQL(业务) + Redis(缓存) + ES(搜索)      │
│  MongoDB(文档) + MinIO(文件存储)            │
├──────────────────────────────────────────┤
│  基础设施层                                 │
│  K8s + Docker + Prometheus + ELK           │
│  阿里云 / 华为云 / 私有化部署               │
└──────────────────────────────────────────┘

三、4A架构在PaaS/aPaaS/iPaaS中的体现

先搞清楚三者的区别

IaaS = 基础设施即服务(卖服务器/网络/存储)→ 阿里云ECS、AWS EC2
PaaS = 平台即服务(卖开发运行平台)→ K8s、数据库服务、中间件服务
aPaaS = 应用PaaS(卖低代码/快速开发平台)→ 钉钉宜搭、明道云、Mendix
iPaaS = 集成PaaS(卖系统间连接能力)→ MuleSoft、阿里云CSB

类比:
  IaaS  = 给你一块地(自己盖房子)
  PaaS  = 给你毛坯房(自己装修)
  aPaaS = 给你精装房+家具模板(拖拖拽拽就能住)
  iPaaS = 给你一条高速公路(把各个房子连起来)

PaaS产品中的4A架构

场景:你要构建一个PaaS平台,给企业提供开发和运行环境。

业务架构:
  PaaS要服务谁?解决什么问题?
  ├── 目标客户:企业开发团队
  ├── 核心能力:应用托管、弹性伸缩、持续交付、中间件服务
  ├── 业务流程:开发者注册 → 创建应用 → 部署 → 监控 → 扩缩容
  └── 商业模式:按资源用量计费(CPU/内存/流量)

应用架构:
  PaaS平台本身需要哪些子系统?
  ├── 用户中心(租户管理、权限控制)
  ├── 应用管理服务(创建/部署/扩缩/回滚)
  ├── 资源调度服务(K8s编排、容器管理)
  ├── 中间件市场(MySQL/Redis/MQ一键开通)
  ├── 监控告警服务(Prometheus + Grafana)
  ├── CI/CD流水线(代码→构建→测试→部署)
  └── 计费结算服务(资源计量、账单生成)

数据架构:
  ├── 租户数据隔离(Namespace级隔离)
  ├── 应用元数据(应用配置、版本、部署记录)
  ├── 资源用量数据(CPU/内存/网络指标 → 时序数据库)
  ├── 日志数据(应用日志 → ELK)
  └── 计费数据(用量聚合 → 账单生成)

技术架构:
  ├── K8s集群(核心调度引擎)
  ├── Docker(容器运行时)
  ├── Istio(服务网格/流量管理)
  ├── Harbor(镜像仓库)
  ├── Prometheus + Grafana(监控)
  ├── ELK(日志)
  └── Terraform(基础设施即代码)

你的简历对应: 你在紫金山实验室做的多云纳管、K8s CRD/Operator、弹性伸缩、DevOps流水线,本质就是在做PaaS的技术架构和应用架构。


aPaaS产品中的4A架构

场景:你要构建一个aPaaS低代码平台,让业务人员拖拽就能搭建应用。

业务架构:
  ├── 目标客户:企业业务部门(非技术人员)
  ├── 核心能力:表单搭建、流程编排、报表生成、权限管理
  ├── 业务流程:
  │     业务员登录 → 拖拽表单 → 配置流程 → 设置权限 → 发布应用
  │     (全程不写代码)
  └── 典型场景:
        · 请假审批流程
        · 客户跟进管理
        · 项目进度看板
        · 采购申请流程

应用架构(aPaaS平台本身的架构):
  ┌─────────────────────────────────────────────────┐
  │  前端                                             │
  │  可视化设计器(拖拽式表单/流程/报表设计)           │
  ├─────────────────────────────────────────────────┤
  │  引擎层(核心能力)                                │
  │  ├── 表单引擎    → 动态渲染表单,元数据驱动         │
  │  ├── 流程引擎    → Flowable改造,支持可视化编排     │
  │  ├── 规则引擎    → 业务规则动态配置                 │
  │  ├── 报表引擎    → 动态查询+图表渲染               │
  │  └── 权限引擎    → RBAC+数据权限                   │
  ├─────────────────────────────────────────────────┤
  │  基础服务                                          │
  │  ├── 多租户服务  → 租户隔离、资源配额               │
  │  ├── 连接器服务  → 对接外部系统(ERP/CRM/钉钉)    │
  │  ├── 存储服务    → 文件/图片/附件管理               │
  │  └── API网关     → 开放API给第三方调用              │
  └─────────────────────────────────────────────────┘

数据架构:
  核心挑战 → 数据模型是动态的!
  
  传统应用:提前设计好表结构(user表、order表...)
  aPaaS:用户随时创建新表单 → 表结构是运行时动态生成的

  两种方案:
  方案1 - 动态建表:用户创建表单时,后台自动CREATE TABLE
         优点:查询性能好,SQL标准
         缺点:DDL操作频繁,分库分表困难

  方案2 - EAV模型(Entity-Attribute-Value):
         一张大宽表存所有数据
         entity_id | attribute_name | attribute_value
         1001      | 姓名           | 张三
         1001      | 部门           | 技术部
         优点:极其灵活,加字段不需要改表
         缺点:查询复杂,性能差

  实际中通常混合使用:核心字段固定列 + 扩展字段用JSON/EAV

技术架构:
  ├── Spring Boot / Spring Cloud(后端)
  ├── React/Vue(前端设计器)
  ├── Flowable(流程引擎基座)
  ├── MySQL + MongoDB(结构化+非结构化)
  ├── Redis(缓存元数据)
  ├── K8s(容器化部署)
  └── Elasticsearch(全文搜索)

你的简历对应: 你做的RPA低代码平台(Flowable引擎改造、元数据驱动渲染、SPI插件机制)就是aPaaS的核心能力。Elevate-SaaS的多租户架构也是aPaaS必备能力。


iPaaS产品中的4A架构

场景:你要构建一个iPaaS集成平台,把企业的各种系统连起来。

业务架构:
  ├── 解决的核心问题:企业有10个系统互相不通,数据孤岛
  │     ERP不知道CRM的客户数据
  │     财务系统不知道采购系统的付款状态
  │     老板看不到全局数据
  │
  ├── 核心能力:
  │     · 连接器(Connector):连接各种应用(SAP/钉钉/企微/自建系统)
  │     · 数据映射(Mapping):A系统的字段 ←→ B系统的字段
  │     · 流程编排(Flow):定义数据怎么在系统间流转
  │     · 监控运维(Monitor):集成链路的健康状态
  │
  └── 典型场景:
        · CRM成交 → 自动在ERP创建销售订单
        · ERP发货 → 自动通知WMS出库 + 更新CRM交付状态
        · 每天凌晨 → 汇总所有系统数据生成管理报表

应用架构:
  ┌─────────────────────────────────────────────────┐
  │  设计中心(前端)                                   │
  │  可视化集成流程设计器(拖拽连接器+配置映射规则)     │
  ├─────────────────────────────────────────────────┤
  │  运行引擎                                          │
  │  ├── 连接器引擎    → 管理200+预置连接器             │
  │  │     ├── SaaS连接器(钉钉/企微/飞书/Salesforce)│
  │  │     ├── ERP连接器(SAP/用友/金蝶)             │
  │  │     ├── 数据库连接器(MySQL/Oracle/PG)         │
  │  │     ├── 协议连接器(REST/SOAP/gRPC/MQ/FTP)    │
  │  │     └── 自定义连接器(SDK开发)                 │
  │  │                                                │
  │  ├── 映射引擎      → 字段映射、格式转换、数据清洗   │
  │  ├── 编排引擎      → 条件分支、循环、异常处理       │
  │  ├── 调度引擎      → 定时触发、事件触发、手动触发   │
  │  └── 重试引擎      → 指数退避、死信队列、告警       │
  ├─────────────────────────────────────────────────┤
  │  管控中心                                          │
  │  ├── API网关(Hub-Spoke的Hub)                    │
  │  ├── 监控告警(集成链路健康状态)                   │
  │  ├── 审计日志(谁在什么时间同步了什么数据)          │
  │  └── 多租户管理(每个企业独立的集成空间)            │
  └─────────────────────────────────────────────────┘

数据架构:
  iPaaS的数据架构最特殊 — 它自己不存业务数据,它只管数据的"搬运"

  ├── 元数据:连接器配置、映射规则、编排流程定义
  ├── 运行数据:每次同步的执行日志、状态、耗时
  ├── 缓存数据:临时存储同步中的中间数据
  └── 核心挑战:
        · 数据映射标准化(不同系统的"客户"字段怎么对应)
        · 数据一致性(同步到一半失败了怎么办)
        · 数据安全(经过iPaaS的数据不能泄露)

  数据映射示例:
  CRM.客户                    ERP.客户
  ┌──────────┐              ┌──────────┐
  │ customer_│    映射规则    │ client_  │
  │ name     │ ←──────────→ │ name     │
  │ phone    │ ←──────────→ │ tel      │
  │ email    │ ←──────────→ │ mail     │
  │ level    │ → 转换:      │ grade    │
  │ (VIP/普通)│   VIP→A,普通→B│ (A/B/C)  │
  └──────────┘              └──────────┘

技术架构:
  ├── API网关(Spring Cloud Gateway / Kong)
  ├── 消息队列(RocketMQ/Kafka — 异步解耦)
  ├── 编排引擎(自研或基于Camel/Spring Integration)
  ├── 容器化(K8s — 连接器独立Pod部署)
  ├── 缓存(Redis — 临时数据+分布式锁)
  └── 监控(Prometheus + 链路追踪)

你的简历对应: 你做的网云融合项目(Hub-Spoke API网关、统一认证、异构系统适配器、标准化API接口),本质就是iPaaS的核心架构。SaaS项目中的MDM主数据管理、RocketMQ事件驱动集成也是iPaaS的关键能力。


四、三者关系图

企业IT全景:

  用户/业务人员
       │
       ↓
  ┌──────────┐
  │  aPaaS   │  ← 快速搭建前端应用(低代码/表单/流程)
  │  低代码平台 │
  └────┬─────┘
       │ 调用
       ↓
  ┌──────────┐
  │  iPaaS   │  ← 连接各个系统,数据在系统间流转
  │  集成平台  │
  └────┬─────┘
       │ 连接
       ↓
  ┌────┴─────┬──────────┬──────────┐
  │  ERP     │  CRM     │  MES     │  ← 各个业务系统
  └──────────┴──────────┴──────────┘
       │ 全部运行在
       ↓
  ┌──────────┐
  │  PaaS    │  ← 提供运行环境(K8s/数据库/中间件)
  │  运行平台  │
  └────┬─────┘
       │ 运行在
       ↓
  ┌──────────┐
  │  IaaS    │  ← 服务器/网络/存储
  │  基础设施  │
  └──────────┘

五、你的简历如何匹配

4A维度 你的经验 对应产品方向
业务架构 DDD领域建模、事件风暴、限界上下文划分 aPaaS(业务流程抽象能力)
应用架构 微服务拆分、SPI插件、多租户SaaS、API网关 aPaaS + iPaaS
数据架构 MDM主数据管理、数据映射同步、多级缓存 iPaaS(核心能力)
技术架构 K8s/Docker/Istio、CI/CD、Sentinel、RocketMQ PaaS(核心能力)

你的简历覆盖了4A的全部四层,而且在PaaS(基础设施)和iPaaS(系统集成)方向最强。

“我做过的网云融合项目本质上是一个iPaaS集成平台,通过Hub-Spoke架构和标准化API连接40+异构系统;Elevate-SaaS本质上是一个aPaaS多租户平台,通过SPI插件机制实现低代码定制;底层是基于K8s构建的PaaS运行平台。三层合在一起,就是一个完整的4A架构落地实践。”


评论:


技术文章推送

手机、电脑实用软件分享

微信搜索公众号: AndrewYG的算法世界
wechat 微信公众号:AndrewYG的算法世界