- 定义
- 基于云原生技术,将云应用中的非业务代码部分进行最大化剥离,让云设施接管应用中原有的大量非功能特性
- 代码包含三部分:业务代码、三方软件、处理非功能特性的代码
- 最大程度利用云服务和提升软件交付能力,进一步加快软件开发
- 主要架构模式
- 服务化架构模式:微服务小服务模式,把代码模块关系和部署关系进行分离
- Mesh 化架构模式:把中间件框架(RPC、缓存、异步消息)从业务进程中分离
- Serverless 模式:将部署动作从运维中收走,把应用的整个运行都托付给云
- 存储计算分离模式
- 分布式事务模式
- 可观测架构
- 事件驱动架构
- 相关技术
- 容器技术:应用及其依赖打包,应用不再受环境限制,在不同计算环境间快速可靠运行。发挥云计算弹性优势。k8s 提供分布式应用管理的核心能力
- 云原生微服务:后端单体应用拆分为松耦合的多个子应用,形成分布式微服务体系。设计约束
- 个体约束
- 横向关系
- 纵向约束
- 微服务分布式约束
- 无服务器技术:屏蔽了服务器的各种运维复杂度,更多精力用于业务逻辑设计与实现。包含以下特征
- 全托管的计算服务
- 通用性
- 自动弹性伸缩
- 按量计费
- 函数计算 FaaS 是 Serverless 最具代表性的产品形态
- Serverless 关注点:计算资源弹性调度、负载均衡和流控、安全性
- 服务网格 ServiceMesh:分布式应用在微服务软件架构之上发展起来的。应用与平台基础设施的解耦,开发这无需关注微服务相关治理问题而聚焦于业务逻辑本身