架构初探 | 青训营笔记

128 阅读2分钟

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

1.本堂课重点内容

  • 什么是架构
  • 单机架构
  • 单体架构
  • 垂直应用架构
  • SOA架构
  • 微服务
  • 架构的演进

2. 什么是架构

2.1 简介

架构,又称软件架构

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

2.3 架构的重要性

架构就像是房子的地基,地基坚实了大厦才能盖的更高,入住更多的人。

3. 单机架构

3.1 简介

单机架构就是把所有的功能都实现在一个进程里,并部署在一台机器上。

3.2 优点

  • 简单

3.3 问题

  • c10k 问题
  • 运维需要停服

3.4 类比蛋糕店的架构图

图片.png

4. 单体架构

4.1 简介

单体架构就是在单机架构的基础上进行水平扩展

4.2 优点

  • 水平扩容
  • 运维不需要停服

4.3 问题

  • 职责太多,开发效率不高
  • 爆炸半径大

4.4 架构图

图片.png

5. 垂直应用架构

5.1 简介

垂直应用架构就是在单机架构的基础上进行垂直切分

5.2 优点

  • 水平扩容
  • 系统间相互独立,互不影响,新的业务迭代时更加高效

5.3 问题

  • 职责太多,开发效率不高

5.4 架构图

图片.png

6. SOA架构

6.1 简介

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

6.2 问题

  • 数据一致性
  • 高可用
  • 治理
  • 解耦 vs 过微

6.3 架构图

图片.png

7. 微服务架构

7.1 简介

微服务架构是SOA架构的一种拓展,这种架构模式下它拆分粒度更小,服务更独立,把应用拆分一个个微小的服务。 微服务的关键在于微小、独立、轻量级通信

7.2 优点

  • 微服务很⼩,便于特定业务功能的聚焦 A B C D
  • 微服务很⼩,每个微服务都可以被⼀个⼩团队单独实施(开发、测试、部署上线、运维),团队合
  • 作⼀定程度解耦,便于实施敏捷开发
  • 微服务很⼩,便于重⽤和模块之间的组装
  • 微服务很独⽴,那么不同的微服务可以使⽤不同的语⾔开发,松耦合
  • 微服务架构下,我们更容易引⼊新技术
  • 微服务架构下,我们可以更好的实现DevOps 开发运维⼀体化;

7.3 问题

  • 分布式复杂难以管理,当服务量增加,管理越加复杂
  • 微服务架构下,分布式链路跟踪难

7.4 架构图

图片.png

8. 架构的演进

8.1 架构演进的初衷

  • 需求越来越大,增加人手
  • 越做越复杂, 终归要分工合作

8.2 架构的演进思路

  • 垂直切分
  • 水平切分