课程二:架构初探 - 谁动了我的蛋糕课前 | 青训营笔记

86 阅读2分钟

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

思考题

  1. 软件架构演进至今都有哪些形态?它们分别解决了什么问题?仍然存在什么问题?

  2. 云计算有哪些基础技术?云计算服务的形态又有哪些?

  1. 云原生是什么?它跟云计算的关系是?

  2. 云原生的代表技术有哪些?

    • 弹性资源

      • 计算资源
      • 存储资源
    • 微服务架构

      • 通信协议
      • 中间件
    • DevOps

      • 软件生命周期
    • 服务网格

  3. 企业级后端架构面临的挑战有哪些?

    • 离线任务
    • 在线任务
    • IO 密集型
    • CPU 密集型
    • 服务治理
    • IPC (Inter-Process Communication)
    • RPC (Remote Procedure Call)

    总结

    各软件架构的优缺点与简介

形态优点缺点简介
单机
  • 简单
  • 运维需要停服,用户体验较差
  • 承载能力有限。了解下 c10k 问题
All in one,所有的东西都在一个进程里,部署在一个机器上。
单体
  • 具备水平扩容能力
  • 运维不需要停服
  • 后端进程职责太多,越来越臃肿
  • 爆炸半径较大,进程中一个很小的模块出现问题,都可能导致整个进程崩溃
在单机架构的基础上,将进程部署到多个机器上。
垂直应用
  • 一定程度上减少了后端进程职责
  • 一定程度上缩小爆炸半径
  • 没有根本解决单体架构的问题
在单机架构基础上,将进程按照某种依据切分开。比如,A 软件和 B 软件的后端原先采用单机架构部署,那就是一个进程部署在多个机器上;如果用垂直应用架构,可以将 A 和 B 的后端拆分为 A、B 两个进程,然后再按照单体模式的思路,部署在多个机器上。
SOA(Service Oriented Architecture,面向服务架构)
  • ESB (企业服务总线) 往往需要一整套解决方案
  • 各服务的职责更清晰
  • 运维粒度减小到服务,爆炸半径可控
SOA 架构中,服务为一等公民,将进程按照不同的功能单元进行抽象,拆分为『服务』。有了服务之后,SOA 还为服务之间的通信定义了标准,保证各个服务之间通讯体验的一致性。
微服务(Microservice)
  • 兼具 SOA 解决的问题
  • 服务间的通信更敏捷、灵活
  • 运维成本高
在 SOA 架构中,ESB 起到了至关重要的作用。但从架构拓扑来看,它更像是一个集中式的模块。有一个 SOA 分布式演进的分支,最终的形态便是微服务。

标题:【后端专场 学习资料三】第五届字节跳动青训营 - 掘金

网址:juejin.cn/post/719336…