• Java持续交付
21年品牌 40万+商家 超1.5亿件商品

Java持续交付

本店所售图书,保证正版新书,有个别图片和实书封面不一样,以实书封面为准,最快当天,一般隔天发货。支持7天无理由退换货.开票联系客服

58.9 4.9折 119 全新

库存2件

北京西城
认证卖家担保交易快速发货售后保障

作者Marin-Perez(亚布拉罕·马林-佩雷斯) 著;[美]Daniel、Bryant(丹尼尔·布莱恩特)、[英]Abraham、张若飞 译

出版社电子工业出版社

出版时间2019-10

版次1

装帧平装

货号30751214

上书时间2023-12-15

剡溪书局

四年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
目录
第 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 .................................................................................

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

精彩内容
序一
自从DaveFarley和JezHumble写了ContinuousDelivery一书后,持续交付社区普遍开始认为工具并不重要。在现实中,已经存在大量优秀的编程语言,以及大量用来构建、测试和部署程序的优秀工具。因此,他们曾经的观点是,你使用什么工具并不重要,只要不去使用那些特别糟糕的工具。
这些年,这种观点被NicoleForsgren博士、JezHumble和GeneKim的研究工作进一步发展。他们的著作Accelerate总结了他们在持续交付、IT效能等方面多年的研究成果。
其中的一个结论就是,一个团队是否能够选择适合自己的工具,对于持续交付有着绝对重要的影响。因此,现在这个观点已经变成:你使用什么工具并不重要,只要你有能力自己选择工具,并且不去使用那些特别糟糕的工具。
以我自己为例。我第一次在团队中实施持续交付,还是2007年在Elsevier公司工作期间。我们借助了一些极限编程的方式,例如TDD和CI,使用Java6、Spring2和Tomcat6编写了一个旅行网站。构建工具使用的是Ant和CruiseControl。代码库始终处于可发布的状态,并且每隔一周就将代码部署到生产环境。
我第一次在整个公司中实施持续交付,是2008年在LMAX公司。我们使用极限编程和领域驱动设计,使用Java6、Spring3和Resin3编写了一个艺术品交易平台。构建工具依然使用的是Ant和CruiseControl,以及许多自定义的仪表盘。代码库依旧始终处于可发布状态,每隔两星期部署到生产环境一次。
我肯定你已经看出了其中的共同点。聪明的人会选择紧密的合作,因此我们选择了极限编程,并规定了良好的设计准则,然后根据手上的工作来合理选择使用的工具。我记得在LMAX公司工作期间,研发部门的领导也正在写一本关于持续交付的书,不过我已经记不清他的名字是叫Dafydd、Dev还是其他什么了。我想说的是,不管你使用Java、PHP还是.NET,都可以成功地实施持续交付。你可以使用SolarisZones或者Docker,也可以使用AWS、Azure或者自己的数据中心(也许你的平台负责人会一直认为它比AWS更便宜)。你只需确保为要解决的具体问题选择了合适的工具。此外,不要使用MKS进行版本控制,不要使用QTP进行测试,也不要使用其他任何商业的发布管理工具,因为它们都太难用了。
那么现在问题来了,如果你真的认为只要选择了合适的工具就行,为什么我还要写这篇序言呢?
实际上,如果我们仔细思考一下,就会发现这里面的细微差别。与持续交付的原则和实践相比,工具可能并不重要,但是它们依然有非常重要的作用。编程语言不仅可以帮助人们快速创建新的功能和补丁,降低产品开发过程中的延期风险,而且有助于构建一个可测试、可发布的应用程序架构,这同样也是持续交付的一个关键目标。良好的构建、测试和部署工具,可以帮助人们向着TDD、基于Trunk开发等正确的实践方向上前进。
当我最近在打扫童年卧室的时候,发现了大学时IvorHorton写的UderstandingJava2一书,于是我想起了一些往事。从1999年开始接触Java,我已经度过了近20个年头。在我的印象中,Java是一门伟大的编程语言。在这些年里,Java、JUnit、Gradle、Spring以及其他许多工具,帮助我构建了许多测试良好的、可发布的应用程序,并鼓励人们不断去接受持续交付的概念。
随着云计算、容器化以及无服务器架构逐渐成为现在的趋势,我们都需要经验丰富的人来告诉我们,如何使用最新的工具来实施持续交付。在本书中,Daniel和Abraham介绍了如何使用Java和SpringBoot、Kubernetes及AWSEKS等流行工具,实现高频率地交付现代化的Web应用程序,从而满足市场需求。通过Daniel和Abraham的讲解,相信任何使用Java的IT人员都可以学会,如何通过一系列工具让应用程序实现可持续性的交付。
——SteveSmithContinuousDelivery咨询公司的持续交付顾问序二持续交付是一门重要的实践技术,每个工程团队都应该铭记于心。我们经常被问到,是什么样的关键因素,使我们成功地运营了jClarity公司,以及在adoptopenjdk.net上创建了OpenJDK/Java。答案是,我们可以每天以最大的信心进行部署,并且用最小的工程团队来完成此事。自从DaveFarley和JezHumble在2010年开创性地编写了ContinuousDelivery:ReliableSoftwareReleasesthroughBuild,Test,andDeploymentAutomation(Addison-WesleySignature)一书后,人们虽然已经逐渐开始接受持续交付的概念,但是仍然缺少一本完整指南,告诉近1000万名Java开发者如何做到这一点。现在,它终于出现了。
Daniel和Abraham都是持续交付的践行者,他们的书中包含了一名Java开发者需要了解的所有有关持续交付的内容,同时又对某些内容进行了深入的讲解,包括“为什么”你希望遵守持续交付的实践原则,如何设计一个符合持续交付的应用架构,如何将构建、测试及部署管道集成到一起,甚至还包括如何在错综复杂的云计算和容器环境中进行部署。
在如今的Java行业中,“云原生”概念的影响范围越来越大,现代应用程序必须开始考虑如何连接大量的外部组件(包括JVM和其他组件),以及通过一种非常不同的方式,处理以往由本地操作系统提供的资源(例如I/O)。甚至连应用程序的生命周期,以及它们与物理机器的关系都在发生变化,例如不可变架构和无服务器架构等,都在要求所有Java开发者不断更新自己的知识,以充分利用这些新的应用交付能力。
在如今这个崭新的世界中,持续交付的技术及其背后的工具和设计理念,以及面向云计算开发的模式已经变得越来越重要。到目前为止,还没有一本专门为Java开发人员编写的指南,指导他们如何完整地实施持续交付,并从中获益,而本书弥补了这一点。
——MartijnVerburgjClarity公司CEO及LJC领导人

图书标准信息
  • 作者 Marin-Perez(亚布拉罕·马林-佩雷斯) 著;[美]Daniel、Bryant(丹尼尔·布莱恩特)、[英]Abraham、张若飞 译
  • 出版社 电子工业出版社
  • 出版时间 2019-10
  • 版次 1
  • ISBN 9787121374425
  • 定价 119.00元
  • 装帧 平装
  • 开本 16开
  • 纸张 胶版纸
  • 页数 404页
  • 字数 553千字
【内容简介】

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

【作者简介】
Daniel Bryant 是Datawire 的独立技术顾问和产品架构师。他专注于通过发现价值流、创建构建管道以及实施有效的测试策略,在组织内实施持续交付。Daniel 在技术上擅长DevOps 工具、云计算/ 容器平台和微服务实现。他还是一名Java 社区领袖,为几个开源项目做出过贡献,也为InfoQ、O’Reilly 和Voxxed 撰写文章,并且会定期出席OSCON、QCon 和JavaOne 等国际会议。Abraham Marin-Perez 是一名Java 和Scala 开发人员,在金融、出版和公共部门等行业拥有超过10 年的经验。他还帮助管理伦敦Java 社区,并在Meet a Mentor London小组提供职业发展方面的建议。Abraham 喜欢与其他人分享他的经验,因此经常会在JavaOne 或者Devoxx UK 等国际活动上发表演讲,并在InfoQ 上发表Java 方面的新闻。他还是Real-World Maintainable Software (O’Reilly) 一书的作者。Abraham 目前居住在伦敦,喜欢在天气好的时候外出徒步,或者天气不好的时候在家烹饪。

