• 云原生模式
21年品牌 40万+商家 超1.5亿件商品

云原生模式

正版保障 假一赔十 可开发票

69.98 6.4折 109 全新

库存2件

上海黄浦
认证卖家担保交易快速发货售后保障

作者(美)Cornelia Davis

出版社电子工业出版社

ISBN9787121389139

出版时间2020-08

装帧平装

开本16开

定价109元

货号9852892

上书时间2024-01-26

灵感书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
"Cornelia Davis 是 Pivotal 公司的技术副总裁,她负责为 Pivotal 公司和 Pivotal 公司的客户制定技术战略。目前,她正在研究如何将各种云计算模型(基础设施即服务、应用程序即服务、容器即服务和函数即服务 ) 整合到一个全面的产品中,使 IT 组织能够在很高层面上运行。 Cornelia 在图像处理、科学可视化、分布式系统和 web 应用程序架构,以及云原生平台方面有超过 30 年的经验。Cornelia 拥有加州州立大学北岭分校的计算机科学本科和硕士学位,并在印第安纳大学进一步研究了计算机原理和编程语言。 因为内心一直想当一名老师,所以 Cornelia 在过去的 30 年里,一直致力于开发更好的软件,以及培养更好的软件开发人员。 空闲的时候,Cornelia 更喜欢瑜伽锻炼和烹饪。 张若飞,TGO会员,曾任易通贷CTO,宜人贷首席架构师,在雅虎北研、金山云、POLYCOM等公司担任架构师。十余年互联网研发及技术管理经验,管理过过百人的技术研发团队,对搭建海量数据、大型分布式系统有丰富经验,对互联网金融领域有广泛涉猎。著有十余本技术译著,包括《云原生Java:Spring Boot、Spring Cloud与Cloud Foundry弹性系统设计》《面向可伸缩架构》《代码不朽:编写可维护软件的十大则》《给大忙人看的JavaSE 8》《Grails指南》等书,总计300余万字。"

