可伸缩架构:面向增长应用的高可用
  • 推荐0
  • 收藏9
  • 浏览2.0K

可伸缩架构:面向增长应用的高可用

Lee Atchison (作者)  张若飞 (译者)

  • 书  号:978-7-121-31684-5
  • 出版日期:2017-06-15
  • 页  数:192
  • 开  本:16(178*233)
  • 出版状态:上市销售
  • 原书名: Architecting for Scale
  • 原书号:9781491943397
  • 维护人:张春雨
电子书 ¥42.00
购买电子书
纸质版 ¥65.00
随着互联网的发展越来越成熟,流量和数据量飞速增长,许多公司的关键应用程序都面临着伸缩性的问题,系统变得越来越复杂和脆弱,从而导致风险上升、可用性降低。本
书是一本实践指南,让IT、DevOps和系统稳定性管理员能够了解到,如何避免应用程序在发展过程中变得缓慢、数据不一致或者彻底不可用等问题。规模增长并不只意味着处理更多的用户,还包括管理更多的风险和保证系统的可用性。作者Lee Atchison 在可用性、风险管理、服务和微服务、扩展应用程序和云服务方面提出了一些技巧,使得我们在构建各类应用程序时,既能够保证产品的质量,又能够处理海量的流量、数据以及需求。
如果你管理着软件开发人员、系统可靠性工程师、DevOps工程师,或者你经营着一个拥有大规模应用程序和系统的机构,本书中所提供的建议和指导都能够帮助你,让你的
系统运行得更加平稳和可靠。
流量|数据|复杂度一路攀升 超大规模迫在眉睫 你亟需一套成熟方法和技巧→它来了!

我们生活在一个有趣的时代,可以称它是一个软件的寒武纪大爆炸。在这个过程中,构建新系统的成本呈数量级式下降,同时系统之间的关联程度也呈同等数量级的增长。借助于 Amazon的 AWS、微软的 Azure和 Google的 GCP等资源,我们可以将系统在物理上扩展到一个几年前还只能想象的规模。
这些资源及其似乎无限的能力,正在以各种前所未见的方式,将新的思想、产品和市场极其快速地传播出去。但是,只有当我们构建的系统可以保持扩展的同时,所有这些探索才能成为可能。与以前相比,虽然构建小型系统变得容易很多,但是构建一个可以快速、可靠扩展的系统,并不像增加更多的硬件和存储空间那么容易,实际证明,这要难得多。
每个软件系统都会经历一个可预见的生命周期,从一个人能够完全理解的、小型的、设计精妙的解决方案,迅速增长为一个积累了大量技术债务的庞大系统,随后又逐渐分裂成由一些不完善的服务随机组成的组合,并最终演化成在广度(更多用户)和深度(更多功能)方面均可稳定扩展的、设计良好的分布式系统。对于这样的系统来说,我们很容易从外部了解要做哪些事情(让它变得更加可靠!),但又很难了解它内部的细节。幸运的是,本书是一本关于这方面不可或缺的指南,从可用性到服务层,从比赛日到风险模型,Lee一步步介绍了影响大规模系统的各个关键因素和实践方式。
Lee加入我们的时候,是 New Relic第一次从仅拥有一个产品正在向多个产品转型的时期,当时我们正沉浸在用户极速增长和公司成功的喜悦中。 Lee的到来,为我们带来了他在 Amazon的丰富经验,不管是零售业务还是 AWS业务都曾经历过巨大的增长。Lee曾是这些团队的领头人,曾经积极参与过与可扩展性有关的所有事情,也遇到过很多失败。对我们来说,幸运的是,他已经经历过这些挫折与困苦,其中的教训可以让我们避免再犯同样的错误。
在 Lee加入 New Relic之前,多年以来,我们一直经历着系统服务不可用的尴尬处境。我们原有的庞大系统也逐渐无法支持业务的发展,不管是可用性、可靠性还是性能都不是很好。但是,通过充分运用 Lee在本书中所写的各项技巧,我们逐渐克服了这些困难,并构建了如今稳定可靠的企业级服务。其中我们使用的一个工具,建立了可用性工程的四个级别:青铜、白银、黄金和白金。要达到青铜级,团队必须拥有风险模型以及预定义的 SLA标准。要达到白银级,团队必须能够监控风险模型中标识出来的问题,并使用比赛日的方式来解决。黄金级意味着风险已经被缓解掉了。白金级如同 CMM 5级一样,不仅系统可以自愈,而且我们关注持续性的改进。我们首先集中精力对第一级的服务进行改进,然后上升到第二级的服务,逐步推进,最终使得所有团队都至少达到了白银级,并且大多数团队通过了黄金级,甚至有几个团队达到了白金级。
后来我加入了 InVision App这个更年轻的公司。我又一次经历着从早期成功向高速增长的过程,一直推动大家去使用 Lee之前带给我的技术和工具。在这个新系统、新产品、新公司的爆炸年代,我强烈建议大家跟我做一样的事:向 Lee学习如何构建可伸缩的系统。
——Bjorn Freeman-Benson博士, InVision App首席技术官

