书籍详情
《云原生应用架构:微服务开发最佳实战》[35M]百度网盘|亲测有效|pdf下载
  • 云原生应用架构:微服务开发最佳实战

  • 出版社:电子工业出版社
  • 出版时间:2021-11
  • 热度:10476
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

产品特色

编辑推荐

本书具有以下特色。

(1)实践出真知:书中所述案例大都来自真实发生的应用场景,相应的解决方案也是针对该场景的落地实践。有理可依,有法可循。

(2)全生命周期覆盖:基于开发流程,循序渐进地将知识点融入整个软件开发生命周期,以带给读者合理和流畅的阅读体验。

(3)个性化案例分享:基于团队经验总结了许多个性化的实践方法,耳目一新,比如低代码开发平台、虚拟团队中台搭建法、Bug Bash活动等。


内容简介

传统的微服务应用正在经历着云原生技术的“洗礼”。随着该领域技术的不断变革与完善,以原生方式开发基于云的微服务成了降本提效的重要手段。

FreeWheel核心业务系统开发团队在多年的实践中探索出了一条云原生微服务应用构建之路。本书基于这些实践经验,从设计、开发到测试、部署,介绍了团队如何利用云原生技术为应用开发的全生命周期赋能。从架构技术选型到具体工程实践,书中内容理论联系实际,较为全面地剖析了容器落地、服务网格、无服务器计算、持续集成和持续部署等核心云原生技术,适合关注微服务、云原生技术的架构师、工程师及技术决策者阅读。


作者简介

FreeWheel核心业务系统开发团队

团队从2017年开始构建基于微服务架构的云原生应用,积累了大量的实践经验。除了开发企业级SaaS系统,团队还自研了微服务业务中台、服务治理平台、低代码开发平台等创新项目。

关于FreeWheel

FreeWheel成立于2007年,是美国传媒巨头康卡斯特集团旗下的高端视频广告技术供应商,在北京、纽约、旧金山、芝加哥、伦敦、巴黎等地设有分支机构。


精彩书评

应用软件上云的大趋势让云原生和微服务成为技术团队的关注点和技术论坛中的热点话题。FreeWheel的大型实时广告系统具有高并发、业务逻辑复杂、更新迭代迅速等特点,拥抱云是一种自然而然的选择。我们的核心业务系统开发团队拥有多年的微服务开发和应用上云经验,探索出了一条云原生应用的构建之路。书中内容以工程实践为核心,旨在教会读者如何在实际项目中落地云原生理念,从而提升应用的构建质量和开发效率。

马玉羚,FreeWheel全球CTO


云原生技术为构建具有弹性伸缩能力的现代化应用提供了重要的实现手段。本书基于一线开发团队的工程实践,内容覆盖设计、实现、测试和部署,为读者提供了将云原生技术融入软件开发过程的实际案例。

徐昊,ThoughtWorks中国区CTO

云原生已成为势不可当的技术趋势。放眼全球,一线互联网公司都在加速推进着业务的云原生化。从技术发展的视角来看,新技术总是从有实力的头部企业开始被应用的,FreeWheel有着深厚的技术积累,也有着优秀的技术人才,他们是云原生领域的先行者。这本书不空谈概念,不照本宣科,而是从实战案例出发,有节奏、有计划地娓娓道来,为读者总结了FreeWheel核心业务系统开发团队在落地云原生过程中的经验和启示。如果你正准备落地云原生,那不妨看看这本书。

郭蕾,极客邦科技合伙人、极客时间首席内容官

本书提炼于FreeWheel多年的云原生实践之路,讲述了现代化应用开发的云端构建之道。书中内容理论与实践相得益彰,细节之处又彰显架构之美。本书第一作者是我的朋友,也是亚马逊云科技中国区的AWS Container Hero!

宋烨,AWS数字原生业务部解决方案架构师总监


近年来,随着Kubernetes、微服务、容器的广泛应用,众多企业遇到了微服务迁移难题。FreeWheel核心业务系统开发团队集结了一线研发人员撰写此书,总结了他们多年来的丰富经验,相信这本书可以解答你心中的疑惑,让你从容面对后Kubernetes时代的微服务转型。

