当前位置:
首页 > 计算机 > 程序设计 > 微服务实战pdf/doc/txt格式电子书下载

微服务实战pdf/doc/txt格式电子书下载

本站仅展示书籍部分内容

如有任何咨询

请加微信10090337咨询

微服务实战pdf/doc/txt格式电子书下载

书名:微服务实战pdf/doc/txt格式电子书下载

推荐语:

作者:(英)摩根·布鲁斯,保罗·A.佩雷拉,李哲译

出版社:人民邮电出版社

出版时间:2020-05-01

书籍编号:30611569

ISBN:9787115529879

正文语种:中文

字数:248236

版次:1

所属分类:计算机-程序设计

全书内容:

微服务实战pdf/doc/txt格式电子书下载









版权声明


Original English language edition, entitled Microservices in Action by Morgan Bruce and Paulo A. Pereira published by Manning Publications , USA. Copyright ©2018 by Manning Publications.


Simplified Chinese-language edition copyright ©2019 by Posts & Telecom Press Co., LTD. All rights reserved.


本书中文简体字版由Manning Publications授权人民邮电出版社有限公司独家出版。未经出版者书面许可,不得以任何方式复制或抄袭本书内容。


版权所有,侵权必究。



内容提要


本书主要介绍与微服务应用开发和部署相关的内容,并辅以实际示例来引导读者体验从设计到部署微服务的全过程。


全书共13章,分为4部分。第一部分介绍微服务的设计和运行,并把微服务方案运用到一个示例(SimpleBank)中;第二部分先介绍微服务应用的架构,然后通过为SimpleBank设计新功能来讲述如何决定微服务的职责范围,还介绍了微服务的事务与查询、高可靠服务的设计以及可复用微服务框架的构建等内容;第三部分展示了微服务部署的一些最佳实践,包括基于容器和调度器的部署、构建微服务交付流水线等;第四部分着重探讨微服务的可观测性以及微服务开发中“人”的因素。


通过学习本书的内容,读者将了解如何进行微服务应用的开发和部署、如何通过微服务来实现有效的持续交付,以及如何用Kubernetes、Docker和Google Container Engine开发实例。


本书适合了解企业级应用架构和云平台(如AWS和GCP)的中级开发人员和架构师阅读,也适合对微服务感兴趣的读者参考。



作者简介


微服务实战pdf/doc/txt格式电子书下载


摩根 · 布鲁斯(Morgan Bruce)有着丰富的复杂应用开发经验,具备金融、身份验证(非常重视精度、可恢复性和安全性的行业)等行业的专业知识和技术。作为一名工程师主管,他负责过大规模的代码和架构重构工作。他还亲身经历和推动了从单体应用到健壮的微服务架构的演进过程。


微服务实战pdf/doc/txt格式电子书下载


保罗 · A. 佩雷拉(Paulo A. Pereira)正带领团队实施从单体应用到微服务的迁移。单体应用系统对安全和精确性的要求非常高,这已经成为影响其发展的拦路虎。保罗所带领的团队正在处理这方面的问题。他热衷于为工作选择合适的工具以及将不同的语言与范式进行组合。他现在正主要通过Elixir研究函数式编程。保罗编写了Elixir Cookbook这本书,还是Learning Elixir一书的技术审校人。



译者序


自马丁·福勒(Martin Fowler)在2014年发表了以“微服务”为主题的文章后,微服务随之变得炙手可热。短短数年间,“微服务”已经成为一个大家所熟知的技术名词,受到无数人的追捧。在各大技术会议上,各大互联网企业也都纷纷分享自己在微服务实践方面的经验和总结,甚至于出现了跟风和言必称“微服务”“微服务嫉妒”(Microservice envy)的情况,仿佛设计架构上不是“微服务”风格的话,就在技术上有不足似的。人们的认识也不断变化,“Monolith First”“Microservice First”以及“Micro Frontends”都是人们认识不断深入的体现,乃至于偶尔媒体上出现哪家公司放弃了“微服务”的新闻报道或者“微服务之死”的讨论,都会成为热点。


最近看到这样的一个段子。


Q:大师,大师,微服务拆多了怎么办?


A:那就再合起来啊。


Q:那太没面子了啊。


A:你就说你已经跨域了微服务初级阶段,在做中台了。


