Markus Eisele是Red Hat在EMEA的开发者项目的负责人。他与不同供应商的Java EE服务器打交道已经超过14年。他是一名Java Champion,Java EE前专家组成员,也是德国大名鼎鼎的Java会议JavaLand的创始人。
Natale Vinto是一名软件工程师,在IT和ICT技术方面有超过10年的专业经验,在电信和Linux操作系统方面有深厚的背景知识。如今,Natale是红帽OpenShift开发者的倡导者,帮助社区内的人和客户在Kubernetes与云原生战略上获得成功。
译者简介
张卫滨,天津大学 2007 届研究生,有着十多年的企业级软件研发和设计经验,热爱探索和研究新技术,目前主要关注云原生、微服务、自动化测试等领域。翻译出版了十多本流行的技术图书,如《Spring 实战》(第 3 版到第 6 版)、《Spring Data 实战》、《RxJava反应式编程》等。业余时间担任技术社区 InfoQ 的编辑,撰写、翻译了数百篇技术文章和新闻。
Markus Eisele是Red Hat在EMEA的开发者项目的负责人。他与不同供应商的Java EE服务器打交道已经超过14年。他是一名Java Champion,Java EE前专家组成员,也是德国大名鼎鼎的Java会议JavaLand的创始人。
Natale Vinto是一名软件工程师,在IT和ICT技术方面有超过10年的专业经验,在电信和Linux操作系统方面有深厚的背景知识。如今,Natale是红帽OpenShift开发者的倡导者,帮助社区内的人和客户在Kubernetes与云原生战略上获得成功。
译者简介
张卫滨,天津大学 2007 届研究生,有着十多年的企业级软件研发和设计经验,热爱探索和研究新技术,目前主要关注云原生、微服务、自动化测试等领域。翻译出版了十多本流行的技术图书,如《Spring 实战》(第 3 版到第 6 版)、《Spring Data 实战》、《RxJava反应式编程》等。业余时间担任技术社区 InfoQ 的编辑,撰写、翻译了数百篇技术文章和新闻。
序言
前言
第1章 重新回顾企业级开发
什么是公有云与私有云?为何要使用云
“云原生”的含义
Kubernetes原生的开发
面向开发者的容器和编排
容器原生的运行时
Kubernetes的不同风格
管理开发的复杂性
DevOps与敏捷
小结
第2章 云原生Java之路
云原生工作坊
架构
使用Quarkus创建Inventory微服务
创建QuarkusMaven项目
创建领域模型
创建RESTful服务
在开发模式下运行应用
使用SpringBoot创建Catalog微服务
创建Maven项目
创建领域模型
创建数据资源库
创建RESTful服务
使用Vert.x创建Gateway服务
创建Vert.xMaven项目
创建APIGateway
使用Node.js和AngularJS创建前端
运行前端
小结
第3章 轻装前行
是三层还是分布式系统
技术更新、现代化和转型
6R
分解并容
化
将Kubernetes作为新的应用服务器
定义目标平台
强制迁移的步骤和工具
创建应用组合
为大事做准备
小结
第4章 基于Kubernetes的软件开发平台
开发人员与Kubernetes
Kubernetes能够做什么
Kubernetes不能做什么
基础设施即代码
容器镜像
Dockerfile
构建容器镜像
运行容器
镜像仓库
部署至Kubernetes
Pod
Service
Deployment
Kubernetes与Java
Jib
JKube
小结
第5章 超越原样转移:处理遗留系统
管理遗留系统
评估要迁移的应用
评估要迁移的功能
迁移方式
保护遗留应用(Replatform)
构建新的应用(Refactor)
挑战
避免双重写入
长时间运行的事务
快速移除旧代码
集成
小结
第6章 构建Kubernetes原生的应用
寻找可扩展性和复杂性之间的平衡点
现代化架构的功能性需求
API驱动
服务发现
安全与授权
监控
跟踪
日志
CI/CD
调试微服务
端口转发
Quarkus远程开发模式
Telepresence
小结
第7章 未来之路:Serverless
什么是Serverless
架构的演进
使用场景:数据、AI与机器学习
使用场景:边缘计算和IoT
Knative:适用于Kubernetes的Serverless
事件驱动的Serverless架构
面向Java应用的函数即服务
Java应用的函数部署
BosonFunctionCLI
小结
索引