青训营伴学笔记——架构 | 青训营笔记

41 阅读2分钟

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

01.什么是架构

架构又称软件架构,是关于软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。

单机

单机就是所有功能呢个实现在一个进程中,并部署在一台机器上。

|优点|缺点|


简单|运维需要停服 | |C10K问题

单体架构、垂直应用|垂直切分

单体架构:分布式部署

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

|优点|缺点|


水平扩容|职责太多,开发效率低 | 运维不需要停服|爆炸半径大

SOA、微服务|水平切分

SOA面向服务架构(Service-Oriented Architecture)将应用的不同功能单元抽象为服务,定义了服务之间的通信标准。

|优点|缺点|


各服务的职责更清晰|ESB (企业服务总线) 往往需要一整套解决方案 | 运维粒度减小到服务,爆炸半径可控 |

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

|优点|缺点|


兼具 SOA 解决的问题|运维成本高 | 服务间的通信更敏捷、灵活|数据一致性问题 | |高可用性问题 | | 容灾问题

小结

架构演进:

需求量变大 -> 增加人手

越来越复杂 -> 分工合作

架构越来越大 -> 切分(垂直切分和水平切分两种)

02 后端架构剖析

随着发展,积累了越来越多的用户,接下来需要扩大规模。

店面(硬件)扩展 -> 买/租?

师傅增加 -> 自己全家/招收科班?

工作重心 -> 提高质量/扩大规模(流水线化)?

云计算

云计算:通过软件自动化管理,听哦高能个计算资源的服务网络,是现代互联网大规模数据分析和存储的基石。

基础:

虚拟化技术: 整租/合租

编排方案:业主/租赁平台

云架构:

  • IaaS - 云基础设施,对底层硬件资源池的抽象 (买房/租赁平台)

  • PaaS - 基于资源池抽象,对上层提供的弹性资源平台 (清包/全包)

  • SaaS - 基于弹性资源平台构建的云服务 (从零培训/雇佣培训过的师傅)

  • FaaS - 更轻量级的函数服务。好比 LeetCode 等 OJ,刷题时只需要实现函数,不需要关注输入输出流(手工制作/蛋糕机批量生产)

弹性资源类型

服务资源调度:

  • 微服务:小的组件
  • 大服务:比较大的组件

计算资源调度:

  • 在线:热销榜单
  • 离线:热销榜单更新

消息队列:

  • 在线:削峰、解偶
  • 离线:大数据分析