前言
当应用程序开始增长时,通常会出现两件事情:它们明显变得更加复杂(也更加脆弱),并且需要处理显著增加的流量(需要更先进、更复杂的管理机制)。这会让应用程序逐渐陷入一个死亡漩涡,用户会不断经历着限流、宕机以及其他服务质量和可用性方面的问题。
但是你的用户不会关心这些。他们只希望使用应用来做他们希望做的事情。如果你的应用程序宕机、响应缓慢或者信息不一致,用户会马上抛弃你,转而投靠能够帮助他们处理生意的竞争对手。
本书可教会你一些如何构建并管理大规模应用程序的基本技巧,帮助你避免陷入如上所述的死亡漩涡。一旦你掌握了这些技巧,你的系统就能够可靠处理海量的流量,从容面对流量中大量的不确定性,同时不会对用户期望造成任何影响。
本书的读者对象
本书的目标读者包括构建和管理大规模应用程序和系统的软件工程师、架构师、技术经理以及总监。如果你管理着软件开发人员、系统可靠性工程师、 DevOps工程师,或者你经营着一个拥有大规模应用程序和系统的机构,本书中所提供的建议和指导都能够帮助你,让你的系统运行得更加平稳和可靠。
如果你的应用程序已经从很小的规模变得很大(并且正在经历着增长所带来的各种问题),你可能正在为系统的低可靠性和低可用性烦恼。如果你正在头疼如何管理技术债务以及相关的系统故障,本书恰好提供了这些方面的指导,能够帮助你通过降低技术债务,让应用程序更轻松地扩展到更大规模。

编写本书的原因
在 Amazon零售和 AWS业务多年从事构建高可伸缩应用程序之后,我加入了 New Relic这个正在迅速成长的公司。当时, New Relic已经感受到了因为缺少管理高可伸缩应用程序的系统、流程所带来的痛苦,但是尚未完整形成能够扩大其应用程序规模的流程和规范。
在 New Relic,我亲眼目睹了一个公司在扩张规模过程中所经历的痛苦与挣扎,同时也意识到,还有很多其他公司每天都在经历着这些痛苦。
编写本书的初衷,是为了帮助那些正在面对其应用程序高速增长的人们,使其了解到一些有用的流程和最佳实践,避免他们再掉入规模扩张过程的各种陷阱之中。
无论你的应用程序每年增长十倍还是百分之十,也无论增长的是用户数量、交易数量、数据存储量还是代码复杂性,本书都可以在构建和维护应用程序方面为你提供帮助,让它们在保持高可用性的前提下实现增长。

