[ 后端与 Go | 青训营笔记 ]

68 阅读4分钟

[ 后端与 Go | 青训营笔记 ]

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

课内:Go 架构初探

主要框架的简单介绍,便于抓住课程的框架结构,把握节奏。

重点

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

细节

什么是架构

定义:架构,又称软件架构

  • 是有关软件整体结构与组件的抽象描述;
  • 用于指导软件系统各个方面的设计;

image-20230201174619959

单机:将所有功能都实现在一个进程里,并部署在一台机器上

  • 优点:简单;
  • 问题:C10K problem、维护需要停服。

image-20230201175712252

垂直应用:按应用垂直切分的单体

  • 优点:水平扩容、维护不需要停服;
  • 问题:职责太多,开发效率低;爆炸半径大。

image-20230201175950302

SOA、微服务:将应用的不同功能单元抽象为服务,定义服务之间的通信标准。

微服务架构:SOA 的去中心化演进方向。

  • 问题

    • 数据一致性;
    • 高可用;
    • 治理;
    • 解耦、过微。

image-20230201180357883

企业级后端架构剖析

背景

image-20230201180620931

云计算:通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模熟悉分析和存储的基石。

  • 基础;

    • 虚拟化技术;
    • 编排方案;
  • 架构;

    • LaaS;
    • PaaS;
    • SaaS;
    • FeeS;

image-20230201181008891

云原生:为组织在公有云、自由云、混合云等新型动态环境中,构建和运行可弹性拓展的应用提供了可能。

image-20230201181233829

  • 弹性计算资源类型:将存储资源当成服务一样;

image-20230201181328073

image-20230201181359890

  • DevDps 是云原生时代软件交付的利器,贯穿整个软件开发周期;

image-20230201181548225

  • 微服务架构:不必在业务逻辑中实现符合通信标准的交互逻辑,而是交给框架来做;

image-20230201181636388

  • 服务网格;

image-20230201182021349

云原生蛋糕店

  • 企业级蛋糕店架构;

    • 售卖;
    • 制作;
    • 会员激励;
    • 满意度分析;
    • 研发新品;

image-20230201182158207

企业级后端架构的挑战

挑战

  • 基础设施层面

    • 物理资源是有限的;

      • 机器;
      • 带宽;
    • 资源利用率受制于部署服务;

  • 用户层面

    • 网络通信开销较大;
    • 网络抖动导致运维成本提高;
    • 异构环境下,不同实例资源水位不均;

image-20230201182610941

离在线资源并池

image-20230201182714510

自动扩缩容

  • 核心收益:

    • 降低业务成本;
  • 利用在线业务潮汐性自动扩缩容;

image-20230201182901264

微服务亲和性部署

  • 提高服务可用性

image-20230201182958123

流量治理

  • 核心收益

    • 提高微服务调用容错性;
    • 容灾;
    • 进一步提高开发效率;
  • 解决思路:基于微服务中间件 & 服务网格的流量治理

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

CPU 水位负载均衡

image-20230201183350461

实战

image-20230201183441845

image-20230201183451748

image-20230201183522395

image-20230201183542688

image-20230201183605846

image-20230201183619461

总结

对架构有了一定的了解。