对于复杂的应用程序,微服务体系架构拥有大量的优点,但是,话说回来,设计微服务是一项相当具有挑战性的任务,更糟糕的是,如果微服务设计不当,反而适得其反,在设计微服务体系结构之前,开发人员和架构师应该对微服务体系结构有一个清晰的了解。
如今,开发人员都通过一些在线课程或者博客文章来学习某个主题,除了这些在线资源,我还建议大家可以阅读一些书籍来作为补充。
今天,和大家分享五本书,它们将有助于更好地理解微服务体系结构以及如何在实际项目中使用它。
1、《微服务设计》
Sam Newman是微服务体系架构的开拓者,在这本开创性的书中,他详细描述了微服务体系结构的原则,以及如何设计、部署、测试微服务体系结构。他还指出了设计微服务的潜在缺陷,以及如何以一种渐进的方式将整体应用程序迁移到微服务中。
除此之外,Sam的叙述方式简单清晰,将如此复杂的一个主题解释的相当直观,对于任何想从事微服务的人来说,这是一本必读的书。
2.《微服务架构设计模式》
Chris Richardson是一位著名的微服务专家,同时也是最受欢迎的微服务博客的博主。在这本书中,Chris Richardson描述了微服务体系结构的优点以及微服务的缺点以及相关的难题,对于这些难题,他都会提供一个或多个模式来解决问题,并且还会介绍这些解决方案的优缺点。本书还总结了微服务世界中使用的所有模式。
3.《Microservices Recipes》
Eberhard Wolff是德国著名的软件架构师,他写过几本关于微服务的德语和英语书籍。选择微服务架构需要解决的难题之一就是,它为不同的问题提供不同的解决方案,而选择正确的解决方案是相当困难的。这本书将帮助你解决这方面的问题。关键你还可以免费下载。
下载地址:https://leanpub.com/microservices-recipes
4.《实现领域驱动设计》
《实现领域驱动设计》分别从战略和战术层面详尽地讨论了如何实现DDD,其中包含了大量的最佳实践、设计准则和对一些问题的折中性讨论。
领域驱动设计提倡将软件设计分为两个步骤:战略设计和战术设计,因此,本书可以帮助你解决微服务的构建相关的问题,要深入了解领域驱动的设计,我更喜欢Vaughn Vernon编写的“红皮书”,而不是Eric Evans编写的原始蓝皮书,因为这本书更具可读性,并使用了现代技术堆栈(例如事件源、CQRS)。
5.《数据密集型应用系统设计》
微服务的另一个难题是将中央数据存储拆分为特定于微服务的数据存储,然后在微服务之间共享数据/消息。此外,微服务体系结构提倡为微服务使用适当的数据存储,这可能导致使用多语言数据库。
因此,深入了解现代数据存储、数据转换、数据共享是设计有效的微服务必不可少的。Martin Kleppmann,可以说是这个领域最好的主题专家,他写的《数据密集型应用系统设计》全面地论述了关于数据库的一切:SQL、NoSQL数据库、数据存储格式、数据传输格式、消息队列。这是关于现代数据管理最全面和最完整的书,也是微服务架构师的必读书籍。
不知道今天的书单你可还喜欢?