
摩根·布鲁斯 保罗·A.佩雷拉
《微服务实战》主要介绍如何开发和维护基于微服务的应用。本书源自作者从日常开发中得到的积累和感悟,其中给出的案例覆盖从微服务设计到部署的各个阶段,能够带给你真实的沉浸式体验。通过阅读本书,你不仅能够了解用微服务搭建高效的持续交付流水线的方法,还能够运用Kubernetes、Docker以及GoogleContainerEngine进一步探索书中的示例。
2020年22本书,微服务近几年大行其道说的人太多。这书算了很贴地的一本,有些痛点是实战过才更深刻。比如书中说的用事件机制去减少上游服务的耦合,异步与同步的选择。围绕设计,布署,监控本书给了不少实战经验。前面先说设计,包括服务划分,异步与同步,然后是布署到云的操作,最后到日志,面板监控。如在转型到微服务的过程可以作为参考。
瑕不掩瑜的一本书,微服务可以在技术上解决一些问题,但“最后,交付软件的是人”。与之相配的组织模式才是适应变化时代的关键。 仅仅是工程师读这本书从技术上做一些改变,用处也许并不大。借用一段名人的表达—— “这一年我没有毕业,我已经到了东京了,因为从那一回以后,我便觉得医学并不是一件紧要的事情,凡是愚若的国民,即使体格如何健全,如何茁壮,也只能做毫无意义的示众的材料和看客,病死多少是不必以为不幸的。”
说明了微服务的整体情况,怎么构建一个微服务系统. 微服务业务划分很非常重要 1. 按照业务能力和界限上下文 2. 按照用例 3. 按照异变性 微服务的底层支持 1. 全链路日志跟踪. 2. 服务监控,告警 3. 构建的自动化
为什么要拆分为微服务? 单体服务随着使用时间增强和功能的增加,体量越来越大。遇到问题修改一下影响的范围比较大。 单体服务也不适合多人开发,会经常遇到多个开发人员的代码冲突。 单体服务也不适合敏捷开发,很难做到快速响应需求。 微服务也有缺点,部署麻烦,通信节点较多,对网络和硬件的稳定性要求也高。 微服务如何划分? 可以按照业务功能,用例,技术能力,可变性等角度划分,一个系统并不是只有一个划分标准。 服务的开发步骤 设计,开发,部署,监控 如何保证服务的高可用性? 从四个角度,硬件,网络通信,服务本身功能,依赖的服务 如果服务依赖上游服务需要注意通信网络的重试,超时能力。以及对依赖服务的采取熔断或者降级的考虑。熔断的策略有桩数据,缓存,直接熔断不提供服务等。 自身服务需要做到能够多节点,支持负载均衡,限流,等策略。服务需要经过充分的压力测试,混沌测试。
这本书主要介绍微服务的使用经验,如何来设计微服务的一整套流程的理论,并没有出现具体的代码设计。看完后,对微服务有相当到的认识,有种运筹帷幄,决胜千里之外的感觉
五星好评! 合上书回想,这本书讲了 1. 微服务与传统服务的区别:业务的水平拆分和垂直拆分。 2. 微服务的优缺点。 优点:风险隔离,快速迭代,服务边界清晰,服务之间高内聚,低耦合。扩展性、可用性、性能都有极大的飞跃。 缺点:将写在代码中的逻辑,转移到了服务之间的编排上,业务更抽象,更难以理解;不同微服务小组业务过于内聚,对上下游服务业务敏感性下降。事务问题,日志排查问题。 3.实践微服务需要做的事情。 * 明确业务边界(糟糕的分化标准会带来灾难,如果在不确定要不要分的时候最好不分) * 统一的服务间的通信方式(内部GRPC、MQ、外部http) * 一套通用的分布式事务执行方案(同步,异步)(没记住多少,中间状态回滚,触发补偿事件) * 快速的流水化部署平台 * 统一的日志打点,日志收集,请求trace追踪,风险阈值警报, 统一的日志查看门户。 * 尽量统一的开发标准,流程。 * 尽量小的、自治的、目标明确的多岗位一体的扁平化团队。 这么存粹的技术文章,step by step,告诉你是什么,告诉你怎么做,明明 nb 的要死,但是一点也不装。 零几年的书,发现老东家这些都做到了,当时太年轻,想法太多,读书太少。
首先,对于此书持好评,个人认为书籍的主要价值在第二部分,即作者通过一个示例的设计,来阐述了微服务设计中一系列重要的问题。包括微服务常见的四层架构;如何决定服务的职责范围;如何实现服务的事务和查询;如何设计高可靠性服务以及可复用性的微服务框架。 此外,后续的部署和监控部分,不是说不重要。只能说读者只需了解个大概就好,估计作者也只是想补充本书的知识完备性而不得不这样设计的。因为里面的内容随便扯出一个来都值得大书特书的,这些内容还需要读者在后续的具体实践中再去针对性的系统学习。 最后,本书包含的代码和实践不是很多,更多的只是提出了微服务中面临的问题,以及如何解决的方案。我认为这些底层性的知识对于学习具体的Spring cloud或者Dobbo以及其他语言类的微服务落地方案都是十分有帮助的。
确实有不少实战干货,看得出作者是有一定的微服务实战经验的,书中也列举了不少的微服务开源系统框架和一些示例代码。关于微服务的可观测性讲的还可以,通过指标系统、日志、链路追踪三位一体,让微服务变得可观测。本书对于微服务实践中的开发者还是值得一看的。
Q:大师,大师,微服务拆多了怎么办? A:那就再合起来啊。 Q:那太没面子了啊。 A:你就说你已经跨域了微服务初级阶段,在做中台了。
一本讲述了微服务各个方面的书,包括但不限于: 1.微服务与单体应用的选择 2.服务分层,架构设计 3.服务通信,事务 4.基础设施建设 5.流水线发布 6.监控,告警,追溯 7.团队建设 适合想要设计或正在开发微服务的同学