这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
后端架构
有关软件整体结构和组件的抽象描述;指导整个软件系统各方面的设计
实现一个软件的方法选择
单机架构(运维需要停服)
单体架构:分布式部署
垂直应用架构:按应用垂直切分
SOA(Service-Oriented Architecture)架构:
- 将应用的不同功能单元抽象为服务
- 定义服务间的 通信标准
问题:
- 数据一致性
- 高可用(如何合作?)
- 治理(容灾)
- 解耦 vs 过微
微服务架构:SOA的去中心化演进方向
企业级后端架构
云计算:通过软件自动化管理,提供计算资源的服务网络
基础:
- 虚拟化技术(整租 vs 合租)
- 编排方案(管理资源的状态)
架构:
- IaaS(Infrastructure as a Service) 屏蔽物理资源
- PaaS(Platform as a Service) 对资源的“装修”
- SaaS(Software as a Service)
- FaaS(Function as a Service) 更轻量级的函数服务
通信标准:
- HTTP(Restful API)
- RPC(Thrift,gRPC)
云原生微服务架构
微服务中间件 HTTP vs RPC:考虑 性能;服务治理;协议可解释性
HTTP处理端上调用
业务层无需关心网络通信相关,这些交给中间件(框架)处理
服务网格:将通讯进一步与业务解耦(变为在数据面层)
- 微服务之间通讯的中间层
- 高性能网络代理
- 业务代码与治理(流量层面的逻辑)解耦
企业级后端架构的挑战
离在线资源并池 提供更多的弹性资源
自动扩缩容(利用在线业务的潮汐性)
微服务亲和性部署
将满足亲和性条件的容器调度到同一台宿主机
微服务中间件和服务网格通过共享内存通信
服务网格控制面(中心化的控制面)实施灵活、动态的流量调度
流量治理
基于微服务中间件 & 服务网格的流量治理
CPU水位负载均衡(打平异构环境算力差异)