每个无服务器开发人员必读的五本书

2025-06-04

每个无服务器开发人员必读的五本书

每个无服务器开发人员必读的五本书

事情是这样的:你是一位经验丰富的开发者,对无服务器架构的机遇感到兴奋。你阅读书籍,观看各种视频课程,但当真正开始构建一个无服务器解决方案时,你却感觉一无所知,仿佛缺少了什么。

多年来,我教过很多和你遇到过同样问题的开发人员和架构师,他们都做了一件看似明智但实际上毫无用处的事情。他们都(错误地)专注于无服务器,但无服务器只是一种执行模型,真正重要的事情在别处。

那么无服务器是什么?

无服务器有很多含义。它可以是无服务器数据库、无服务器存储、无服务器运行时等等。毋庸置疑,无服务器运行时是将其他无服务器组件绑定在一起的粘合剂,所以我们必须从这里开始。

在这种情况下,我们主要有两种选择:基于容器的无服务器运行时(例如 AWS Fargate)或基于函数的无服务器运行时(例如 AWS Lambda 或 Azure Functions)。尽管它们之间存在差异,但它们有一个共同点:为了达到最佳性能,托管的应用程序应该由许多小型服务组成,而不是单个单体服务。

欢迎使用微服务

微服务架构是一种将应用程序构建为一系列小型服务的架构风格。这些服务可以相互通信,从而解决更复杂的业务场景。

当需要部署这些微服务时,我们可以使用容器,或者如果愿意的话,也可以使用函数。

微服务是一种设计理念。
容器或函数只是部署方式。

如果你想成功采用无服务器架构,首先需要扎实的微服务知识。只有这样,你才能做好准备,避免无服务器架构采用过程中常见的陷阱。

为此,我整理了每一位优秀的无服务器开发人员必须阅读的五本书,令人惊讶的是,这些书大多是关于微服务的,而不是 AWS、Azure 或无服务器的。

1. Eric Evans — 领域驱动设计:解决软件核心的复杂性

Eric Evans — 领域驱动设计:解决软件核心的复杂性
我们说过,微服务是一系列小型服务的集合。但这是否意味着微服务必须很小?它们需要小到什么程度?

为了正确回答这些问题,我们需要了解业务能力并进行相应的设计,而这正是本书的全部内容。

本书内容丰富,见解深刻,值得一读再读。读者通常关注第五章和第六章,作者在其中定义了实体、值对象和聚合的概念,这些概念即使在如今的 DDD 社区之外也广为人知。

尽管这些组件至关重要,但我强烈建议将注意力集中在通用语言和有界上下文上。这些概念是我们需求的核心,因为它们有助于回答这个问题:微服务应该有多小?

点击此处购买 Eric Evans 的《领域驱动设计》

2. Sam Newman — 构建微服务:设计细粒度系统

Sam Newman — 构建微服务:设计细粒度系统
如果你是微服务新手,这本书值得一读。这本书足够通用,不需要任何特定编程语言的知识,这就是我一开始就喜欢它的原因。

前三章首先对软件世界和微服务进行了精彩的介绍,然后本书被很好地分为几个类别(每章一个):集成、部署、测试等等,这使得将来查找和(重新)阅读某个概念变得很方便。

点击此处购买 Sam Newman 撰写的《Building Microservices》

3. Richard Rodger — 微服务之道

Richard Rodger — 微服务之道
我当时就爱上了这本书,因为它明确地讨论了消息。作者鼓励读者避免设计系统的诱惑,转而思考服务;相反,他建议从消息入手,因为消息的流程很好地描述了系统的行为。

这种思维方式让我们一举两得。首先,它自然而然地引导你进入事件驱动的应用程序。其次,它简化了系统的设计(在这方面,我强烈建议你看看
Alberto Brandolini 的事件风暴研讨会)。

回到本书,由于微服务彻底改变了我们对数据的看法,因此第 4 章至关重要,因为您可能会发现很多在构建无服务器应用程序时有用的东西。

第 6 章(即测量)也同样如此,其中讨论了涉及微服务和 FaaS 时传统监控的局限性。

点击此处购买 Richard Rodger 的《微服务之道》

4. Chris Richardson — 微服务模式

Chris Richardson — 微服务模式
在首次介绍微服务世界之后,我们可以详细了解我们应该采用哪些行业最佳实践。

除了例行介绍之外,本书还重点介绍了什么是分解策略,或者如何从微服务的角度思考,以及领域驱动设计及其教义在这里发挥作用。

您对测试有疑问吗?想了解更多部署策略?您是否听说过断路器或 Saga 之类的模式,但不知道它们的用途?那么这本书就是您
寻找答案的最权威的资源。

点击此处购买 Chris Richardson 撰写的《微服务模式》

5. Ethan Garofolo — 实用微服务:使用事件源和 CQRS 构建事件驱动架构

Ethan Garofolo — 实用微服务:使用事件源和 CQRS 构建事件驱动架构
在讲完四本理论书之后,我们用一本实用的书、一本真正的动手教程结束了这一系列。

我最喜欢的是,它和微服务之道一样,也专注于消息。它从两个热门话题开始——CQRS 和事件溯源。

点击此处购买 Ethan Garofolo 撰写的《实用微服务》

结论

我们经常看到关于无服务器优势的文章;作为无服务器应用的坚​​定倡导者,我很乐意分享这些文章。然而,这类文章的问题在于,它让人误以为你的枪里有灵丹妙药。这并非
事实,因为灵丹妙药根本不存在。

无服务器技术虽然威力巨大,但你需要接受训练,否则后坐力可能会对你造成伤害。这篇文章旨在帮助你避免这个问题。

您可以从上面的一些链接中赚取佣金。

文章来源:https://dev.to/aws-builders/ Five-books-every-serverless-developer-must-read-3ioi
PREV
如何使用 AWS Amplify 构建简单的 Sprint 仪表板
NEXT
初探 Lambda Powertools TypeScript