展开全部

主编推荐语

本书从真实案例出发反推技术难点,汇聚名企一线工程师的真知灼见。

内容简介

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

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

目录

  • 版权信息
  • 内容简介
  • 本书作者
  • 赞誉
  • 前言 迈向云原生
  • 第1章 云原生时代下的微服务
  • 1.1 从微服务谈起
  • 1.1.1 微服务架构的关键特性
  • 1.1.2 微服务的取舍
  • 1.2 云原生应用
  • 1.2.1 什么是云原生
  • 1.2.2 云原生技术
  • 1.2.3 云原生应用的特点
  • 1.3 从微服务到云原生
  • 1.3.1 非功能性需求的调整
  • 1.3.2 治理方式的改变
  • 1.3.3 部署和发布的改变
  • 1.3.4 从微服务应用到云原生应用
  • 1.4 本章小结
  • 第2章 微服务应用设计方法
  • 2.1 应用架构设计
  • 2.1.1 服务架构选型
  • 2.1.2 服务通信策略
  • 2.1.3 存储层设计和选型
  • 2.2 遗留系统改造
  • 2.2.1 绿地与棕地
  • 2.2.2 绞杀者模式
  • 2.3 业务逻辑设计
  • 2.3.1 拆分服务
  • 2.3.2 设计API
  • 2.4 本章小结
  • 第3章 服务开发与运维
  • 3.1 敏捷开发流程
  • 3.1.1 从瀑布模型到敏捷开发
  • 3.1.2 基于Scrum的敏捷实践
  • 3.2 搭建运行环境
  • 3.2.1 开发环境
  • 3.2.2 测试环境
  • 3.2.3 预发布环境
  • 3.2.4 生产环境
  • 3.3 代码管理
  • 3.3.1 Git分支管理
  • 3.3.2 使用Sonar进行代码检查
  • 3.3.3 代码评审
  • 3.3.4 代码提交与合并
  • 3.4 低代码开发平台
  • 3.4.1 低代码与开发平台
  • 3.4.2 低代码开发平台实践
  • 3.5 服务管理与运维平台
  • 3.5.1 平台要解决的问题
  • 3.5.2 平台架构
  • 3.5.3 平台功能模块
  • 3.6 服务中台化
  • 3.6.1 什么是中台
  • 3.6.2 中台的构建之路
  • 3.7 本章小结
  • 第4章 微服务流量管理
  • 4.1 云原生时代的流量管理
  • 4.1.1 流量类型
  • 4.1.2 服务网格
  • 4.2 服务发现
  • 4.2.1 传统服务发现上云后的问题
  • 4.2.2 Kubernetes的服务发现机制
  • 4.3 使用Istio服务网格进行流量管理
  • 4.3.1 核心自定义资源
  • 4.3.2 基于Istio的流量管理实践
  • 4.3.3 常见落地问题与调试
  • 4.4 使用Istio提升应用的容错能力
  • 4.4.1 熔断器
  • 4.4.2 超时和重试
  • 4.5 本章小结
  • 第5章 分布式事务
  • 5.1 分布式事务的挑战
  • 5.1.1 从事务到分布式事务
  • 5.1.2 ACID:传统意义上的事务约束
  • 5.1.3 CAP:分布式系统的挑战
  • 5.1.4 BASE:高可用的代价
  • 5.1.5 写顺序
  • 5.2 分布式事务框架的方案选型
  • 5.2.1 现有研究与实践
  • 5.2.2 分布式事务框架的设计目标
  • 5.2.3 选择Saga
  • 5.2.4 引入Kafka
  • 5.2.5 系统架构
  • 5.2.6 业务流程
  • 5.3 基于Saga和Kafka的分布式事务落地实践
  • 5.3.1 Kafka并行消费模型的改进
  • 5.3.2 部署细节
  • 5.3.3 系统可用性分析
  • 5.3.4 线上问题及处理
  • 5.4 本章小结
  • 第6章 无服务器架构
  • 6.1 什么是无服务器架构
  • 6.1.1 无服务器架构的定义
  • 6.1.2 无服务器架构的发展
  • 6.1.3 无服务器架构的优势
  • 6.1.4 无服务器架构的不足
  • 6.2 无服务器架构应用
  • 6.2.1 构建Web API后端服务
  • 6.2.2 构建数据编排器
  • 6.2.3 构建定时任务
  • 6.2.4 构建实时流处理服务
  • 6.3 无服务器架构的落地实践
  • 6.3.1 为什么选择AWS Lambda
  • 6.3.2 大量数据的导入和处理
  • 6.3.3 日志数据的采集和处理
  • 6.4 本章小结
  • 第7章 服务的可观察性
  • 7.1 什么是可观察性
  • 7.1.1 可观察性的定义
  • 7.1.2 可观察性的三大支柱
  • 7.1.3 可观察性与监控的联系与区别
  • 7.1.4 社区产品现状及技术选型
  • 7.2 云原生下的日志解决方案
  • 7.2.1 日志分类与设计
  • 7.2.2 云原生日志收集方案的演进
  • 7.2.3 使用Kibana展示日志
  • 7.3 分布式追踪
  • 7.3.1 分布式追踪系统的核心概念
  • 7.3.2 基于Jaeger的追踪方案
  • 7.4 度量指标
  • 7.4.1 利用Prometheus收集度量指标
  • 7.4.2 使用Grafana展示度量指标
  • 7.5 监控与告警设计
  • 7.5.1 监控平台构建实践
  • 7.5.2 告警系统的搭建
  • 7.6 本章小结
  • 第8章 质量保证实践
  • 8.1 质量保证体系
  • 8.1.1 质量挑战
  • 8.1.2 测试策略
  • 8.1.3 构建质量保证体系
  • 8.2 测试实践
  • 8.2.1 单元测试与mock实践
  • 8.2.2 基于Godog的集成测试实践
  • 8.2.3 基于Cypress的端到端测试实践
  • 8.2.4 测试自动化
  • 8.3 混沌工程
  • 8.3.1 混沌工程的核心理念
  • 8.3.2 如何运行混沌实验
  • 8.3.3 系统资源类故障注入实验
  • 8.3.4 基于服务网格的网络流量故障注入方法
  • 8.4 类生产环境的质量保证
  • 8.4.1 线上服务的监测与分析
  • 8.4.2 Bug Bash实践
  • 8.4.3 Post-release Check实践
  • 8.4.4 灾备策略与实践
  • 8.5 本章小结
  • 第9章 持续集成和持续部署
  • 9.1 基于Git的持续集成
  • 9.1.1 自动触发流水线
  • 9.1.2 流水线差异化与统一协作
  • 9.1.3 流水线产物存储规划
  • 9.2 基于Helm的持续部署
  • 9.2.1 部署规划
  • 9.2.2 不同环境下多集群的部署框架
  • 9.2.3 云原生的支持和任务维护
  • 9.3 基于Kubernetes的持续部署实践
  • 9.3.1 Pod资源配额及水平扩缩
  • 9.3.2 服务上下线流程和故障分析
  • 9.4 本章小结
展开全部

评分及书评

评分不足
2个评分
  • 用户头像
    给这本书评了
    5.0

    微服务经过诞生伊始的野蛮生长后,终于在云原生的推动下进入了下半场。引入微服务虽解放了开发者,却也带来了运维复杂度的大幅增加。云原生则通过自动化和容器化的方式,行之有效地提升了微服务的可运维性。如同咖啡和牛奶,微服务和云原生几乎是当今应用开发的最佳拍档。

      转发
      评论
      用户头像
      给这本书评了
      5.0

      非常好且全面的一本关于云原生应用的书籍。作者从开发的视角,通过一个活生生的案例,讲述了设计,开发,流量管理,分布式事务,无服务架构,可观察性,CICD 等云原生的各个方面。最大的收获是理解了云原生的目标,即使用现代化的容器技术,不断下沉应用所需要的非功能性需求到云平台,最终达到让开发者只关注业务,只实现业务逻辑的目标。

        转发
        评论

      出版方

      电子工业出版社

      电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。