这一章来到了系统的架构设计相关内容。架构设计从来都是一个宏大的题目,从一般的思路上来讲,都是了解现状,发现问题,找出解决方案,落地实施这样几步。
老师介绍了目前互联网应用一般会面临的几个问题
解决问题一般有两个方向:
- 垂直伸缩 scale-up
- 水平伸缩 scale-out
互联网架构,一般都是一个演进的过程,由简单的,能最快上线,满足基础业务需求的系统,随着业务的不断发展,演进成一个复杂的系统架构。
架构设计的三个原则(https://time.geekbang.org/column/article/7071):
1.合适原则
合适原则宣言:“合适优于业界领先”。
2.简单原则
简单原则宣言:“简单优于复杂”。
3.演化原则
演化原则宣言:“演化优于一步到位”。
老师总结的架构演进的9步:
- 最简单的互联网架构
- 应用数据分离
- 使用缓存改善系统性能
- 使用应用服务器集群改善系统的并发处理能力
- 数据库读写分离
- 使用CDN和反向代理加速网站响应
- 使用分布式文件系统和分布式数据库
- 使用NoSQL和搜索引擎
- 业务拆分
- 微服务及中台化
常用的架构模式:
- 分层
- 分割
- 分布式
- 集群
- 缓存
- 异步
- 冗余
- 自动化
- 安全
互联设计的核心要素:
- 高性能
- 高可用
- 可伸缩
- 可扩展 =》事件驱动、分布式服务
- 安全
互联网的技术架构