企业后端架构 | 青训营笔记

105 阅读3分钟

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

架构演化

  1. 单机架构
  • 优点:简单
  • 缺点:c10K问题,服务能力有限;单机挂,服务挂

继续演化:克服上述缺点,提高服务能力 2. 单体架构

  • 分布式部署
  • 每个单体没有分工,都是一个完整的单机应用 垂直应用架构:对应用进行切分,每个单体有自己的分工
  • 优点:水平扩容;运维不需要停服
  • 问题:职责太多,开发效率不高;爆炸半径大(每个单体的职责还是不够专注)

继续演化:细化分工,提高效率 3. SOA架构,微服务|水平切分 SOA(service-Oriented Architecture):去中心化

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

问题:

  • 数据一致性
  • 高可用
  • 治理
  • 解耦和过微

企业后端架构

云计算

通过软件自动化管理,提高计算资源的服务网络。

基础

  • 虚拟化技术
  • 编排方案

架构

  • IaaS (infrastructure as a service)
    • 基础设施租赁,屏蔽物理设施,只关心资源本身
  • PasS (Platform as a Service)
    • 所有的运维,建设,等均全包
  • SaaS (Software as a Service)
    • 提供了软件服务
  • Fass (Function as a Service)
    • 云函数,更关心业务

云原生

为组织在公有云,自由云,混合云等动态环境中,构建和运行可弹性拓展的应用

image.png

  • 弹性资源:虚拟扩容,快速扩容

    • 服务资源调度:微服务;大服务
    • 计算资源调度:在线,热榜;离线,热榜数据更新
    • 消息队列:在线,削峰,解耦;离线,大数据分析
    • 存储资源:
      • 对象存储,大数据存储
      • 关系数据库,收银记录
      • 元数据,服务发现
      • NoSql,KV值
  • 微服务架构:业务功能单元解耦,统一通信标准

    • 通信标准:HTTP(Restful api);RPG(thrift,gRPC) image.png
  • DevOps:敏捷开发,CICD

    • 软件交付
  • 服务网格:业务与治理结构,异构系统治理统一,复杂治理能力

    • 服务网格:
      • 微服务之间通信的中间层
      • 高性能网络代理
      • 业务代码和治理解耦

image.png

企业级后端结构的挑战

挑战:

  • 基础设施:物理资源有限(设备,带宽),资源利用率受制于部署服务
  • 用户:网络通信开销大;网络抖动导致运维成本高,异构环境,不同实例资源水位不均

离在线资源并池

收益:降低物理资源成本;提供更多弹性资源,增加收入

image.png

结合在线业务和离线业务的特点,进行并池

  • 在线业务:io密集为主,潮汐性,实时性
  • 离线业务:计算密集任务,非实时业务

自动扩缩容

扩缩容指标:微服务可以按CPU来按照指标

微服务亲和性部署

  • 降低业务成本
  • 提高服务可用性

将满足亲和性条件的容器调度到一台宿主机

image.png

微服务中间件和服务网格通过内存通信等IPC通信方案

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

流量治理

基于微服务中间件&服务网格的流量治理

CPU水位负载均衡

  • IaaS:提供资源探针
  • 服务网格:动态负载均衡

后端架构实战

image.png

自适应静态权重

image.png

自适应动态权重

image.png

image.png

image.png