书籍详情

互联网创业核心技术:构建可伸缩的Web应用

互联网创业核心技术:构建可伸缩的Web应用

作者:(美)Artur Ejsmont

出版社:电子工业出版社

出版时间:2016-10-01

ISBN:9787121301124

定价:¥89.00

购买这本书可以去
内容简介
  互联网创业热,技术人才不足的问题凸显出来,其中*稀缺的,是能够构建可伸缩系统的工程师,在机会来临时不掉链子。但是,大部分程序员在职业生涯中并没有太多机会有这样的实战经验,这方面的技术文档也比较稀缺、零散。本书弥补了这一空白,面向创业公司技术人员,系统、全面且有针对性地总结可伸缩方面的原则和实践,兼顾开发、运维和团队等主题,有很多接地气的建议,语言风格明快,因此原著获得了很好的口碑。更为难得的是,译者本身也是这一领域的专家,在业界有"教授"的美誉,有力保证了本书成为一部经得起考验的佳作。 :美团点评技术学院院长刘江 互联网创业从0开始,之后迈出的每一步都是困难的。从0到1的过程不是瞬间完成,而是从0.01到0.02,直到1的蜕变。公司在不断发展与迭代的过程中,各种各样的技术问题也随之"野蛮"生长。如何解决系统的稳定性、可伸缩性等技术难题?本书或许能给你想要的答案。李智慧老师作为极客邦科技/InfoQ中国的专家讲师,长期致力于技术社区的发展。我愿推荐此书,和技术人共同成长。 :极客邦科技/InfoQ中国创始人兼CEO霍泰稳 构建一个"能用的"应用系统与构建一个能够随着业务发展而扩展的系统完全是两回事。要想在用户量和业务量快速增长的环境下保持系统的扩展性,需要工程师熟悉互联网业务中"扩展"与"伸缩"的常用招数,并能够根据情况选择*合适的方案。本书系统地描述了互联网应用中的扩展性,在系统设计原则、前后端设计、存储设计方面进行了全面的描述,并详尽讨论了"异步"与"缓存"这两个扩展性法宝的各种使用场景。希望在本书的帮助下,工程师能够快速掌握解决伸缩性问题的钥匙,早日成为可信赖的技术达人。 :宜信宜人贷首席技术官段念 2008年认识李智慧,从那时起,智慧参与阿里巴巴互联网基础技术平台的建设,并成为关键产品的代码贡献者。2014年智慧送了我一本他写的《大型网站技术架构:核心原理与案例分析》。翻看后,感觉智慧经历了这几年在大型网站的实践后,多了一份坚持总结和分享的能力。这是很多当时参与基础技术平台建设的同事所不具备的特质。近期,智慧告诉我他和另一位优秀的架构师何坤,一起翻译了本书。我翻看之下,很佩服他俩在工作之余还能坚持翻译此书。书中内容涉及前端、服务、数据库、缓存、异步消息和搜索,非常全面。全世界的大型网站并不多,能参与其中建设的只是小部分工程师,希望他们解决问题的思路能给各位读者一些启发。 :平安好医生CTO 王齐和智慧在阿里共事多年,一起经历了阿里巴巴技术平台化战略的关键时期。互联网技术与传统软件技术相比,*大的不同可能就是如何处理大并发大数据的挑战,而主要应对措施就是可伸缩的架构技术,期待本书成为互联网创业公司工程师的手边书,通过本书深入理解可伸缩系统架构的原理与设计。 :同盾创始人蒋韬
作者简介
  作者:(美)Artur Ejsmont(阿特.艾斯蒙特) 译者:李智慧李智慧(微博、LinkedIn),目前任职宅米网CTO,曾供职阿里巴巴与英特尔亚太研发中心,从事大型网站、分布式系统、大数据平台方面的研发工作。著有《大型网站技术架构 核心原理与案例分析》一书。 Artur Ejsmont 是一位充满激情的软件工程师及敏捷领导者,目前就职于雅虎悉尼。__eol__Artur 从事Web 应用方面的开发工作已经超过十年,同时也大量关注敏捷及创业公司管理,__eol__热爱精益创业模型。Artur开发过的网站每小时PV数超过一百万,为欧洲及澳洲两个大__eol__洲的用户提供服务。他还在大
