云架构设计模式 — 企业级实践

作者:郑德鼎 约 23 分钟阅读 更新日期:2026-07-18 新发布 标签:云架构, 设计模式, SAP BTP, 微服务
目录

云架构设计模式是企业构建可靠、可扩展、安全且经济高效的云应用的核心知识体系。对于 SAP 生态而言,SAP BTP(Business Technology Platform)提供了完整的云原生运行环境,理解云架构设计模式有助于在 BTP 上构建高质量的扩展应用。本文系统介绍云原生基础、核心设计模式、SAP BTP 架构选型以及企业级安全与成本优化实践。

一、云原生基础

1.1 12-Factor App

12-Factor App 是构建云原生应用的方法论,由 Adam Wiggins 于 2011 年提出,至今仍是云应用设计的基石:

因子原则SAP BTP 实践
1. 代码库一份代码库,多次部署Git + SAP BTP 部署流水线
2. 依赖显式声明并隔离依赖package.json / pom.xml / requirements.txt
3. 配置配置存储在环境变量中SAP BTP 环境变量 + Destination 服务
4. 后端服务将后端服务当作附加资源SAP BTP 服务实例(HANA、XSUAA 等)
5. 构建/发布/运行严格分离构建和运行阶段CF Buildpack 构建 → Droplet → 运行
6. 进程应用以无状态进程运行Cloud Foundry 应用实例无状态
7. 端口绑定通过端口绑定导出服务CF 应用监听 PORT 环境变量
8. 并发通过进程模型扩展CF 实例水平伸缩
9. 易处理快速启动和优雅关闭CF 健康检查与优雅关闭
10. 开发/生产一致保持开发、预发布、生产环境尽可能一致SAP BTP 子账户环境隔离
11. 日志将日志视为事件流SAP BTP Application Logging Service
12. 管理进程将管理任务作为一次性进程运行CF Task / SAP Job Scheduling Service

1.2 容器化

容器化是云原生应用的标准打包方式:

1.3 Kubernetes

Kubernetes(K8s)是容器编排的事实标准,SAP BTP 提供了 Kyma 运行时作为托管的 Kubernetes 环境:

K8s 概念说明在 SAP BTP Kyma 中的对应
Pod最小部署单元,包含一个或多个容器Kyma Pod
Deployment管理 Pod 的副本集和滚动更新Kyma Deployment
Service为 Pod 提供稳定的网络端点Kyma Service + API Rule
Ingress管理外部 HTTP 访问路由API Rule(基于 Istio)
ConfigMap / Secret管理配置和敏感信息Kyma ConfigMap / Secret
HPA水平 Pod 自动伸缩Kyma HPA

二、设计模式

2.1 微服务模式

微服务架构将应用拆分为小型、独立部署的服务,每个服务围绕一个业务能力构建:

设计考量推荐做法反模式
服务拆分粒度按业务域拆分(DDD 限界上下文)按技术层拆分(UI/BL/DA层)
服务间通信同步用 REST/gRPC,异步用事件所有通信都用同步调用
数据管理每个服务有自己的数据库多个服务共享数据库
服务发现服务注册 + 发现(如 Kubernetes DNS)硬编码服务地址
故障处理熔断器(Circuit Breaker)+ 重试无限重试或不重试

2.2 事件驱动模式

事件驱动架构通过异步事件实现服务间解耦:

SAP Event Mesh 支持的协议:AMQP 1.0、MQTT 3.1.1、HTTP REST(Webhook)。S/4HANA Cloud 通过 SAP Event Mesh 发布标准业务事件(如 BusinessPartner.Created、SalesOrder.Changed),扩展应用可以订阅这些事件触发后续处理。

2.3 CQRS 模式

CQRS(Command Query Responsibility Segregation)将读写操作分离到不同的模型:

