沃新书屋 - Java持续交付
本书资料更新时间:2025-05-10 04:46:58

Java持续交付

Java持续交付精美图片

Java持续交付书籍详细信息


内容简介:

《Java持续交付》完整介绍了Java软件开发的整个生命周期,并结合大量的成功实践经验,介绍每个阶段可能会使用的工具和技能。在基础设施已经极大改善的今天,本书还与时俱进地介绍了如何在Docker、Kubernetes、Cloud、FaaS等新兴环境下进行持续集成和持续交付。 因此,无论是经验丰富的J

书籍目录:

第 1 章 持续交付 :为什么需要持续交付,什么是持续交付....................1 入门知识 ....................................................................................................................... 1 赋能开发者 :为什么我们要持续交付 .......................................................................... 2 快速反馈会减少上下文切换 ................................................................................. 2 自动化的、可重复的以及可靠的发布................................................................... 2 定义“完成”的概念 ............................................................................................. 3 什么是构建管道 ............................................................................................................ 4 核心的构建管道阶段 ............................................................................................. 4 容器技术的影响 .................................................................................................... 7 对当前架构的影响 ................................................................................................ 8 总结 .............................................................................................................................. 9 第 2 章 Java 开发的演化..............................................................10 现代 Java 应用程序的需求 .......................................................................................... 10 对业务增长速度和稳定性的要求 ........................................................................ 11 API 经济的崛起 .................................................................................................. 11 云计算的机会和成本 ........................................................................................... 12 模块化归来 :拥抱更小的服务 ............................................................................ 12 对持续交付的影响 .............................................................................................. 13 Java 部署平台的演化 ......................................................................... 13 WAR 和 EAR :应用服务器统治的年代 .............................................................. 13 可执行的胖 JAR 文件 :十二要素风格应用的出现 ............................................. 14 容器镜像 :不断增加的可移植性(以及复杂性)................................................ 15 函数即服务 :“无服务器”架构的出现 ............................................................... 16 平台对持续交付的影响 ....................................................................................... 17 DevOps、SRE 和发布工程 ......................................................................................... 17 研发和运维.......................................................................................................... 18 站点可靠性工程 .................................................................................................. 19 发布工程 ............................................................................................................. 21 共享责任、指标和可观察性 ............................................................................... 22 总结 ............................................................................................................................ 22 第 3 章 设计持续交付的架构..........................................................24 优秀架构的基础 .......................................................................................................... 24 松耦合 ................................................................................................................. 25 高内聚 ................................................................................................................. 25 耦合、内聚和持续交付 ....................................................................................... 26 面向业务敏捷的架构 .................................................................................................. 27 不好的架构会限制业务的发展 ............................................................................ 27 复杂性和变更成本 .............................................................................................. 28 API 驱动的应用程序的最佳实践 ................................................................................ 29 “自上而下”构建 API ......................................................................................... 29 良好的 API 有助于持续测试和集成 .................................................................... 29 部署平台和架构 .......................................................................................................... 30 设计符合“十二要素”的云原生应用程序 ......................................................... 30 培养机械同理心 .................................................................................................. 33 面向失败的设计和持续测试 ............................................................................... 33 越来越小的服务 .......................................................................................................... 34 交付单体应用程序的挑战 ................................................................................... 34 微服务 :当 SOA 遇到领域驱动设计 .................................................................. 35 函数、lambda 表达式和纳米服务(Nanoservices)............................................. 36 架构 :“难以改变的东西”........................................................................................... 37 总结 ............................................................................................................................ 38 第 4 章 Java 应用的部署平台、基础设施以及持续交付......................39 由平台提供的功能性 .................................................................................................. 39 基本的开发流程 .......................................................................................................... 40 传统的基础设施平台 .................................................................................................. 41 传统的平台组件 .................................................................................................. 41 传统基础设施平台面临的挑战 ............................................................................ 41 传统基础设施的好处 ........................................................................................... 42 传统基础设施平台上的 CI / CD .......................................................................... 42 云平台 ......................................................................................................................... 43 深入云计算.......................................................................................................... 43 云计算面临的挑战 .............................................................................................. 45 云计算的好处 ...................................................................................................... 46 云计算中的持续交付 ........................................................................................... 47 平台即服务 ................................................................................................................. 47 简单了解 PaaS 的原理 ......................................................................................... 48 PaaS 平台面临的挑战.......................................................................................... 48 PaaS 的好处 ........................................................................................................ 50 CI/CD 和 PaaS ..................................................................................................... 50 容器(Docker)........................................................................................................... 50 容器平台组件 ...................................................................................................... 51 容器面临的挑战 .................................................................................................. 52 容器的好处.......................................................................................................... 53 持续交付容器 ...................................................................................................... 53 Kubernetes ................................................. 53 Kubernetes 的核心概念 ....................................................................................... 54 Kubernetes 面临的挑战 ....................................................................................... 54 Kubernetes 的好处 ............................................................................................... 55 Kubernetes 的持续交付 ....................................................................................... 56 函数即服务 / 无服务器函数 ........................................................................................ 56 FaaS 的概念 ........................................................................................................ 57 FaaS 面临的挑战 ................................................................................................. 57 FaaS 的好处 ........................................................................................................ 58 CI/CD 和 FaaS ..................................................................................................... 59 使用基础设施即代码 .................................................................................................. 59 总结 ............................................................................................................................ 60 第 5 章 构建 Java 应用程序..........................................................61 分解构建过程 ............................................................................................................. 61 自动化构建过程 .......................................................................................................... 62 构建依赖 ............................................................................................................. 63 外部依赖 ............................................................................................................. 66 多模块项目.......................................................................................................... 67 使用多代码库还是单代码库 ............................................................................... 67 插件 ..................................................................................................................... 68 发布和公开构件 .................................................................................................. 69 Java 构建工具概述 ...................................................................................................... 69 Ant ...................................................................................................................... 69 Maven .................................................................................................................. 72 Gradle .................................................................................................................. 77 Bazel、Pants 和 Buck .......................................................................................... 80 其他 JVM 构建工具 :SBT 和 Leiningen ............................................................. 82 Make ................................................................................................................... 82 如何选择一个构建工具............................................................................................... 83 总结 ............................................................................................................................ 84 第 6 章 其他构建工具和技巧..........................................................86 Linux、Bash 和基本的 CLI 命令 ................................................................................ 86 用户、权限和组 .................................................................................................. 86 使用文件系统 ...................................................................................................... 90 查看和编辑文本 .................................................................................................. 92 将所有东西连在一起 :重定向、管道和过滤器 .................................................. 93 搜索和操作文本 :grep、awk 和 sed ................................................................... 94 诊断工具 :top、ps、netstat 和 iostat .................................................................. 95 HTTP 调用和 JSON 操作 ............................................................................................ 96 curl ...................................................................................................................... 96 HTTPie .............................................................................................................. 100 jq ....................................................................................................................... 104 编写基础脚本 ........................................................................................................... 105 xargs .................................................................................................................. 105 管道和过滤器 .................................................................................................... 105 循环 ................................................................................................................... 106 条件 ................................................................................................................... 106 总结 .......................................................................................................................... 107 第 7 章 打包应用程序.................................................................108 构建一个 JAR 文件 :循序渐进 ................................................................................ 108 构建一个可执行的胖 JAR 文件 ................................................................................ 112 Maven Shade 插件 ............................................................................................. 113 构建 Spring Boot Uber JAR 文件 ...................................................................... 116 瘦 JAR 文件—为什么我们决定不使用胖 JAR ...................................................... 117 构建 WAR 文件 ......................................................................................................... 118 在云平台上打包 ........................................................................................................ 120 将部署比作烹饪 :烘焙式部署还是煎炸式部署 ................................................ 120 构建 RPM 和 DEB OS 包 .................................................................................. 121 其他构建 OS 包的工具(支持 Windows)......................................................... 124 使用 Packer 创建可在多个云平台部署的机器镜像 ........................................... 126 创建机器镜像的其他工具 ................................................................................. 129 构建容器 ................................................................................................................... 129 创建 Docker 容器镜像 ....................................................................................... 130 使用 fabric8 制作 Docker 镜像 .......................................................................... 131 打包 FaaS Java 应用程序 .......................................................................................... 132 总结 .......................................................................................................................... 135 第 8 章 在本地环境中工作(就像在生产环境中一样)........................136 本地开发面临的挑战 ................................................................................................ 136 mock、stub 和服务虚拟化 ........................................................................................ 137 模式 #1 :profile、mock 和 stub ........................................................................ 137 使用 Mockito 进行 mock ................................................................................... 138 模式 #2 :服务虚拟化和 API 仿真 .................................................................... 140 使用 Hoverfly 虚拟化服务 ................................................................................ 141 虚拟机 :Vagrant 和 Packer ....................................................................................... 145 安装 Vagrant ...................................................................................................... 145 创建一个 Vagrantfile ......................................................................................... 145 模式 #3 :生产环境镜像 .................................................................................... 148 容器 :Kubernetes、minikube 和 Telepresence ......................................................... 149 介绍 Docker Java Shop 示例程序 ...................................................................... 149 构建 Java 应用程序和容器镜像 ........................................................................ 150 部署到 Kubernetes 平台 .................................................................................... 152 简单的冒烟测试 ................................................................................................ 155 构建剩余的应用程序 ......................................................................................... 155 在 Kubernetes 上部署整个 Java 应用程序 ......................................................... 155 查看部署的应用程序 ......................................................................................... 156 Telepresence :在本地远程工作 ........................................................................ 157 模式 #4 :环境租赁 ........................................................................................... 160 FaaS :AWS Lamba 和 SAM Local ........................................................................... 160 安装 SAM Local ................................................................................................ 161 AWS Lambda 脚手架......................................................................................... 161 测试 AWS Lambda 事件处理 ............................................................................ 165 SAM Local 冒烟测试 ........................................................................................ 168 FaaS: Azure Functions 和 VS Code ........................................................................... 170 安装 Azure Functions Core Tools ...................................................................... 170 在本地构建和测试函数 ..................................................................................... 173 使用 VS Code 进行本地和远程测试 ................................................................. 176 总结 .......................................................................................................................... 177 第 9 章 持续集成 :创建构建管道的第一步.....................................178 为什么要持续集成 .................................................................................................... 178 如何实施 CI .............................................................................................................. 179 中心化与分布式的版本控制系统 .............................................................................. 179 Git 入门..................................................................................................................... 180 核心的 Git CLI 命令 .......................................................................................... 181 Hub :一个 Git 和 GitHub 必备的工具 .............................................................. 183 有效地使用 DVCS .................................................................................................... 185 基于主干的开发 ................................................................................................ 185 基于功能分支的开发 ......................................................................................... 186 Gitflow .............................................................................................................. 186 没有万全之策 :如何选择分支策略 .................................................................. 187 代码审查 ................................................................................................................... 189 我们要寻找什么 ................................................................................................ 190 代码审查自动化 :PMD、Checkstyle 和 FindBugs ........................................... 191 审查 pull request ................................................................................................ 196 自动化构建 ............................................................................................................... 197 Jenkins ............................................................................................................... 197 发动你的团队 ........................................................................................................... 199 定期合并代码 .................................................................................................... 199 “停下来”:管理失败的构建 ............................................................................. 199 不要在测试上使用 @Ignore .............................................................................. 199 保持快速的构建过程 ......................................................................................... 200 平台(基础设施即代码)的 CI ................................................................................ 200 总结 .......................................................................................................................... 201 第 10 章 通过管道进行部署和发布................................................202 介绍 Extended Java Shop 应用程序 .......................................................................... 202 分离部署和发布 ........................................................................................................ 204 部署应用程序 ........................................................................................................... 205 创建一个容器镜像 ............................................................................................ 206 部署机制 ........................................................................................................... 209 一切都开始于(并且结束于)健康检查 ........................................................... 218 部署策略 ........................................................................................................... 222 使用非托管的集群 ............................................................................................ 232 更改数据库........................................................................................................ 236 发布功能 ................................................................................................................... 240 功能开关 ........................................................................................................... 240 语义版本控制 .................................................................................................... 243 API 的向后兼容性和版本 .................................................................................. 244 多阶段升级........................................................................................................ 249 管理配置和敏感信息 ................................................................................................ 250 “打包式”配置 .................................................................................................. 250 外部配置 ........................................................................................................... 251 处理敏感信息 .................................................................................................... 252 总结 .......................................................................................................................... 253 第 11 章 功能性测试 :正确和接受度.............................................254 为什么要测试软件 .................................................................................................... 254 测试什么?敏捷测试象限介绍 ................................................................................. 254 持续测试 ................................................................................................................... 256 构建正确的反馈循环 ......................................................................................... 256 无尽的海龟 ............................................................................................................... 257 人为交易 ................................................................................................................... 258 端到端测试 ............................................................................................................... 259 验收测试 ................................................................................................................... 261 行为驱动开发 .................................................................................................... 261 stub 或者虚拟化第三方服务.............................................................................. 265 将所有这些整合在一起 ..................................................................................... 265 消费者驱动的合约 .................................................................................................... 265 RESTful API 合约 ............................................................................................. 267 消息合约 ........................................................................................................... 269 组件测试 ................................................................................................................... 271 嵌入式数据存储 ................................................................................................ 271 内存消息队列 .................................................................................................... 272 测试替代 ........................................................................................................... 273 创建内部资源或接口 ......................................................................................... 274 进程内和进程外 ................................................................................................ 275 集成测试 ................................................................................................................... 277 验证外部交互 .................................................................................................... 278 测试容错性........................................................................................................ 278 单元测试 ................................................................................................................... 279 交互型单元测试 ................................................................................................ 280 独立型单元测试 ................................................................................................ 281 处理不可预知的测试 ................................................................................................ 282 数据 ................................................................................................................... 282 还未准备好的资源 ............................................................................................ 283 不确定性事件 .................................................................................................... 283 如果你什么都做不了 ......................................................................................... 284 自上而下的测试和自下而上的测试 .......................................................................... 284 自上而下的测试 ................................................................................................ 285 自下而上的测试 ................................................................................................ 286 将所有内容都融入构建管道 ..................................................................................... 287 多少测试才够 ........................................................................................................... 288 总结 .......................................................................................................................... 289 第 12 章 系统质量属性测试 :验证非功能性需求..............................291 为什么要测试非功能性需求 ..................................................................................... 291 代码质量 ................................................................................................................... 292 架构质量 ................................................................................................................... 292 ArchUnit :架构方面的单元测试 ...................................................................... 292 使用 JDepend 生成设计质量指标 ...................................................................... 295 性能和压力测试 ........................................................................................................ 297 使用 Apache Benchmark 进行基本的性能测试 ................................................. 298 使用 Gatling 进行压力测试 ............................................................................... 299 安全、漏洞和威胁 .................................................................................................... 305 代码级别的安全验证 ......................................................................................... 306 依赖项验证........................................................................................................ 311 与部署平台相关的安全问题 ............................................................................. 315 后续步骤 :威胁建模 ......................................................................................... 318 混乱测试 ................................................................................................................... 321 在生产环境中制造混乱(引入猴子)................................................................ 322 在预发布环境中造成混乱 ................................................................................. 324 需要多少非功能性测试才够 ..................................................................................... 325 总结 .......................................................................................................................... 326 第 13 章 可观察性 :监控、日志和跟踪..........................................327 可观察性和持续交付 ................................................................................................ 327 为什么要观察应用程序 ..................................................................................... 327 我们希望监控 :应用程序、网络和机器 ........................................................... 329 如何观察 :监控、日志和跟踪 .......................................................................... 330 报警 ................................................................................................................... 330 面向可观察性的系统设计 ......................................................................................... 332 指标 .......................................................................................................................... 332 指标的类型........................................................................................................ 333 Dropwizard Metrics ........................................................................................... 333 Spring Boot Actuator ......................................................................................... 335 Micrometer ........................................................................................................ 336 使用指标的最佳实践 ......................................................................................... 337 日志 .......................................................................................................................... 337 日志的形式........................................................................................................ 337 SLF4J ................................................................................................................ 339 Log4j 2 .............................................................................................................. 340 日志的最佳实践 ................................................................................................ 341 请求跟踪 ................................................................................................................... 342 trace、span 和 baggage ...................................................................................... 342 Java 跟踪工具 :OpenZipkin、Spring Sleuth 和 OpenCensus ............................ 343 分布式跟踪的推荐实践 ..................................................................................... 344 异常跟踪 ................................................................................................................... 344 Airbrake ............................................................................................................ 346 系统监控工具 ........................................................................................................... 347 collectd .............................................................................................................. 347 rsyslog ............................................................................................................... 347 Sensu ................................................................................................................. 348 收集和存储 ............................................................................................................... 348 Prometheus ........................................................................................................ 349 Elastic-Logstash-Kibana .................................................................................... 349 可视化 ....................................................................................................................... 350 业务可视化........................................................................................................ 350 运维可视化........................................................................................................ 351 开发可视化........................................................................................................ 353 总结 .......................................................................................................................... 354 第 14 章 迁移到持续交付............................................................355 持续交付能力 ........................................................................................................... 355 选择你要迁移的项目 ................................................................................................ 356 情景感知 ................................................................................................................... 357 Cynefin 框架和持续交付 ................................................................................... 358 所有模型都是错误的,有些是有用的............................................................... 359 开展持续交付 ........................................................................................................... 359 测量持续交付 ........................................................................................................... 360 从小处开始,尝试、学习、分享,然后重复整个过程 ............................................ 362 增加推广范围 :领导变革 ......................................................................................... 363 其他的指导和提示 .................................................................................................... 365 不良实践和常见的反模式 ................................................................................. 365 丑陋的架构 :改还是不改 ................................................................................. 365 总结 .......................................................................................................................... 367 第 15 章 持续交付和持续改进......................................................369 从现在开始 ............................................................................................................... 369 建立扎实的技术基础 ................................................................................................ 369 持续交付价值(最重要的目标)............................................................................... 370 增加软件的共享责任 ................................................................................................ 371 促进快速反馈和实验 ................................................................................................ 371 在组织中开展持续交付............................................................................................. 372 持续改进 ................................................................................................................... 372 总结 .......................................................................................................................... 373

