架构师训练营 Week4 作业
1、一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
以淘宝网为案例,介绍大型互联网系统采用哪些技术方案和手段:
淘宝初期架构非常简单,简单的LAMP架构,MySql读写分离
到后来随着业务量的增加,为了业务的数据安全和存储,引入了oracal
04年的时候,PHP已经完全不能满足业务的需求了,需要寻求新的解决方案,为此引入Java技术栈
可以由图中看出,随着业务量的增加,系统架构是变得越来越复杂的,例如引入了项目管理工具AntX,引入了搜索引擎等
06年左右的时候,对系统进行重构,改了大量的系统
这里最大的变化就是增加了缓存系统,为了提高系统的响应速度。
07年左右发现原来的单体架构已经完全无法满足需求了,由此引入了分布式架构。
08年后的淘宝架构更复杂,业务量需求也更大,由此可见,系统的架构演化是随着业务量的变化而变化的,都是为了提高系统的高可用和高吞吐量以及高性能。
因此08前淘宝就已经开始进行业务中心化,例如拆分系统,拆分数据库,组织结构支持(垂直化,产品化,服务化)。
业务中心化后,系统架构中,系统职责清晰、分工明确,可维护性良好,具有了可扩展性。但是,新的问题随之出现,系统的稳定性面临着严峻的挑战。
应用拆分、增加变得不可控
系统依赖关系越来越复杂
业务上有了新的发展,秒杀变得流行。
因此,就出现了监控系统,时刻为系统的稳定性保驾护航。
系统监控
容量规则
简化系统结构
关键系统的优化,提升QPS
由以上例子可以得知,一个大型系统基本具有以下特征:
分层:每个部分负责一部分相对比较单一的职责
分割:将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,有助于软件开发和维护,提高系统的并发处理能力和功能扩展能力。
分布式:计算机越多,CPU、内存、存储资源也就越多,能够处理并发访问和数据量就越大。
集群:提高系统的服务能力
缓存:加快系统的处理速度,从而提高性能
异步:提高系统可用性,消除并发访问高峰
冗余:提高系统的可用性
自动化:自动化运维,减轻运维压力
安全:维护系统的安全,保护数据的隐私。
完。
评论