现在我们所说的规模
基于云的服务正在以极快的速度增长和扩张。这主要归功于对云服务的大量需求,“软件即服务(SaaS)”逐渐成为应用程序开发的标准。由于 SaaS应用程序天生多租户的特点,它们对于规模上的问题尤其敏感。
随着世界的改变,以及我们对 SaaS服务、云服务、海量应用程序越来越多的关注,规模性问题也变得越来越重要。似乎我们看不到,云应用程序在体积和复杂性方面会出现增长到头的情况。
关键的机制在于,我们当前用来管理大规模系统的前沿科技,很可能会成为明天的基础工具,而明天我们可能遇到的规模问题,也会让当前的解决方案相形见绌。我们需要越来越复杂的系统和架构,来处理将来可能无限增长的规模。
本书的目的,就是为了提供可以禁得起时间考验的知识。

本书导读
管理规模并不只是管理流量,还包括管理风险和可用性。通常来说,所有这些东西都是描述相同问题的不同方式,并且它们息息相关。因此,为了能够合理地讨论规模问题,我们还必须考虑到可用性、风险管理以及像微服务和云服务这样的现代架构模型。因此,本书按照如下章节来划分内容。
第Ⅰ部分:可用性
当某个应用程序开始扩张规模时,可用性和可用性管理通常是最先受到影响的部分。
第 1章,什么是可用性为了更好地让读者理解,我们会讲解一下高可用性的意义,以及它与可靠性之间的区别。
第 2章,提高应用程序可用性的五个要点
在本章中,我针对如何提高应用程序的可用性提出了五个核心方向。
第 3章,测量可用性
本章会介绍一种测量可用性的标准算法,并进一步讲解高可用性的作用和价值。
第 4章,提高下降的可用性如果你的应用程序正遇到可用性的问题(或者你想知道这是否正在发生),我们提供了一些管理手段,来帮助你提高应用程序的可用性。
第Ⅱ部分:风险管理
理解系统中的风险,对于提高应用程序的可用性,以及它后续向更大规模发展的能力是至关重要的。
第 5章,什么是风险管理
本章会通过介绍风险管理的基本知识,引出如何管理高可伸缩应用程序的话题。
第 6章,可能性与严重性本章会讨论风险发生时的严重性与可能性之间的区别。它们都非常重要,但是方式不同。
第 7章,风险模型
在本章中,我会以一个精心设计的系统为例,来帮助你理解和管理系统中的风险。
第 8章,风险缓和
本章会讨论如何处理系统中已知的风险,并减少它们对应用程序的影响。
第 9章,比赛日本章会介绍如何对风险管理计划、风险缓和计划以及容灾计划进行持续的测试和评估。本章回顾了在生产环境实现比赛日所需的技术,以及它所带来的好处。
第 10章,构建低风险系统
在本章中,我会给出如何降低应用程序中的风险,以及如何构建低风险系统的建议。
第Ⅲ部分:服务和微服务
服务和微服务都是一种架构方案,用于构建需要更大规模运行的、更加大型且复杂的应用程序。
第 11章,为什么使用服务
本章会介绍为什么服务对于构建高度可扩展的应用程序如此重要。
第 12章,使用微服务
在本章中,我会介绍如何创建基于微服务的架构,主要关注于如何对服务大小进行合理分割,确定服务的边界,以便提高可扩展性和可用性。
第 13章,处理服务故障
在本部分的最后一章中,我们会来讨论如何构建能够处理故障的服务。
第Ⅳ部分:如何让应用程序具有伸缩性
“伸缩”其实不仅仅与流量有关,它关系你的组织,以及你的组织如何来响应更大的应用程序需求。
第 14章,两次失误的高度
本章会介绍如何在出现故障的情况下,依然能够通过伸缩系统来保持高可用性。
第 15章,服务所有权
本章会讲解,关注服务的所有权,能如何帮助你扩展组织和应用程序。
第 16章,服务分级
本章会介绍如何区分各个服务的关键程度,从而帮助管理对服务的期望。
第 17章,使用服务分级
当制订服务分级制度之后,我们会介绍如何通过它来管理服务故障的影响、响应性需求以及期望管理。
第 18章,服务等级协议
在本章中,我们会讨论如何使用 SLA来管理服务所有者之间的相互依赖。

第 19章,持续改进
本章会就如何改进应用程序整体的可扩展性,提供相应的技术和指导。
第Ⅴ部分:云服务
对于构建和管理需要极强可伸缩能力的大型、关键性系统来说,基于云的服务正在变得日益重要。
第 20章,变化和云服务本章介绍了云服务对构建高度可伸缩的 Web应用程序所带来的改变。
第 21章,云上的分布
本章概述了如何有效使用地域和可用区来提高可用性和可伸缩性。
第 22章,托管的基础设施本章会介绍如何使用托管服务(例如 RDS、SQS、SNS和 SES)来伸缩应用程序,同时降低管理方面的工作。
第 23章,云资源分配
本章中我们会讨论如何分配云资源,以及不同分配技术对应用程序可伸缩性的影响。
第 24章,可伸缩的计算选项本章会介绍一些高度可伸缩的编程模型,例如 AWS Lambda。你可以通过这些技术来提高可伸缩性、可用性以及应用程序的可管理性。
第 25章,AWS Lambda本部分的最后一章会更加深入地介绍 AWS Lambda技术,它可以为简单的计算型需求提供高度的可伸缩性。
第Ⅵ部分:总结
第 26章,融会贯通
本章会将之前每个部分的核心要点汇总成一个简短的总结,帮助你来回忆每章的内容。

在线资源
本书的网站(http://www.architectingforscale.com/)提供了一些额外的信息,包括补充材料的链接地址。你可以在这个网站上找到更多关于我的信息,也可以关注我的博客。

本书使用的约定
本书使用以下一些排版约定:
斜体(Italic)
表示新的名词、URL、电子邮件地址、文件名以及文件扩展名。
等宽字体(Constant width)用于程序清单,以及段落中对变量、函数名、数据库、数据类型、环境变量、语句和关键字等程序元素的引用。
等宽加粗字体(Constant width bold)
用于显示命令或者其他需要由用户输入的文字。
等宽斜体字体(Constant width italic)
用于显示需要由用户提供的值或者由上下文决定的值所替换的文本。

该图标表示一个提示或者建议。
该图标表示一个一般说明。
该图标表示一个提醒或者警告。


Safari Books Online
前言 | xxiii





致谢
虽然我无法一一列举出所有为本书出版做出贡献的人,但是我还是想特别感谢以下帮助过我的人。
. Bjorn Freeman-Benson,在开始编写本书时,他给了我很多支持,并且提供了加入 New Relic的工作机会,让我能够去思考如何编写本书。

. Kevin McGuire,我们既是朋友也是知己。我们从 New Relic开始就在一起工作,他的远见和想象力为我的职业生涯指明了方向,并一直指导我到今天。

. Natasha Litt,她是我的好朋友,同时也给了我很多鼓励和支持。

. Jade Rubick,他始终保持着一贯的笑容和积极的态度,为我提供了很好的建议和指导。有幸与你为友。

. Jim Gochee,是他向我介绍了 New Relic这个产品,最终也成为我的工作。

. Lew Cirne,是他的远见带给了我们 New Relic,也带给了我一份工作和一个家庭。每次在跟 Lew进行一对一的谈话后,我都会被他的幽默和热情所感染和打动。怪不得 New Relic会如此成功。

. Abner Germanow、Jay Fry、Bharath Gowda和 Robson Grieve,他们为我争取到了在 New Relic工作的机会。谁说我就一定不能胜任这个职位呢?相反,我做得还非常好。这是目前为止我感到最开心、最有收获,以及对我个人来说最充实的一份工作。

. Mikey Butler、Nic Benders、Matthew Flaming,以及其他 New Relic的技术主管,感谢他们多年以来的支持。

. Kurt Kufeld,他曾是我的导师,感谢他帮助我融入 Amazon怪异、混乱的工作环境,让我不断接受挑战,拼尽每一分努力,并最终获得了巨大的成功。

. Greg Hart、Scott Green、Patrick Franklin、Suresh Kumar、Colin Bodell和 Andy Jassy,他们给了我在 Amazon和 AWS工作的机会,之前从未想过。

. Brian Anderson,我的编辑,他给了我编写本书的机会,并且在写书的每个阶段都在帮助我。


我想要特别感谢 Abner Germanow和 Bjorn Freeman-Benson,是他们让我有机会能够编写本书,没有他们,也不可能有本书的存在。出于这个原因,我会永远感谢他们。
感谢我的家庭,尤其是我的妻子 Beth,她永远是指引我生活方向的灯塔。与她在一起,我的生活变得越来越光明,我前进的道路也越来越清晰。
对于所有帮助过我的人们,以及所有我没有提到的人们,我衷心地感谢你们。
最后,我还必须介绍一下那些毛茸茸的小家伙们: Izzy,爱打鼾的西班牙猎犬; Abby,快乐的柯基犬;以及 Budha,一只好动的小猫咪,它给我带来的可不仅仅是本书中的错别字而已。


目录

目录

序. .......................... xv
前言. ......................xvii

第 1章 什么是可用性... 2
可用性与可靠性 ............................................... 3
什么导致了低可用性 ....................................... 4

第 2章 提高应用程序可用性的五个要点......................................... 6
要点 1:时刻考虑应对故障 ............................. 7
要点 2:时刻考虑如何伸缩 ............................. 8
要点 3:缓和风险 ............................................ 9
要点 4:监控可用性 ...................................... 10
要点 5:以预测和确定的方式来应对可用性问题 ...................................................... 11
做好准备 ........................................................ 12

第 3章 测量可用性... 13
N个 9 14
什么样的可用性是合理的 ...................... 14
不要上当 ........................................................ 14
通过数字来体现可用性.................................. 15
测试并跟踪当前的可用性 .............................. 17
将手动流程自动化 ......................................... 17
自动化部署............................................. 18
配置管理 ................................................ 18
更改实验和高频次更改 .......................... 19
自动化的变更完备性测试 ...................... 20
改进你的系统 ................................................ 20
不断变化和发展中的应用程序 ...................... 20
时刻关注可用性 ............................................. 21

第 5章 什么是风险管理. .......................................................... 24
管理风险 ........................................................ 25
识别风险 ........................................................ 25
消除最严重的风险 ......................................... 26
风险缓和 ........................................................ 26
定期检查 ........................................................ 27
对风险管理的总结 ......................................... 27

第 6章 可能性与严重性. .......................................................... 28
10佳列表:低可能性,低严重性 .................. 29
订单数据库:低可能性,高严重性 ............... 29
自定义字体:高可能性,低严重性 ............... 30
T恤图片:高可能性,高严重性 ................... 31

第 7章 风险模型...... 32
风险模型的作用域 ......................................... 34
创建风险模型 ................................................ 34
通过头脑风暴建立风险列表 .................. 35
填写可能性和严重性字段 ...................... 36
风险项详情............................................. 37
触发计划 ................................................ 37
使用风险模型来制订计划 .............................. 37
维护风险模型 ................................................ 38

第 8章 风险缓和...... 40
恢复计划 ........................................................ 41
容灾计划 ........................................................ 42
改进我们的风险状况 ..................................... 43

第 9章 比赛日......... 44
预发布环境和生产环境.................................. 44
在生产环境中举行比赛日的担心 ................... 46
比赛日测试 .................................................... 47

第 10章 构建低风险系统......................................................... 48
冗余 .. 48
幂等接口示例 ................................................ 49
增加了复杂性的冗余改进 .............................. 49
独立性 ............................................................ 50
安全 .. 51
简单性 ............................................................ 51
自修复 ............................................................ 52
运维流程 ........................................................ 53

第 11章 为什么使用服务. ......................................................... 56
单体应用程序 ................................................ 56
基于服务的应用程序 ..................................... 57
所有权收益 .................................................... 58
规模收益 ........................................................ 60
如何定义服务 ................................................ 63
深入了解服务 ......................................... 63
指导原则 1:特定的业务需求 ................ 63
指导原则 2:清晰和独立的团队所有权 . 64
指导原则 3:天然隔离的数据 ................ 65
指导原则 4:共享的能力 /数据 ............. 67
多种原因 ................................................ 67
过犹不及 ........................................................ 68
适当的平衡 .................................................... 69

第 13章 处理服务故障............................................................ 70
级联式的服务故障 ......................................... 70
如何响应服务故障 ......................................... 71
可预测的响应 ......................................... 72
可理解的响应 ......................................... 73
合理的响应............................................. 73
如何确定故障 ................................................ 74
适当的行为 .................................................... 76
优雅降级 ................................................ 76
优雅补偿 ................................................ 77
尽早失败 ................................................ 77
用户导致的问题 ..................................... 78

第Ⅳ部分 如何让应用程序具有伸缩性
第 14章 两次失误的高度......................................................... 82
什么是“两次失误的高度” ............................ 83
实践中的“两次失误的高度” ........................ 83
丢失一个节点 ......................................... 83
升级过程中出现的问题 .......................... 85
数据中心恢复 ......................................... 86
隐蔽的共享故障类型 .............................. 88
管理你的应用程序 ......................................... 90
航天飞机 ........................................................ 90

第 15章 服务所有权.. 92
由独立团队负责的服务架构 .......................... 92
STOSA应用程序和组织的好处 ..................... 94
成为一个服务所有者意味着什么 ................... 94

第 16章 服务分级. .... 97
应用复杂性 .................................................... 97
什么是服务分级 ............................................. 98
为服务分配服务级别标签 .............................. 99
1级服务 ................................................. 99
2级服务 ................................................. 99
3级服务 ............................................... 100
4级服务 ............................................... 100
示例:在线商店 ........................................... 100
接下来呢 ...................................................... 103

第 17章 使用服务分级.......................................................... 104
期望 104
响应性 .......................................................... 104
依赖 106
关键依赖 .............................................. 106
非关键依赖........................................... 107
小结 107

第 18章 服务等级协议.......................................................... 108
什么是服务等级协议 ................................... 108
外部 SLA与内部 SLA的对比 ..................... 110
为什么内部 SLA很重要 .............................. 110
SLA可以作为一种信任的手段 .....................111
SLA可以用于问题诊断 ................................111
限定 SLA .............................................. 113
排名 SLA .............................................. 113
延迟分组 .............................................. 115
究竟应当定义多少内部 SLA,以及定义哪些内部 SLA ........................................... 116
关于 SLA的其他评价 .................................. 116

第 19章 持续改进. ... 117
定期检查你的应用程序................................ 117
微服务 .......................................................... 118
服务所有权 .................................................. 118
无状态服务 .................................................. 118
数据在哪里 .................................................. 118
数据分区 ...................................................... 119
持续改进的重要性 ....................................... 121

第 20章 变化和云服务. ..........................................................124
云服务有哪些变化 ....................................... 124
对基于微服务架构的认可 .................... 124
更小、更专业的服务 ............................ 125
更专注于应用程序 ............................... 125
微型初创公司 ....................................... 125
安全和合规已经成熟 ............................ 125
变化还在继续 .............................................. 125

第 21章 云上的分布.127
AWS的架构 ................................................. 127
AWS区域 ............................................. 127
AWS可用区 ......................................... 128
数据中心 .............................................. 128
总体架构概述 .............................................. 129

第 22章 托管的基础设施....................................................... 134
基于云的服务架构 ....................................... 134
原生资源 .............................................. 135
托管资源(基于服务器) ....................... 136
托管资源(不基于服务器) ................... 137
使用托管资源的影响 ................................... 138
使用非托管资源的影响................................ 138
监控和 CloudWatch ...................................... 138

第 23章 云资源分配. ............................................................ 140
固定额度的资源分配 ................................... 140
调整分配 .............................................. 141
预留容量 .............................................. 142
基于使用量的资源分配................................ 143
基于使用量分配资源的好处 ................ 144
资源分配技术的利与弊................................ 145

第 24章 可伸缩的计算选项.................................................... 146
云服务器 ...................................................... 147
优点 ...................................................... 147
缺点 ...................................................... 147
适用场景 .............................................. 147
计算分片 ...................................................... 147
优点 ...................................................... 147
缺点 ...................................................... 148
适用场景 .............................................. 148
动态容器 ...................................................... 148
优点 ...................................................... 148
缺点 ...................................................... 149
适用场景 .............................................. 149
微计算 .......................................................... 149
优点 ...................................................... 149
缺点 ...................................................... 150

第 25章 AWS.Lambda....................................................... 151
使用 Lambda ................................................ 151
事件处理 .............................................. 151
手机应用后台 ....................................... 152
物联网数据采集 ................................... 153
Lambda的优缺点......................................... 154

第Ⅵ部分 总结
第 26章 融会贯通...156
可用性 .......................................................... 156
风险管理 ...................................................... 157
服务 157
扩展 157
云服务 .......................................................... 158
面向可伸缩的架构 ....................................... 158

索引. ..................... 159

读者评论

电子书版本

  • Epub
  • Mobi

图书类别

相关博文

  • 提高应用程序可用性的五个要点

    提高应用程序可用性的五个要点

    管理员账号 2017-06-30

    小编说:可用性问题通常会在你最想不到的地方出现,许多问题都是系统性的问题,而不仅仅是代码的问题。本文提出了五个要点能够帮助你的系统在规模增长的同时保证高可用性。相关图书推荐《可伸缩架构:面向增长应用的高可用》 构建一个高可用、可伸...

    管理员账号 2017-06-30
    2564 0 0 0

相关图书

深入集群:大型数据中心资源调度与管理

李雨前 (作者)

本书内容聚焦资源侧:集群调度和管理,非一般性的应用集群调度和管理。尽管按集群调度和集群管理两大部分来进行内容组织,实质上这两部分是一体的。集群管理是为了保障集群...

¥89.00

Netty源码剖析与应用

刘耀林 (作者)

Netty涉及多线程技术、复杂数据结构与内存管理模型,它运用了各种设计模式及一些TCP的底层技术。本书对这些难点一一进行攻破,让读者能快速掌握相关知识。 本书...

¥62.30

架构解密:从分布式到微服务(第2版)

吴治辉 (作者)

微服务、云原生、Kubernetes、Service Mesh是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些“前辈”的优点。我们不仅要了解这些技术...

 

趣谈网络协议

刘超 (作者)

网络协议是每个程序员入门的必修课,但是完全掌握网络协议知识并进行实际应用却并非易事。在本书中,作者将结合自己从业多年的“泣血”经验,以通俗易懂、更加贴近日常生活...

¥108.00

大型系统应用架构实战:部署、容灾、性能优化

李彦超 郭东白 陈禹 谢松林 周志伟 桑植 (作者)

本书理论与实战相结合,以AliExpress 网站为基础,全面介绍大型系统的总体技术方案、全球区域化部署技术、全球网络调度技术、性能优化,以及SRE 在AliE...

 

Java微服务测试:基于Arquillian、Hoverfly、AssertJ、JUnit、Selenium与Mockito

Alex Soto Bueno, Jason Porter, Andy Gumbrecht (作者) 刘梦馨 (译者)

本书从实战出发,介绍微服务架构所带来的测试方面的挑战,以及如何利用新的技术来应对这些挑战。通过本书,读者可以学会如何编写微服务架构下的单元测试、组件测试、集成测...

¥89.00