作者 |
魏新宇 郭跃军 等 |
丛书名 |
云计算与虚拟化技术丛书 |
出版社 |
机械工业出版社 |
ISBN |
9782110269333 |
简要 |
简介 |
内容简介书籍计算机书籍 ---------------------------8084206 - OpenShift在企业中的实践: PaaS DevOps 微服务 第2版--------------------------- 两位云计算和微服务资深专家合著,从企业实战角度,为客户通过OpenShift实现IT转型给出具体建议和参考架构,讲述如何构建基于混合云的云原生平台。 ---------------------------8069659 - 微服务之道:度量驱动开发--------------------------- 本书由资深架构师撰写,系统介绍级微服务设计与实现方法,融入了作者多年架构设计的经验。主要内容包括:第1章介绍微服务理论与原则,包括微服务概念、协议、特点等;第2章微服务实践方法,包括设计要点、应对变化、测试驱动的开发等;第3章通过案例讲解微服务实现的过程,包括一个完整实例;第4章介绍持续改进的方法,包括度量驱动的改进方法,用缓存提高性能,用NoSQL提高扩展性等;第5章介绍持续交付的方法,包括用脚本驱动开发方法,部署流水线等。 |
目录 |
[套装书具体书目] 8069659 - 微服务之道:度量驱动开发 - 9787111653615 - 机械工业出版社 - 定价 89 8084206 - OpenShift在企业中的实践: PaaS DevOps 微服务 第2版 - 9787111691051 - 机械工业出版社 - 定价 139 ---------------------------8084206 - OpenShift在企业中的实践: PaaS DevOps 微服务 第2版--------------------------- 赞誉 推荐序 再版前言 致谢 作者介绍 第1章 通过OpenShift实现企业的 数字化转型1 1.1 企业进行数字化转型的必要性1 1.2 企业数字化转型之PaaS2 1.3 企业数字化转型之DevOps3 1.3.1 从瀑布式开发到敏捷开发3 1.3.2 从敏捷开发到DevOps4 1.3.3 洛克希德·马丁公司实施 DevOps的收益5 1.4 企业数字化转型之微服务6 1.4.1 微服务架构简介6 1.4.2 微服务架构的主要类型7 1.4.3 企业实施微服务架构的收益和原则7 1.5 PaaS、DevOps与微服务的关系8 1.6 企业数字化转型的实现8 1.6.1 什么是云原生应用8 1.6.2 企业数字化转型之路9 1.7 本章小结11 第2章 OpenShift技术解密及架构设计12 2.1 OpenShift与Kubernetes的关系12 2.1.1 容器发展史12 2.1.2 OpenShift发展简史14 2.1.3 OpenShift对Kubernetes的增强14 2.1.4 OpenShift对Kubernetes 生态的延伸17 2.2 OpenShift的架构介绍与规划20 2.2.1 OpenShift的逻辑架构20 2.2.2 OpenShift的技术架构21 2.2.3 OpenShift的部署架构规划54 2.3 本章小结107 第3章 基于OpenShift构建企业级PaaS平台108 3.1 OpenShift部署架构参考108 3.2 OpenShift部署与建设要点110 3.2.1 OpenShift部署方式与过程说明110 3.2.2 配置OpenShift离线镜像116 3.2.3 OpenShift离线部署示例122 3.2.4 OpenShift部署后的配置133 3.3 OpenShift的Worker节点扩容158 3.4 OpenShift集群的升级161 3.4.1 OpenShift的升级策略161 3.4.2 OpenShift的在线升级162 3.4.3 OpenShift的离线升级163 3.5 本章小结165 第4章 OpenShift在企业中的开发实践166 4.1 开发人员的关注点166 4.2 应用向OpenShift容器化迁移的方法167 4.2.1 OpenShift应用准入条件167 4.2.2 应用容器化迁移流程167 4.2.3 应用容器化方法168 4.2.4 制作容器镜像的最佳实践169 4.2.5 本地构建实现应用容器化174 4.2.6 S2I实现应用容器化179 4.3 OpenShift上应用部署实践195 4.3.1 OpenShift上多种应用部署方式对比195 4.3.2 Deployments与Deployment Config的对比199 4.3.3 自定义指标实现水平扩容200 4.4 OpenShift上部署有状态应用201 4.4.1 StatefulSet简介202 4.4.2 OpenShift部署有状态应用实践203 4.4.3 在OpenShift上统一管理虚拟机207 4.5 从零开发Operator209 4.5.1 开发Operator的要点209 4.5.2 开发一个Ansible Operator210 4.6 本章小结217 第5章 OpenShift在企业中的运维实践218 5.1 运维人员的关注点218 5.2 OpenShift运维指导218 5.3 RHCOS的架构与运维实践219 5.3.1 RHCOS修改配置的几种方法219 5.3.2 Day1配置展示:通过指定Ignition配置来设定RHCOS的配置220 5.3.3 Day2配置展示:通过MachineConfig方式修改RHCOS的配置221 5.4 OpenShift修改配置后的自动重启224 5.5 OpenShift中的证书225 5.6 OpenShift运维技巧简介228 5.7 OpenShift多网络平面的选择与配置232 5.7.1 Macvlan静态IP地址配置方法232 5.7.2 Macvlan动态分配IP地址配置方法236 5.8 OpenShift中Pod的限速238 5.9 OpenShift中项目无法被删除问题239 5.10 OpenShift集群性能优化241 5.11 OpenShift安全实践245 5.11.1 主机安全246 5.11.2 OpenShift平台安全246 5.11.3 镜像安全248 5.11.4 容器运行安全248 5.12 OpenShift监控系统与改造249 5.12.1 原生Prometheus监控249 5.12.2 OpenShift原生监控系统250 5.12.3 OpenShift原生监控系统的改造256 5.12.4 监控系统的集成260 5.13 OpenShift日志系统与改造263 5.13.1 OpenShift原生EFK介绍263 5.13.2 日志系统改造265 5.13.3 应用非标准输出日志采集276 5.14 OpenShift备份恢复与容灾280 5.14.1 备份容灾概述280 5.14.2 OpenShift备份280 5.14.3 容灾设计287 5.15 OpenShift的多集群管理289 5.16 本章小结291 第6章 OpenShift在公有云上的实践292 6.1 OpenShift在公有云和私有云上的区别292 6.2 OpenShift在公有云上的架构模型294 6.2.1 单个PaaS共享架构模型294 6.2.2 公有云服务自维护架构模型296 6.2.3 控制节点托管架构模型297 6.2.4 公有云租户独享PaaS架构模型298 6.3 OpenShift在公有云上的部署方式299 6.4 OpenShift在AWS上的实践299 6.4.1 AWS服务简介300 6.4.2 OpenShift在AWS上的实践301 6.5 OpenShift与IaaS的集成322 6.6 OpenShift实现混合云架构324 6.7 本章小结326 第7章 在OpenShift上实现DevOps327 7.1 DevOps的适用场景327 7.2 DevOps的实现路径328 7.2.1 组织与角色329 7.2.2 平台与工具330 7.2.3 流程与规范332 7.2.4 文化与持续改进334 7.2.5 总结334 7.3 基于OpenShift实现CI/CD的几种方式335 7.3.1 使用自定义的S2I模板340 7.3.2 自定义模板实现Binary部署343 7.3.3 在源码外构建Pipeline349 7.3.4 在源码内构建Pipeline352 7.3.5 Tekton实现云原生构建354 7.4 在OpenShift上实现持续交付361 7.4.1 OpenShift上的持续交付工具介绍362 7.4.2 基于Jenkins实现持续交付372 7.4.3 基于Tekton实现持续交付383 7.5 本章小结389 第8章 DevOps在企业中的实践390 8.1 成功实践DevOps的关键要素390 8.1.1 定义全景视图和目标390 8.1.2 标准化的流程和组织391 8.1.3 建立DevOps基石:自动化391 8.1.4 协同工作的文化392 8.2 某大型客户DevOps案例分析392 8.2.1 客户现状及项目背景392 8.2.2 DevOps落地实践393 8.2.3 实践收益469 8.3 本章小结470 第9章 基于OpenShift构建云原生471 9.1 什么是云原生应用471 9.2 轻量级应用服务器的选择472 9.2.1 轻量级的应用服务器472 9.2.2 如何将应用迁移到轻量级应用服务器473 9.3 云原生的应用开发框架:Quarkus475 9.3.1 传统Java的困境475 9.3.2 GraalVM的兴起476 9.3.3 云原生Java:Quarkus477 9.3.4 编译和部署一个Quarkus应用479 9.3.5 Quarkus的热加载484 9.3.6 在OpenShift中部署Quarkus应用程序486 9.3.7 为Quarkus应用添加Rest Client扩展490 9.3.8 Quarkus应用的容错能力494 9.3.9 Quarks的事务管理 497 9.3.10 Spring Boot应用向Quarkus的迁移498 9.4 云原生分布式集成:Camel-K499 9.5 云原生的捕获数据更改:Debezium503 9.5.1 Debezium项目介绍503 9.5.2 Debezium的功能展示504 9.6 云原生的业务流程自动化:Kogito509 9.7 云原生Serverless:Knative515 9.7.1 Knative简介515 9.7.2 OpenShift Serverless516 9.7.3 OpenShift Serverless的安装518 9.7.4 OpenShift Serverless的蓝绿发布520 9.7.5 OpenShift Serverless的事件触发524 9.8 本章小结526 第10章 微服务在OpenShift上的落地527 10.1 微服务介绍527 10.1.1 微服务的特点与优势527 10.1.2 微服务架构528 10.1.3 企业对微服务治理的需求529 10.2 Spring Cloud在OpenShift上的落地530 10.2.1 Spring Cloud在OpenShift上的实现与原生实现的不同530 10.2.2 Spring Cloud在OpenShift上的实现536 10.3 Istio在OpenShift上的落地551 10.3.1 Istio介绍551 10.3.2 Sidecar的注入553 10.3.3 OpenShift Service Mesh介绍556 10.4 Istio的基本功能562 10.4.1 Istio路由基本概念562 10.4.2 基于目标端的灰度/蓝绿发布566 10.4.3 微服务的灰度上线569 10.4.4 微服务的熔断572 10.4.5 微服务的黑名单574 10.5 对OpenShift上Istio的重要说明577 10.5.1 OpenShift上Istio入口访问方式的选择577 10.5.2 OpenShift Router和Istio Ingessgateway的联系与区别585 10.5.3 Istio配置生效的方式和选择586 10.6 企业应用向Istio迁移588 10.6.1 使用本地构建方式将应用迁移到Istio的步骤588 10.6.2 三层微服务向Istio中迁移展示590 10.7 Istio生产使用建议595 10.7.1 Istio的性能指标596 10.7.2 Istio的运维建议597 10.8 基于OpenShift实现的微服务总结599 10.9 本章小结601 ---------------------------8069659 - 微服务之道:度量驱动开发--------------------------- 本书赞誉 前言 第1章 微服务入门 1 1.1 单体服务的特点 1 1.2 拆分服务 2 1.2.1 分而治之以降低复杂性 2 1.2.2 分而用之以提高可重用性 4 1.2.3 分而做之以提高开发效率 5 1.3 微服务的特点 5 1.3.1 微服务架构的特点 6 1.3.2 微服务架构的特征 7 1.3.3 微服务架构的风格 7 1.3.4 微服务的分类 7 1.3.5 多小的服务才是微服务 8 1.4 微服务之道 8 1.4.1 软件之道 8 1.4.2 关于微服务的思考 10 1.5 土豆微服务案例快速上手 11 1.5.1 土豆微服务构建计划 11 1.5.2 微服务构建一:土豆管理微服务 13 1.5.3 微服务构建二:土豆提醒微服务 24 1.5.4 微服务构建三:土豆网页微服务 30 1.5.5 部署土豆微服务 35 1.6 本章小结 38 第2章 微服务度量的基本概念 39 2.1 微服务的局限及其解决方案 39 2.1.1 微服务的局限 39 2.1.2 解决方案 40 2.2 微服务中度量的重要性 41 2.3 微服务度量的内容 42 2.3.1 按度量的目标划分 43 2.3.2 按度量的层次划分 44 2.4 微服务度量指标与术语 49 2.4.1 统计学指标 49 2.4.2 度量指标相关术语 53 2.4.3 度量处理相关术语 55 2.5 微服务度量策略选择 58 2.5.1 如何做度量 58 2.5.2 如何选择度量方案 60 2.6 本章小结 63 第3章 微服务度量的设计 64 3.1 微服务协议的选择与度量 64 3.1.1 协议概述 64 3.1.2 协议分类 65 3.1.3 协议分析 67 3.2 HTTP及其度量 71 3.2.1 HTTP简介 71 3.2.2 REST协议的度量要点 71 3.3 SIP及其度量 72 3.3.1 SIP简介 72 3.3.2 SIP的度量要点 73 3.4 RTP及其度量 73 3.4.1 RTP简介 73 3.4.2 RTP的度量要点 74 3.5 数据存储系统的选型 76 3.5.1 理论回顾 76 3.5.2 数据存储系统选型 78 3.5.3 数据存储系统特性 79 3.6 基于度量实现高可用性 80 3.6.1 分流——负载均衡 81 3.6.2 限流——速率控制 83 3.6.3 断流——熔断隔离 91 3.7 土豆微服务度量驱动的设计 95 3.7.1 为如何度量而设计 96 3.7.2 通过度量改进设计 101 3.8 本章小结 102 第4章 度量驱动的微服务实现 103 4.1 度量代码 103 4.1.1 代码度量标准 103 4.1.2 代码度量关键指标 105 4.1.3 小结 107 4.2 度量进度 108 4.3 度量性能 110 4.4 度量微服务的常用技术 123 4.4.1 利用切面记录度量日志 123 4.4.2 利用线程局部变量记录度量信息 124 4.4.3 利用过滤器找准度量点 126 4.4.4 提供JMX暴露内部度量指标 127 4.4.5 提供API或命令行接口暴露内部度量指标 131 4.4.6 阈值和采样率控制度量数据量 132 4.4.7 利用简单网络管理协议提供度量查询和报警支持 135 4.4.8 综合利用以上技术 135 4.5 度量常用类库 138 4.5.1 Dropwizard的Metrics-core 138 4.5.2 Pivotal的Micrometer 140 4.5.3 Spring Boot Actuator 142 4.6 土豆微服务度量实现 147 4.6.1 为土豆微服务提供代码度量 147 4.6.2 为土豆微服务添加健康检查API 152 4.6.3 为土豆微服务提供资源使用率度量 156 4.6.4 为土豆微服务提供使用量的度量 157 4.6.5 为土豆微服务提供性能度量 159 4.6.6 为土豆微服务提供错误度量 160 4.6.7 为土豆微服务提供业务KPI度量 160 4.7 本章小结 163 第5章 度量数据的聚合与展示 164 5.1 度量数据的聚合和存储 164 5.2 度量数据的清洗和处理 166 5.2.1 数据清洗的方法 166 5.2.2 数据清洗的案例 166 5.3 度量数据的可视化 170 5.3.1 图表的结构 170 5.3.2 图表的类型 170 5.3.3 如何选择图表 179 5.4 常用度量聚合与展示方案 181 5.4.1 TIG方案 181 5.4.2 ELKK方案 188 5.4.3 Collectd方案 193 5.4.4 Prometheus方案 198 5.5 土豆微服务的度量聚合与展示 200 5.5.1 土豆微服务支持多种度量聚合与展示系统的设计 200 5.5.2 基于TIG的土豆微服务度量聚合与展示 202 5.5.3 基于ELKK的土豆微服务度量聚合与展示 207 5.6 本章小结 214 第6章 度量数据的分析与报警 215 6.1 度量数据的分析 215 6.1.1 确定数据分析的目标 215 6.1.2 数据分析常见问题 218 6.2 实现报警常用的技术 222 6.2.1 Python数据分析技术栈 223 6.2.2 YAML配置文件 223 6.2.3 Elasticsearch API 224 6.2.4 Pandas DataFrame 226 6.2.5 Matplotlib 228 6.3 土豆微服务的报警实现 230 6.3.1 报警系统的设计 230 6.3.2 报警系统的实现 232 6.3.3 报警系统的优化 242 6.4 本章小结 244 第7章 度量驱动的运维 245 7.1 部署升级 245 7.1.1 何时能部署到产品线上 246 7.1.2 如何发布新功能 247 7.2 数据的运维 251 7.2.1 健康检查 251 7.2.2 度量报告 251 7.2.3 度量警告 252 7.2.4 故障处理 252 7.2.5 基于度量来发现和解决问题 255 7.3 配置调整 258 7.3.1 关于配置的思考 259 7.3.2 配置的版本管理 259 7.3.3 配置的载体 260 7.3.4 环境管理 262 7.3.5 配置微服务 262 7.3.6 配置管理实例 263 7.4 开源组件的度量 267 7.4.1 对Redis的度量 267 7.4.2 对Kafka的度量 270 7.4.3 对Cassandra的度量 273 7.5 土豆微服务的运维示例 276 7.6 本章小结 280 第8章 全链路度量 281 8.1 微服务的调用链路度量 281 8.1.1 3个关键信息 282 8.1.2 5个要点 283 8.1.3 3种标识 283 8.1.4 开源调用链分析方案 284 8.1.5 构建土豆微服务调用链的度量 285 8.2 客户端度量数据的采集 289 8.3 度量驱动开发的回顾与展望 291 8.4 本章小结 293 附录 常用的度量相关工具与软件库 294 |