宋净超,Tetrate布道师、ServiceMesher中文社区创始人、云原生社区创始人


目录

第1章 云原生时代下的微服务 1

1.1 从微服务谈起 1

1.2 云原生应用 9

1.3 从微服务到云原生 17

1.4 本章小结 21


第2章 微服务应用设计方法 22

2.1 应用架构设计 22

2.2 遗留系统改造 37

2.3 业务逻辑设计 43

2.4 本章小结 54


第3章 服务开发与运维 55

3.1 敏捷开发流程 55

3.2 搭建运行环境 64

3.3 代码管理 67

3.4 低代码开发平台 77

3.5 服务管理与运维平台 83

3.6 服务中台化 87

3.7 本章小结 93


第4章 微服务流量管理 94

4.1 云原生时代的流量管理 94

4.2 服务发现 98

4.3 使用Istio服务网格进行流量管理 102

4.4 使用Istio提升应用的容错能力 127

4.5 本章小结 134


第5章 分布式事务 135

5.1 分布式事务的挑战 135

5.2 分布式事务框架的方案选型 140

5.3 基于Saga和Kafka的分布式事务落地实践 149

5.4 本章小结 155



第6章 无服务器架构 157

6.1 什么是无服务器架构 157

6.2 无服务器架构应用 163

6.3 无服务器架构的落地实践 169

6.4 本章小结 190


第7章 服务的可观察性 191

7.1 什么是可观察性 191

7.2 云原生下的日志解决方案 195

7.3 分布式追踪 222

7.4 度量指标 233

7.5 监控与告警设计 242

7.6 本章小结 258



第8章 质量保证实践 259

8.1 质量保证体系 259

8.2 测试实践 265

8.3 混沌工程 285

8.4 类生产环境的质量保证 311

8.5 本章小结 322


第9章 持续集成和持续部署 323

9.1 基于Git的持续集成 323

9.2 基于Helm的持续部署 337

9.3 基于Kubernetes的持续部署实践 348

9.4 本章小结 354

前言/序言

作为一位技术领域的老兵,我在过去近20年的时间里见证了整个软件行业在技术架构上发生的翻天覆地的变化。

我依稀记得,自己在2004年刚刚加入IBM中国软件研发中心时,整个团队都专注于构建基于SOA(面向服务的架构)的项目和解决方案。当时的SOA还很“重”,底层的技术实现强依赖于J2EE、Web Service、SOAP等技术。对开发人员而言学习成本较高,实现和落地方案相对复杂,客户也需要花费一定时间去学习如何使用系统。另外,当时的技术栈对于分布式系统设计中需要着重考量的非功能性需求(如性能、可扩展性、安全性等)的支持也相对欠缺,这些非业务能力需要在设计阶段就被考虑并最终实现出来,任务繁重。

尽管如此,SOA这种在当时领先的系统架构设计理念还是给整个软件行业带来了很多启示和思考。“星星之火,可以燎原”,作为架构演进过程中不可或缺的一员,SOA对随后出现的各种致力于解耦软件系统复杂性的新技术、新架构的诞生起到了重要的推动作用。

现在,微服务、云原生技术几乎成为整个软件开发行业的风向标,很多公司、组织和团队都正在或计划将自己的业务迁移到云上,并基于微服务技术理念对系统架构进行改造升级。其实,不管是SOA还是微服务,最终的目的都是解耦复杂的系统设计,以“服务”的方式来定义和封装模块化的业务功能,从而实现系统设计、开发和维护的独立性。

然而凡事都有两面性,在我们享受微服务、云原生技术给系统设计开发工作带来便利的同时,同样也需要面对新技术带来的一系列挑战,例如分布式事务、服务治理等,而这些还只是构造一个强健、完备的微服务架构所要面临问题中的一小部分。究其根源,软件设计的本质即在各种制约因素之下小心翼翼地权衡利弊。银弹未现,取舍为真,在软件架构设计的道路上,我们仍需上下求索,朝夕不倦。

FreeWheel作为全球互联网视频广告技术的引领者和全美视频广告技术创新的奠基者,其业务和技术复杂度在微服务应用领域具有很强的代表性。从2016年开始,我们团队致力于技术架构的改造和升级,通过近4年的努力,团队基于微服务、云原生的理念重新设计并实现了整个广告核心业务系统。在技术架构升级的过程中,我们也不可避免地遇到了很多未知的技术问题和挑战,团队如涉世未深的少年,跌跌撞撞,消除了困惑与迷茫,不断探索并一路前行至今,也因此积累了很多宝贵的经验。

书中所有内容正是来源于我们在实际工作中的实践总结。参与撰写书中各章节的同事也都在一线负责具体的设计和开发工作,对技术细节有深入的了解。书中文字可能朴实无华,但字字珠玑,相信对致力于微服务架构设计的开发人员会大有裨益。



本书内容

本书主要介绍了基于云原生技术构建微服务应用的工程实践,全书共9章,每章的内容简介如下。

第1章 云原生时代下的微服务

云原生技术的出现改变了微服务应用的构建方式,传统的开发方式无法很好地与云环境适配。本章将从微服务的特性讲起,深入剖析云原生的概念和核心技术,探索在云原生时代下微服务应用需要以何种改变来应对技术洪流的挑战,总结从传统微服务转变到云原生应用的开发过程。

第2章 微服务应用设计方法

设计是软件开发生命周期中最重要的活动之一。本章我们将基于团队的实践经验,与读者探讨如何设计一个微服务应用。我们将从应用的架构选型谈起,介绍架构、通信层、存储层、业务层的解决方案,同时还会基于实际案例分析如何对遗留系统进行微服务改造。

第3章 服务开发与运维

“实现”是将软件设计的结果转化为软件产品的过程,是软件开发的实际产出。本章将围绕服务开发与运维,基于团队的工程实践,介绍如何通过Scrum敏捷开发方法完成整个开发过程,并介绍我们为了提高开发效率而构建的服务管理与运维平台。

第4章 微服务流量管理

服务网格是云原生时代下进行流量管理的首选方案。通过声明式配置,应用就能具有控制流量的能力,并且该配置对应用透明。本章将基于我们团队在服务网格方面的实践,为读者详细介绍如何使用Istio为微服务应用提供流量管理能力。

第5章 分布式事务

随着软件系统从单体时代迈向微服务和云原生时代,以及数据库选型呈现去中心化、异构化的趋势,单体应用上的本地事务会转变为分布式事务,这给数据一致性需求带来了挑战。本章将围绕分布式事务这一技术方向,介绍我们团队使用Saga模式进行的实践。

第6章 无服务器架构

通过无服务器计算技术构建弹性伸缩应用的优势越来越明显。作为一种新兴的应用架构,无服务器架构的核心概念是什么,它有哪些区别于传统架构的特点,它的优势和应用场景是什么,它能为应用的构建带来哪些变革?本章将对这些问题进行一一解答。

第7章 服务的可观察性

使用微服务架构并迁移上云后会面临诸多挑战,例如,查看应用中各个服务的状态,快速定位并解决线上问题,以及监控服务间的调用关系。构建具有可观察性的应用是保障服务质量的重要因素。本章将介绍服务可观察性的定义与应用,以及团队在该领域的落地实践。

第8章 质量保证实践

软件质量是贯穿于软件开发生命周期各个阶段的重要概念,在很大程度上决定了系统的可用性和用户体验。在这一章中,我们将为读者介绍在架构迁移过程中所积累的一些与质量保证相关的实践经验,讲述团队如何通过完善的测试技术和混沌工程来构建云原生时代下的质量保证体系。

第9章 持续集成和持续部署

持续集成和持续部署是构建云原生应用的必要条件,我们的团队在这方面积累了大量的经验。在这一章中,我们将从持续集成的自动化触发、差异化执行、产物归档等方面谈起,介绍经过微服务改造后的产品发布规划、云原生部署框架,以及持续部署对微服务应用全生命周期的支持。