架构|青训营笔记

100 阅读3分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第2篇笔记。 1.定义

软件架构,关于整体结构和组件的抽象描述——指导方法选择——地基

2.不同架构

(1)单体——垂直切分架构

(2)SOA(Service-Oriented Architecture)、微服务|水平切分

将不同的功能单元抽象为服务

定义服务之间的通信标准

3.架构分析

(1)云计算:通过软件自动化管理,提供计算资源的服务网络

架构:

IaaS(买房子 vs 房屋租赁平台)

PaaS(清包 vs 全包)

SaaS(从零培训 vs 培训过的师傅)

FaaS(纯手工 vs 蛋糕机批量生产)

(2)云原生

虚拟化技术的集合 (弹性资源、微服务架构、DevOps、服务网格)

微服务:通信标准(HHTP & RPC)

4.企业级后端挑战

(1)离在线资源并池(降低物理资源成本/提供更多弹性资源)

在线业务:IO密集型为主/潮汐性、实时性

离线业务:计算密集型占多数/非实时性

自动扩缩容:利用在线业务潮汐性自动扩缩容

Q1:同一个机器怎么做离在线隔离?

A:虚拟化/容器(Cgroup),对CPU核心做隔离

Q2:扩缩容依据什么指标?

A:对微服务,cpu是黄金指标,偶尔会根据需要结合内存,基于IO做扩缩很难

(2)微服务亲合性部署(降低业务成本/提高服务可用性)

a.将满足亲和性条件的容器调度到一台宿主机(比如有大量通信关系)

b.微服务中间件与服务网格通过共享内存通信

c.服务网格控制面实施灵活、动态的流量调度

(3)流量治理(提高微服务调用的容错性/容灾/进一步提高开发效率,DevOps发挥到极致)

熔断、重试/单元化/复杂环境的流量调度

(4)CPU水位负载均衡(打平异构环境算例差异/为自动扩缩容提供正向输入)

IaaS:提供资源探针

服务网格:动态负载均衡

5.后端架构实践

输入(紧急回滚能力/大规模/极端场景):

服务网格数据面:支持带权重的负载均衡策略

注册中心存储了所有容器的权重信息

宿主机提供:容器的资源使用情况/物理资源信息(如CPU型号)

(1)自适应静态权重

方案:采集宿主机物力资源信息/调整容器注册的权重

优势:复杂度低/完全分布式,可用性高/微服务中间件无适配成本

缺点:无禁忌回滚能力/缺乏运行时自适应能力

(2)自适应动态权重Alpha

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

演进方向:解决无法紧急 回滚的问题/运行时权重自适应

缺点:过度流量倾斜可能会有异常情况

(3)自适应动态权重Beta

方案:服务网格上报RPC指标

演进方向:极端场景的处理成为可能

缺点:时序数据库压力较大/动态权重决策中心职责越来越多,迭代->变更->风险

(4)自适应动态权重Release

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