新書推薦:
《
安全感是内心长出的盔甲
》
售價:NT$
305.0
《
快人一步:系统性能提高之道
》
售價:NT$
505.0
《
我们为什么会做梦:让梦不再神秘的新科学
》
售價:NT$
352.0
《
算法图解(第2版)
》
售價:NT$
356.0
《
科学的奇幻之旅
》
售價:NT$
352.0
《
画艺循谱:晚明的画谱与消闲
》
售價:NT$
653.0
《
新民说·现实政治史:从马基雅维利到基辛格
》
售價:NT$
454.0
《
宽容是件奢侈品(人生360度·一分钟经典故事)
》
售價:NT$
203.0
|
編輯推薦: |
本书具有以下特色。
(1)实践出真知:书中所述案例大都来自真实发生的应用场景,相应的解决方案也是针对该场景的落地实践。有理可依,有法可循。
(2)全生命周期覆盖:基于开发流程,循序渐进地将知识点融入整个软件开发生命周期,以带给读者合理和流畅的阅读体验。
(3)个性化案例分享:基于团队经验总结了许多个性化的实践方法,耳目一新,比如低代码开发平台、虚拟团队中台搭建法、Bug Bash活动等。
|
內容簡介: |
传统的微服务应用正在经历着云原生技术的“洗礼”。随着该领域技术的不断变革与完善,以原生方式开发基于云的微服务成了降本提效的重要手段。FreeWheel 核心业务系统开发团队在多年的实践中探索出了一条云原生微服务应用构建之路。本书基于这些实践经验,从设计、开发到测试、部署,介绍了团队如何利用云原生技术为应用开发的全生命周期赋能。从架构技术选型到具体工程实践,书中内容理论联系实际,较为全面地剖析了容器落地、服务网格、无服务器计算、持续集成和持续部署等核心云原生技术,适合关注微服务、云原生技术的架构师、工程师及技术决策者阅读。
|
關於作者: |
FreeWheel核心业务系统开发团队
团队从2017年开始构建基于微服务架构的云原生应用,积累了大量的实践经验。除了开发企业级SaaS系统,团队还自研了微服务业务中台、服务治理平台、低代码开发平台等创新项目。
关于FreeWheel
FreeWheel成立于2007年,是美国传媒巨头康卡斯特集团旗下的高端视频广告技术供应商,在北京、纽约、旧金山、芝加哥、伦敦、巴黎等地设有分支机构。
|
目錄:
|
第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章 持续集成和持续部署
持续集成和持续部署是构建云原生应用的必要条件,我们的团队在这方面积累了大量的经验。在这一章中,我们将从持续集成的自动化触发、差异化执行、产物归档等方面谈起,介绍经过微服务改造后的产品发布规划、云原生部署框架,以及持续部署对微服务应用全生命周期的支持。
|
|