初探架构 | 青训营笔记

45 阅读3分钟

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

目录

  • 架构初探-谁动了我的蛋糕
    • 什么是架构
    • 企业级后端架构剖析
    • 企业级后端架构的挑战
    • 后端架构实战

什么是架构

架构,又称软件架构

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

我个人理解就是就是软件的整体设计,比如修建房屋之前需要先设计好,否则修一点加一点,就容易弄的乱七八糟。除了设计,应该还有对于软件维护和运营的考虑和规划。

单机
把所有功能都实现在一个进程里,并部署在一台服务器上。优点是简单,缺点是运维需要停服C10k problem(单机所能处理的最大请求10k,最早的单机系统是一个tcp分配一个线程)

单体、垂直应用|垂直切分
单体架构:分布式部署
垂直应用架构:按应用垂直切分的单体
优点是:可以水平扩容,运维不需要停服,缺点是:职责太多,开发效率不高,爆炸半径大(一个环节故障了,其他组件可能也无法进行服务)

SOA、微服务|水平切分
SOA(Service-Oriented Architecture)面向服务的体系结构

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

微服务架构:SOA去中心话演进方向

Problem:

  • 数据一致性
    • 前台收到的蛋糕数和后台制作的一致吗
  • 高可用
    • 这么多师傅,如何合作
  • 治理
    • 烤箱坏了,怎么容灾
  • 解耦 vs 过微
    • 运维成本高了,值得吗

image.png

架构演进的初衷:好比做蛋糕

  • 需求量越大,人数也需要更多
  • 推出越多的蛋糕种类,终归要分工合作

架构演进的思路:随着项目发展的更大,终归要进行水平和垂直切分

企业级后端架构剖析

当蛋糕店需要进行扩大时就会出现如下问题:

  • 店面是租还是买
  • 如何去找更多的蛋糕师傅 (增添人员)
  • 是否继续纯手工制作(改变服务质量)
  • 以后的作重心:
    • 提高收益
    • 梳理方向 & 进行规范

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

  • 虚拟化技术 整租 vs 合租
  • 编排方案 业主 vs 房屋租赁平台

架构:

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

云原生之弹性计算资源

  • 服务资源调度
    • 微服务: 和面、雕花
    • 大服务: 烤箱
  • 计算资源调度
    • 在线: 热销榜单
    • 离线: 热销榜单更新
  • 消息队列
    • 在线: 削峰、解耦
    • 离线: 大数据分析

云原生之弹性存储资源

把存储资源当成服务

  • 经典
    • 对象: 宣传视频
    • 大数据: 用户消费记录
  • 关系型数据库
    • 在线: 收银记录
  • 元数据
    • 服务发现: 蛋糕店通讯录
  • NoSQL
    • KV: 来个 xx 蛋糕

云原生之微服务架构
通信标准:

  • HTTP (RESTful API)
  • RPC (Thrift gRPC)

云原生场景下,微服务不必在业务逻辑中实现符合通信标准的交互逻辑,而是交给框架来做。

企业级后端架构的挑战

挑战

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