目录
部分 云原生上下文

 章 什么是“云原生”.3

 1.1 现代应用程序的需求.7

 1.1.1 零停机时间.7

 1.1.2 缩短反馈周期.8

 1.1.3 移动端和多设备支持.8

 1.1.4 互联设备(物联网).9

 1.1.5 数据驱动.9

 1.2 云原生软件简介.10

 1.2.1 定义“云原生”.10

 1.2.2 云原生软件的思维模型.12

 1.2.3 云原生软件实战.17

 1.3 云原生与世界和平.21

 1.3.1 云和云原生.22

 1.3.2 什么不是云原生.23

 1.3.3 云原生的价值.24

 小结.26

 第2章 在生产环境中运行云原生应用程序.27

 2.1 面临的困难.28

 2.1.1 碎片化的变化.30

 2.1.2 有风险的部署.31

 2.1.3 认为变化是例外.35

 2.1.4 生产环境的不稳定性.35

 2.2 解决办法.36

 2.2.1 持续交付.37

 2.2.2 可重复性.41

 2.2.3 安全部署.46

 2.2.4 变化是一定的.49

 小结.52

 第3章 云原生软件平台.53

 3.1 云(原生)平台的发展.54

 3.1.1 从云计算开始.54

 3.1.2 云原生的“拨号音”.56

 3.2 云原生平台的核心原则.59

 3.2.1 先聊聊容器.60

 3.2.2 支持“不断变化”.61

 3.2.3 支持“高度分布式”.64

 3.3 人员分工.68

 3.4 云原生平台的其他功能.70

 3.4.1 平台支持整个软件开发生命周期.70

 3.4.2 安全性、变更控制和合规性(管控功能).73

 3.4.3 控制进入容器的东西.75

 3.4.4 升级与安全漏洞修补.77

 3.4.5 变更控制.79

 小结.81

 第2部分 云原生模式

 第4章 事件驱动微服务:不只是请求/响应.85

 4.1 我们(通常)学习的是命令式编程.86

 4.2 重新介绍事件驱动的计算.88

 4.3 我的全球食谱.89

 4.3.1 请求/响应.90

 4.3.2 事件驱动.96

 4.4 命令查询职责分离模式.106

 4.5 不同的风格,相同的挑战.108

 小结.110

 第5章 应用程序冗余:水平伸缩和无状态.111

 5.1 云原生应用程序会部署许多实例.113

 5.2 云环境中的有状态服务.114

 5.2.1 解耦单体程序并绑定到数据库.115

 5.2.2 错误处理会话状态.119

 5.3 HTTP会话和黏性会话.133

 5.4 有状态服务和无状态应用程序.136

 5.4.1 有状态服务是特殊的服务.136

 5.4.2 让应用程序变得无状态.138

 小结.143

 第6章 应用程序配置:不只是环境变量.144

 6.1 为什么要讨论配置.145

 6.1.1 动态伸缩―增加和减少应用程序实例的数量.146

 6.1.2 基础设施变化会导致配置变化.146

 6.1.3 零停机时间更新应用程序配置.148

 6.2 应用程序的配置层.148

 6.3 注入系统/环境值.153

 6.3.1 实际案例:使用环境变量进行配置.153

 6.4 注入应用程序配置.162

 6.4.1 配置服务器简介.163

 6.4.2 安全方面的额外需求.171

 6.4.3 实际案例:使用配置服务器的应用程序配置.171

 小结.174

 第7章 应用程序生命周期:考虑不断的变化.175

 7.1 运维同理心.177

 7.2 单实例应用程序生命周期和多实例应用程序生命周期.178

 7.2.1 蓝/绿升级.182

 7.2.2 滚动升级.183

 7.2.3 并行部署.184

 7.3 协调多个不同的应用程序生命周期.187

 7.4 实际案例:密码轮换和应用程序生命周期.191

 7.5 处理临时运行时环境.200

 7.6 应用程序生命周期状态的可见性.202

 7.6.1 实际案例:健康端点和探测.207

 7.7 无服务器架构.210

 小结.212

 第8章 如何访问应用程序:服务、路由和服务发现.214

 8.1 服务抽象.217

 8.1.1 服务示例:用Google进行搜索.218

 8.1.2 服务示例:我们的博客聚合器.220

 8.2 动态路由.221

 8.2.1 服务端负载均衡.221

 8.2.2 客户端负载均衡.222

 8.2.3 路由刷新.223

 8.3 服务发现.226

 8.3.1 Web的服务发现.229

 8.3.2 服务发现和客户端负载均衡.230

 8.3.3 Kubernetes中的服务发现.232

 8.3.4 实际案例:使用服务发现.234

 小结.237

 第9章 交互冗余:重试和其他控制循环.238

 9.1 请求重试.240

 9.1.1 基本的请求重试.240

 9.1.2 实际案例:简单的重试.241

 9.1.3 重试:可能出了什么问题.246

 9.1.4 创建一个重试风暴.247

 9.1.5 实际案例:创建一个重试风暴.248

 9.1.6 避免重试风暴:友好的客户端.259

 9.1.7 实际案例:成为一个更友好的客户端.259

 9.1.8 什么时候不需要重试.265

 9.2 回退逻辑.266

 9.2.1 实际案例:实现回退逻辑.266

 9.3 控制循环.272

 9.3.1 了解控制循环的类型.272

 9.3.2 如何控制控制循环.273

 小结.275

 0章 前沿服务:断路器和API网关.277

 10.1 断路器.279

 10.1.1 软件中的断路器.279

 10.1.2 实现一个断路器.282

 10.2 API网关.294

 10.2.1 云原生软件中的API网关.296

 10.2.2 API网关拓扑.297

 10.3 服务网格.299

 10.3.1 挎斗.299

 10.3.2 控制平面.302

 小结.304

 1章 故障排除:如同大海捞针.305

 11.1 应用程序日志.306

 11.2 应用程序度量指标.310

 11.2.1 从云原生应用程序中获取指标.311

 11.2.2 由云原生应用程序推送指标.314

 11.3 分布式跟踪.317

 11.3.1 跟踪器的输出.320

 11.3.2 通过Zipkin组合跟踪轨迹.323

 11.3.3 实现细节.328

 小结.329

 2章 云原生数据:打破数据单体.331

 12.1 每个微服务都需要一个缓存.334

 12.2 从请求/响应到事件驱动.337

 12.3 事件日志.339

 12.3.1 实际案例:实现一个事件驱动的微服务.341

 12.3.2 主题和队列的新特点.354

 12.3.3 事件载荷.358

 12.3.4 幂等性.360

 12.4 事件溯源.361

 12.4.1 到目前为止的旅程.361

 12.4.2 真实来源.363

 12.4.3 实际案例:实现事件溯源.365

 12.5 我们只是介绍了一些皮毛.368

 小结

