架构初探 | 青训营笔记

80 阅读2分钟

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

一、什么是架构

1、定义

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

2、单机

软件系统需要具备对外提供服务,单机,就是把所有功能都集中到一个进程中,实现起来相对简单,但维护更困难

3、垂直应用架构

定义:按应用垂直切分的单体
优点:

  • 水平扩容
  • 运维不需要停服 问题:
  • 职责太多,开发效率不高
  • 爆炸半径大

4、SOA

SOA:

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

5、微服务架构

将SOA进行去中心化演进

二、企业级后端架构剖析

1、云计算

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

  • 基础
    • 虚拟化技术
    • 编排方案
  • 架构
    • Iaas
    • Paas
    • Saas
    • Faas

2、云原生

  • 弹性资源:虚拟化容器、快速扩缩容
  • DevOps:敏捷开发、CI/CD
  • 微服务架构:业务功能单元解耦、统一的通信标准
  • 服务网格:业务与治理解构、异构系统的治理统一化、复杂治理能力

三、企业级后端架构的挑战

1、问题

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

2、离在线资源并池

  • 在线业务特点
    • IO密集型为主
    • 潮汐性、实时性
  • 离线业务特点
    • 计算密集型占多数
    • 非实时性

收益:降低物力资源成本、提供更多弹性资源

3、自动扩缩容

利用在线业务潮汐性自动扩缩容,可以降低业务成本

4、微服务亲和性部署

  • 将满足亲和性条件的容器调度到一台宿主机
  • 微服务中间件与服务网格通过共享内存通信
  • 服务网格控制面板实施灵活、动态的流量调度

收益:降低业务成本、提高服务可用性

5、流量治理

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

收益:提高微服务调用容错性、容灾、进一步提高开发效率