这书创作者是*网址搭建的亲历者,有着关键技术单位的一线工作经历,立即感受了大型网站搭建与发展趋势全过程中的诸多生和死,蜕与变,印证了一个网站架构从孩子气迈向完善平稳的过程。
沒有难懂的专业术语,沒有诘屈聱牙的文句,沒有故弄玄虚的见解……
清清楚楚的句子,一清二楚的文法,干脆利落的提议让读者立即体会网站架构的重要处,绝不粗心大意的关键环节这正好是一个出色的网站架构所必需的因素。
假如说“水没有深,有龙则灵”,那麼针对想掌握网站架构的读者来讲,这这书正好是“书没有多,有它则行!”
还迟疑什么?
这书根据整理大型网站技术性发展史,分析大型网站技术性架构模式,深层次叙述大中型互联网技术架构设计的关键基本原理,并根据一组典型性网站技术架构设计实例,为读者展现一幅包含技术性电机选型、架构设计、特性提升、Web 安全性、系统软件公布、运维管理监控器等以内的大型网站开发设计全景图主视图。
这书不但适用具体指导网站工程师、系统架构师开展网站技术架构设计,也可用以具体指导产品运营、工程项目经理、检测运维管理工作人员等掌握网站技术构架的基本定义;还能够包含公司系统软件开发者以内的各种开发软件从业者效仿,掌握大型网站的解决方法和开发设计核心理念。
目录
- 第1篇 概述
- 1 大型网站架构演化
- 1.1 大型网站软件系统的特点
- 1.2 大型网站架构演化发展历程
- 1.2.1 初始阶段的网站架构
- 1.2.2 应用服务和数据服务分离
- 1.2.3 使用缓存改善网站性能
- 1.2.4 使用应用服务器集群改善网站的并发处理能力
- 1.2.5 数据库读写分离
- 1.2.6 使用反向代理和CDN加速网站响应
- 1.2.7 使用分布式文件系统和分布式数据库系统
- 1.2.8 使用NoSQL和搜索引擎
- 1.2.9 业务拆分
- 1.2.10 分布式服务
- 1.3 大型网站架构演化的价值观
- 1.3.1 大型网站架构技术的核心价值是随网站所需灵活应对
- 1.3.2 驱动大型网站技术发展的主要力量是网站的业务发展
- 1.4 网站架构设计误区
- 1.4.1 一味追随大公司的解决方案
- 1.4.2 为了技术而技术
- 1.4.3 企图用技术解决所有问题
- 1.5 小结
- 2 大型网站架构模式
- 2.1 网站架构模式
- 2.1.1 分层
- 2.1.2 分割
- 2.1.3 分布式
- 2.1.4 集群
- 2.1.5 缓存
- 2.1.6 异步
- 2.1.7 冗余
- 2.1.8 自动化
- 2.1.9 安全
- 2.2 架构模式在新浪微博的应用
- 2.3 小结
- 3 大型网站核心架构要素
- 3.1 性能
- 3.2 可用性
- 3.3 伸缩性
- 3.4 扩展性
- 3.5 安全性
- 3.6 小结
- 第2篇 架构
- 4 瞬时响应:网站的高性能架构
- 4.1 网站性能测试
- 4.1.1 不同视角下的网站性能
- 4.1.2 性能测试指标
- 4.1.3 性能测试方法
- 4.1.4 性能测试报告
- 4.1.5 性能优化策略
- 4.2 Web前端性能优化
- 4.2.1 浏览器访问优化
- 4.2.2 CDN加速
- 4.2.3 反向代理
- 4.3 应用服务器性能优化
- 4.3.1 分布式缓存
- 4.3.2 异步操作
- 4.3.3 使用集群
- 4.3.4 代码优化
- 4.4 存储性能优化
- 4.4.1 机械硬盘vs. 固态硬盘
- 4.4.2 B 树vs. LSM树
- 4.4.3 RAID vs. HDFS
- 4.5 小结
- 5 万无一失:网站的高可用架构
- 5.1 网站可用性的度量与考核
- 5.1.1 网站可用性度量
- 5.1.2 网站可用性考核
- 5.2 高可用的网站架构
- 5.3 高可用的应用
- 5.3.1 通过负载均衡进行无状态服务的失效转移
- 5.3.2 应用服务器集群的Session管理
- 5.4 高可用的服务
- 5.5 高可用的数据
- 5.5.1 CAP原理
- 5.5.2 数据备份
- 5.5.3 失效转移
- 5.6 高可用网站的软件质量保证
- 5.6.1 网站发布
- 5.6.2 自动化测试
- 5.6.3 预发布验证
- 5.6.4 代码控制
- 5.6.5 自动化发布
- 5.6.6 灰度发布
- 5.7 网站运行监控
- 5.7.1 监控数据采集
- 5.7.2 监控管理
- 5.8 小结
- 6 永无止境:网站的伸缩性架构
- 6.1 网站架构的伸缩性设计
- 6.1.1 不同功能进行物理分离实现伸缩
- 6.1.2 单一功能通过集群规模实现伸缩
- 6.2 应用服务器集群的伸缩性设计
- 6.2.1 HTTP重定向负载均衡
- 6.2.2 DNS域名解析负载均衡
- 6.2.3 反向代理负载均衡
- 6.2.4 IP负载均衡
- 6.2.5 数据链路层负载均衡
- 6.2.6 负载均衡算法
- 6.3 分布式缓存集群的伸缩性设计
- 6.3.1 Memcached分布式缓存集群的访问模型
- 6.3.2 Memcached分布式缓存集群的伸缩性挑战
- 6.3.3 分布式缓存的一致性Hash算法
- 6.4 数据存储服务器集群的伸缩性设计
- 6.4.1 关系数据库集群的伸缩性设计
- 6.4.2 NoSQL数据库的伸缩性设计
- 6.5 小结
- 7 随需应变:网站的可扩展架构
- 7.1 构建可扩展的网站架构
- 7.2 利用分布式消息队列降低系统耦合性
- 7.2.1 事件驱动架构
- 7.2.2 分布式消息队列
- 7.3 利用分布式服务打造可复用的业务平台
- 7.3.1 Web Service与企业级分布式服务
- 7.3.2 大型网站分布式服务的需求与特点
- 7.3.3 分布式服务框架设计
- 7.4 可扩展的数据结构
- 7.5 利用开放平台建设网站生态圈
- 7.6 小结
- 8 固若金汤:网站的安全架构
- 8.1 道高一尺魔高一丈的网站应用攻击与防御
- 8.1.1 XSS攻击
- 8.1.2 注入攻击
- 8.1.3 CSRF攻击
- 8.1.4 其他攻击和漏洞
- 8.1.5 Web应用防火墙
- 8.1.6 网站安全漏洞扫描
- 8.2 信息加密技术及密钥安全管理
- 8.2.1 单向散列加密
- 8.2.2 对称加密
- 8.2.3 非对称加密
- 8.2.4 密钥安全管理
- 8.3 信息过滤与反垃圾
- 8.3.1 文本匹配
- 8.3.2 分类算法
- 8.3.3 黑名单
- 8.4 电子商务风险控制
- 8.4.1 风险
- 8.4.2 风控
- 8.5 小结
- 第3篇 案例
- 9 淘宝网的架构演化案例分析
- 9.1 淘宝网的业务发展历程
- 9.2 淘宝网技术架构演化
- 9.3 小结
- 10 维基百科的高性能架构设计分析
- 10.1 Wikipedia网站整体架构
- 10.2 Wikipedia性能优化策略
- 10.2.1 Wikipedia前端性能优化
- 10.2.2 Wikipedia服务端性能优化
- 10.2.3 Wikipedia后端性能优化
- 11 海量分布式存储系统Doris的高可用架构设计分析
- 11.1 分布式存储系统的高可用架构
- 11.2 不同故障情况下的高可用解决方案
- 11.2.1 分布式存储系统的故障分类
- 11.2.2 正常情况下系统访问结构
- 11.2.3 瞬时故障的高可用解决方案
- 11.2.4 临时故障的高可用解决方案
- 11.2.5 永久故障的高可用解决方案
- 12 网购秒杀系统架构设计案例分析
- 12.1 秒杀活动的技术挑战
- 12.2 秒杀系统的应对策略
- 12.3 秒杀系统架构设计
- 12.4 小结
- 13 大型网站典型故障案例分析
- 13.1 写日志也会引发故障
- 13.2 高并发访问数据库引发的故障
- 13.3 高并发情况下锁引发的故障
- 13.4 缓存引发的故障
- 13.5 应用启动不同步引发的故障
- 13.6 大文件读写独占磁盘引发的故障
- 13.7 滥用生产环境引发的故障
- 13.8 不规范的流程引发的故障
- 13.9 不好的编程习惯引发的故障
- 13.10 小结
- 第4篇 架构师
- 14 架构师领导艺术
- 14.1 关注人而不是产品
- 14.2 发掘人的优秀
- 14.3 共享美好蓝图
- 14.4 共同参与架构
- 14.5 学会妥协
- 14.6 成就他人
- 15 网站架构师职场攻略
- 15.1 发现问题,寻找突破
- 15.2 提出问题,寻求支持
- 15.3 解决问题,达成绩效
- 16 漫话网站架构师
- 16.1 按作用划分架构师
- 16.2 按效果划分架构师
- 16.3 按职责角色划分架构师
- 16.4 按关注层次划分架构师
- 16.5 按口碑划分架构师
- 16.6 非主流方式划分架构师
- 附录A 大型网站架构技术一览
- 附录B Web开发技术发展历程
- 后记