后端 架构初探-谁动了我的蛋糕 day 9 | 青训营笔记

133 阅读3分钟

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

今日笔记内容: 架构初探-谁动了我的蛋糕

架构, 又称软件架构, 是指有关软件整体结构与组件的抽象描述, 用于指定软件系统各个方面的设计, 就像大厦的地基, 支撑着后续功能的开发.

蛋糕坊架构演进

  • 如何做蛋糕: 亲力亲为
  • 如何卖蛋糕: 亲力亲为, 边做边卖

单机架构: 系统所有功能都部署在一台机器上

  • 优点: 简单
  • 缺点: 无法突破性能瓶颈, 运维需要停机重启

垂直应用|垂直切分

引入大堂经理作为路由网关角色, 将用户请求根据负载均衡策略分流到后端服务中. 后端服务可以依据职责划分, 也可以根据请求直接划分

  • 优点: 水平扩容, 运维不需要全部关闭机器
  • 缺点: 职责太多, 开发效率不高

SOA, 微服务| 水平切分

![[Pasted image 20230201134456.png]]

SOA既Service-Oriented Architecture, 该架构包含两个关键思想

  1. 服务: 将应用不同独立的功能单元抽象为服务
  2. 通信标准: 定义服务间的接口, 接口携带的数据及编码格式 微服务架构为SOA的去中心化演进方向

云计算

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

基础:

  • 虚拟化技术 - 整租/合租, 常用技术有硬件虚拟化(虚拟机), 操作系统虚拟化(容器技术), 网络虚拟化
  • 编排方案 - 业主/租赁平台

架构:

  • IaaS(Infrastructure as a Service): 基础设施既服务, 向租户直接提供操作系统, 硬盘等硬件资源
  • PaaS(Platform as a Service): 平台既服务
  • SaaS(Software as a Service): 软件既服务
  • FaaS(Function as a Service): 函数既服务, 最低粒度的云计算资源, 每次调用一次函数作为一次服务

云原生

云原生技术是组织在公有云, 自由云, 混合云等新型动态环境中, 构建和运行可弹性扩展的应用技术栈.

![[Pasted image 20230201140513.png]]

弹性资源

计算资源:

  • 服务资源调度
  • 计算资源调度
  • 消息队列 存储资源:
  • 经典, 对象存储/大数据
  • 关系型数据库: 收银记录
  • 元数据: 服务发现
  • NoSQL: KV

DevOps

DevOps是Developement+Operation两个单词的合成, 将传统的开发过程与软件交付过程结合, 通过自动化流程, 串联起了整个软件开发周期, 提升软件开发和交付的效率.

微服务架构

常见的通信标准有

  • HTTP(RESTful API), 向外提供服务
  • RPC(Thrift, Protobuf等), 服务间互相调用

服务网格

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

相对于RPC/HTTP框架的优势在于

  • 异构系统治理统一化
  • 与业务进程解耦, 生命周期易管理

![[Pasted image 20230201141833.png]]