云原生架构体系演进之路
# 单体架构
## 单体架构一览
- 1. 业务部署在单台服务器中
- 2. 业务逻辑耦合为单体

**适合小规模团队**
|优势:|劣势:|
|-|-|-|
|部署简单|无法应对更大的流量|
|功能集中|多人团队协作耗时|
|前期独立开发|性能不足|
|成本低|大单体维护成本高|
## 单体架构的演进
**通过缓存来避免压力透传和雪崩**
- 应用和数据分离
- 增加缓存

**缓存层抗压力**
- 数据库高可用
- 数据库读写分离

**应用服务器集群,缓存层高可用,这样就足够了吗?**

**通过CDN进行加速,通过LB进行代理**

## 单体架构的局限

# 分布式架构
## 分布式架构一览
**基本理论**
ACID (数据库事务)
BASE
CAP
一致性

优势
1. 并发
2. 可扩展
3. 容错
4. 资源共享
5. 灵活
劣势
1. 复杂性
2. 安全
3. 服务管理
4. 不可控因素(网络等)

优势
1. 分布式
2. 松耦合
3. 灵活扩展
4. 可重用
劣势
1. 抽象力度大
2. 接口耦合
# 微服务架构
## 微服务架构一览
1. 抽象力度小
2. 服务独立

优势:
1. 复杂度可控
2. 独立部署
3. 灵活选型
4. 限流/熔断
5. 可扩展
劣势:
1. 部署复杂度
2. 资源占用
3. 运维复杂度
4. 监控/报警/日志复杂度
# 云原生架构
## 云原生架构一览
### 以docker为首的容器技术
镜像是标准化交付单元
资源隔离
### 以kubernetes为首的容器编排技术
故障自愈
资源调度
服务编排

优势:
1. 降低成本
2. 提高效率
3. 标准化
劣势
复杂性:维护复杂性,组件较多

**Serverless**
1. 降低运营成本
2. 降低开发成本
3. 降低管理成本
**架构演进**
1. 降本增效
2. 便利性
3. 安全性
4. 符合业务需要