SAP 场景示例:S/4HANA 作为命令侧(OLTP),SAP HANA Cloud 的计算视图或 SAP Analytics Cloud 作为查询侧(OLAP),两者通过数据复制或事件同步保持最终一致。

2.4 Saga 模式

Saga 模式解决分布式事务问题——当多个服务需要协调完成一个业务操作时,不能用传统的 ACID 事务:

模式编排方式优势劣势
编排式 Saga(Choreography)各服务通过事件协调,无中央协调器松耦合,无单点流程不直观,调试困难
协调式 Saga(Orchestration)中央协调器控制流程步骤流程清晰,易于监控协调器是单点

SAP 场景示例:订单创建涉及库存扣减、财务过账、物流创建等多个步骤,任一步骤失败需要补偿(回滚已完成步骤)。在 SAP BTP 上,可使用 SAP Event Mesh 实现编排式 Saga,或使用 SAP Workflow 服务实现协调式 Saga。

2.5 API Gateway 模式

API Gateway 是微服务架构的统一入口,负责请求路由、认证、限流、日志等横切关注点:

在 SAP BTP 上,SAP API Management 提供 API Gateway 功能,支持 API 代理、策略配置、流量管理和开发者门户。

三、SAP BTP 架构

3.1 三大运行环境

对比项Cloud FoundryKyma(Kubernetes)ABAP Environment
编程模型Buildpack 驱动,无需管理容器容器化,完全控制运行时ABAP 云开发,受管运行时
适用语言Node.js、Java、Python、Go任何语言(需容器化)ABAP(云子集)
部署方式cf pushkubectl apply / Helm
伸缩方式CF 实例伸缩HPA / KPA 自动伸缩实例数调整
服务网格Istio(内置)
服务器无状态是(云版 ABAP)
适用场景标准 Web 应用、API 服务复杂微服务、AI 工作负载ABAP 开发者的云原生开发

3.2 选型建议

四、企业集成

4.1 SAP BTP Integration Suite

SAP BTP Integration Suite 是企业集成的核心平台,提供以下能力:

4.2 API Management

SAP API Management 的核心功能:

功能说明典型使用场景
API 代理在客户端和后端 API 之间插入代理层统一入口、隐藏后端细节
策略配置在请求/响应流中执行预定义策略认证、限流、数据脱敏
流量管理API 调用配额和速率限制防止 API 滥用
开发者门户API 目录与自助订阅内部/外部开发者自助获取 API 访问
分析监控API 调用统计与告警监控 API 健康状态

五、安全架构

5.1 零信任架构

零信任(Zero Trust)的核心原则:永不信任,始终验证。

5.2 身份管理

认证方式适用场景SAP BTP 实现
OAuth 2.0 授权码流Web 应用用户登录XSUAA + SAP ID Service / IdP
OAuth 2.0 客户端凭证服务间通信XSUAA 客户端凭证
SAML 2.0企业 SSO 集成SAP BTP 与企业 IdP 联邦
JWT 令牌API 调用认证XSUAA 签发的 JWT
OIDC移动应用/SPA 认证XSUAA + OIDC 端点

5.3 数据加密

六、成本优化

6.1 预留实例

预留实例(Reserved Instance)是降低云成本的核心手段:

6.2 自动伸缩

自动伸缩确保资源供给匹配实际需求:

6.3 FinOps 实践

FinOps(Cloud Financial Operations)是将财务责任引入云成本管理的实践:

FinOps 阶段核心活动SAP BTP 工具
Inform(可见性)建立成本可见性,按团队/项目分摊SAP BTP Cockpit 账单、使用报告
Optimize(优化)识别浪费、优化资源配置资源利用率报告、伸缩策略调整
Operate(运营)建立持续成本管控流程预算告警、审批流程

常见成本浪费及优化

郑德鼎

关于作者:郑德鼎

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文基于云原生社区经典设计模式、SAP BTP 官方架构文档及企业云架构实践经验整理。技术细节请以 SAP BTP 最新版本文档为准。