微服务设计

Aleksandr Shitik
Aleksandr Shitik

我撰写自己的文章和书籍,并评论电影和书籍。 在宇宙学与天文学、IT、效率与规划方面的专家。

微服务设计
Sam Newman
类别: 编程
出版年份: 2016
阅读年份: 2020
我的评分:
阅读次数: 1
总页数: 304
摘要(页): 15
原始出版语言: 英语
其他语言的翻译: 俄语, 中文

基本信息

这本书有304页,由12章组成,没有分节。阅读难度中等(虽然不是因为技术复杂性,而是因为连续的文本)。代码插入较少,几乎没有图片,但定期会出现各种图表和示意图。每章末尾都有简要总结。

书籍内容

第一章介绍了微服务的概念。它们的优点和缺点。特点(例如,每个微服务可以有自己的数据库或部署)。

第二章讨论了何时以及如何将单体应用拆分为微服务以及如何定义边界。

下一章更加理论化——关于服务建模,或者更确切地说,是服务应满足的标准(低耦合和高内聚)。

第四章是关于如何在系统中“连接”微服务。这里讨论了通信的规则和机制。还涵盖了与API、RPC、REST、数据库交互、JSON以及您可能每天处理的其他内容。

接下来的章节讨论了将单体应用拆分为多个部分。更具实践性,因为使用了一个虚构的例子,尽管通常不会超出流程图的范围。

随后的章节再次讨论了部署问题。没有具体细节,只是列举了一些工具,例如Puppet、Chef和Ansible。简要提到了CI/CD、配置、不同的运行时环境、容器化等内容。像往常一样——许多块状图和图表,但没有代码,甚至没有配置文件。

接下来,我们逐渐接近微服务测试的主题。这里,可能没有必要深入探讨,因为其方法和原则与常规测试非常相似。

下一章是关于监控的内容。这里的特别之处可能是当一个服务位于多个位置时的监控细节,以及微服务监控的总体特点。除此之外,一切都很标准。

下一章还讨论了任何软件的一个要求——安全性。重点强调了授权和认证、防火墙的构建等。

随着书籍接近尾声,作者谈到了康威定律(该定律指出软件的结构与组织的结构以及建立的沟通直接相关)。讨论围绕着微服务在这一点上的适用性。

倒数第二章讨论了软件的另一个现代要求——可扩展性。涵盖了微服务扩展的细节、缓存、CAP定理等内容。

最后一章是对之前讨论内容的概述,并涵盖了尚未解决的问题,这些问题难以归类到特定章节(例如,故障和恢复)。

意见

阅读完这本书后,我留下了复杂的感受:一方面,这本书枯燥且纯粹是理论性的;另一方面,它非常适合拓宽视野和填补知识空白。书中涵盖了诸如微服务相对于单体应用的优势、微服务的CI/CD、安全性、测试和监控、可扩展性、正确地将单体应用拆分为微服务,以及解决微服务工作中各种问题的实用技术。优点方面,导航非常清晰明了。缺点方面,如前所述:阅读体验中等,有时会显得乏味,代码示例较少,且更偏向理论。尽管有这些缺点,我还是会推荐阅读它,或者至少给这本书一个机会,因为它在填补某些知识空白和全面涵盖微服务主题方面做得很好。

Вверх