架构初探-谁动了我的蛋糕(三)、(四)|zo的笔记|青训营笔记

110 阅读4分钟

这是我参与「第五届青训营 」笔记创作活动的第9天。注:笔记大部分图片内容及代码段为青训营课程视频提供,仅交流,不得做个人使用

一、本课主要内容

什么是架构 | 企业级后端架构剖析 | 企业级后端架构的挑战 | 后端架构实战

二、本节详细知识点

企业级后端架构的挑战
离在线资源并池
自动扩缩容
微服务亲和性部署
流量治理
CPU水位负载均衡

后端架构实战
背景 |

企业级后端架构的挑战

面临的问题

挑战:
——基础设施层面
-物理资源是有限的
· 机器、带宽
-资源利用率受制于部署服务
——用户层面
· 网络通信开销较大
· 网络抖动导致运维成本提高
· 异构环境下,不同实例资源水位不均

image.png

企业级后端架构的挑战-离在线资源并池

核心收益:
· 降低物理资源成本
· 提供更多的弹性资源,增加收入
解决思路:离在线资源并池
-在线业务的特点
·IO密集型为主
·潮汐性、实时性
-离线业务的特点
·计算密集型占多数
·非实时性

image.png

问题:同一个机器怎么做离在线隔离 CPU隔离?

企业级后端架构的挑战-自动扩缩容

核心收益: 降低业务成本
解决思路: 自动扩缩容
利用在线业务潮汐性自动扩缩容

image.png 问题:扩缩容依据什么指标 CPU某一个统计的分位数。例如:p50;若是内存方面要求,需综合考量;IO隔离比较困难

企业级后端架构的挑战-微服务亲和性部署

两个部门的紧密通信,如何降低通信成本
核心收益:
降低业务成本
提高服务可用性
解决思路: 微服务亲合性部署
将满足亲合性条件的容器调度到一台宿主机
微服务中间件与服务网格通过共享内存通信
服务网格控制面实施灵活、动态的流量调度

企业级后端架构的挑战-流量治理

核心收益:
提高微服务调用容错性
容灾
进一步提高开发效率,DevOps发挥到极致
解决思路:基于微服务中间件&服务网格的流量治理
熔断、重试(单次请求失败)
单元化(一个请求不会影响另一个)
复杂环境(功能、预览)的流量调度

企业级后端架构的挑战-CPU水位负载均衡

核心收益
打平异构环境算力差异
为自动扩缩容提供正向输入
解决思路:CPU水位负载均衡
laas·提供资源探针
服务网格·动态负载均衡

image.png 当两个B容器的CPU能力不同时,根据宿主机进行资源探针等,合理分配算力。

后端架构实战

问题背景

兰师傅蛋糕店也碰到了类似的问题
·不同师傅干活的效率差距较大
·有些师傅希望「能者多劳多挣」
——在这个背景下,继续像之前一样为每个师傅分配完全相同的工作,会引起他们的不满。

  • 回到挑战————CPU水位负载均衡,应该如何设计? ——需要哪些输入 ——设计时需要考虑哪些关键点?

后端架构实战-问题提炼

输入
-服务网格数据面
·支持带权重的负载均衡策略
-注册中心存储了所有容器的权重信息
-宿主机能提供
容器的资源使用情况、物理资源信息(如CPU型号)
关键点
紧急回滚能力、大规模、极端场景

image.png

后端架构实战-自适应静态权重

方案
采集宿主机物理资源信息
调整容器注册的权重
image.png 优势
复杂度低
完全分布式,可用性高
微服务中间件无适配成本
缺点: 无紧急回滚(调错了)、能力缺乏运行时自适应能力

后端架构实战-自适应权重Alpha

方案
容器动态权重的自适应调整
服务网格的服务发现&流量调度能力

image.png 演进方向
解决无法紧急回滚的问题
运行时权重自适应
缺点: 过度流量倾斜可能会有异常情况

后端架构实战-自适应权重Beta

方案
服务网格上报RPC指标

image.png 演进方向: 极端场景的处理成为可能
缺点: 时序数据库压力较大
动态权重决策中心职责越来越多,选代->变更->风险

后端架构实战-自适应权重Release

演进方向
微服务化
引入消息队列削峰、解耦
离在线链路切分
梳理强弱依赖 image.png

结语

image.png