作者简介:

暂无相关内容,正在全力查找中


其它内容:

暂无其它内容!


下载点评

  • 错乱(710+)
  • 超预期(777+)
  • 浅显易懂(362+)
  • 力荐(708+)
  • 云同步(1133+)
  • 扫描(898+)
  • 双语(341+)
  • 优质(453+)
  • 惊喜(614+)
  • 研究(423+)
  • 结构松散(641+)
  • 最新(995+)
  • 雪中送炭(613+)
  • 可复制(339+)
  • 空洞无物(619+)
  • 分卷(126+)
  • 无缺页(984+)
  • 稳定(975+)
  • 考证(583+)

下载评论

  • 用户1728599076: ( 2024-10-11 06:24:36 )

    互动功能搭配PDF/TXT格式,精校数字阅读体验,体验良好。

  • 用户1736244170: ( 2025-01-07 18:02:50 )

    高清版本教材资源,PDF/AZW3格式适配各种阅读设备,推荐下载。

  • 用户1721630518: ( 2024-07-22 14:41:58 )

    阅读流畅,适合睡前放松看。

  • 用户1716519458: ( 2024-05-24 10:57:38 )

    互动功能搭配AZW3/TXT格式,精校数字阅读体验,推荐下载。

  • 用户1738544741: ( 2025-02-03 09:05:41 )

    图文功能搭配PDF/TXT格式,完整数字阅读体验,操作便捷。


相关书评

暂时还没有人为这本书评论!


以下书单推荐