| 作者 |
| 魏新宇、王洪涛、陈耿 山金孝 潘晓华 刘世民 |
| 丛书名 |
| 云计算与虚拟化技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782007071453 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------云原生应用构建:基于OpenShift--------------------------- 这是一部从开发和运维两种视角讲解如何基于OpenShift构建云原生应用的著作。三位作者分别来自红帽和微软公司,都是OpenShift和云原生领域的布道者和领军人物,经验非常丰富。 全书一共14章,秉承全栈理念讲解了构建云原生应用需要掌握的云原生技术、OpenShift技术以及开源分布式中间件技术。 *部分:云原生篇(第1~11章) 首先,讲解了云原生和与之相关的分布式开源中间件的技术,如基于云原生的Java实现等;其次,讲解了云原生构建的6大步骤及其相关的技术和方法,如发展DevOps文化、构建分布式缓存等;*后,讲解了人工智能在容器云上的实践。 第二部分:OpenShift篇(第12~14章) 详细讲解了OpenShift 集群的规划、管理、离线安装与部署,以及OpenShift 在公有云上的*实践。 ---------------------------OpenShift云原生架构:原理与实践--------------------------- 内容简介 这是一本匠心之作,它将带领你深入了解OpenShift和如何基于OpenShift构建云原生应用,以及如何通过以OpenShift为代表的PaaS平台实现数字化转型。 . 本书的三位作者都是云计算和OpenShift领域的一线资深专家和布道者,本书以他们多年来在云计算和企业数字化转型领域的实战经验为背景,深入剖析了OpenShift的架构设计、实现原理,以及集群的部署和运维;深度讲解基于OpenShift的云原生架构,以及如何以微服务、DevOps、Service Mesh、Serverless和Spark为核心构建企业云原生技术平台。 全书共8章,每一章的内容都干货十足: 第1章介首先绍了云原生PaaS平台如何重塑云计算以及它在数字化转型中的作用,然后对OpenShift做了宏观的介绍。 第2章从源代码的角度对OpenShift的设计哲学、架构设计和核心功能模块的实现原理进行了深入剖析。 第3章从工程实践的角度详细讲解了OpenShift集群的部署、运维和管理。 第4章重点讲解了基于OpenShift平台的云原生应用自动构建与部署。 第5章介绍如何在OpenShift上实现云原生DevOps工具链。 第6章主要讲解了Service Mesh技术,以及基于Istio的微服务在OpenShift上的云原生实践。 第7章重点阐述了Serverless技术,以及基于Knative的无服务器应用在OpenShift上的云原生实践。 第8章主要讲解了以Spark为核心的数据科学应用及其在OpenShift上的云原生实践。 |
| 目录 |
---------------------------云原生应用构建:基于OpenShift--------------------------- 序言 前言 第一部分 云原生篇 第1章 云原生应用的构建之路2 1.1 云原生应用2 1.1.1 什么是云原生应用2 1.1.2 云原生应用开发和部署的四大 原则3 1.2 云原生应用构建之路的步骤3 1.3 借助Red Hat开源解决方案实现 云原生6 1.4 本章小结8 第2章 传统Linux上构建应用包9 2.1 什么是RPM9 2.2 从源代码构建软件10 2.2.1 本机编译代码10 2.2.2 解释型代码11 2.3 给软件打补丁12 2.4 安装软件13 2.5 源代码生成tar.gz包14 2.6 RPM打包15 2.6.1 什么是SPEC文件15 2.6.2 书写SPEC文件17 2.7 构建二进制RPM包19 2.7.1 构建Source RPM和二进制 RPM19 2.7.2 检查并安装RPM包21 2.8 如何在异构环境重新编译RPM22 2.9 本章小结24 第3章 云原生Java的实现25 3.1 Java应用的发展25 3.1.1 Java EE架构25 3.1.2 Java应用的打包与JDK28 3.2 Kubernetes时代Java面临的问题33 3.3 Quarkus的架构33 3.4 验证Quarkus功能34 3.4.1 编译和部署Quarkus应用34 3.4.2 Quarkus的热加载39 3.4.3 在OpenShift中部署Quarkus 应用程序41 3.4.4 Quarkus应用添加REST Client 扩展45 3.4.5 Quarkus应用的容错能力50 3.5 Quarkus的事务管理52 3.6 本章小结53 第4章 DevOps和DevSecOps的 实现54 4.1 什么是DevOps54 4.1.1 从瀑布式开发到敏捷开发54 4.1.2 从敏捷开发到DevOps55 4.2 DevOps的技术实现56 4.3 在OpenShift上实现DevOps58 4.3.1 S2I与Jenkins结合使用实现 CI/CD59 4.3.2 常用DevOps工具介绍61 4.3.3 OpenShift 3 Jenkins Pipeline 工作流分析64 4.4 OpenShift 4.2中的OpenShift Pipeline69 4.4.1 Tekton概述69 4.4.2 安装OpenShift Pipeline71 4.4.3 验证OpenShift Pipeline73 4.5 DevSecOps在OpenShift上的实现79 4.5.1 DevSecOps的架构79 4.5.2 DevSecOps中的安全工具80 4.5.3 DevSecOps在OpenShift上的 架构80 4.5.4 DevSecOps所依赖的OpenShift 实验环境81 4.5.5 DevSecOps Pipeline分析83 4.5.6 执行DevSecOps Pipeline89 4.6 本章小结94 第5章 构建分布式消息中间件和 数据流平台95 5.1 服务之间的通信95 5.1.1 服务之间的通信方式95 5.1.2 异步通信实现97 5.1.3 消息的分类97 5.2 AMQ在OpenShift上的企业级 实现98 5.2.1 标准消息中间件规范98 5.2.2 查看AMQ的多协议支持101 5.2.3 创建持久队列101 5.2.4 AMQ的HA104 5.2.5 AMQ的Cluster105 5.2.6 AMQ在OpenShift上的部署107 5.3 Kafka在OpenShift上的实现113 5.3.1 Kafka的架构113 5.3.2 Kafka集群在OpenShift集群 上的实现方式114 5.3.3 在OpenShift上部署Kafka 集群115 5.3.4 配置Kafka外部访问121 5.3.5 配置Mirror Maker124 5.4 本章小结128 第6章 构建分布式缓存129 6.1 IT架构的演进129 6.1.1 传统IT架构129 6.1.2 分布式IT架构130 6.1.3 分布式IT架构下的缓存130 6.1.4 内存数据网格的应用场景131 6.2 内存数据网格技术实现: Infinispan131 6.2.1 Infinispan的两种部署模式132 6.2.2 Infinispan的三种配置模式133 6.2.3 Infinispan功能验证134 6.2.4 在OpenShift上实现 Infinispan138 6.3 内存数据网格技术实现:Redis141 6.3.1 Sentinel Redis一主多从141 6.3.2 Redis Cluster Redis多主 多从142 6.3.3 Redis在OpenShift上的实现143 6.4 Infinispan和Redis的对比150 6.5 本章小结150 第7章 构建业务流程自动化151 7.1 规则与流程151 7.2 企业规则的开源实现153 7.2.1 KIE的架构153 7.2.2 Drools的架构155 7.3 企业级规则自动化方案157 7.3.1 Red Hat Decision Manager 架构157 7.3.2 RHDM在OpenShift上的实现 架构158 7.4 以抵押贷款应用展示RHDM 功能161 7.4.1 在RHDM上导入抵押贷款 应用源码161 7.4.2 抵押贷款应用源码分析163 7.4.3 探索抵押贷款应用165 7.4.4 复杂规则的处理168 7.4.5 验证决策模型和表示法(DMN) 格式规则171 7.5 Red Hat流程自动化方案174 7.5.1 Red Hat Process Automation Manager架构174 7.5.2 RHPAM与微服务的集成案例 环境准备176 7.5.3 RHPAM与微服务的集成实验 流程验证185 7.6 本章小结194 第8章 云原生应用的安全195 8.1 云原生应用的认证与授权195 8.2 OpenShift的单点登录197 8.2.1 OpenShift的认证方式197 8.2.2 OpenShift与Keycloak 的集成198 8.3 实现Web应用单点登录209 8.4 云原生应用出口流量限制219 8.4.1 配置出口防火墙219 8.4.2 配置出口路由器220 8.5 本章小结224 第9章 分布式集成与API管理225 9.1 分布式集成225 9.1.1 分布式集成方案225 9.1.2 基于OpenShift 3.11和Camel的 微服务集成227 9.1.3 Camel K项目介绍251 9.2 API管理方案253 9.2.1 Red Hat 3Scale的技术架构与 实现效果253 9.2.2 Red Hat 3Scale对容器化应用的 管理255 9.3 本章小结262 第10章 云原生应用与Serverless 的结合263 10.1 无服务器架构Serverless263 10.1.1 应用架构的演进263 10.1.2 基础架构的演进264 10.1.3 Serverless的技术种类265 10.1.4 OpenWhisk的核心概念266 10.1.5 基于OpenShift集群部署 的 OpenWhisk267 10.2 Serverless与IoT的配合270 10.2.1 场景描述270 10.2.2 创建并验证第一个Action: formatInput271 10.2.3 创建并验证第二个Action: enricher274 10.2.4 将两个Action链接276 10.2.5 创建并验证第三个Action: geofence277 10.2.6 验证包含三个Action的 序列279 10.3 本章小结282 第11章 人工智能在容器云上的 实践283 11.1 Caffe2和Jupyter Notebook介绍283 11.2 在OpenShift集群中部署 Caffe2284 11.3 运行代码分析287 11.3.1 整体代码分析287 11.3.2 运行代码287 11.4 Open Data Hub的简介与展示299 11.4.1 Open Data Hub简介299 11.4.2 Open Data Hub的安装300 11.4.3 Open Data Hub的基本功能 展示306 11.5 本章小结307 第二部分 OpenShift篇 第12章 集群规划与管理310 12.1 集群规划310 12.1.1 裸金属还是虚拟机311 12.1.2 容量评估315 12.1.3 网络考量316 12.1.4 集群的部署考量319 12.1.5 拉伸集群跨数据中心 部署322 12.1.6 联邦集群322 12.2 集群管理和增强338 12.2.1 多集群管理门户338 12.2.2 集群上应用的灾难备份/ 恢复策略342 12.2.3 启动OpenShift上的硬件 加速351 12.3 本章小结363 第13章 OpenShift 4集群离线部署 详解与简化364 13.1 极简环境规划364 13.2 使用Helper节点工具辅助安装 部署365 13.3 安装配置确认和解析367 13.3.1 DNS手动配置及解析367 13.3.2 负载均衡器手动配置及解析369 13.3.3 WebServer手动配置及解析371 13.3.4 配置离线镜像仓库/还原 镜像371 13.3.5 执行安装步骤372 13.3.6 完成安装376 13.3.7 附加操作:内部镜像库设置 使用emptydir或者NFS376 13.4 本章小结377 第14章 OpenShift与公有云378 14.1 OpenShift结合公有云的收益378 14.2 OpenShift公有云部署选择380 14.2.1 基于IaaS380 14.2.2 基于PaaS385 14.3 Azure Red Hat OpenShift385 14.3.1 集群部署与伸缩387 14.3.2 自动化运维387 14.3.3 全球部署387 14.3.4 混合云架构388 14.3.5 安全与认证389 14.3.6 与Azure服务的集成389 14.3.7 开发者体验389 14.3.8 联合技术支持390 14.3.9 付费模式391 14.3.10 OpenShift 4391 14.4 公有云OpenShift最佳实践391 14.4.1 因地制宜地选择架构391 14.4.2 最小化基础架构管理工作量392 14.4.3 构建高可用的部署架构392 14.4.4 Infrastructure as Code393 14.4.5 DevOps393 14.5 本章小结393 ---------------------------OpenShift云原生架构:原理与实践--------------------------- 前言 第1章 PaaS赋能云原生时代数字化转型 1 1.1 PaaS重塑云计算时代 1 1.1.1 PaaS统一云计算架构 1 1.1.2 PaaS构建云计算未来 3 1.1.3 PaaS赋能微服务架构 6 1.1.4 PaaS加速DevOps实践 7 1.1.5 PaaS构筑云原生时代 9 1.2 PaaS赋能企业数字化转型 12 1.2.1 数字化转型的本质 12 1.2.2 PaaS赋能企业中台 13 1.2.3 PaaS助力数字化转型 15 1.3 企业级PaaS平台OpenShift介绍 17 1.3.1 OpenShift及其发展简史 17 1.3.2 OpenShift与云原生架构 18 1.3.3 OpenShift与Kubernetes 20 1.4 本章小结 22 第2章 OpenShift架构设计与原理 23 2.1 OpenShift总体架构 23 2.1.1 OpenShift设计哲学 23 2.1.2 OpenShift核心组件 29 2.1.3 OpenShift核心概念 31 2.1.4 OpenShift部署架构 46 2.2 OpenShift网络之SDN 47 2.2.1 OpenShift SDN网络配置 48 2.2.2 OpenShift Node节点上的SDN 49 2.2.3 OpenShift SDN网络隔离 54 2.2.4 OpenShift典型网络访问场景 55 2.3 OpenShift网络之路由器 62 2.3.1 从集群外访问OpenShift中的服务 62 2.3.2 OpenShift HAProxy路由器介绍 65 2.3.3 OpenShift路由规则介绍 67 2.3.4 OpenShift路由服务高可用 74 2.4 OpenShift网络之DNS 75 2.4.1 OpenShift Pod内部DNS配置 76 2.4.2 OpenShift Node节点DNS配置 77 2.4.3 OpenShift 集群内DNS查询流程 79 2.5 OpenShift存储 81 2.5.1 Docker卷 82 2.5.2 OpenShift存储卷 84 2.5.3 OpenShift 持久化卷 86 2.5.4 静态创建持久化卷 89 2.5.5 动态创建持久化卷 94 2.6 OpenShift权限控制 99 2.6.1 OpenShift权限概述 99 2.6.2 OpenShift权限认证 101 2.6.3 OpenShift基于角色的权限访问控制 107 2.6.4 OpenShift安全上下文约束 111 2.7 OpenShift服务 114 2.7.1 OpenShift服务概述 114 2.7.2 OpenShift服务概念理解 116 2.7.3 OpenShift服务使用介绍 117 2.8 本章小结 121 第3章 OpenShift集群部署与运维 123 3.1 OpenShift集群规划与部署准备 123 3.1.1 集群软件版本规划 124 3.1.2 集群规模与资源需求 125 3.1.3 集群高可用架构设计 127 3.1.4 集群主机环境需求 130 3.1.5 集群主机系统准备 133 3.2 OpenShift开发测试环境快速部署 137 3.2.1 OpenShift容器与二进制方式快速启动 137 3.2.2 OpenShift自定义脚本一键自动部署 139 3.2.3 OpenShift开发测试环境Minishift 141 3.3 OpenShift集群生产环境自动部署 144 3.3.1 OpenShift集群部署介绍 144 3.3.2 OpenShift集群自动部署配置 147 3.3.3 OpenShift集群在线自动部署 151 3.3.4 OpenShift集群离线自动部署 154 3.4 OpenShift集群运维与管理 160 3.4.1 OpenShift集群扩容 160 3.4.2 OpenShift集群升级 162 3.4.3 OpenShift集群备份 167 3.4.4 OpenShift集群恢复 172 3.5 本章小结 176 第4章 OpenShift云原生应用构建与部署 177 4.1 OpenShift应用构建与部署概述 177 4.1.1 OpenShift应用构建介绍 177 4.1.2 OpenShift镜像流介绍 179 4.1.3 OpenShift应用部署介绍 180 4.2 OpenShift应用构建 180 4.2.1 BuildConfig资源对象 181 4.2.2 Docker构建 199 4.2.3 源代码构建 205 4.2.4 jenkinsPipeline构建 212 4.3 OpenShift应用部署 216 4.3.1 DeploymentConfig资源对象 216 4.3.2 Rolling与Recreate部署 220 4.4 OpenShift资源模板 224 4.4.1 OpenShift资源模板介绍 225 4.4.2 OpenShift资源模板制作与应用实践 228 4.5 本章小结 232 第5章 OpenShift云原生DevOps构建 233 5.1 DevOps发展简介 233 5.1.1 DevOps发展背景介绍 233 5.1.2 DevOps流水线介绍 237 5.2 Jenkins持续集成 239 5.2.1 OpenShift云原生部署Jenkins 240 5.2.2 Jenkins OpenShift插件应用介绍 242 5.3 GitLab代码仓库 246 5.3.1 OpenShift云原生部署GitLab 247 5.3.2 Jenkins与GitLab在OpenShift上的集成 250 5.4 SonarQube代码扫描 255 5.4.1 OpenShift云原生部署SonarQube 256 5.4.2 Jenkins与SonarQube在OpenShift上的集成 261 5.5 Nexus制品库 268 5.5.1 OpenShift云原生部署Nexus 268 5.5.2 Jenkins与Nexus在OpenShift上的集成 270 5.6 构建JeeSite应用DevOps流水线实战 273 5.7 本章小结 284 第6章 Service Mesh及其在OpenShift上的实践 285 6.1 传统微服务架构 285 6.1.1 微服务与SOA 286 6.1.2 Spring Cloud框架 287 6.1.3 Dubbo框架 289 6.1.4 微服务现状分析 290 6.2 云原生微服务架构 292 6.2.1 Service Mesh 292 6.2.2 Linkerd 294 6.2.3 Enovy 296 6.2.4 Istio 299 6.2.5 Docker、Kubernetes与Istio 302 6.3 Istio在OpenShift上的实现 304 6.3.1 OpenShift集群快速部署与实现 304 6.3.2 OpenShift上部署Istio集群 305 6.3.3 OpenShift上部署Istio微服务 310 6.4 基于OpenShift的Istio功能验证与测试 314 6.4.1 微服务监控与跟踪 314 6.4.2 微服务流量控制 320 6.4.3 微服务故障注入 328 6.4.4 微服务请求熔断 332 6.4.5 微服务Egress路由 338 6.4.6 微服务可视化 340 6.5 本章小结 345 第7章 Serverless及其在OpenShift上的实践 346 7.1 软件架构演变历史 346 7.1.1 单体架构 346 7.1.2 SOA架构 347 7.1.3 微服务架构 348 7.1.4 Serverless架构 349 7.2 深入认识Serverless架构 350 7.2.1 Serverless与云原生 350 7.2.2 Serverless与微服务 352 7.2.3 Serverless与PaaS 353 7.2.4 Serverless与FaaS 354 7.3 Serverless发展现状 355 7.3.1 AWS Lambda 355 7.3.2 OpenWhisk 357 7.3.3 OpenFaaS 361 7.3.4 Kubeless 362 7.3.5 Serverless现状分析 363 7.4 Serverless统一平台Knative 364 7.4.1 构建系统Build 366 7.4.2 服务系统Serving 368 7.4.3 事件系统Eventing 373 7.5 基于OpenShift的Knative实现 378 7.5.1 部署OpenShift 378 7.5.2 部署Istio 380 7.5.3 部署Knative Serving 380 7.5.4 部署Serverless应用 382 7.6 Knative应用验证与测试 384 7.6.1 事件驱动 384 7.6.2 自动伸缩 386 7.7 本章小结 395 第8章 Spark数据科学及其在OpenShift上的实践 396 8.1 Spark计算框架介绍 396 8.1.1 Spark组件 397 8.1.2 Spark的优势和特性 398 8.2 Spark与数据科学 399 8.3 Spark on K8S介绍 401 8.4 Spark数据科学在OpenShift上的实现 406 8.4.1 数据科学项目Radanalyticsio介绍 406 8.4.2 Spark集群在OpenShift上的生命周期管理 408 8.4.3 Spark应用在OpenShift上的自动部署实现 417 8.5 Spark数据科学之云原生自然语言处理 424 8.5.1 自然语言处理与Word2vec 424 8.5.2 自然语言处理开源项目Ophicleide 425 8.5.3 自然语言处理云原生部署实现 425 8.5.4 自然语言处理应用验证与测试 433 8.6 Spark数据科学之云原生推荐引擎 436 8.6.1 推荐引擎介绍 436 8.6.2 推荐引擎开源项目Jiminy 437 8.6.3 推荐引擎云原生部署与实现 438 8.6.4 推荐引擎应用验证与测试 443 8.7 本章小结 445 |