内容摘要
拥抱“云”,更多指的是如何设计你的应用程序,而不是你在哪里部署它们。本书是一本架构指南,指导你如何让应用程序在动态的、分布式的、虚拟的云世界中茁壮成长。本书介绍了云原生应用程序的多种思维模型,以及支持其构建的模式、实践和工具,同时提供了一些实际案例和专家建议,帮助你更好地开发和使用应用程序、数据、服务、路由等。本书分为两部分。部分定义了云原生的上下文环境,并展示了软件部署环境的特点。第2部分深入探讨了云原生模式,包括请求/响应、事件驱动、断路器等。无论你是否有云原生的开发经验,通过本书提供的众多模式,一定可以更好地理解和掌握云原生开发。

主编推荐
 云平台带来了强大的功能:几乎不存在停机时间、无限的可伸缩性、反馈周期短、高容错性及成本可控。但是如何使用这些功能呢?通过采用云原生设计,开发人员可以构建具有弹性、高可适应性的大规模分布式应用程序,从而处理大量的用户流量和数据负载。通过学习这些基本模式和实践,你可以在动态的、分布式的、虚拟的云计算世界中茁壮成长。 Comelia Davis拥有三十年相关开发经验,她将向你介绍云原生应用程序的实践方式和应用模式。通过介绍应用程序、数据、服务、路由等问题的实际案例和专家建议,她会向你展示如何在现代云平台上设计和构建运行良好的软件。当你阅读本书时,你将开始意识到,云原生计算更多是关于如何做和为什么这样做的,而不是在哪里进行计算。本书包括: · 云原生应用程序的生命周期 · 云计算的配置管理 · 零停机时间升级、版本化服务和并行部署 · 服务发现和动态路由 · 如何管理服务之间的交互,包括重试和断路器 

