《大型网站技术架构:核心原理与案例分析》作者李智慧的翻译大作!
读透一本好书,少走十年走下坡。
对于创业人来讲,在变幻无常的移动互联网全世界求生存,寸秒就是寸金!如何在自己创业之初,就构建好适合业务流程长期发展趋向的技术架构:通权达变、以可伸缩性抵御变幻无常的业务流程规定,为自己的发展趋向得到时间、为货品铸就优异的用户体验?这书针对此困惑,算出了适切诚挚的建议。
作者多方面阐述了结构设计、前端工程师层、Web服务、数据存储层、缓存文件、多核处理等重要界定与技术,针对将会造成的难点一一剖析,为读者刻画出了简略清晰的技术框图。确信《网络创业关键技术:搭建可伸缩式的Web运用》 可以变为开启读者可伸缩式架构模式之旅的一个划时代。
文章阅读这书并不一定拥有一切独特的编写程序专业能力,比如Java、PHP、JavaScript、C#或者Ruby,因为弹性是Web应用开发中一个实用性的挑战,与实际上语言无关紧要。
《大型网站技术架构:重要基本原理与成功案例》作者李智慧的翻译大作!读透一本好书,少走十年走下坡。对于创业人来讲,在变幻无常的移动互联网全世界求生存,寸秒就是寸金!如何在自己创业之初,就构建好适合业务流程长期发展趋向的技术架构:通权达变、以可伸缩性抵御变幻无常的业务流程规定,为自己的发展趋向得到时间、为货品铸就优异的用户体验?这书针对此困惑,算出了适切诚挚的建议。作者多方面阐述了结构设计、前端工程师层、Web服务、数据存储层、缓存文件、多核处理等重要界定与技术,针对将会造成的难点一一剖析,为读者刻画出了简略清晰的技术框图。确信《互联网创业重要技术:构建可伸缩式的Web应用》 可以变为开启读者可伸缩式架构模式之旅的一个划时代。文章阅读这书并不一定拥有一切独特的编写程序专业能力,比如Java、PHP、JavaScript、C#或者Ruby,因为弹性是Web应用开发中一个实用性的挑战,与实际上语言无关紧要。
目录
- 1 核心概念 1
- 什么是伸缩性 ................................................................................................ 2
- 从单一服务器到全球用户的Web 架构演化 ............................................... 4
- 单一服务器 ............................................................................................ 5
- 使用更强的服务器:垂直伸缩 ............................................................ 6
- 服务分离 .............................................................................................. 10
- 内容分发网络:静态内容的伸缩性 .................................................. 12
- 分散访问流量:水平伸缩 .................................................................. 13
- 服务全球用户的伸缩性架构 .............................................................. 16
- 数据中心基础设施架构概览 ...................................................................... 18
- 前端 ...................................................................................................... 19
- Web 应用层 .......................................................................................... 20
- Web 服务层 .......................................................................................... 20
- 附加组件 .............................................................................................. 21
- 数据持久层 .......................................................................................... 21
- 数据中心基础架构 .............................................................................. 22
- 应用架构概览 .............................................................................................. 23
- 前端 ...................................................................................................... 24
- Web 服务 .............................................................................................. 25
- 支撑技术 .............................................................................................. 29
- 小结 .............................................................................................................. 30
- 2 软件设计原则 31
- 简单 .............................................................................................................. 31
- 隐藏复杂与构建抽象 .......................................................................... 32
- 避免过度设计 ...................................................................................... 33
- 尝试测试驱动开发 .............................................................................. 34
- 从软件设计的简化范例中学习 .......................................................... 35
- 低耦合 .......................................................................................................... 36
- 促进低耦合 .......................................................................................... 37
- 避免不必要的耦合 .............................................................................. 39
- 低耦合范式 .......................................................................................... 40
- 不要重复自己(DRY) .............................................................................. 41
- 复制粘贴代码 ...................................................................................... 42
- 基于约定编程 .............................................................................................. 43
- 画架构图 ...................................................................................................... 46
- 用例图 .................................................................................................. 49
- 类图 ...................................................................................................... 50
- 模块图 .................................................................................................. 51
- 单一职责 ...................................................................................................... 52
- 改善单一职责 ...................................................................................... 52
- 单一职责的例子 .................................................................................. 53
- 开闭原则 ...................................................................................................... 53
- 依赖注入 ...................................................................................................... 55
- 控制反转(IOC) ....................................................................................... 57
- 为伸缩而设计 .............................................................................................. 59
- 增加副本 .............................................................................................. 60
- 功能分割 .............................................................................................. 62
- 数据分片 .............................................................................................. 63
- 自愈设计 ...................................................................................................... 65
- 小结 .............................................................................................................. 67
- 3 构建前端层 69
- 状态管理 ...................................................................................................... 70
- 管理HTTP 会话 .................................................................................. 73
- 管理文件 .............................................................................................. 77
- 管理其他类型的状态 .......................................................................... 80
- 可伸缩的前端组件 ...................................................................................... 83
- DNS ...................................................................................................... 84
- 负载均衡器 .......................................................................................... 85
- Web 服务器 .......................................................................................... 92
- 缓存 ...................................................................................................... 93
- 自动伸缩 .............................................................................................. 94
- 部署案例 ...................................................................................................... 96
- AWS 场景 ............................................................................................ 97
- 私有数据中心 ...................................................................................... 98
- 小结 ............................................................................................................ 101
- 4 Web 服务 102
- Web 服务设计............................................................................................ 102
- Web 服务作为一种备用表示层 ........................................................ 103
- API 优先方式 .................................................................................... 105
- 务实的方式 ........................................................................................ 107
- Web 服务类型............................................................................................ 108
- 以功能为中心的服务 ........................................................................ 109
- 以资源为中心的服务 ........................................................................ 111
- 伸缩REST Web 服务 ................................................................................ 115
- 保持服务无状态 ................................................................................ 115
- 缓存服务响应 .................................................................................... 121
- 功能分割 ............................................................................................ 124
- 小结 .