这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
架构演化
- 单机架构
- 优点:简单
- 缺点:c10K问题,服务能力有限;单机挂,服务挂
继续演化:克服上述缺点,提高服务能力 2. 单体架构
- 分布式部署
- 每个单体没有分工,都是一个完整的单机应用 垂直应用架构:对应用进行切分,每个单体有自己的分工
- 优点:水平扩容;运维不需要停服
- 问题:职责太多,开发效率不高;爆炸半径大(每个单体的职责还是不够专注)
继续演化:细化分工,提高效率 3. SOA架构,微服务|水平切分 SOA(service-Oriented Architecture):去中心化
- 服务:将应用的不同功能单元抽象为服务
- 定义服务之间的通信标准
问题:
- 数据一致性
- 高可用
- 治理
- 解耦和过微
企业后端架构
云计算
通过软件自动化管理,提高计算资源的服务网络。
基础
- 虚拟化技术
- 编排方案
架构
- IaaS (infrastructure as a service)
- 基础设施租赁,屏蔽物理设施,只关心资源本身
- PasS (Platform as a Service)
- 所有的运维,建设,等均全包
- SaaS (Software as a Service)
- 提供了软件服务
- Fass (Function as a Service)
- 云函数,更关心业务
云原生
为组织在公有云,自由云,混合云等动态环境中,构建和运行可弹性拓展的应用
-
弹性资源:虚拟扩容,快速扩容
- 服务资源调度:微服务;大服务
- 计算资源调度:在线,热榜;离线,热榜数据更新
- 消息队列:在线,削峰,解耦;离线,大数据分析
- 存储资源:
- 对象存储,大数据存储
- 关系数据库,收银记录
- 元数据,服务发现
- NoSql,KV值
-
微服务架构:业务功能单元解耦,统一通信标准
- 通信标准:HTTP(Restful api);RPG(thrift,gRPC)
- 通信标准:HTTP(Restful api);RPG(thrift,gRPC)
-
DevOps:敏捷开发,CICD
- 软件交付
-
服务网格:业务与治理结构,异构系统治理统一,复杂治理能力
- 服务网格:
- 微服务之间通信的中间层
- 高性能网络代理
- 业务代码和治理解耦
- 服务网格:
企业级后端结构的挑战
挑战:
- 基础设施:物理资源有限(设备,带宽),资源利用率受制于部署服务
- 用户:网络通信开销大;网络抖动导致运维成本高,异构环境,不同实例资源水位不均
离在线资源并池
收益:降低物理资源成本;提供更多弹性资源,增加收入
结合在线业务和离线业务的特点,进行并池
- 在线业务:io密集为主,潮汐性,实时性
- 离线业务:计算密集任务,非实时业务
自动扩缩容
扩缩容指标:微服务可以按CPU来按照指标
微服务亲和性部署
- 降低业务成本
- 提高服务可用性
将满足亲和性条件的容器调度到一台宿主机
微服务中间件和服务网格通过内存通信等IPC通信方案
服务网格控制面实时灵活、动态的流量调度
流量治理
基于微服务中间件&服务网格的流量治理
CPU水位负载均衡
- IaaS:提供资源探针
- 服务网格:动态负载均衡