首页>参考读物>计算机科学与技术>综合

云计算架构:解决方案设计手册
作者 : (美)John Rhoton;Risto Haukioja 著
译者 : 赵龙刚 金振林 等译
出版日期 : 2012-07-20
ISBN : 978-7-111-39056-5
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 363
开本 : 16
原书名 : Cloud Computing Architected: Solution Design Handbook
原出版社: Recursive Press
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书共十部分。第一部分:模型,阐述云计算定义以及其对软件开发人员和架构师的含义;第二部分:平台,介绍平台对设计架构的基础作用;第三部分:展示,如何将内容通过一个展示层公布给用户;第四部分:身份认证,通过使用定制的、高度相关的内容来优化用户体验;第五部分:集成,使用联邦式数据传输和任务处理过程来提供高水平的可伸缩性;第六部分:信息,如何处理大型数据集,在可用性与事务完整性之间做出权衡;第七部分:弹性,如何确保应用和基础设施的可靠性以及长期容量规划的可伸缩性问题;第八部分:盈利,如何证明云计算服务的成本合理性;第九部分:部署,采用云计算服务如何缩短应用的发布周期;第十部分:运行维护,如何对已投入生产环境的应用进行监控和提供支持。

图书特色

云计算架构
解决方案设计手册
(美) John Rhoton
Risto Haukioja   著
赵龙刚 金振林 等译
宏观上透彻地讲解云计算系统架构与设计的策略、流程和方法
微观上深入阐述云计算的模型、主流平台、安全性、集成技术、数据存储、可伸缩性和可靠性、部署、运行维护,以及营收和推广
封底:
云计算技术是继20世纪80年代大型计算机技术到客户端-服务器技术的大转变之后的又一巨变,它通过互联网的计算方式实现了硬件资源与信息的共享和按需使用。因为云计算技术的革命性特点,其在短短几年内获得了迅猛发展,云计算的需求和应用也与日俱增。越来越多的企业需要采用云计算服务,同时也有越来越多的企业在提供云计算解决方案。从技术角度讲,云计算技术非常复杂,涉及的技术很多;从架构角度讲,云计算系统往往都比较庞大,需要考虑的因素很多,难以驾驭。如何才能设计出合理的云计算架构,从而提供有效的解决方案?本书给出了令人满意的答案!
本书主要内容:
云计算模型:包含云计算核心概念和定义、经典的参考架构,以及使用场景。
云计算平台:全面介绍了Google App Engine、Windows Azure、Amazon Web Services等大型           云计算平台以及云计算平台的选择标准。
云计算展示:包括浏览器端的展示和客户端的展示,以及展示的优化。
云计算使用:身份认证和个性化服务。
云计算集成:网络集成和应用集成。
云计算存储:包含存储的基本原理、关系型数据库和非关系型数据库的介绍等。
云计算性能:可靠性和可伸缩性。
云计算服务:营销推广和营收模式。
云计算系统:开发、测试和部署。
云计算维护:包含配置、管理、故障排查等。
前:
John Rhoton
资深云计算战略顾问,拥有超过25年行业经验,经验十分丰富。就职于世界500强企业,致力于采用新技术推动企业更好地发展,曾主导了云计算、移动计算、下一代网络和虚拟化等多种新技术的实施和应用。

Risto Haukioja
资深云计算专家,TrendJammer公司创始人,在信息技术、Web服务和移动计算方面拥有超过10年的行业经验。曾在惠普公司担任云计算服务和基础设施架构师。

图书前言

本书描述了云计算应用的基本组件,介绍了一些可用来创建跨管理域的大规模、分布式应用的架构级选项。
  云计算的需求对于软件工程有着深远的影响。在构建云应用时,我们必须保证该应用能够提供灵活且有弹性的服务,而且要针对能够远程使用由各种可靠和不可靠来源所提供的各项功能而进行设计。
  在面对这些挑战时,架构师需要在如下几个领域中考虑可伸缩性和多租户的影响:
  新工具可以使开发人员更有效地开发、测试和运行云服务。
  基于互联网的交付会促使人们使用浏览器及其他一些精简客户端来作为展示工具。
  多租户和身份联邦迫使我们要使用一些新的身份认证模型。
  这是一个由众多迥然不同的服务及服务提供商所组成的碎片化的市场,除非将这些服务有效地集成在一起,否则它们无法一起协调地完成工作。
  与云规模相关的信息量的爆炸式增长要求我们使用一些新的存储机制和数据模型。
  可用性和伸缩弹性越来越依靠冗余,必须以一种既高效又可靠的方式来对冗余进行编排。
  面向效用的服务需要使用新的商业模式和盈利策略才能获得收益。
  平台服务能够给整个软件开发生命周期带来效率,使我们可以更快地完成部署和采纳变更。
  自动化程度的提高使我们可以采用一种更高效的运作模式,这种运作模式本身需要从以基础设施为导向转变为以服务为导向。
  本书所关注的就是上述这些(和其他一些)可能会受到云计算影响的应用软件架构领域。
