Skip to content

微服务建设层次

微服务能力可以建设在应用代码、Distributed Application Runtime、独立进程、容器编排平台和基础设施等不同层次。这里的 Runtime 主要指 Dapr 这类分布式应用运行时;JVM、CLR 等 Language Runtime 是承载应用和 Agent 的另一层概念。

微服务建设层次图

从上向下,业务语义逐渐减少,平台覆盖面逐渐扩大:

  • Application 最理解订单、支付、库存等业务语义。
  • Dapr Runtime 通过标准 HTTP/gRPC API 提供 Service Invocation、Pub/Sub、State、Workflow 等 Building Blocks。
  • Process/Sidecar 可以把分布式能力、流量代理和采集能力从业务语言中解耦。
  • Kubernetes 负责 Workload 编排、服务发现、弹性和平台策略。
  • VM/Infrastructure 提供计算、网络、存储和故障域。

层次与能力

层次适合建设的能力常见实现不能替代的内容
Application / Framework服务边界、API、业务幂等、事务、超时与重试Spring Cloud Alibaba、gRPC/HTTP SDK、Outbox平台无法推断业务操作能否重放
Distributed Application Runtime服务调用、Pub/Sub、State、Workflow、Binding、SecretDapr Building Blocks 与可插拔 Component业务规则和数据一致性仍由应用设计
Process / Sidecar承载 Dapr Runtime、流量代理、通用遥测、日志采集daprd、Envoy、Filebeat增加进程、资源和网络路径复杂度
Kubernetes部署、调度、服务发现、弹性、配置、网络隔离Deployment、Service、HPA、Ingress、NetworkPolicyK8s 不等于完整的微服务治理体系
VM / Infrastructure计算、网络、LB、Firewall、Disk 和故障域VM、Bare Metal、Cloud LB、LVM资源底座不能完成服务拆分和业务治理

名词边界

名词含义是否属于微服务治理层
DaprDistributed Application Runtime,通过 Building Block API 提供分布式能力是,本页所说 Runtime 的主体
JVMJava Virtual Machine,Language Runtime是应用运行环境,也可承载观测 Agent,但不等于 Dapr Runtime
VMVirtual Machine,虚拟机是微服务的基础设施部署边界
LVMLogical Volume Manager,Linux 逻辑卷管理否,只属于底层存储能力
Process操作系统进程是,可部署应用、代理或采集器
PodKubernetes 最小调度单元是,可包含一个或多个 Container

组合示例

这条链路中,任何一层都不能独立代表完整微服务建设。正确做法是把能力放在最了解其语义、又能统一治理的最低成本层次。

学习地图

进一步参见 Dapr