其实“微服务”从来就不是“银弹”,也不可能成为“银弹”。通过将现有的单体应用或者业务领域进行拆分,分而治之来降低系统的复杂性和维护难度,这是一种很普遍的理念。随着单体应用越来越臃肿,业务和需求越来越复杂,微服务的出现也是行业发展到一定阶段的必然产物,每个微服务负责一块业务或技术能力,独立部署,独立维护和扩展,甚至于在某些情况下随着业务的变化,将某些微服务再进行合并,也并不是不可以的。


回到“微服务”和“中台”这两个概念,上面的段子漏洞百出,不值得讨论。微服务体现去中心化、天然分布式,与阿里的中台战略思想类似,是战略的具体实现方式之一,是连接业务架构和中台的一座桥梁;中台目前还更多停留在初级阶段,但微服务架构已经有了较为成熟的理论和方法论,能极大推动和提高中台战略的落地成功率。由此可见,现实并非上面段子那样简单粗暴的解释。


面对快速发展变化的IT行业,各种和微服务相关的技术和框架不断涌现,架构师和开发人员需要具备透过这些表象看清事物本源的能力。微服务架构不仅涉及架构设计和开发阶段,还包含了测试、部署以及运维阶段,是一个完整的生命周期。以往的许多图书要么过于理论化,要么过于偏向技术应用层面的实践,要么仅侧重于某一个微服务的某一个阶段。本书理论与实践相结合,不仅有理论介绍,也介绍了很多微服务架构生命周期中各个阶段的优秀设计模式和最佳实践,是非常难得的学习用书。


在我看来,微服务不会消亡,随着各种技术、框架和工具的丰富和强大,尤其是service mesh 之类的技术的演进,未来也许微服务架构的许多内容会像空气那样无处不在但大家又不会感知到它的存在。到了那时,大家开发过程中可能不会意识到微服务的存在,但是微服务已经是架构血液的一部分。作为有追求的开发人员和架构师,很有必要了解微服务的点点滴滴。


早在本书英文版出版之前,我就联系杨海玲编辑询问翻译事宜,期望能参与到中文版的翻译工作中。非常感谢杨海玲编辑的认可,最终承担了该书的翻译工作。本来计划能在短期内完成翻译稿件,但由于翻译期间个人家庭和工作原因,导致交稿时间一直拖延,影响了中文版图书的出版进度,非常感谢吴晋瑜编辑在整个过程中的理解和支持,希望以后能有更好的合作。另外,还要感谢公司的其他编辑们,他们为保证本书的质量做出了大量的编辑和校正工作,在此深表谢意。


读者在阅读过程中,发现有任何问题、错误或不妥之处,请随时联系我(lizhe2004@163.com)或出版社,我们将及时改正。也非常欢迎大家对本书提出宝贵的意见和建议。


李 哲



前        言


在过去5年中,微服务架构风格(通过一系列细粒度的、松耦合的、可以独立部署的服务来组织应用)变得越来越流行。且不论公司规模多大,单就工程团队来说,微服务也变得越来越可行。


对我们来说,在Onfido公司使用微服务进行项目开发的经历让我们大开眼界。我们也把自己这一路上学到的很多东西记录到了本书中。通过拆分产品,我们让产品的交付速度变得更快、冲突更少,不再被臃肿的单个代码库里其他人的代码所影响。微服务方案可以让工程师构建的应用能够随着时间持续演进——即使产品复杂度和团队规模都在不断增长,应用也可以持续演化。


最初,我们打算写一本关于我们在项目中运行微服务应用的工作经验的书,但在确定这本书的具体内容时,我们的目标发生了变化。我们决定把微服务的整个应用生命周期(微服务设计、部署和运维)的工作经验提炼成一份内容更广泛且具有实用性的总结。我们还选择了一些工具来对这些技术(如Kubernetes 和 Docker)进行解释说明——它们都是非常流行的技术,并且和微服务的最佳实践有着非常紧密的联系。但是,我们希望不管读者最后使用哪种语言和工具来构建应用,都可以借鉴本书中介绍的这些经验。


我们真诚地希望这本书能成为读者重要的参考资料和指南,也希望书中的知识、建议和示例能有助于读者构建良好的微服务产品和应用。



