【笔记向】后端入门--开发与迭代--7.后端架构实战(流水账式)(代听课系列) | 青训营

67 阅读3分钟

课程目录

01.什么是架构

√:了解抽象定义、问题、演进、例子。

02.企业级后端架构解析

->对企业中(后端)架构的剖析,看架构在企业里是一个什么样的“玩法”。

03.企业级后端架构挑战

->企业面临的(后端)架构挑战是什么?工作中如何解决?

04.后端架构实战

->用一个例子说明:架构中一个问题的产生到解决,的实践过程。

04. 后端架构实战

4.0 问题提炼

  • 前情回顾:

    • 背景:

      • 用“CPU水位不均的案例”做联想
    • 引例:

      • 开的蛋糕店碰到了类似的问题:
        • 不同师傅干活效率差距较大
        • 有些师傅希望“能者多劳多挣”,又有师傅“太多工作吃不消”
      • 在这个背景下,继续像之前一样为每个师傅分配完全相同的工作,会引起他们的不满......
    • Q&A:CPU水位负载均衡,应该如何设计?

      1. 明确:需要哪些输入(明确哪些师傅干活效率高?->明确师傅们的干活效率的分布)
      2. 考虑:设计时需要哪些关键点(1.即使调整后,也不一定是固定的任务量。同一师傅的每天任务可能存在动态变化。比如今天干活效率高,明天身体不适如果还给那么多活,会出问题。2.系统做决策时需要动态更新的问题,比如容灾问题)
  • (提炼出的)层次图: 开发与迭代-问题提炼.jpg

  • 输入:

    • 数据网格数据面(需要使用 服务网格 的灵活调动能力)
      • 支持带权重的负载均衡策略(同时服务网格自带~)
    • 注册中心存储了所有容器的权重信息(和服务发现的结果。eg.注册中心可以显示:在上面这个宿主机的伏安结果是什么、权重是多少,在下面对应的这个宿主机的伏安结果、权重)
    • 宿主机能提供()
      • 容器的资源使用情况(我们需要知道:不同师傅干活的能力,才能帮他们调整工作量。)
      • 物理资源信息(如CPU型号) (还需要~帮我们做辅佐资源决策。eg.有时候知道CPU型号 可以知道 这款CPU一定能承载 多少KPS之类的后续分析结果,能对后续分析做非常好的输入)
  • 关键点:

    • 紧急回滚能力(假如调动系统出了问题)
    • 大规模()
    • 极端场景()

4.1 后端框架实战-问题提炼

  • 层次图: 开发与迭代-自适应静态权重.jpg

  • 方案:

    • 采集宿主物理资源信息()
    • 调整容器注册的权重()
  • 优势:

    • 复杂度低()
    • 完全分布式,可用性高()
    • 微服务中间件无适配成本()
  • 缺点:

    • 无紧急回滚能力()
    • 缺乏运行时自适应能力()

4.2 后端框架实战-自适应动态权重 Alpha

  • 层次图: 开发与迭代-自适应动态权重Alpha.jpg

  • 方案:

    • 容器动态权重的自适应调整()
    • 服务网格的服务发现 & 流量调度能力()
  • 演进方向:

    • 解决无法紧急回滚的问题()
    • 运行时权重自适应()
  • 缺点:

    • 过度流量倾斜可能会有异常情况()

4.3 后端框架实战-自适应动态权重 Beta

  • 层次图: 开发与迭代-自适应动态权重Beta.jpg

  • 方案:

    • 服务网格上报RPC指标()
  • 演进方向:

    • 极端场景的处理成为可能()
  • 缺点:

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

4.4 后端框架实战-自适应动态权重 Release

  • 层次图: 开发与迭代-自适应动态权重Release.jpg

  • 演进方向:

    • 微服务化()
    • 引入消息队列削峰、解耦()
    • 离在线链路切分()
    • 梳理强弱依赖()

4.5 尾声

  1. 没有最好的架构,只有最合适的架构
  2. 如何做架构设计
    • 需求先行。弄清要解决什么问题()
    • 业界调研。业界都有哪些解决方案可供参考()
    • 技术选型。內部/社区都有哪些基础组件()
    • 异常情况。考虑清楚xxx不行了怎么办()
  3. 架构与工程师成长
    • 技术经理()
    • 架构师()