架构师训练营 - 第 4 周总结
1. 大型互联网系统面临的挑战
高并发、大流量
高可用
海量数据
用户分布广泛、网络情况复杂
安全环境恶劣
需求快速变更、发布频繁
2. 应对挑战的两个技术方向
垂直伸缩:通过升级硬件和网络吞吐能力(短期伸缩性方案)。具有如下缺点:
达到某个程度后、增加计算能力需要更多的花费
垂直伸缩有物理极限。
操作系统的设计或应用程序自身制约着垂直伸缩最多只能达到某个点。
水平伸缩:通过增加服务器提升计算能力,可克服垂直伸缩带来的单位计算成本随计算能力增加而迅速飙升的问题。
3. 互联网架构演化
第零阶段:最简单的互联网应用架构,应用服务器承载了应用程序、文件和数据库。
第一阶段:将应用于数据进行分离。
第二阶段:使用缓存改善系统性能。
第三阶段:使用应用服务器集群改善系统的并发处理能力。
第四阶段:数据库读写分离。
第五阶段:使用反向代理和CDN加速网站响应。
第六阶段:使用分布式文件系统和分布式数据库系统,
第七阶段:使用Nosql和搜索引擎。
第八阶段:业务拆分。
第九阶段:微服务及中台化。
第十阶段:大数据与人工智能化。
5. 互联网架构模式
分层:将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖调用组成一个完整的系统。
分割:在纵向方向对系统进行切分,将系统不同功能和服务分割,包装成高内聚低耦合的模块单元,一方面有助于软件的开发和维护,另一方面便于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力。
分布式:将数据、资源摊分到更多的计算机,计算机越多,CPU、内存、存储资源越多,能够处理并发访问和数据量越大。
集群:将独立部署的服务器集群化,多台服务器部署相同应用构成集群,通过负载均衡设备共同对外提供服务。
缓存:将数据存放在距离计算最近的位置加快处理速度。如CDN、反向代理、本地缓存、远程分布式缓存。
异步:将一个业务操作分成多个阶段,每个阶段通过共享数据而不是直接调用的方式进行协作。如消息队列。
冗余:互联网应用需要7*24小时连续运行,但是服务器总会发生故障,要想保证服务器宕机的情况下网站依然可用,数据不会丢失,需要一定程度的服务器冗余运行,数据的冗余备份。
自动化运维:无人值守下,系统故障的自动恢复、自动预警、自动监控。
安全:授权、认证、加解密、常用攻击手段的屏蔽、风控。
6. 互联网核心要素
高性能
高可用
可伸缩
可扩展
安全
7. 互联网架构图
评论