目录
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 小结 ............................................................................................................ 127 5 数据存储层 129 MySQL 伸缩性 .......................................................................................... 130 复制 .................................................................................................... 130 数据分区(分片) ............................................................................ 142 NoSQL 伸缩性 .......................................................................................... 157 最终一致性 ........................................................................................ 160 快速恢复增加可用性 ........................................................................ 164 Cassandra 拓扑结构 .......................................................................... 166 小结 ............................................................................................................ 170 6 缓存 171 缓存命中率 ................................................................................................ 171 基于HTTP 的缓存 .................................................................................... 173 HTTP 缓存头 ..................................................................................... 174 HTTP 缓存技术类型 ......................................................................... 179 伸缩HTTP 缓存 ................................................................................ 185 缓存应用对象 ............................................................................................ 188 对象缓存的一般类型 ........................................................................ 189 伸缩对象缓存 .................................................................................... 194 缓存的经验法则 ........................................................................................ 198 缓存整个调用栈 ................................................................................ 198 用户间缓存重用 ................................................................................ 199 从哪儿开始使用缓存? .................................................................... 201 缓存失效的困难 ................................................................................ 201 小结 ............................................................................................................ 203 7 异步处理 204 核心概念 .................................................................................................... 204 同步处理的例子 ................................................................................ 205 异步处理的例子 ................................................................................ 208 购物类比 ............................................................................................ 211 消息队列 .................................................................................................... 213 消息生产者 ........................................................................................ 214 消息代理 ............................................................................................ 215 消息消费者 ........................................................................................ 216 消息协议 ............................................................................................ 220 消息基础设施 .................................................................................... 221 消息队列的好处 ........................................................................................ 224 实现异步处理 .................................................................................... 225 更好的伸缩性 .................................................................................... 226 平衡流量峰值 .................................................................................... 227 失败隔离和自我修复 ........................................................................ 228 解耦 .................................................................................................... 229 消息队列相关的挑战 ................................................................................ 230 消息无序 ............................................................................................ 230 消息重新入队列 ................................................................................ 233 竞态条件可能性增大 ........................................................................ 233 复杂度风险 ........................................................................................ 234 消息队列有关的反模式 ............................................................................ 235 将消息队列当作TCP 套接字 ........................................................... 235 将消息队列当作数据库 .................................................................... 235 耦合消息生产者和消费者 ................................................................ 235 缺少坏消息处理 ................................................................................ 236 消息平台快速比较与选择 ........................................................................ 237 亚马逊简单队列服务 ........................................................................ 237 RabbitMQ ........................................................................................... 240 ActiveMQ ........................................................................................... 242 最后的比较说明 ................................................................................ 243 事件驱动架构介绍 .................................................................................... 245 请求/响应交互 ................................................................................... 246 直接队列交互 .................................................................................... 247 事件驱动交互 .................................................................................... 247 小结 ............................................................................................................ 250 8 数据搜索 252 索引介绍 .................................................................................................... 252 数据建模 .................................................................................................... 260 NoSQL 数据建模 .............................................................................. 260 宽列数据存储的例子 ........................................................................ 264 搜索引擎 .................................................................................................... 271 搜索引擎介绍 .................................................................................... 272 使用专用搜索引擎 ............................................................................ 274 小结 ............................................................................................................ 275 9 伸缩性的其他维度 277 自动化实现生产力可伸缩 ........................................................................ 278 测试 .................................................................................................... 278 构建与部署 ........................................................................................ 280 监控与报警 ........................................................................................ 285 日志聚合 ............................................................................................ 289 个人可伸缩 ................................................................................................ 291 加班不是一种伸缩性方案 ................................................................ 291 自我管理 ............................................................................................ 293 伸缩敏捷团队 ............................................................................................ 300 增加人手 ............................................................................................ 300 流程与创新 ........................................................................................ 301 团结的文化 ........................................................................................ 302 小结 ............................................................................................................ 303 A 推荐阅读 304
猜您喜欢

读书导航