---------------------------OpenShift在企业中的实践:PaaS DevOps 微服务---------------------------
赞誉
推荐序
前言
致谢
第 1 章 通过 OpenShift 实现企业的数字化转型
1.1 企业进行数字化转型的必要性
1.2 企业数字化转型之 PaaS
1.3 企业数字化转型之 DevOps
1.3.1 从瀑布式开发到敏捷开发
1.3.2 从敏捷开发到 DevOps
1.4 企业数字化转型之微服务
1.4.1 微服务架构简介
1.4.2 微服务架构的主要类型
1.4.3 企业实施微服务架构的收益和原则
1.5 PaaS、DevOps 与微服务的关系
1.6 企业数字化转型的实现
1.6.1 企业业务中台的建设
1.6.2 企业数字化转型步骤
1.7 本章小结
第 2 章 基于 OpenShift 构建企业级PaaS 平台
2.1 OpenShift 与 Kubernetes 的关系
2.1.1 OpenShift 发展简史
2.1.2 OpenShift 对 Kubernetes 的增强
2.1.3 OpenShift 对 Kubernetes生态的延伸
2.2 OpenShift 的架构介绍与规划
2.2.1 OpenShift 的逻辑架构
2.2.2 OpenShift 的技术架构
2.2.3 OpenShift 的组件架构
2.2.4 OpenShift 的部署架构
2.3 OpenShift 部署架构参考
2.4 OpenShift 安装与部署
2.4.1 OpenShift3 的私有云部署
2.4.2 OpenShift4.1 的私有云部署
2.5 本章小结
第 3 章 OpenShift 在企业中的开发和运维实践
3.1 OpenShift 在企业中面向的对象
3.2 OpenShift 在企业中的开发实践
3.2.1 应用向 OpenShift 容器化迁移方法
3.2.2 基于 Fabric8 在 OpenShift 上发布应用
3.2.3 OpenShift API 的调用
3.2.4 在 OpenShift 上部署有状态应用
3.3 OpenShift 在企业中的运维实践
3.3.1 OpenShift 运维指导
3.3.2 OpenShift 安全实践
3.3.3 OpenShift 性能优化
3.3.4 OpenShift 监控系统与改造
3.3.5 OpenShift 日志系统与改造
3.3.6 OpenShift 备份恢复与容灾
3.4 本章小结
第 4 章 OpenShift 在公有云上的实践
4.1 OpenShift 在公有云和私有云上的区别
4.2 OpenShift 在公有云上的架构模型
4.2.1 单个 PaaS 共享架构模型
4.2.2 公有云服务自维护架构模型
4.2.3 控制节点托管架构模型
4.2.4 公有云租户独享 PaaS 架构模型
4.3 OpenShift 在公有云上的部署方式
4.4 OpenShift 在 AWS 上的实践
4.4.1 AWS 服务简介
4.4.2 OpenShift3 在 AWS 上的实践
4.4.3 OpenShift4 在 AWS 上的实践
4.4.4 AWS 上的 Service Broker
4.5 OpenShift 在阿里云上的实践
4.6 本章小结
第 5 章 在 OpenShift 上实现DevOps
5.1 DevOps 的适用场景
5.2 DevOps 的实现路径
5.2.1 组织与角色
5.2.2 平台与工具
5.2.3 流程与规范
5.2.4 文化与持续改进
5.2.5 总结
5.3 基于 OpenShift 实现 CI/CD 的几种方式
5.3.1 使用自定义的 S2I 模板
5.3.2 自定义模板实现 Binary部署
5.3.3 在源码外构建 Pipeline
5.3.4 在源码内构建 Pipeline
5.3.5 OpenShift 中 Jenkins 的工作方式选择
5.4 在 OpenShift 上实现持续交付
5.4.1 OpenShift 上的持续交付工具介绍
5.4.2 持续交付的实现
5.4.3 可以优化的部分
5.5 Ansible 实现混合云中的DevOps
5.5.1 Ansible 介绍
5.5.2 Ansible 基本使用场景
5.5.3 Ansible 在 DevOps 中的应用
5.6 本章小结
第 6 章 DevOps 在企业中的实践
6.1 成功实践 DevOps 的关键要素
6.1.1 定义全景视图和目标
6.1.2 标准化的流程和组织
6.1.3 建立 DevOps 基石:自动化
6.1.4 协同工作的文化
6.2 某大型客户 DevOps 案例分析
6.2.1 客户现状及项目背景
6.2.2 DevOps 落地实践
6.2.3 实践收益
6.3 本章小结
第 7 章 微服务介绍及 Spring Cloud在 OpenShift 上的落地
7.1 企业应用的发展
7.1.1 Jakarta EE 介绍
7.1.2 Jakarta EE 应用架构
7.1.3 Web Services 的大量使用
7.1.4 现代应用客户端开发方式
7.1.5 Web Services 的两种类型
7.1.6 企业应用发展的未来
7.2 微服务介绍
7.2.1 微服务方法论与设计原则
7.2.2 MicroProfile微服务框架
7.2.3 Spring Cloud 微服务框架
7.2.4 Istio微服务框架
7.2.5 微服务架构的选择
7.3 企业对微服务治理的需求
7.4 Spring Cloud 在 OpenShift 上的落地
7.4.1 Spring Cloud 在 OpenShift上实现的不同
7.4.2 Spring Cloud 在 OpenShift上的实现
7.5 本章小结
第 8 章 Istio架构介绍与安装部署
8.1 Istio的技术架构
8.1.1 两个平面的定义
8.1.2 控制平面
8.1.3 数据平面
8.1.4 Sidecar 的注入
8.2 在 OpenShift 上部署Istio
8.2.1 基于 OpenShift 的Istio与社区版本Istio的区别
8.2.2 在 OpenShift 上安装Istio
8.3 Istio的工具集简介
8.3.1 Istio的工具集:Grafana
8.3.2 Istio的工具集:Prometheus
8.3.3 Istio的工具集:Kiali
8.3.4 Istio的工具集:Jaeger
8.4 在Istio中部署Bookinfo微服务
8.4.1 Bookinfo微服务架构
8.4.2 在 OpenShift 中部署Bookinfo
8.4.3 Bookinfo微服务效果展示
8.5 Bookinfo微服务源码分析
8.5.1 Productpage微服务的源码
8.5.2 Reviews 微服务的源码
8.5.3 源码中Mongodb和Mysql的配置
8.5.4 Ratings 微服务的源码
8.5.5 Bookinfo访问效果展示
8.6 本章小结
第 9 章 基于 OpenShift 和Istio实现微服务落地
9.1 Istio的基本功能
9.1.1 Istio路由基本概念
9.1.2 基于目标端的灰度 / 蓝绿发布
9.1.3 微服务的灰度上线
9.1.4 微服务的限流
9.1.5 微服务的熔断
9.1.6 微服务的黑名单
9.2 对 OpenShift 上Istio的重要说明
9.2.1 OpenShift 上Istio入口访问方式的选择
9.2.2 OpenShift Router 和IstioIngessgateway的联系与区别
9.2.3 Istio配置生效的方式和选择
9.3 企业应用向Istio迁移
9.3.1 使用本地构建方式将应用迁移到Istio的步骤
9.3.2 三层微服务源码分析
9.3.3 三层微服务向Istio中迁移展示
9.4 Istio纳管微服务
9.4.1 纳管场景重要说明
9.4.2 三层微服务配置路由管理
9.4.3 三层微服务配置限流和熔断
9.4.4 三层微服务配置超时和重试
9.4.5 三层微服务配置错误注入
9.4.6 三层微服务配置黑白名单
9.4.7 三层微服务配置验证与授权
9.5 Istio生产使用建议
9.5.1 Istio的性能指标
9.5.2 Istio的调优参考
9.5.3 Istio的运维建议
9.6 基于 OpenShift 实现的企业微服务治理需求
9.7 本章小结
第 10 章 微服务的高级管理
10.1 微服务的 API 管理
10.1.1 API 经济的由来
10.1.2 API 经济的实现
10.1.3 API 网关与 API 管理的区别
10.2 微服务的 API 管理方案
10.2.1 红帽 API 管理方案的市场地位
10.2.2 红帽 3Scale 的技术架构与实现效果
10.2.3 红帽 3Scale 对容器化应用的管理
10.2.4 红帽 3Scale 与Istio的集成
10.3 微服务的分布式集成
10.3.1 分布式集成方案
10.3.2 基于 OpenShift 和 Camel 的微服务集成
10.4 微服务的流程自动化
10.4.1 流程与规则
10.4.2 红帽的微服务流程自动化方案
10.4.3 RHPAM 与微服务的集成案例环境准备
10.4.4 RHPAM 与微服务的集成实验流程验证
10.5 业务中台的技术实现
10.6 本章小结
附录 OpenShift 投资回报率分析
---------------------------DevOps和自动化运维实践---------------------------
推荐序一
推荐序二
推荐序三
前言
第1章 DevOps与自动化运维的意义 1
1.1 DevOps在企业中存在的意义 1
1.2 为什么企业需要自动化运维 4
1.3 Web编程相关体系知识点 5
1.3.1 为什么要前后端分离 5
1.3.2 什么是RESTful 7
1.3.3 Web后台认证机制 8
1.3.4 同步和异步、阻塞与非阻塞的区别 10
1.3.5 WebSocket双工通信 11
1.3.6 了解消息中间件 13
1.3.7 了解负载均衡高可用 18
1.4 从事DevOps工作应该掌握的语言 24
1.5 从事DevOps工作应该掌握的工具 25
1.6 了解网站系统架构设计和高并发场景 26
1.6.1 网站性能评估指标 26
1.6.2 细分五层解说网站架构 26
1.7 了解数据库集群主从复制的基本原理 34
1.8 Linux服务器的安全防护 37
1.8.1 DDoS攻击和运营商劫持 37
1.8.2 Linux服务器基础防护篇 38
1.8.3 Linux服务器高级防护篇 40
1.9 小结 41
第2章 Shell脚本在DevOps下的应用 42
2.1 Shell编程基础 42
2.1.1 Shell脚本的基本元素 43
2.1.2 Shell基础正则表达式 43
2.1.3 Shell特殊字符 46
2.1.4 变量和运算符 47
2.2 Shell中的控制流结构 61
2.3 sed的基础用法及实用举例 64
2.3.1 sed的基础语法格式 64
2.3.2 sed的用法举例说明 69
2.4 awk的基础用法及实用案例 72
2.5 Shell应用于DevOps开发中应掌握的系统知识点 77
2.6 生产环境下的Shell脚本 85
2.6.1 生产环境下的备份类脚本 86
2.6.2 生产环境下的统计类脚本 89
2.6.3 生产环境下的监控类脚本 92
2.6.4 生产环境下的运维开发类脚本 97
2.7 小结 102
第3章 Python在DevOps与自动化运维中的应用 103
3.1 Python语言的应用领域 103
3.2 选择Python的原因 105
3.3 Python的版本说明 106
3.4 Python基础学习工具 106
3.4.1 Python(x,y)简单介绍 107
3.4.2 IPython详细介绍 107
3.4.3 Sublime Text3简单介绍 113
3.5 Python基础知识进阶 120
3.5.1 正则表达式应用 120
3.5.2 Python程序构成 127
3.5.3 Python编码问题 129
3.5.4 使用Python解析JSON 131
3.5.5 Python异常处理与程序调试 133
3.5.6 Python函数 136
3.5.7 Python面向对象 147
3.5.8 Python多进程 159
3.5.9 Python多线程 161
3.6 Python经常用到的第三方类库 175
3.7 利用Flask设计后端Restful API 178
3.7.1 DevOps中为什么要使用RESTful API 178
3.7.2 RESTful API项目实战 182
3.8 工作中的Python脚本分享 184
3.9 小结 191
第4章 Vagrant在DevOps环境中的应用 192
4.1 Vagrant简单介绍 193
4.2 Vagrant安装 193
4.3 使用Vagrant配置本地开发环境 195
4.3.1 Vagrant的具体安装步骤 195
4.3.2 Vagrant配置文件详解 198
4.3.3 Vagrant常用命令详解 199
4.4 使用Vagrant搭建DevOps开发环境 200
4.5 使用Vagrant搭建分布式环境 203
4.6 小结 207
第5章 自动化部署管理工具Ansible 208
5.1 YAML介绍 209
5.2 Ansible的安装和配置 214
5.3 定义主机与组规则(Inventory) 218
5.4 Ansible常用模块介绍 220
5.5 playbook介绍 235
5.6 Ansible在AWS云平台中的应用 240
5.7 角色 241
5.8 Jinja2过滤器 248
5.9 Ansible速度优化 252
5.10 利用Ansible API提供自动化运维后端 262
5.10.1 runner API 262
5.10.2 playbook API 265
5.10.3 用Flask封装Ansible提供自动化运维后端 267
5.11 Ansible 2.2新增功能 273
5.12 小结 280
第6章 自动化配置管理工具SaltStack 281
6.1 Salt的相关知识点介绍 281
6.1.1 Salt的优势 281
6.1.2 Salt的安装 282
6.1.3 Salt的工作流程 287
6.1.4 Salt配置文件详解 288
6.1.5 Salt的命令格式 291
6.2 Salt的常用组件 291
6.2.1 Salt常用的操作目标 291
6.2.2 Salt常用模块 293
6.2.3 Granis组件 304
6.2.4 pillar组件 308
6.2.5 job管理 311
6.2.6 State介绍 312
6.3 Salt真实案例分享 314
6.3.1 base环境配置 315
6.3.2 prod环境配置 319
6.4 Salt多Master搭建 322
6.5 Salt API介绍 324
6.5.1 Python API介绍 324
6.5.2 Restful API介绍 326
6.6 小结 330
第7章 Docker和Jenkins在DevOps中的应用 331
7.1 Docker的基础安装 333
7.2 Docker的三大核心概念 336
7.3 Docker的基本架构 338
7.4 Docker网络实现原理 340
7.5 利用Dockerfile文件技巧打包Docker镜像 342
7.6 利用Docker-Compose编排和管理多容器 344
7.6.1 Docker-Compose的基本语法 345
7.6.2 Docker-Compose常用命令 352
7.6.3 使用Docker-Compose运行Python Web项目 354
7.6.4 使用Docker-Compose的过程中遇到的问题 355
7.7 利用Docker搭建Jenkins Master/Slave分布式环境 357
7.7.1 部署Jenkins Master/Slave分布式环境需要解决的问题 358
7.7.2 Jenkins Master/Slave的详细部署过程 360
7.7.3 Jenkins Master/Slave以集群形式运行任务 363
7.8 实际运行Jenkins时遇到的问题及使用心得 365
7.9 小结 368
第8章 自动化运维的后续思考 369
8.1 自动化运维系统中应该实现的系统 369
8.2 自动化运维经历的阶段 371
8.3 自动化运维的必备技能:定制RPM包 372
8.4 因地制宜地选择自动化运维方案 374
8.5 小结 375
附录A GitLab在DevOps工作中的实际应用 376
附录B 用Gunicorn部署高性能Python WSGI服务器 385
附录C Supervisor在DevOps工作中的应用 391
附录D 分布式队列管理Cerely
简介 397