

最近阅读了本书,我计划编写一个由多个部分组成的博客。 第一部分是对本书的简短回顾,在接下来的几节中,我计划解释书中提供的一些重要概念。
在过去的几年中, 微服务一直是流行语。 像Netflix这样的公司一直是这种方法的主要支持者,并将其归功于其成功的引擎。
但是,对微服务一词进行神秘化处理并了解其周围的绒毛非常具有挑战性。 再加上不断发展的云计算世界,您就可以驯服野兽。 经过大量的搜索,浏览了数十个youtube视频,博客和其他资源之后, 萨姆·纽曼 ( Sam Newman)撰写的《构建微服务》一书使我大开眼界。 其他研究材料所面临的挑战是,它们中没有一个提供适当的背景信息,或者带有技术术语,或者方法过于肤浅。
这本书的作者,Sam Newman是一位独立顾问,并就微服务进行了几次会议和演讲。 在此之前,他曾在ThoughtWorks工作,曾为公司客户担任顾问。
在本书中,作者提供了最佳的详细程度,以免过于规范。 他以流畅的风格简洁地解释了微服务架构的高级特性,提供了关键优势,深入研究挑战,并通过研究建模,集成,打破整体,部署,测试,监控,安全性,扩展甚至是成功提供了成功秘诀组织的结构。


根据书的标题,会给人以为这本书只适合初露头角的软件架构师和开发人员。 作者已经写了完整的一章“进化的架构师”这一事实使情况更加恶化。 但是,这远非事实。 我要说的是,任何对构建现代信息技术解决方案有兴趣的人都应该阅读它,无论是产品经理,工程师(开发人员,测试人员,主管和团队经理),项目经理和Scrum Master。
对于可能不参与日常IT项目活动的高级领导 人员以及不参与微观决策的团队经理而言 ,这本书将有助于清除许多神话,并为构建所需的内容提供答案。一种高效且可扩展的解决方案,提供21世纪的客户体验 。 它向产品经理告知他们超出功能要求的产品所需的螺母,向Scrum主管和项目经理提供所需任务和活动的蓝图以及给工程师–这本书使您理解了各种技术和设计选项,然后再考虑制定战术决策。
作者还提供了对各种新兴技术的高级理解,例如容器,事件驱动的体系结构,监视工具,CICD管道,API测试框架,API设计系统,数据库重构等 。 拥有一站式商店可以满足所有人的所有需求。
技术概念贯穿其中的一个主题是对竞争性设计/框架/技术进行分析,以解决微服务领域的特定问题。 例如,将微服务本身与
SOA , 共享库和模块 。 同样,对与各个微服务的独立数据库相关的问题以及与跨多个微服务的事务相关的挑战进行了足够详细的研究。


作者探索了各种用于构建和管理微服务的第三方和开源工具以及设计模式。 例如,他研究了Netflix用于构建,部署和监视其1000多种微服务的各种技术。 微服务的最大问题之一是它们的数量迅速增长。 如果不注意适当的自动化,对其进行管理可能会成为一场噩梦。 提供了混沌工程,性能指标测量,资源利用的适当示例。 即使您是完全了解这些概念的人,这本书也可以很好地提醒您在工作中可以纠正或实施的内容。
组织结构和服务所有权
组织面临的另一个主要问题是团队结构-微服务的所有权 。 作者为此花费了整整一章来讨论这些问题,并提供了解决这些问题的多种选择。 为此,作者引用了Melvin Conway的文章中的一行:
设计系统受约束的组织必须生成设计,这些设计是这些组织的通信结构的副本。
上面的翻译大致上是“任何软件都可以反映出产生该软件的组织结构。” 微服务也是如此。


作者讨论了有关公司如何建立团队和结构以开发和维护微服务的几种选择。 他概述了松散的组织与紧密耦合的组织,并举例说明了紧密耦合的组织通常最终将如何构建紧密耦合的软件。 他列举了一些过去客户的例子,说明对他们有用的方法,并为每个客户提供利弊。 例如,他谈到了亚马逊和Netflix的两人制 团队哲学,一家澳大利亚的房地产公司如何在其业务范围内调整其微服务,并举例说明了一家中等规模的出版公司如何反向应用康韦定律-根据其软件系统的各个模块来组织其团队结构! 作为对软件管理非常感兴趣的人,我也计划就此主题撰写详细的博客。
在下一部分中,我将总结本书中解释的一些关键思想和概念。 如果您可能没有足够的时间阅读整本书,那么接下来的几个博客将对您有所帮助!