写在前面
传统的企业应用系统主要面对的技术挑战是处理复杂凌乱、千变万化的所谓业务逻辑,而大型网站主要面对的技术挑战是处理超大量的用户访问和海量的数据处理;前者的挑战来自功能性需求,后者的挑战来自非功能性需求;功能性需求也许还有“人月神话”聊以自慰,通过增加人手解决问题,而非功能需求大多是实实在在的技术难题,无论有多少工程师,做不到就是做不到。IT系统应用于企业管理已有超过半个世纪的历史,人们在这方面积累了大量的知识和经验(架构模式,领域分析,项目管理),而真正意义,上大型网站从出现至今不过短短十多年的时间,很多技术挑战还在摸索阶段。市面上关于传统企业应用开发的书籍汗牛充栋,而真正能够深入全面地阐述大型网站技术架构关于传统企业应用开发的书籍汗牛充栋,而真正能够深入全面地阐述大型网站技术架构的图书寥寥无几。所以很多人就很困惑:为什么很多看起来不是很复杂的网站,比如Facebook、淘宝,都需要大量顶尖高手来开发呢?
值得庆幸的是,作者为我们带来了这本《大型网站技术架构:核心原理与案例分析》,比较全面地阐述了大型网站的主要技术挑战和解决方案。宏观层面上,将网站架构的演化发展、架构模式、核心要素一- -道来;微观层面上,将网站架构常用的分布式缓存、负载均衡、消息队列、分布式服务、甚至网站如何发布运维都逐一-进行 了阐述。大型网站的技术之道尽在于此。
作者在阿里巴巴工作期间,一方面参与基础技术平台产品开发,一方面参与网站架构设计,这些经历使作者能够比较全面地从理论和实践两个视角去看待和描述网站架构。书中的技术内容基本都从为什么( Why )要这么做和如何去做( How )两个层面进行表述。读者可知其然并知其所以然。
阅读本书也许不能使你就此掌握大型网站架构设计的屠龙之术,但至少使你对网站架构的方法和思维方式能有全面了解。开卷有益,应该指的就是这样的书。
内容简介
本书中,重要的架构原理和技术方案都采用多角度描述的方法。
第1篇,从演化、模式、要素三个维度描述网站整体架构
1.大型网站架构演化
- 大型网站软件系统的特点
- 大型网站架构演化发展历程
- 大型网站架构演化的价值观
- 网站架构设计误区
2.大型网站架构模式
- 网站架构模式
- 架构模式在新浪微博的应用
- 小结
3.大型网站核心架构要素
- 性能
- 可用性
- 伸缩性
- 扩展性
- 安全性
第2篇,从性能、可用性、伸缩性、扩展性、安全这五个要素方面详细描述网站架构核心原理,其中重要的负载均衡、异步处理、分布式缓存等技术方案又在不同章节从多角度进行描述。
4.瞬时响应:网站的高性能架构
- 网站性能测试
- Web前端性能优化
- 应用服务器性能优化
- 存储性能优化
5.万无一失:网站的高可用架构
- 网站可用性的度量与考核
- 高可用的网站架构
- 高可用的应用
- 高可用的服务
- 高可用的数据
- 高可用网站的软件质量保证
- 网站运行监控
6.永无止境:网站的伸缩性架构
- 网站架构的伸缩性设计
- 应用服务器集群的伸缩性设计
- 分布式缓存集群的伸缩性设计
- 数据存储服务器集群的伸缩性设计
7.随需应变:网站的可扩展架构
- 构建可扩展性的网站架构
- 利用分布式消息队列降低系统耦合性
- 利用分布式服务打造可复用的业务平台
- 可扩展的数据库
- 利用开放平台建设网站生态圈
8.固若金汤:网站的安全架构
- 道高一尺魔高一丈的网站应用攻击与防御
- 信息加密技术及密钥安全管理
- 信息过滤与反垃圾
- 电子商务分享控制
第3篇,通过几个具体案例再- -次从整体和局部描述网站架构方法。
9.淘宝网的架构演化案例分析
- 淘宝网的业务发展历程
- 淘宝网技术架构演化
10.维基百科的高性能架构设计分析
- Wikipedia网站整体架构
- Wikipedia性能优化策略
11.海量分布式存储系统Doris的高可用架构设计分析
- 分布式存储系统的高可用架构
- 不同故障情况下的高可用解决方案
12.网购秒杀系统架构设计案例分析
- 秒杀活动的技术挑战
- 秒杀系统的应对策略
- 秒杀系统架构设计
13.大型网站典型故障案例分析
- 写日志也会引发故障
- 高并发访问数据库引发的故障
- 高并发情况下所引发的故障
- 缓存引发的故障
- 应用启动不同步引发的故障
- 大文件读写独占磁盘引发的故障
- 滥用生产环境引发的故障
- 不规范的流程引发的故障
- 不好的编程习惯引发的故障
第4篇,从架构师做事的角度回顾网站技术架构,读者在阅读前面技术章节感到枯燥的时候,也可以跳到本篇休闲放松下
14.架构师领导艺术
- 关注人而不是产品
- 发掘人的优秀
- 共享美好蓝图
- 共同参与架构
- 学会妥协
- 成就他人
15.网站架构师职场攻略
- 发现问题·寻找突破
- 提出问题·寻求支持
- 解决问题·达成绩效
16.漫画网站架构师
- 按作用划分架构师
- 按效果划分架构师
- 按职责角色划分架构师
- 按关注层次划分架构师
- 按口碑划分架构师
- 非主流方式划分架构师
附录、后记
- 大型网站架构技术一览
- Web开发技术发展历程