精彩内容
 译者序 当我们讨论云原生时,究竟在讨论什么?这些年来我一直在思索这个问题,大家的观点可能不尽相同。三年前从我翻译了*本云原生领域的图书开始,陆续参与翻译和创作了一系列云原生作品,同时通过对云原生领域的开源项目、社区、基金会、应用云化过程的参与和观察,我得出了下面的结论 :云原生是一种行为方式和设计理念,究其本质,凡是能够提高云上资源利用率和应用交付效率的行为或方式都是云原生的。云计算的发展史就是一部云原生化的历史。云原生是云计算适应社会分工的必然结果,将系统资源、底层基础设施和应用编排交由云平台管理,让 开发者专注于业务逻辑,这不正是云计算长久以来孜孜以求的吗?云原生应用追求的是快速构建高容错性、弹性的分布式应用,追求的研发效率和友好的上线与运维体验,随之云原生的理念应运而生,它们天生适合部署在云上,可以*限度地利用云计算带来的红利。 在此之前我曾翻译过几本云原生主题的图书,其中 Cloud Native Go 的作者 Kevin Hoffman,《云原生 Java》的作者 Josh Long,他们都来自 Pivotal 或曾在Pivotal 工作多年,当看到此书时,我惊奇地发现,作者 Cornelia Davis 同样来自这家公司,Pivotal 真可谓是云原生的“黄埔军校”。此书的内容跟以往的云原生图书有所不同,对于模式的梳理标新立异,因此我立即联系了电子工业出版社的张春雨编辑。经他了解到张若飞正在翻译此书,此前我与他合作翻译了《云原生 Java》,本书算是我跟他的第二次合作,他翻译图书的精准和着实让我佩服,我们各自 翻译了本书一半的内容。 人人都在讨论云原生,但是究竟如何实现却莫衷一是。本书主要关注的是云原生应用的数据、服务与交互,即应用层面的设计模式,这些模式穿插于本书第 2 部分的各个章节中,基本覆盖了云原生应用的各个方面,并将理论与实践结合,带领读者使用 Java 实现了一个云原生应用。 同时还要感谢 ServiceMesher 社区、云原生社区的成员及志愿者们对于云原生在中国的发展做出的贡献,你们的鼓励和支持是我在云原生领域不断努力和探索的动力。本书的翻译难免有一些纰漏,还望读者指正。 宋净超 2020 年 7 月 4 日于北京 序 六年来,我有幸与 Nicole Forsgren 和 Jez Humble 合作编写了《DevOps 现状报告》(State of DevOps Report),该报告收集了来自三万多名受访者的数据。这份报告给我的*启示之一就是软件架构的重要性 :能团队的架构能够使开发人员快速、独立、安全、可靠地开发、测试和部署软件,从而为客户不断创造价值。 几十年前,我们可以开玩笑地说,软件架构师只擅长使用 Visio、绘制 UML 图表以及制作没人看的 PowerPoint 幻灯片,但今非昔比,大量企业在市场上的成败取决于它们所开发的软件。应该说,没有什么比它们每天必须使用的架构更能影响开发人员的日常工作了。 本书填补了理论与实践之间的一段空白。事实上,我认为只有少数人可以将它写出来。Cornelia Davis 是极其合适的人选,她曾在攻读博士学位时学习了编程语言,对函数式编程和不可变性产生了浓厚的兴趣,拥有数十年大型软件系统的开发经验,并且帮助大型软件企业获得过巨大的成功。 在过去的五年中,我多次联系她寻求帮助和建议,我们经常讨论有关诸如CQRS 和事件源模式、LISP 和 Clojure 语言(我*喜欢的编程语言)、命令式编程和状态的危险性,甚至像递归这样简单的事情。 本书的亮点在于 Cornelia 不仅仅从模式入手。她从模式的基本理论开始,然后通过论证(有时通过逻辑或者流程图)来证明它们的有效性。除了理论本身,她还通过 Java Spring 框架一个一个地实现了这些模式,以便让你更好地理解这些知识。 我发现,这本书兼具娱乐性和教育性,并且使我对大量以前只是略知皮毛的知识有了更深入的了解。我现在致力于通过 Clojure 语言来实现她的示例,以证明我可以将这些知识付诸实践。 本书可能会让你联系起一些令人感到兴奋甚至惊讶的概念。对我而言,其中一个概念就是无论是面向切面的编程(AOP)、Kubernetes 的挎斗(sidecar)模式,还是 Spring Retry 注入,都是为了统一处理横切关注点(cross-cutting concerns)。 希望你能像我一样喜欢这本书! — Gene Kim,研究员以及 The Phoenix Project、The Devops Handbook 和 Accelerate 的联合作者 前言 我的职业生涯始于图像处理。我曾在休斯飞机公司(Hughes Aircraft)的导弹系统部工作,研究红外图像处理,处理边缘检测和帧与帧之间的关联。(这些功能在如今的手机应用上无处不见,这都要归功于 20 世纪 80 年代的研究!) 我们在图像处理中常用的计算之一是标准差。我从来不羞怯于提出问题,而我早年经常问的一个问题就是关于标准差的。我的一个同事总是会写下标准差的公式。真见鬼,三个月过去了,这个公式我大概已经写了六遍。 我真正想问的是 :“在这种情况下,标准差究竟意味着什么?”实际上,标准差是用来定义什么是“正常的”,这样我们可以寻找离群值。如果我正在计算标准差,然后发现了超出正常值范围的情况,那么是否表示我的传感器可能出现了故障,并且我需要舍弃这一帧图像,还是表示它暴露了潜在敌人的行动? 所有这些与云原生有什么关系?没有。但这一切与模式有关。正如你所见,我虽然知道这个模式(标准差计算),但是由于当时缺乏经验,所以不知道何时以及为什么要使用它。 在本书中,我将向你介绍云原生应用程序的多种架构模式,是的,我将向你展示许多的“公式”,但是为了说明何时及为何使用这些模式,我会在介绍上下文环境上花费更多的时间。实际上,模式通常并不那么困难(例如,第 9 章介绍的请求重试模式很容易实现),困难的是决定何时应用某个模式,以及如何正确地应用该模式。 在应用这些模式时,你需要了解很多的上下文环境,并且坦率地说,这些环境有可能很复杂。 那么上下文环境是什么呢?从根本上来说,它是一个分布式系统。当我三十多年前开始工作时,并不认识很多从事分布式系统工作的人,在大学也没有学过分布式系统的课程。没错,虽然人们在这个领域中工作,但说实话,这是一个小的领域。 如今,绝大多数软件都是分布式系统。软件的某些部分在浏览器中运行,而另一些部分在服务器上运行,或者我敢说,在一大堆服务器上运行。这些服务器可能在你公司的数据中心运行,也可能在俄勒冈州普莱恩维尔的一个数据中心运行,或者同时在两地运行。所有这些都是通过网络(可能是互联网)进行通信的,而且软件的数据也很可能是分布式的。简单地说,云原生软件是一个分布式的系统。此外,事情在不断变化 — 服务器正在不断下架,网络经常中断(即便是短暂的中断),存储设备可能会在没有任何警告的情况下崩溃 — 即使是这样,我们依然希望软件能够继续正常运行。这是一个具有挑战性的环境。 但是这是可控制的!本书的目的就是帮助你理解这种上下文环境,并为你提供一些工具,让你成为一名精通云原生的架构师和开发人员。 我从来没有像现在这样感受到如此剧烈的脑力激荡。这在很大程度上是因为技术领域正在发生重大变化,而云原生就是这个变化的核心。我*热爱我所从事的工作,我希望每个人,尤其是你,也能像我一样喜欢编写软件。这就是我编写这本书的原因 :我想与你分享整个行业正在面临的那些疯狂而又酷炫的问题,帮助你踏上解决这些问题的旅程。我很荣幸有机会与你一起踏上云原生之旅,哪怕是在其中扮演一个小小的配角。 我的云原生之旅始于 2012 年,当时我的老板 Tom Maguire 让我开始研究 PaaS(平台即服务)。作为 EMC CTO 办公室架构组的一员,关注新兴技术对我们来说并不新鲜 — 但是,这一次终于成功了!我将永远感激 Tom 给了我探索的动力和空间。 到 2013 年年初,我已经学到了足够多的东西,预见到未来我会在这个领域工作,而随着 Pivotal Software 公司的创立,我有了一个工作的地方。首先,我要感谢 Elisabeth Hendrickson,感谢她在我还在 EMC 的时候就邀请我参加 Cloud Foundry会议,感谢她把我介绍给 James Watters。我经常说,我做过的*好的职业选择是为James 工作。我感谢他给了我很多机会,感谢他的信任让我全身心投入工作,感谢与他大量的深度对话让彼此共同理解了什么是云原生,以及感谢我们之间六年的深厚友谊。 我很感恩自从 Pivotal 公司成立我就加入了公司,和这么多聪明、敬业、善良的同事一起学习。我要感谢 Elisabeth Hendrickson、* McKenty、Andrew Clay-Shafer、Scott Yara、Ferran Rodenas、Matt Stine、Ragvender Arni,以及其他许多人(如果我漏掉了任何人,请原谅)帮助我学习,并与我一起度过我人生中*美好的六年! 我还要感谢 Pivotal 公司,是 Ian Andrews 和 Kelly Hall,感谢他们赞助了《云原生基础》(Cloud-Native Foundations)迷你书。 我从许多同行那里学到了很多知识,无法一一列举,但是感谢每一个人。我想感谢 Gene Kim。我还记得我们见面的那天晚上(再次感谢 Elisabeth Hendrickson,感谢她促成了我们那次会面),我立刻意识到,我们将合作很长一段时间。我感谢Gene 给了我在 DevOps 企业峰会(DevOps Enterprise Summit)上与他共事的机会,通过那次峰会,我认识了许多在不同公司工作的创新

媒体评论
"这本书填朴了理论与实践之间的一段空白,兼具娱乐性和教育性。 ——摘自The Phoenix Projec作者之一Gene Kim的序 这本书对现实世界挑战的关注,使它成为如今项目开发的一本重要手册。 ——David Schmitz, Senacor Technologies 本书揭开了如何以低成本运维方式来构建一一个自修复、分布式和弹性的Web应用程序的神秘面纱。 ——Raveesh Sharma, Stellapps Technologies"

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP