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

Java持续交付

编程语言 新华书店全新正版书籍

60.71 5.1折 119 全新

库存4件

江苏无锡
认证卖家担保交易快速发货售后保障

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

出版社电子工业出版社

出版时间2019-10

版次1

装帧平装

货号1201964714

上书时间2023-02-12

新华文轩网络书店

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

   商品详情   

品相描述:全新
新华文轩网络书店 全新正版书籍
商品描述
本书完整介绍了Java软件开发的整个生命周期,还结合大量的成功实践经验,介绍了每个阶段可能会使用到的工具和技能。在基础设施已经极大完善的今天,本书还与时俱进地介绍了如何在Docker、Kubernetes、Cloud、FaaS等新兴环境下进行持续集成和持续交付。
图书标准信息
  • 作者 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