假设
  本书作者的理念基于这样一个大胆的假设:未来的大多数(即使不是全部)应用都应设计为一种云就绪(cloud-ready)的应用。当然,并非所有软件都会从一开始就将自己的目标定位于那些必须具有互联网级的规模和多租户支持的机会。然而,设计一个云就绪解决方案的价值在于:它可以通过不断成长来满足日益增加的需求,并且还能够挖掘到最初可能没有规划的一些潜在收入流。
  促使我们设计一个云就绪应用的因素(即使这种需要可能没有立即显现出来)来自以下三方面的考虑:
  坚实可靠的设计有内在的价值。
  伸缩弹性是在当今快速变化的商业环境中必不可少的一个条件。
  灵活的知识产权才最有价值。
  坚实可靠的设计有内在的价值。面向服务的架构(SOA)使得服务在其整个生命周期都具有更大的灵活性,从而使得服务可以应对一组处在不断变化中的需求。如果能够从一开始就在软件中置入可靠性、安全性和可伸缩性,那么该软件就会健壮很多,并且在处理突发事件和新的要求时也更加容易。
  伸缩弹性是在当今快速变化的商业环境中必不可少的一个条件。客户或销售的增长不是你可能需要扩大服务的唯一原因。一个可伸缩的架构可以通过合并和购买的方式来应付需求的瞬时高峰。一个灵活的设计可以使我们能够将应用复用于其他的商业目的和用户群(如合作伙伴和供应商)。
  灵活的知识产权才最有价值。有这样一个令人信服的说法:即便在构建一个仅供内部使用的应用时,我们也应该在设计架构时考虑好可伸缩性和多租户的问题。如果一项服务只是重复实现了一些公共的功能,那么你就应该质疑自己:为什么在第一个地方需要这一服务,为什么不能从另一个提供商那里获得相同的服务。反之,如果某项服务具有独特性并且具有自主知识产权,那么你随时都可以选择将服务以授权许可或打包成一个服务的方式提供给别人,从而创造出一种额外的收入来源。
范围
  本书的写作目的既不是对云计算进行高层次的概述,也不是对云计算的商业利益进行详细说明。在市场上有许多讲述这类主题的书籍,比如《Cloud Computing Explained》和“参考文献”中所列的其他一些书籍。
  作者也没有深入论述任何一种具体平台或服务。因此,寄希望于仅参考本书就能设计出一个基于云计算的解决方案是一个不现实的想法。不过,各服务提供商一般都会为自己的产品提供一份内容丰富的文档,而且本书也提供了另外一些优秀资源的链接,它们可以在技术和技巧两方面提供很多具体的建议。
  相反,本书弥补了企业管理层与程序员之间在视角上的差异。本书讲述了各种可能与云计算相关的架构级选项,但本书论述的深度仅足够评估设计是否适当,并不以详细说明实现细节为目标。
读者
  正如前面所暗示的那样,本书的主要读者是那些咨询师、架构师、技术专家和策略师,他们可能在大型企业参与IT实现的规划工作或者在参与规模须可扩展到数百万用户的、面向消费者的服务的设计工作。
  本书的第二类读者是那些仅在外围参与上述设计工作的人员。无论是系统管理员、程序员还是高层管理人员,几乎每个IT人员最终都与云计算有着某种联系。每一个希望对云软件架构有透彻理解的人都能从本书关于这些选项和设计权衡的概念性描述中受益。
