①全新正版,现货速发,7天无理由退换货②天津、成都、无锡、广东等多仓就近发货,订单最迟48小时内发出③无法指定快递④可开电子发票,不清楚的请咨询客服。
¥ 15.99 3.3折 ¥ 48 全新
库存17件
作者(美)Alex Homer//John Sharp//...
出版社华中科技大学
ISBN9787568034029
出版时间2017-10
装帧平装
开本16开
定价48元
货号30009100
上书时间2024-10-14
Preface
本书由微软模式与实践小组(微软P&P小组)亲自打造,得到了许多社区开发者的支持,为开发基于云计算架构的应用程序常见问题提供了解决方案。
本书指南
• 介绍实现云计算应用时,尤其是托管在Azure云平台时使用这些设计模式的好处。
• 讨论云计算设计模式的经典问题和解决方案,以及它们如何与Azure关联到一起。
• 展示如何使用Azure功能实现这些模式,强调其优点与顾虑。
• 通过描述如何把这些设计模式应用到云计算应用架构中以及它们之间的关系来描绘知识体系的宏伟蓝图。
本书介绍的主题适用于所有的分布式系统,无论是托管在Azure中还是其他云计算平台中。
本书内容
结合开发社区的代表性反馈,我们把云计算应用开发领域zui常见的问题归纳为8类。
类别 描述
可用性 可用性定义为系统正常工作的时间比例。它受系统错误、基础架构问题、各种工具以及系统负载的影响。通常根据系统正常运行的时间来衡量。云计算应用为用户提供了服务级别协议(SLA),它指的是应用程序必须以zui大化可用性的方式设计和实现
数据管理 数据管理是云应用的关键部分,并且影响质量特性。由于诸如性能、伸缩性或者可用性等原因,数据通常存储在不同服务器的不同位置上,这些也会带来新的挑战。例如,数据一致性必须是可维护的,并且数据需要进行跨区域同步
续表
类别 描述
设计和实现 良好的设计会在组件设计和部署里包含诸如一致性和内聚性、简化管理和部署的可维护性,以及允许组件和子系统被其他应用使用的重用性。设计和实现阶段的决策对于云计算应用和服务的总体质量及成本有重大影响
消息 云计算应用的分布式特性需要一个连接组件和服务的消息基础架构,理想情况下是松耦合方式,便于zui大化伸缩性。异步消息被广泛使用,而且提供了许多好处,同时也带来了许多挑战,比如消息顺序、毒消息管理、幂等性等
管理和监控 云计算应用运行在远程数据中心中,我们无法完全控制基础架构或者操作系统。相比私有云,这种情况使得管理工作更加困难。只有应用暴露运行时的信息,管理员和运营人员才可以管理和监控系统;只有支持修改业务需求和自定义,才不需要应用停止和创新部署
性能和伸缩性 性能是系统执行特性操作的响应性指标,而伸缩性是系统处理新增压力但不会影响性能与可用性的能力。云计算应用通常会遇到变化的工作负载和峰值,这种情况通过不可预测,特别是在多租户场景下。相反,应用应该能够通过伸缩来满足峰值的需要,而且当需要下降时回退。伸缩性不只是关注计算实例,还关注其他要素,比如数据存储、消息基础架构等
弹性 弹性是系统优雅地处理错误和恢复系统的能力。云计算主机的基本特性为:应用通常是多租户的,使用共享平台服务,竞争资源和带宽,通过互联网通信,运行在商用硬件上。这意味着将会出现更多短暂和永久的错误。探测错误,并快速和高效地恢复对于维护弹性来说必不可少
安全 安全是系统阻止设计使用范围外的恶意和意外操作的能力,是阻止泄露和丢失数据的能力。云计算应用暴露在互联网上,跨越信任的私有云环境边界,通常对外开放,因此可能会出现不信任的用户。应用必须以安全的方式设计和部署,避免恶意攻击,限制只有支持的用户可以访问,并且保护敏感数据
对于每个类别,我们都创建了关联的指南和文档,以帮助开发者解决常见的共同问题。这些包括以下3方面内容。
• 24种设计模式。这是云托管应用非常有用的24种设计模式。每个设计模式提供了描述上下文及其问题,解决方案及其问题,使用模式的公共格式,以及基于Azure平台的例子。每种模式也包含连接到其他相关模式的链接。
• 10个指南主题。提供了开发云计算应用所需的基本知识、实践经验与技巧。每个主题都详实地介绍了这些知识。
• 例子程序。演示了设计模式的使用过程。我们可以使用这些代码参考设计自己特定的需求代码。
设计模式
设计模式被分配到一个或者多个类别中。完整的设计模式列表如下所示。
模式 描述
缓存驻留模式 根据需要从数据存储器加载数据。此模式可以用来改进性能,还可以用于维护缓存和后台数据库之间的数据一致性
断路器模式 当连接远程服务或资源时,可能导致不定时间恢复系统的错误。此模式可以用于改进系统的稳定性和弹性
事务补偿模式 如果一个或者多个操作失败,就会取消执行的一系列工作,它定义了一组zui终一致性模型的操作。遵从zui终一致性模型的操作在云托管应用中非常常见,通常都会实现复杂的业务过程和工作流
竞争消费者模式 允许多个并发的消费者在相同的消息通道上处理接收的消息。此模式允许系统并发处理多个消息以优化系统的吞吐量,改进系统的伸缩性和可用性,平衡工作负载
计算资源合并模式 合并多个任务或者操作到单个计算单元里。此模式可以增加计算资源的使用率,降低云计算应用中计算处理的成本和管理开销
命令和职责分离(CQRS)模式 通过隔离接口来分离更新和读操作。此模式可以zui大化性能、伸缩性和安全性,通过高度的灵活性支持系统的进化,在领域级别阻止引起合并冲突的更新命令
事件源模式 使用只能追加的存储库来记录领域里发生在数据库方面的完整操作事件序列,而不是仅仅保存当前状态,让存储库可以用来创建特定的对象状态。此模式可以通过避免同步数据模型和业务模型的需求来简化复杂领域里的任务,改进性能、伸缩性和响应性,提供事务性数据的一致性,维护可以支持补偿操作的完整审计追踪和历史信息
外部配置存储模式 把配置信息从应用部署包移动到一个中心位置。此模式可以提供更简单的管理和配置数据控制、跨应用和应用实例共享配置的机会
联合身份模式 把验证委托给一个外部身份标识提供器。此模式可以简化部署,zui小化用户管理的需求,并且改进应用的用户体验
门卫模式 通过在客户端和应用与服务之间使用特定的作为代理的宿主实例来保护应用和服务,验证并保护请求,且在它们之间传递请求消息。此模式可以提供额外的安全层,并且降低系统受攻击的层面
健康终结点监控模式 在应用中实现功能检查,可以通过暴露的终结点定时访问监控数据。此模式可以帮助检验应用和服务是否正确执行
索引表模式 在频繁访问的数据存储库特定字段上出aung时就索引。此模式可以通过允许应用更快速地从数据存储库查询数据改进查询性能
续表
模式 描述
领导选举模式 选举一个实例作为领导来承担管理其他实例的职责,让其协调分布式节点的任务执行。此模式可以帮助确保任务不会与其他任务冲突,避免资源争用,或者被其他执行的任务干扰
物化视图模型 当数据格式并非查询操作期望的格式时,提前为一个或者多个数据存储器中的数据生成视图。此模式可以帮助实现高效查询和数据提取,改进应用程序的性能
管道和过滤器模式 把一个复杂的任务分解为一系列可以单独执行的可重用的任务元素。此模式可以通过独立部署和伸缩任务元素来改进性能、伸缩性和可重用性
优先级队列模式 为发送给服务的请求消息设置优先级,这样高优先级的请求可以被更快地处理。此模式在给独立类型的客户端提供不同服务级别担保时非常有用
基于队列的负载均衡模式 在任务和调用的服务之间使用队列作为缓冲区来平滑断断续续的可能导致服务失败或者任务超时的超量负载。此模式可以帮助zui小化峰值压力对于任务和服务的可用性和响应能力的影响
重试模式 当连接服务或者网络资源时,通过允许短暂错误重试操作来允许应用程序处理临时的失败。此模式可以用来改进应用的稳定性
运行时重配置模式 设计应用程序使其可以无需重新部署,或者重新启动应用来重新配置。这可以用于维护可用性和zui小化宕机时间
调度器代理监控模式 协调跨分布式服务和其他资源的集合。如果某个操作失败,则尝试透明地处理错误;或者如果系统无法从错误中恢复,则取消执行工作产生的影响。此模式可以通过对短暂异常、长期错误和处理错误启用恢复和重试操作增加系统的弹性
分片模式 把数据库水平分割为不同的区片进行存储。当存储和访问海量数据时,此模式可以改进伸缩性
静态内容托管模式 部署静态内容到可以直接发送给客户端的云端存储服务上。此模式可以减少对于昂贵计算实例的需求
限流模式 控制单个应用实例、单个租户或者整个服务消耗的资源数量。此模式可以允许系统继续工作,并且满足服务级别协议,甚至对资源增加极限负载时也可以正常工作
令牌模式 为了在应用程序代码里支持卸载数据传输操作,使用令牌或者秘钥来限制对特定资源或服务的访问。此模式在使用云托管存储系统或者队列时特别有用,并且可以zui小化成本,zui大化伸缩性和性能
主题
这些主题与特定的应用程序开发相关,如下图所示。
这个指南包含下面的主题。
主题 描述
异步消息通信指南 消息通信是许多分布式系统采用的关键策略,比如云计算。它允许应用和服务彼此通信并协同工作,且可以帮助构建可伸缩的和弹性的解决方案。消息通信支持异步操作,允许我们解耦服务调用和宿主进程
自动化伸缩指南 持续监控性能和伸缩系统以适应波动的工作负载、满足目标需求并且优化运营成本,这个过程可能需要大量的人力成本。这些工作可能无法人工完成。这也是自动化伸缩的用武之地
缓存指南 缓存是一种常见的改进系统性能和伸缩性的技术,它通过把高频率访问的数据拷贝到接近应用的数据存储区中来实现加速。缓存当应用程序重复读取相同的数据时zui高效,特别是原始数据存储区的速度相对缓存较慢的时候,它受制于高级别的争用,或者说它不会导致网络延迟
计算分区指南 当部署应用程序到云端时,很可能采用把服务和组件根据使用情况分别部署的方式,以便在维护伸缩性、性能、可用性和应用安全时zui小化运行成本
数据一致性指南 云应用通常使用的数据分散存储在不同的存储区里。管理和维护数据一致性变得尤为重要,尤其是出现并发性和可用性问题时。我们通常需要在并发性和一致性之间取舍。这意味着我们在设计解决方案时会考虑zui终一致性,而不会追求应用程序所有时刻都处于完全一致性状态
数据分区指南 在许多大型伸缩解决方案中,数据被分割到不同的可以单独管理和访问的分区中。必须仔细选择这些分区策略以便zui小化坏处zui大化好处。分区可以帮助我们改进伸缩性,降低争用,并且优化性能
续表
主题 描述
复制和同步数据指南 当部署应用到多个数据中心,比如云和私有云中时,为了zui大化可用性和性能、确保一致性、zui小化数据传输成本,就必须考虑如何在多个节点同步数据
远程监控指南 绝大多数应用都会包含诊断功能特性,这些特性可以生成自定义监控和调试信息,尤其是当错误发生的时候。这通常称为监控仪表盘,是通过添加事件和错误处理代码到应用程序中来实现的。收集远程信息的过程通常称为遥感监测
多数据中心部署指南 在多个数据中心部署应用有许多好处,比如增加可用性、更好的跨地区用户体验。然而,还有一些挑战要解决,比如数据同步和监管限制
服务调用统计指南 我们可能需要统计应用或者服务的调用信息以便计划、调整未来的需求策略,了解用户如何使用系统,或者对用户、组织部门或者客户计费。这些都是常见的需求,对大公司和独立软件供应商及服务商尤其如此
例子应用
10个例子程序演示了本书中介绍的一些模式实现过程,大家可以下载到本地运行,或者部署到Azure订阅账号里测试。要获取并运行这些程序代码:
(2) 在Windows资源浏览器里打开压缩文件的属性,选择解压。
— 没有更多了 —
以下为对购买帮助不大的评价