前言
微服务是一种分布式系统解决方案,推动细粒度服务的使用,这些服务协同工作,且每个服务都有自己的生命周期。因为微服务主要围绕业务领域建模,所以避免了由传统的分层架构引发的很多问题。微服务也整合了过去十年来的新概念和技术,因此得以避开许多面向服务的架构中的陷阱。本书包含了业界使用微服务的很多案例,包括Netflix. Amazon. Gill 和REA等。这些组织都发现这种架构有一个很大的好处,就是能够给予他们的团队更多的自治。
谁该读这本书
细粒度的微服务架构包含了很多方面的内容,所以本书的范围很广,适用于对系统的设 计、开发、部署、测试和运维感兴趣的人们。对于那些已经走上更细粒度架构之路的人, 无论是开发新应用,还是拆分现有的单块系统,都会因书里很多的实用建议而受益。对于 想要了解微服务方方面面的人,这本书也可以帮助你确定微服务是否适合你。
当今的微服务
微服务是一个快速发展的主题。尽管它不是-一个新的想法(虽然这个词本身是),但世界 各地的人们所获取的经验以及新技术的出现正在对如何使用它产生深远的影响。因为其变 化的节奏很快,所以这本书更加关注理念,而不是特定技术,因为实现细节变化的速度总 是比它们背后的理念要快得多。而且,我完全相信几年后我们会对微服务适用的场景了解 更多,也会知道如何更好地使用它。
所以,虽然在本书中我已经尽最大的努力来提炼出这个主题的本质,但如果你对这个话题 感兴趣的话,还是要做好进行若干年持续学习的准备,来保证你处在这个领域的前沿!
●第1章,微服务
首先介绍微服务的基本概念,包括微服务的主要优点以及一些缺点。
●第2章, 演化式架构师
这一章讨论了架构师需要做出的权衡,以及在微服务架构下具体有哪些方面是我们需要考虑的。
●第3章,如何建模服务
在这一章我们使用领域驱动设计来定义微服务的边界。
●第4章,集成
这一章开始深入具体的技术,讨论什么样的服务集成技术对我们帮助最大。我们还将深入研究用户界面,以及如何集成遗留产品和COTS (Commercial Of-The -Shelf,现成的商业软件)产品这个主题。
●第5章,分解单块系统
很多人对于如何把一个大的、难以变化的单块系统分解成微服务很感兴趣,而这正是我们将在这一章详细介绍的内容。
●第6章,部署
尽管这本书讲述的主要是微服务的理论,但书中的几个主题还是会受到最新技术的影响,部署就是其中之一,我们在这一章会探讨这方面的内容。
●第7章,测试
本章会深入测试这个主题,测试在部署多个分散的服务时很重要。特别需要注意的是,消费者驱动的契约测试在确保软件质量方面能够起到什么样的作用。
●第8章,监控
在部署到生产环境之前的测试并不能完全保证我们上线后没有问题。这--章探讨了细粒度的系统该如何监控,以及如何应对分布式系统的复杂性。
●第9章,安全
这一章将会研究微服务的安全,考虑如何处理用户对服务及服务间的身份验证和授权。在计算领域,安全是一个非常重要的话题,而且很容易被忽略。尽管我不是安全专家,但我希望这--章至少能帮助你了解在构建系统,尤其是微服务系统时,需要考虑的一些内容。
●第10章,康威定律和系统设计
这一章的重点是组织结构和系统设计的相互作用。许多组织已经意识到,两者不匹配会导致很多问题。我们将试图弄清楚这一困境的真相, 并考虑一些不同的方法将系统设计与你的团队结构相匹配。
●第11章,规模化微服务
这一章我们将开始了解规模化微服务所面临的问题,以便处理在有大量服务时失败概率增大及流量过载的问题。
●第12章,总结
最后一章试图分析微服务与其他架构有什么本质上的不同。我列出了微服务的七个原则,并总结了本书的要点。