微服务架构与实践

相关资料

[

天下武功,唯“快”不破。在当下互联网环境下,相信每一个 it从业者都能够深切地体会到“快”这个字对应用开发的影响。互联网产品的需求来得快,变得快,你的产品必须持续创新,不断给用户带来新的价值,否则用户会毫不犹豫弃你而去。用户期望的交付周期也极大缩短了,导致传统以月为单位的交付周期不得不被压缩到天甚至小时,这就要求互联网产品必须小步快跑,快速迭代,总之,就是要“快”。我拜访过很多互联网公司,知道做互联网要“快”,但是现实情况是他们中的大部分都面临着产品迭代速度越来越慢的问题。分析原因可以发现一个共同点,就是随着产品功能的累积,应用实现越来越复杂,代码规模越来越大,开发团队工作在一个逻辑复杂、模块耦合的单块架构应用之上,从而导致应用难于维护和更新,发布过程很长,而且随时面临发布失败的风险。微服务架构就能够很好地解决这个问题。微服务架构自 2010年开始逐渐被大家熟知,通过对传统单块应用进行服务化切分,把一个大而复杂的问题化解为多个小而简单的问题,服务之间通过契约来约定依赖,做到服务独立发布和演进。今天,微服务架构已经被广泛运用在像 google、 facebook这样的大型互联网公司,为他们的快速交付和持续创新提供软件架构支撑。本书中有大量微服务架构实战经验的总结,不仅仅有应用架构设计的内容,还涵盖了微服务大背景下应用测试、发布、日志、监控等方面,让读者可以全面应对微服务架构需求。
有人把微服务比作一把双刃剑,一方面它把单个问题域的复杂性降低了,服务可以独立更新、快速交付;但另一方面,面对一个由不同技术栈支撑的整体系统,运维和交付的难度增大了。在本书中,作者通过把微服务架构和当下热门的 docker容器技术、aws自动化部署相结合,向读者介绍了具有前瞻性的微服务自动化运维**实践,同时详细阐述了微服务化应用的持续交付流程和设计要领,不乏独到见解和技术细节,相信企业 cio、软件设计师、架构师们读完这本书一定会受益匪浅。
——郭峰 daocloud 联合创始人

微服务的出现,为运维又打开了一扇窗。微服务将整个业务系统拆分为相对独立的业务模块,并强调各个微服务都可以独立测试、独立部署、独立运行;微服务之间是一种真正的低耦合,就像汽车的各个零部件,哪个坏了,拆掉换个新的就能组装上;微服务面向产品而不是项目,这样,开发、测试、运维(系统、 dba等)可形成更稳定的“小”团队,而不是项目周期一到,各个职能解散,各回各家;微服务配以 docker,更可谓珠联璧合。这些都对运维提出了新的机遇和挑战,熟悉 devops、懂 docker、沟通能力强的综合型运维人员,市场需求和价值更加突显。
纵览全书,说理清楚,用清晰明了的文字,帮助大家理清了很多似是而非的概念;图文并茂,图片既清晰又贴切,语言朴实、平易近人,没有从国外翻译过来的书籍那种生硬、别扭的感觉;理论结合实际,更多融合了作者实施微服务的一线经验。是一本非常用心、又可以实际落地的好书。
——萧田国 开放运维联盟联合主席,高效运维社区创始人

当我开始阅读本书时,我并不知道微服务是否适合我。然而在读完前几章后,我发现这正是我在寻求的。微服务其实已经无处不在,在全球各处的技术会议上每个人都在讨论微服务。但它不是新东西,亚马逊和 netflix等大公司已经使用微服务架构建造分布式系统多年。在本书中,作者跟随领先者在本领域深入浅出地解释了一些重要的概念,并给出许多有价值的实践指导。*后,本书蒸馏出很多它处寻不到的信息,提供给大家一个通用的、坚固的开始。
——龚勇 辉门(中国)有限公司,亚太区信息技术总监

微服务架构作为 soa在众多互联网公司中的成功新实践,是广大企业在互联网化进程中必须理解的概念。本书不仅讲述了微服务的基础理论,而且通过实例,深入浅出地涵盖了微服务构建过程中持续集成、构建、部署、持续交付以及日志聚合和运维的过程,体现了作者深厚的理论功底与扎实的实践经验,推荐阅读。
——徐唤春 上海商派软件有限公司技术副总裁

微服务的概念初看简单清晰、容易理解,但在企业中的实际实施其实是一件很困难的事情。尤其很多计划实施微服务的公司在服务划分、 devops和相应的组织结构变化方面毫无经验,付出了实施的代价,却很难真正享受到微服务带来的好处。这本书总结了作者两年多在真实大型软件系统上实施微服务的经验和心得,具体指导了微服务实施在技术方面的实践,非常值得参考。
——杨云 thoughtworks首席咨询师,前支付宝资深架构师

随着应用系统的不断发展演进,单体应用变得越来越大,越来越复杂,导致扩展性差,资源优化难,维护成本高等问题。为了应对这一挑战,一种更加灵活、轻便、松耦合的设计架构——微服务架构,正受到越来越多应用系统开发者的青睐,它的敏捷开发、灵活部署、易扩展等特性,使它成为解决复杂应用的一把利器。微服务架构在具体实践中是怎样实施的?它在实施过程中存在怎样的困难和挑战?作者在本书中通过理论结合实践的方式,深入浅出地阐述了微服务的本质以及如何有效地、持续地交付微服务,并给出了许多有价值的实践指导,全书内容丰富,理论结合实际,推荐阅读。
——薛正华博士 中国计算机学会高级会员,大数据专委会委员

]

本书特色

[

随着restful、云计算、devops、持续交付等概念的深入人心,微服务架构逐渐成为系统架构的一个代名词。本书首先从理论出发,介绍了微服务架构的概念、诞生背景、本质特征以及优缺点;然后基于实践,探讨了如何从零开始构建**个微服务,包括hello world api、docker 映像构建与部署、日志聚合、监控告警、持续交付流水线等;*后,在进阶部分讨论了微服务的轻量级通信、消费者驱动的契约测试,并通过一个真实的案例描述了如何使用微服务架构改造遗留系统。全书内容丰富,条理清晰,通俗易懂,是一本理论结合实践的微服务架构的实用书籍。
本书不仅适合架构师、开发人员、测试人员以及运维人员阅读,也适合正在尝试使用微服务架构解耦历史遗留系统的团队或者个人参考,希望本书能在实际工作中对读者有所帮助。

]

内容简介

[

√ 微服务旨在化大而复杂为小而简单,用快速交付支撑持续创新
√ 被谷歌等一线it企业采用,与容器|云计算|持续交付等热点实践密不可分
√ 从架构演进到原理剖析,覆盖开发、测试、部署、运维、组织变化等微服务各方面
√ 代码静态检查、云基础设施构建、 docker映像构建及部署、持续交付流水线、服务日志全程实战

]

作者简介

[

ThoughtWorks的首席咨询师王磊是国内较早倡导和实践微服务的先行者。王磊是开源软件的爱好者和贡献者,社区活动的参与者,《Ruby Gems开发实战》(Practical RubyGems)一书的译者,GDCR西安的组织者。他于2012年加入ThoughtWorks,为国内外诸多客户提供项目交付和咨询服务;在加入ThoughtWorks之前,曾就职过多家知名外企,具有丰富的敏捷项目实战经验。目前致力于微服务架构、高可用的Web应用以及DevOps的研究与实践。

]

目录

第 1部分 基础篇第 1章 单块架构及其面临的挑战 ……………………………………… 3 1.1三层应用架构 ….. 4 1.1.1三层应用架构的发展 ……………… 4 1.1.2什么是三层架构 ……………………. 5 1.1.3三层架构的优势 ……………………. 6 1.2单块架构 …………. 6 1.2.1什么是单块架构 ……………………. 6 1.2.2单块架构的优势 ……………………. 7 1.2.3单块架构面临的挑战 ……………… 8 1.3 小结 ………………. 12第 2章 微服务架构综述 ……………….. 13 2.1什么是微服务架构 …………………………… 13 2.1.1多微才够微 …………………………. 14 2.1.2 单一职责 …………………………….. 17 2.1.3 轻量级通信 …………………………. 17 2.1.4 独立性 . 19 2.1.5 进程隔离 …………………………….. 20 2.2 微服务的诞生背景 …………………………… 22 2.2.1 互联网行业的快速发展 ………… 23 2.2.2 敏捷、精益方法论的深入人心 23 2.2.3 单块架构系统面临的挑战 …….. 23 2.2.4 容器虚拟化技术 ………………….. 23 2.3 微服务架构与 soa ………………………….. 24 2.3.1 soa概述 ……………………………. 24 2.3.2 微服务与 soa …………………….. 25 2.4 微服务的本质 … 26 2.4.1服务作为组件 ……………………… 27 2.4.2 围绕业务组织团队 ………………. 28 2.4.3 关注产品而非项目 ………………. 29 2.4.4 技术多样性 …………………………. 31 2.4.5 业务数据独立 ……………………… 32 2.4.6 基础设施自动化 ………………….. 33 2.4.7 演进式架构 …………………………. 33 2.5 微服务不是银弹 ………………………………. 34 2.5.1 分布式系统的复杂度 ……………. 35 2.5.2 运维成本 …………………………….. 36 2.5.3 部署自动化 …………………………. 36 2.5.4 devops与组织架构 …………….. 37 2.5.5 服务间的依赖测试 ………………. 37 2.5.6 服务间的依赖管理 ………………. 37 2.6 小结 ………………. 38第 2部分 实践篇第 3章 构建**个服务 ……………….. 41 3.1场景分析 ……….. 41 3.2任务拆分 ……….. 43第 4章 hello world api ……………….. 45 4.1 api实现 ………… 45 4.1.1 开发语言 ——ruby ………………. 45 4.1.2 web框架——grape …………….. 46 4.1.3 api的具体实现 …………………… 47 4.2代码测试与静态检查 ……………………….. 50 4.2.1代码测试 …………………………….. 50 4.2.2测试覆盖率统计 ………………….. 53 4.2.3静态检查 …………………………….. 54 4.2.4代码复杂度检查 ………………….. 57第 5章 构建 docker映像 …………….. 61 5.1 定义 dockerfile . 61 5.2 配置 docker主机 ……………………………… 63 5.3 构建 docker映像 ……………………………… 64 5.4 运行 docker容器 ……………………………… 64 5.5 发布 docker映像 ……………………………… 65 5.6 小结 ………………. 69第 6章 部署 docker映像 …………….. 71 6.1基础设施 aws .. 71 6.2基础设施自动化 ………………………………. 73 6.3 部署 docker映像 ……………………………… 80 6.4自动化部署 ……. 81 6.5 小结 ………………. 84第 7章 持续交付流水线 ……………….. 85 7.1持续集成环境 … 85 7.2提交阶段 ……….. 87 7.3验证阶段 ……….. 91 7.4构建阶段 ……….. 91 7.5发布阶段 ……….. 94 7.6 小结 ………………. 96第 8章 日志聚合 ………………………… 97 8.1 日志聚合工具简介 …………………………… 97 8.2 splunk的核心 … 99 8.3 安装 splunk索引器 ………………………… 100 8.4 安装 splunk转发器 ………………………… 101 8.5日志查找 ……… 102 8.6告警设置 ……… 103 8.7 小结 …………….. 104第 9章 监控与告警 ……………………. 105 9.1 nagios简介….. 105 9.2 nagios的工作原理 …………………………. 107 9.3 nagios安装….. 108 9.4 nagios的配置 . 109 9.5 监控 products-service ………………………. 111 9.6 告警 …………….. 113 9.7 小结 …………….. 114第 10章 功能迭代 …………………….. 115 10.1定义模型 ……. 116 10.2持久化模型 … 117 10.3定义表现形式 ………………………………. 119 10.4 实现 api …….. 122 10.5服务描述文件 ………………………………. 125 10.6 小结 …………… 127第 3部分 进阶篇第 11章 微服务与持续交付 ………… 131 11.1持续交付的核心 ……………………………. 132 11.2微服务架构与持续交付 …………………. 133 11.2.1 开发 . 133 11.2.2 测试 . 137 11.2.3持续集成 ………………………….. 139 11.2.4 构建 . 139 11.2.5 部署 . 140 11.2.6 运维 . 143 11.3 小结 …………… 144第 12章 微

封面

微服务架构与实践

书名:微服务架构与实践

作者:王磊

页数:236

定价:¥65.0

出版社:电子工业出版社

出版日期:2016-01-01

ISBN:9787121275913

PDF电子书大小:44MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注