这一章来到了系统的架构设计相关内容。架构设计从来都是一个宏大的题目,从一般的思路上来讲,都是了解现状,发现问题,找出解决方案,落地实施这样几步。

老师介绍了目前互联网应用一般会面临的几个问题

解决问题一般有两个方向:

  • 垂直伸缩 scale-up
  • 水平伸缩 scale-out

互联网架构,一般都是一个演进的过程,由简单的,能最快上线,满足基础业务需求的系统,随着业务的不断发展,演进成一个复杂的系统架构。

架构设计的三个原则(https://time.geekbang.org/column/article/7071):

1.合适原则

合适原则宣言:“合适优于业界领先”。

2.简单原则

简单原则宣言:“简单优于复杂”。

3.演化原则

演化原则宣言:“演化优于一步到位”。

老师总结的架构演进的9步:

  • 最简单的互联网架构
  • 应用数据分离
  • 使用缓存改善系统性能
  • 使用应用服务器集群改善系统的并发处理能力
  • 数据库读写分离
  • 使用CDN和反向代理加速网站响应
  • 使用分布式文件系统和分布式数据库
  • 使用NoSQL和搜索引擎
  • 业务拆分
  • 微服务及中台化

常用的架构模式:

  • 分层
  • 分割
  • 分布式
  • 集群
  • 缓存
  • 异步
  • 冗余
  • 自动化
  • 安全

互联设计的核心要素:

  • 高性能
  • 高可用
  • 可伸缩
  • 可扩展 =》事件驱动、分布式服务
  • 安全

互联网的技术架构