这是一本关于微服务应用的开发和部署主题的书,非常有实用性。本书解决了将微服务部署到生产环境的难题,是写给那些对面向服务开发技术掌握得比较扎实的开发人员和架构师的。基于读者对传统系统的理解,本书会先对微服务设计原则进行比较深入的概述,然后会指导读者如何将服务可靠地发布到生产环境。在学习搭建集群和维护这些已部署的系统时,本书中的例子会用到Kubernetes、Docker和Google Container Engine这样的工具和技术。


本书所使用的技术适用于以大部分流行的编程语言开发的微服务。在本书中,我们决定以Python作为主要语言,因为它的风格比较自由,语法比较简洁。这样可以使书中的代码示例可以更加清晰和明确。如果读者不熟悉Python,也不用担心——在运行这些代码时,我们会专门进行说明。



本书第一部分简单介绍了微服务,研究了微服务系统的特性和益处,以及开发过程中可能面临的挑战。



  • 第1章介绍微服务架构,分析微服务方案的优缺点,并解释微服务开发的关键原则,最后介绍微服务的设计和部署所面临的挑战(这也是全书都会涉及的内容)。
  • 第2章将把微服务方案运用到一个例子(SimpleBank)中。我们用微服务来设计一个新功能,并研究如何让这个功能达到可投入生产的状态。

第二部分研究微服务应用的架构和设计。



  • 第3章介绍微服务应用的四层架构:平台层、服务层、服务边界和客户端,旨在为读者提供一套通用的宏观模型,一个在理解任何一个具体的微服务系统的架构时都可以使用的模型。
  • 第4章介绍微服务设计中最困难的部分:如何决定服务的职责范围。本章将列出4种建模方式(分别按业务功能、用例、技术能力和易变性进行范围划分)。通过SimpleBank公司的例子,我们研究如何在边界都不清晰的情况下做出正确的设计决定。
  • 第5章探究如何在事务保证不再适用的分布式系统中编写业务逻辑。我们为读者介绍了几种不同的事务模式(如Saga)和查询模式(如API组合和CQRS)。
  • 第6章介绍可靠性。分布式系统要比单体应用更加脆弱。我们需要更加仔细地考虑微服务之间的通信,以避免出现可用性问题、停机和连锁故障。我们会通过一些Python代码示例探讨一些能够提升应用可恢复性的常见技术,如限流、断路器、健康检查和重试。
  • 第7章介绍如何设计一个可复用的微服务框架,以及在多个微服务间采用一致的方式来提升整个应用的质量和可靠性并减少新服务的开发时间。我们用Python代码给出了一些例子。

第三部分给出微服务部署的一些最佳实践。



  • 第8章强调微服务应用中自动化持续交付的重要性。在本章中,我们会把一个服务发布到生产环境——Google Compute Engine上。通过这个例子,读者可以了解不可变工件的重要性以及几种不同的微服务部署模式的优缺点。
  • 第9章介绍了Kubernetes。它是一个容器调度平台。“容器+像Kubernetes这样的调度器”是大规模运行微服务的很自然的搭配。通过使用Minikube,读者会学到如何将微服务打包并无缝地部署到Kubernetes上。
  • 第 10 章基于前面章节的示例用Jenkins来搭建一套端到端的交付流水线。读者可以用Jenkins和Groovy编写流水线脚本,然后可以通过这个脚本将新提交的代码快速可靠地发布到生产环境。本章还介绍将这些一贯的部署实践应用到微服务集群中的方法。

在本书最后一部分(第四部分),我们会研究微服务的可观测性以及微服务开发中“人”的因素。


    第11章用StatsD、Prometheus和Grafana收集和聚合数据,以此来生成仪表盘和告警信息,最终为微服务开发出一套监控系统。我们还会讨论关于告警管理和避免告警疲劳的好做法。
    第12章基于前面章节的工作增加日志和记录跟踪的内容。从微服务中获取的这些丰富、实时、可查询的数据可以让我们更好地了解这些服务的状态,更好地进行问题诊断,并在未来对其进行改进。本章中的例子用到了Elasticsearch、Kibana和Jaeger这些工具。
    最后,第13章会稍微调整一下方向,来研究微服务开发过程中“人”的因

....

本站仅展示书籍部分内容

如有任何咨询

请加微信10090337咨询

本站仅展示书籍部分内容
如有任何咨询

请加微信10090337咨询

再显示