反馈
  你可能会从本书中发现一些错误和遗漏之处,也可能会发现一些真的非常有用和令你感兴趣的内容。无论你要反馈什么样的信息,只要您有话要说,我们就很乐意倾听您的意见。请随时与我们联系,邮件请发至:
  john.rhoton@gmail.com 或 risto.haukioja@gmail.com
  我们不能保证会回复每一封邮件,但我们会竭尽所能,以感谢您的付出!
致谢
  本书(英文版)由Lightning Source(Ingram Content Group)出版和发行,该公司的生产过程非常高效和敏捷,令我们非常赞赏。此外,我们还得到了Gill Shaw的大力帮助,他在校对和编辑方面为我们提供了卓越的帮助。我们还要感谢 Elisabeth Rinaldin,她为本书的封面和版式设计做出了杰出贡献。
  我们非常感谢评审者为本书所做出的技术上的宝贵付出,他们是:John Bair、Jamieson Becker、Patrick Joubert、Kevin Laahs、Franz Novak和Vikram S。我们要向本书最后所列出的诸多资源喝彩,当我们要深入了解本书所介绍的那些话题的细节时,它们会给我们带来极大的帮助。最后但并非最不重要的是,我们想指出:如果没有那些在Amazon、Google、Microsoft、Salesforce.com以及其他云服务提供商处工作的富有远见和创造力的工程师,也不会有本书所要介绍的这些内容。

上架指导

计算机\程序设计

封底文字

本书书描述了云计算应用的基本组成部分,介绍了一些可以用来创建跨管理域的大规模分布式应用的架构级选项。
 
云计算的需求对于软件工程有着深远的影响。在构建云应用时,我们必须保证该应用能够提供灵活且有弹性的服务,而且要针对能够远程使用由各种可靠和不可靠来源所提供的各项功能而进行设计。
架构师需要考虑可伸缩性和多租户对于如下这样方面的影响:
 
 新的开发工具
 基于互联网的交付方式和移动设备
 联邦身份管理
 碎片化的服务及服务提供商
 激增的信息量
 可用性和伸缩弹性方面的技术
 新的商业模式和盈利策略
 随之而改变的软件开发周期
 更高的运行维护自动化程度
 
本书所关注的就是上述这些(和其他)可能会受到云计算影响的应用软件架构领域。

作者简介

(美)John Rhoton;Risto Haukioja 著:John Rhoton是一名拥有超过25年行业经验的战略顾问,在全球500强公司中专门从事新兴技术的定义和推动工作。他主导了包括云计算、移动计算、下一代网络和虚拟化在内的多种新技术的发展。 Risto Haukioja是TrendJammer公司的创始人,在信息技术、Web服务和移动计算方面拥有超过10的行业经验。在成立TrendJammer公司之前,他曾在Hewlett Packard公司担任云计算服务和基础设施架构师。

译者简介

赵龙刚 金振林 等译:暂无简介

译者序

“蒙惠者虽知其然,而未必知其所以然也。”
    —朱熹 《建宁府建阳县长滩社仓记》
  云计算概念最早由Eric Schmidt在2006年8月的搜索引擎大会上首次公开提出。云计算的出现为信息技术领域带来了新的机遇和挑战,其低成本、高效率、按需服务的信息化技术理念代表了未来的服务交付和使用方式。市面上关于云计算的书很多,百花齐放,云计算发展至今,早已超越了其原始的概念。但不管业内如何众说纷“云”,最终都要跳出理论,深入云所触及的各个技术领域去实践。
  我所就职的中国一家大型电信企业在云计算领域算是厚积薄发,无论是面向个人家庭用户还是面向政府企业用户,都有相应成熟的云存储和云应用解决方案,这也使我有更多的机会与云计算业内专家进行交流。但了解越多,问题也越多,所谓“知其然,而未必知其所以然”,所以一直想从技术架构上系统地了解,而不是蜻蜓点水,这也正是翻译此书的动力所在,希望与各位读者共勉。
  本书主要面向参与大型企业IT实现的规划工作或者大型业务系统设计工作的咨询师、架构师、技术专家和策略师。同时也面向所有参与上述设计工作的IT人员。相信无论是系统管理员、程序员还是高层管理人员,每一个希望对云软件架构有透彻理解的人都能从本书受益。
  也许你已经很清楚云计算,甚至可以对其工作原理娓娓道来。但是,如果你要负责设计一个云计算的系统或应用程序,那么仅仅对这一IT新趋势进行理论分析还远远不够。你需要了解该如何利用这些新的技术来构建一个更大、更好且更便宜的解决方案,如何利用这些新工具,如何实现伸缩弹性,如何集成不同的云服务,如何为海量数据建模,如何使运营更有效率,如何充分发挥新商业模式的作用。
  两位作者通过对云计算系统的分类分层深入剖析,由浅入深地阐述了所涉及的各项技术,展现了其在技术领域的造诣。在翻译本书之前,我一直以为对云计算已颇多了解,然而翻译完成之后,却对技术心怀敬畏,同时也迫切希望本书与广大读者尽快见面。
  本书的翻译主要由赵龙刚、金振林合作完成,苏南、杨宁、项琨、周志强、张艳等人也在本书的翻译过程中作出了贡献。本书翻译力求忠于原著,但由于译者水平有限,翻译的错误和不妥之处在所难免,欢迎广大读者批评指正。

赵龙刚

图书目录

译者序
前言
第一部分 模型
第1章 云计算定义2
1.1 云属性2
1.2 云服务4
1.3 云交付模型7
1.3.1 私有云8
1.3.2 共同的本质8
1.3.3 云统一体9
1.3.4 伙伴云9
1.3.5 社区云10
1.3.6 混合或多源的交付11
1.4 云成熟度12
1.5 对于应用开发的影响14
第2章 参考架构16
2.1 云组件模型16
2.2 平台17
2.3 展示18
2.4 身份认证18
2.5 集成19
2.6 信息19
2.7 弹性20
2.8 盈利20
2.9 部署21
2.10 运行维护22
第3章 使用场景23
3.1 采用IaaS存储的托管服务器24
3.2 专用IaaS24
3.3 采用IaaS扩展的私有应用25
3.4 纯PaaS26
3.5 采用IaaS存储和计算的PaaS应用27
3.6 实用注意事项29
第二部分 平台
第4章 平台定义32
4.1 组件32
4.2 托管35
4.2.1 内部部署35
4.2.2 IaaS36
4.2.3 Web托管36
4.2.4 PaaS37
4.3 选择标准39
4.3.1 编程语言39
4.3.2 开发环境40
4.3.3 开发人员的偏好40
4.3.4 其他因素41
4.3.5 混合式组合41
第5章 Google App Engine43
5.1 编程语言44
5.2 数据存储45
5.3 沙箱45
5.4 开发环境48
5.5 实践注意事项49
第6章 Microsoft Windows Azure51
6.1 开发环境51
6.2 Azure平台53
6.3 Azure服务55
6.4 实用注意事项57
第7章 Amazon Web Services59
7.1 计算60
7.2 存储61
7.2.1 简单存储服务61
7.2.2 弹性块存储61
7.2.3 简单DB61
7.2.4 关系数据库服务61
7.2.5 CloudFront62
7.3 集成62
7.3.1 弹性IP地址62
7.3.2 简单队列服务63
7.3.3 简单通知服务63
7.3.4 虚拟私有云63
7.3.5 VM导入63
7.3.6 AWS导入/导出64
7.4 可伸缩性64
7.4.1 高性能计算64
7.4.2 弹性负载均衡65
7.4.3 自动伸缩65
7.4.4 弹性MapReduce65
7.5 管理66
7.5.1 CloudFormation66
7.5.2 CloudWatch66
7.5.3 AWS生态系统67
7.6 计费67
7.6.1 灵活支付服务67
7.6.2 DevPay67
7.7 Elastic Beanstalk68
7.8 实用注意事项69
第8章 其他可选平台70
8.1 私有云方案71
8.1.1 VMware71
8.1.2 Joyent72
8.1.3 Nirvanix73
8.1.4 Eucalyptus73
8.1.5 Flexiscale73
8.2 伙伴云方案74
8.3 Rackspace Cloud74
8.4 GoGrid75
8.5 Engine Yard76
8.6 Salesforce.com78
8.6.1 外部编程访问78
8.6.2 Apex79
8.6.3 用户界面81
8.7 Facebook81
8.7.1 展示81
8.7.2 应用逻辑82
8.7.3 数据82
8.8 Intuit83
8.9 基于基础设施的平台84
8.10 实用注意事项84
第三部分 展示
第9章 浏览器界面87
9.1 浏览器支持88
9.2 浏览器接口方式的类型90
9.2.1 静态网站90
9.2.2 富服务器端接口方式91
9.2.3 富客户端92
9.2.4 富客户端/服务器接口方式94
9.3 实践建议94
第10章 专用客户端95
10.1 桌面应用95
10.2 移动应用97
10.3 常见的数据传输104
10.4 实践建议105
第11章 展示优化106
11.1 测量展示层107
11.1.1 Google Analytics107
11.1.2 Pingdom108
11.1.3 Chartbeat110
11.1.4 A/B测试112
11.1.5 服务器/客户机的性能测量112
11.2 展示优化技术114
11.2.1 减少网络请求次数114
11.2.2 最小化下载内容114
11.2.3 分发和缓存114
11.2.4 优化网页元素顺序115
11.2.5 调整应用逻辑115
11.3 实践建议116
第12章 实时网络117
12.1 提供实时信息118
12.1.1 Ajax/REST118
12.1.2 Comet119
12.1.3 WebSocket121
12.1.4 Google Channel API122
12.2 聚合实时信息122
12.2.1 订阅源122
12.2.2 社交网络124
12.3 对外公布信息124
12.4 实践建议125
第四部分 身份认证
第13章 身份认证128
13.1 背景128
13.1.1 目录同步128
13.1.2 实时查找129
13.2 联邦式Web身份识别解决方案130
13.3 身份架构132
13.3.1 消费者应用132
13.3.2 企业应用133
13.3.3 身份认证实践134
13.4 OpenID135
13.5 OAuth136
13.6 SAML139
13.7 微软141
13.8 身份服务提供商143
13.8.1 例子:myOneLogin144
13.8.2 开通145
13.9 访问控制145
13.10 应用的公布146
13.11 实践建议147
第14章 个性化148
14.1 易访问性148
14.2 用户体验149
14.2.1 效率149
14.2.2 清晰151
14.2.3 美观152
14.3 定制内容152
14.3.1 位置153
14.3.2 社交图154
14.3.3 其他服务155
14.4 实践建议155
第五部分 集成
第15章 网络集成158
15.1 网络的连接方式158
15.1.1 所需的连接158
15.1.2 连接需求160
15.1.3 连接选项161
15.1.4 连接方式配置163
15.1.5 虚拟私有云164
15.2 内容交付网络166
15.3 实践建议167
第16章 应用集成168
16.1 遗留应用和外部应用168
16.2 内部集成171
16.3 数据层172
16.3.1 数据订阅源173
16.3.2 信息连接176
16.4 应用集成服务177
16.5 实践建议178
第六部分 信息
第17章 存储180
17.1 存储需求181
17.2 架构级选择181
17.3 本地实现选项183
17.3.1 内存183
17.3.2 文件系统185
17.4 外部接口186
17.5 数据的生命周期管理188
17.6 实践建议189
第18章 关系型数据190
18.1 可伸缩性与完整性190
18.2 SQL192
18.2.1 SQL未死192
18.2.2 自管理SQL193
18.2.3 SQL即服务194
18.3 PseudoSQL(近SQL)195
18.3.1 Amazon SimpleDB196
18.3.2 Google App Engine数据存储196
18.3.3 Microsoft Azure存储196
18.4 NoSQL197
18.4.1 横向可伸缩性197
18.4.2 NoSQL的数据结构198
18.5 实践建议201
第19章 非关系型数据202
19.1 文档数据库202
19.2 图数据库204
19.3 搜索205
19.3.1 商品化企业级搜索206
19.3.2 Lucene206
19.3.3 Solr206
19.3.4 Katta207
19.3.5 Bobo Browse207
19.4 语义数据的存储208
19.5 分析209
19.5.1 云基础设施方面的开源209
19.5.2 Hadoop的分析:Hive、Pig、Cascading210
19.5.3 按需商务智能211
19.6 外部数据需求211
19.6.1 实时Web内容212
19.6.2 网络搜索212
19.7 实践建议213
第七部分 弹性
第20章 可靠性216
20.1 可用性216
20.1.1 组件的可靠性217
20.1.2 容错218
20.1.3 降低复杂度/松耦合219
20.1.4 快速恢复220
20.2 可使用性221
20.3 灾难222
20.4 可恢复性/可逆性/回滚224
20.4.1 备份224
20.4.2 版本化225
20.4.3 归档226
20.5 实践建议226
第21章 伸缩弹性227
21.1 纵向伸缩227
21.2 分片229
21.3 高性能计算231
21.4 MapReduce232
21.4.1 它是什么232
21.4.2 它有什么好处233
21.4.3 为什么使用它234
21.4.4 它能做什么235
21.4.5 它的工作原理是什么237
21.4.6 如何使用它238
21.5 数据关联240
21.6 资源分配/容量规划241
21.6.1 私有云的规划241
21.6.2 云爆发242
21.7 实践建议244
第八部分 盈利
第22章 市场营销247
22.1 广告247
22.1.1 基于Web的横幅广告248
22.1.2 按单击次数付费249
22.1.3 搜索引擎251
22.1.4 超越搜索252
22.1.5 二线广告253
22.1.6 实践注意事项253
22.2 搜索引擎优化255
22.2.1 黑帽SEO256
22.2.2 白帽SEO256
22.3 社交媒体营销258
22.3.1 研究258
22.3.2 广告261
22.3.3 监控262
22.4 实践建议263
第23章 付款264
23.1 估价模型264
23.2 服务分级265
23.3 直接收费265
23.3.1 定价266
23.3.2 计量267
23.4 结算268
23.4.1 直接信用卡计费268
23.4.2 PayPal269
23.4.3 Amazon Flexible Payments Service270
23.4.4 Google Checkout270
23.5 广告270
23.6 专业服务272
23.7 应用市场273
23.8 实践建议278
第九部分 部署
第24章 开发阶段281
24.1 编码282
24.2 测试285
24.2.1 Azure286
24.2.2 App Engine286
24.2.3 Amazon Web Services287
24.3 实践建议288
第25章 测试阶段289
25.1 持续集成289
25.2 云集成测试291
25.3 实践建议294
第26章 部署测试阶段295
26.1 测试环境295
26.1.1 用户验收测试296
26.1.2 运行验收测试296
26.2 部署测试等级297
26.3 云部署测试297
26.4 本地数据297
26.5 负载测试工具298
26.5.1 SOASTA299
26.5.2 LoadStorm300
26.5.3 HP LoadRunner300
26.5.4 IBM Rational Performance Tester300
26.6 实践建议300
第27章 生产阶段302
27.1 发布302
27.2 数据迁移303
27.2 数据迁移303
27.3 发 布周期303
27.4 回滚304
27.5 实践建议304
第十部分 运行维护
第28章 配置308
28.1 CMDB309
28.2 DevOps310
28.2.1 Puppet311
28.2.2 Chef312
28.2.3 Capistrano313
28.2.4 Fabric313
28.2.5 选择标准313
28.3 开通自动化314
28.4 实践建议315
第29章 管理316
29.1 管理门户316
29.2 IT运营管理317
29.3 服务请求处理318
29.4 变更管理319
29.5 新发布管理320
29.6 监测320
29.7 容量管理321
29.8 可用性管理322
29.9 访问管理323
29.10 实践建议324
第30章 故障排查325
30.1 事故管理325
30.2 问题管理326
30.3 事件管理326
30.4 技术支持327
30.4.1 文档328
30.4.2 门户网站329
30.4.3 服务台329
30.4.4 支持的分级330
30.4.5 服务知识管理系统332
30.5 实践建议333
第31章 精益求精334
31.1 改进过程334
31.2 商业环境335
31.3 技术演进335
31.4 持续服务改进336
附录A 案例研究:TrendJammer337
参考文献347

教学资源推荐
作者: 郑晓薇 编著
作者: [印] 佩瑟鲁·拉吉(Pethuru Raj) 阿诺帕马·拉曼(Anupama Raman) 德维亚·纳加拉杰(Dhivya Nagaraj) 悉达多·杜格拉拉 (Siddhartha Duggirala) 著
作者: 郑阿奇 彭作民 主编 崔海源 徐卫军 等编著
参考读物推荐
作者: (美) Greg Conti 著
作者: (美)Robert Tabor
作者: (美)H.L.Royden, P. M. Fitzpatrick 著