内容推荐 本书完整介绍了Java软件开发的整个生命周期,并结合大量的成功实践经验,介绍每个阶段可能会使用的工具和技能。在基础设施已经极大改善的今天,本书还与时俱进地介绍了如何在Docker、Kubernetes、Cloud、FaaS等新兴环境下进行持续集成和持续交付。 因此,无论是经验丰富的Java熟手,还是希望接触DevOps的新手,相信都可以从本书中获得丰富的经验和知识。 目录 第1章 持续交付:为什么需要持续交付,什么是持续交付 入门知识 赋能开发者:为什么我们要持续交付 快速反馈会减少上下文切换 自动化的、可重复的以及可靠的发布 定义“完成”的概念 什么是构建管道 核心的构建管道阶段 容器技术的影响 对当前架构的影响 总结 第2章 Java开发的演化 现代Java应用程序的需求 对业务增长速度和稳定性的要求 API经济的崛起 云计算的机会和成本 模块化归来:拥抱更小的服务 对持续交付的影响 Java部署平台的演化 WAR和EAR:应用服务器统治的年代 可执行的胖JAR文件:十二要素风格应用的出现 容器镜像:不断增加的可移植性(以及复杂性) 函数即服务:“无服务器”架构的出现 平台对持续交付的影响 DevOps、SRE和发布工程 研发和运维 站点可靠性工程 发布工程 共享责任、指标和可观察性 总结 第3章 设计持续交付的架构 优秀架构的基础 松耦合 高内聚 耦合、内聚和持续交付 面向业务敏捷的架构 不好的架构会限制业务的发展 复杂性和变更成本 API驱动的应用程序的最佳实践 “自上而下”构建API 良好的API有助于持续测试和集成 部署平台和架构 设计符合“十二要素”的云原生应用程序 培养机械同理心 面向失败的设计和持续测试 越来越小的服务 交付单体应用程序的挑战 微服务:当SOA遇到领域驱动设计 函数、lambda表达式和纳米服务(Nanoservices) 架构:“难以改变的东西 总结 第4章 Java应用的部署平台、基础设施以及持续交付 由平台提供的功能性 基本的开发流程 传统的基础设施平台 …… 第5章 构建Java应用程序 第6章 其他构建工具和技巧 第7章 打包应用程序 第8章 在本地环境中工作(就像在生产环境中一样) 第9章 持续集成:创建构建管道的第一步 第10章 通过管道进行部署和发布 第11章 功能性测试:正确和接受度 第12章 系统质量属性测试:验证非功能性需求 第13章 可观察性:监控、日志和跟踪 第14章 迁移到持续交付 第15章 持续交付和持续改进 |