张若飞,TGO会员,曾任易通贷CTO,宜人贷首席架构师,在雅虎北研、金山云、POLYCOM等知名公司担任架构师。十余年互联网研发及技术管理经验,管理过超过百人的技术研发团队,对搭建海量数据、大型分布式系统有丰富经验,对互联网金融领域有广泛涉猎。著有十余本技术译著,包括《云原生Java:Spring Boot、Spring Cloud与Cloud Foundry弹性系统设计》《面向可伸缩架构》《代码不朽:编写可维护软件的十大则》《给大忙人看的JavaSE 8》《Grails**指南》等书,总计300余万字。
【目录】


章持续交付:为什么需要持续交付,什么是持续交付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
devo、sre和发布工程17
研发和运维18
站点可靠工程19
发布工程21
共享责任、指标和可观察22
结22
第3章设计持续交付的架构24
架构的基础24
松耦合25
高内聚25
耦合、内聚和持续交付26
面向业务敏捷的架构27
不好的架构会业务的发展27
复杂和变更成本28
api驱动的应用程序的很好实践29
“自上而下”构建api29
良好的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/cd42
云台43
深入云计算43
云计算面临的挑战45
云计算的好处46
云计算中的持续交付47
台即服务47
简单了解paas的48
paas台面临的挑战48
paas的好处50
ci/cd和paas50
容器(docker)50
容器台组件51
容器面临的挑战52
容器的好处53
持续交付容器53
kuberes53
kuberes的核心概念54
kuberes面临的挑战54
kuberes的好处55
kuberes的持续交付56
函数即服务/无服务器函数56
faas的概念57
faas面临的挑战57
faas的好处58
ci/cd和faas59
使用基础设施即代码59
结60
第5章构建java应用程序61
分解构建过程61
自动化构建过程62
构建依赖63
外部依赖66
多模块项目67
使用多代码库还是单代码库67
插件68
发布和公开构件69
java构建工具概述69
ant69
maven72
gradle77
bazel、pants和buck80
其他jvm构建工具:sbt和leiningen82
make82
如何选择一个构建工具83
结84
第6章其他构建工具和86
linux、bash和基本的cli命令86
用户、权限和组86
使用文件系统90
查看和编辑文本92
将所有东西连在一起:重定向、管道和过滤器93
搜索和作文本:grep、awk和sed94
诊断工具:top、、stat和iostat95
调用和json作96
curl96
ie100
jq104
编写基础脚本105
xargs105
管道和过滤器105
循环106
条件106
结107
第7章打包应用程序108
构建一个jar文件:循序渐进108
构建一个可执行的胖jar文件112
mavenshade插件113
构建springbootuberjar文件116
瘦jar文件―为什么我们决定不使用胖jar117
构建war文件118
在云台上打包120
将部署比作烹饪:烘焙式部署还是煎炸式部署120
构建rpm和debos包121
其他构建os包的工具(支持windows)124
使用packer创建可在多个云台部署的机器镜像126
创建机器镜像的其他工具129
构建容器129
创建docker容器镜像130
使用fabric8制作docker镜像131
打包faasjava应用程序132
结135
第8章在本地环境中工作(像在生产环境中一样)136
本地开发面临的挑战136
mock、stub和服务虚拟化137
模式#1:profile、mock和stub137
使用mockito进行mock138
模式#2:服务虚拟化和api140
使用hoverfly虚拟化服务141
虚拟机:vagrant和packer145
安装vagrant145
创建一个vagrantfile145
模式#3:生产环境镜像148
容器:kuberes、minikube和telepresence149
介绍dockerjavashop示例程序149
构建java应用程序和容器镜像150
部署到kuberes台152
简单的冒烟测试155
构建剩余的应用程序155
在kuberes上部署整个java应用程序155
查看部署的应用程序156
telepresence:在本地远程工作157
模式#4:环境租赁160
faas:awslamba和samlocal160
安装samlocal161
awslambda脚手架161
测试awslambda事件处理165
samlocal冒烟测试168
faas:azurefunctions和vscode170
安装azurefunctionscoretools170
在本地构建和测试函数173
使用vscode进行本地和远程测试176
结177
第9章持续集成:创建构建管道的步178
为什么要持续集成178
如何实施ci179
中心化与分布式的版本控制系统179
git入门180
核心的gitcli命令181
hub:一个git和github的工具183
有效地使用dvcs185
基于主干的开发185
基于功能分支的开发186
gitflow186
没有万全之策:如何选择分支策略187
代码审查189
我们要寻找什么190
代码审查自动化:pmd、checkstyle和findbugs191
审查pullrequest196
自动化构建197
jenkins197
发动你的团队199
定期合并代码199
“停下来”:管理失败的构建199
不要在测试上使用@ignore199
保持快速的构建过程200
台(基础设施即代码)的ci200
结201
0章通过管道进行部署和发布202
介绍extendedjavashop应用程序202
分离部署和发布204
部署应用程序205
创建一个容器镜像206
部署机制209
都开始于(并且结束于)健康检查218
部署策略222
使用非托管的集群232
更改数据库236
发布功能240
功能开关240
语义版本控制243
api的向后兼容和版本244
多阶段升级249
管理配置和敏感信息250
“打包式”配置250
外部配置251
处理敏感信息252
结253
1章功能测试:正确和接受度254
为什么要测试软件254
测试什么?敏捷测试象限介绍254
持续测试256
构建正确的反馈循环256
无尽的海龟257
人为交易258
端到端测试259
验收测试261
行为驱动开发261
stub或者虚拟化第三方服务265
将所有这些整合在一起265
消费者驱动的合约265
restfulapi合约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
2章系统质量属测试:验证非功能需求291
为什么要测试非功能需求291
代码质量292
架构质量292
archunit:架构方面的单元测试292
使用epend生成设计质量指标295
能和压力测试297
使用apachebenchmark进行基本的能测试298
使用gatling进行压力测试299
安全、漏洞和威胁305
代码级别的安全验证306
依赖项验证311
与部署台相关的安全问题315
后续步骤:威胁建模318
混乱测试321
在生产环境中制造混乱(引入猴子)322
在预发布环境中造成混乱324
需要多少非功能测试才够325
结326
3章可观察:监控、志和跟踪327
可观察和持续交付327
为什么要观察应用程序327
我们希望监控:应用程序、网络和机器329
如何观察:监控、志和跟踪330
报警330
面向可观察的系统设计332
指标332
指标的类型333
dropwizardmetrics333
springbootactuator335
micrometer336
使用指标的很好实践337
志337
志的形式337
slf4j339
log4j2340
志的很好实践341
请求跟踪342
trace、span和baggage342
java跟踪工具:openzipkin、springsleuth和opencensus343
分布式跟踪的实践344
异常跟踪344
airbrake346
系统监控工具347
collectd347
rsyslog347
sensu348
收集和存储348
prometheus349
elastic-logstash-kibana349
可视化350
业务可视化350
运维可视化351
开发可视化353
结354
4章迁移到持续交付355
持续交付能力355
选择你要迁移的项目356
情景感知357
cynefin框架和持续交付358
所有模型都是错误的,有些是有用的359
开展持续交付359
测量持续交付360
从小处开始,尝试、学、分享,然后重复整个过程362
增加推广范围:变革363
其他的指导和提示365
不良实践和常见的反模式365
丑陋的架构:改还是不改365
结367
5章持续交付和持续改进369
从现在开始369
建立扎实的技术基础369
持续交付价值(重要的目标)370
增加软件的共享责任371
促进快速反馈和实验371
在组织中开展持续交付372
持续改进372
结373

点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP