1.为什么需要云原生架构?
2.云原生架构的定义
云原生架构定义
“业务代码指实现业务逻辑的代码;
“三方软件”是业务代码中依赖的所有三方库,包括业务库和基础库;
“处理非功能性的代码”指实现高可用、安全、可观测性等非功能性能力的代码。
- 代码结构发生巨大变化
- 非功能性特性的大量委托
- 高度自动化的软件交付
云原生架构原则
- 服务化原则:微服务架构、小服务(Mini Service)架构 弹性原则 可观测原则 韧性原则:MTBF 所有过程自动化原则:通过 IaC(Infrastructure as Code)、GitOps、OAM(Open Application Model)、Kubernetes operator 和大量自动化交付工具在 CI/CD 流水线中的实践,一方面标准化企业内部的软件交付过程,另一方面在标准化的基础上进行自动化,通过配置数据自描述和面向终态的交付过程,让自动化工具理解交付目标和环境差异,实现整个软件交付和运维的自动化。
- 零信任原则
- 架构持续演进原则
主要架构模式
- 服务化架构模式
- Mesh 化架构模式:
- Serverless模式
- 存储计算分离模式:CAP:C 一致性、A 可用性、P 分区容错性
- 分布式事务模式
XA模式、最终一致性(BASE)、TCC 模式、SAGA 模式、开源项目 SEATA 的 AT 模式非 - 可观测架构
- EDA 事件驱动架构
增强服务韧性、CQPS、数据变化通知、构建开放式接口、事件流处理、基于事件触发的相应
典型的云原生架构反模式
- 庞大的单体应用
- 单体应用强行拆分为微服务
- 缺乏自动化能力的微服务