架构解析 | 青训营笔记

145 阅读3分钟

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

什么是架构

  • 单机架构: 所有功能实现在一个进程里,部署在一台机器上

    image.png

垂直切分

  • 单体架构: 分布式部署

    image.png

  • 垂直应用架构: 按应用垂直切分的单体

    image.png

水平切分

  • SOA(Service-Oriented Architecture)

    • 应用的不同功能单元抽象为服务
    • 定义服务之间的通信标准

    image.png

  • 微服务框架(SOA的去中心化演进方向)

    image.png

企业级后端架构剖析

云计算

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

基础:

  • 虚拟化技术
  • 编排方案

架构:

  • IaaS(Infrastructure as a Service)
  • PaaS(Platform as a Service)
  • SaaS(Software as a Service)
  • FaaS(Function as a Service)

云计算可以让项目更注重业务方面的服务,而不需要过多关注业务背后的运行程序

云原生

image.png

弹性资源类型:

  • 消息队列
    • 在线:
      • 消除短时访问数量的峰值(缓冲作用)
      • 解耦合,用户只需要把信息发送到消息队列,不需要分析消息队列如何消费消息
    • 离线:
      • 大数据分析
  • 服务资源调度:
    • 微服务
    • 大服务:占用资源较多的服务
  • 计算资源调度:
    • 在线
    • 离线
  • 关系数据库
  • 元数据
    • 服务发现
  • NoSQL(非关系型的数据库)
    • kv(key-value)方式存储数据,例如redis

DevOps:用于提高软件开发、交付的效率,贯穿整个软件开发周期

image.png

微服务架构:

  • 通信标准:
    • http
    • rpc

image.png

服务网格(Serveice Mesh):

  • 微服务之间的通讯的中间层
  • 业务代码与治理解耦
  • 高性能网络代理

相比于HTTP/RPC框架:

  • 分离于业务进程之外
  • 异构系统治理统一化

image.png

企业级后端架构遇到的挑战

  • 基础设施
    • 物理资源受限
      • 带宽
      • 机器
    • 资源利用率受制于部署服务
  • 用户层面
    • 网络通信开销大
    • 网络抖动导致运维成本提高
    • 异构环境下资源水位不同

资源水位不同的解决方案:离在线资源池合并

在线业务大多是IO密集型任务、具有潮汐性和实时性的特点;离线业务大多是计算密集型任务,不具有实时性

可以使用自动扩缩容的方式管理在线资源和离线资源的大小

微服务亲和性部署:

image.png

  • 满足亲和性条件的调度到同一台宿主机中
  • 微服务中间件和服务网格使用共享内存通信
  • 服务网格控制面使用流量调度

CPU水位负载均衡: 增加一个资源探针,用来查看不同宿主机的CPU资源占用比率,调整流量,使得CPU占用率基本相平

image.png