猜你喜欢
OpenShift云原生架构:原理与实践

OpenShift云原生架构:原理与实践

书籍作者:山金孝 ISBN:9787111649656
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:3460
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

全书共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上的云原生实践。


作者简介

山金孝

资深云计算技术专家、架构师,腾讯云TVP、阿里云MVP。现就职于招商局集团数字化中心,曾就职于招商银行、IBM和中国移动。开源技术爱好者,云计算推广、布道与实践者,国内较早接触OpenStack和OpenShift的一线技术专家,目前致力于开源云原生技术的研究、推广与实践工作。作为由传统IT架构转型为云计算领域的技术专家,当前正致力于推动企业的智能化和数字化转型。著有《OpenStack高可用集群》(上、下册)、《企业私有云建设指南》等云计算书籍,译有《精通OpenStack》和《机器学习即服务》等书,在国内外核心期刊发表过多篇CVPR论文。另外,他还是IBM认证高级技术专家、DB2高级DBA,Oracle认证OCP及Red Hat认证系统工程师,维护有“OpenShift开源社区”微信公众号。


潘晓华

资深DevOps实践专家、运维专家,现为兴业数金云原生技术专家,曾为招银云创容器云平台与DevOps负责人。近10年IT从业经验,具有丰富的项目实施、应用架构设计与研发经验。多年来深耕敏捷IT和DevOps领域,是开源社区的积极参与者、贡献者,以及国内较早接触OpenShift的一线技术专家,通过技术博客“潘晓华Michael”,积极推动了OpenShift在国内的应用和实践落地。


刘世民

资深云计算技术专家,现为易航科技云服务事业部总经理。十几年IT从业经验,曾先后就职于华为、IBM和EMC,担任过云计算创业公司CTO。云计算技术爱好者、实践者和推广者,乐于总结和分享,维护有“世民谈云计算”技术博客和微信公众号。


编辑推荐
适读人群 :负责企业数字化转型的CTO/CIO/CDO,或者信息技术总监等 开源社区、开源云计算的贡献者和爱好者 云原生技术爱好者、架构师 PaaS平台从业者、云计算爱好者 OpenShift实施部署工程师、运维工程师 DevOps或CI/CD实践者 云原生应用开发工程师、云原生应用运维工程师 微服务、Serverless技术爱好者 云原生数据科学爱好者、大数据工程师 对云计算进行研究实践的科研院校学生或教师

(1)本书3位作者都有超10年的IT行业从业经验,是云计算和OpenShift领域的资深专家和布道者,有较大的行业影响力。

(2)本书是3位作者在云计算和数字化转型领域的工程经验总结。

(3)本书得到了IBM官方专家以及其他4位云计算和数字化转型领域的专家联袂推荐。

(4)深入剖析OpenShift架构设计、实现原理、集群的部署和运维,以及基于PaaS平台的数字化转型

(5)深度讲解基于OpenShift的云原生架构,为以微服务、DevOps、Service Mesh、Serverless和Spark为核心构建企业云原生技术平台提供详尽指导


前言

Preface 前  言

为什么要写这本书

“未来已来,只是尚未流行。”

——威廉·吉布森

查尔斯·狄更斯的《双城记》中有句耳熟能详的名言:“这是一个最好的时代,也是一个最坏的时代。”作为技术从业者,在这个数字化浪潮和技术变革接连发生的时代,我对这句话感慨颇深!当前,全社会都在经历新型数字经济基础设施的解耦、重构,也正在经历一场技术架构的大迁徙,我们的经济基础设施正在由传统IT架构向云计算架构体系迁移,以云计算为核心的数字化转型正在席卷全球,各行各业都在迈向数字化和智能化经济时代。伴随着我国极高的消费端数字化普及程度,复杂多变、个性需求高、体验至上和以用户为中心的商业模式,正在倒逼供给侧和产业端向数字化和智能化转型,而数字化时代需要面临的消费者主权崛起及其带来的复杂商业系统,则要求我们必须基于云计算架构、基于新兴技术群,对传统商业系统基础设施进行敏捷化和智能化的重构升级,以实现企业在应对复杂商业系统的多变性和不确定性时,具有实时响应和精准决策的能力。事实上,纵观人类社会的发展史,每一次产业革命的到来,无不以基础设施的更新、迭代和重构为代价。为此,我们的IT基础设施经历了物理机、虚拟化、云计算、容器,直至无服务器计算的发展,而与之对应的应用架构也经历了单体、多层、SOA、微服务到函数计算的发展。

面对商业系统的日趋复杂和技术变革的持续演进,当前阶段,我们应该聚焦的不是敷衍、无视技术的进步和传统基础设施的臃肿落后,不是犹豫、徘徊是否拥抱云计算,也不是在自我封闭中量化、评估数字化转型的风险和收益,而是应该思考如何利用新技术快速构筑企业新型竞争力,如何以最快捷、最稳健和最敏捷的方式走向云原生时代,更应该思考如何以云计算为核心,以新兴技术群为能力,解耦并重构传统基础设施,进而迈向智能化和数字化时代。为了实现这些目标,企业需要聚合云计算、大数据、人工智能、区块链、IoT、边缘计算和5G通信等新兴前沿技术,打造企业数字化转型赋能平台、技术中台和创新引擎。为此,企业级云原生PaaS平台应运而生。作为云计算三大模式之一的PaaS,在企业数字化转型加剧和云计算发展进入深水区的今天,凭借其在应对数字化时代传统复杂应用上云、个性需求与日俱增、市场需求敏捷响应、中台战略加速落地和新兴技术持续集成等方面的能力,正以强劲增长的态势赶超以通用计算能力为主的IaaS和具有特定行业属性的SaaS,并真正成为云计算的未来!因此,以云原生PaaS平台为引擎,构建企业技术中台,已成为企业数字化转型的必由之路!

作为以Kubernetes为核心的平台,OpenShift已成为当下最受欢迎的企业级云原生PaaS平台。在企业数字化转型时代,OpenShift的价值和意义,并不在于其作为云计算PaaS服务模式的存在,而在于其拓展并延伸了PaaS的内涵,带来了全栈融合云时代,实现了应用生命周期的全栈自动化,打通了传统企业通往云原生、DevOps、微服务和Serverless等新世界的隧道,而且打通的是一条极为宽敞光明的大道,而在过往,这些都是横亘在企业通往数字化道路上的“珠峰”。通过开源容器云OpenShift,企业可快速构建自己专属的云原生PaaS平台,同时,利用OpenShift强大的云原生技术集成创新能力,企业能简单快速地打造具备全栈自动、弹性灵活、敏捷迭代、全域赋能的强大技术中台,进而重塑企业全新的数字经济基础设施,最终助推企业迈向数字化时代。

鉴于OpenShift在企业数字化转型道路上所展现出来的价值和意义,考虑到当前市面上仍然缺乏一本从终端企业用户的实践经验出发,并通过实战方式介绍基于OpenShift构建云原生企业技术中台的实践书籍,我们决定编写此书,希望能够帮助企业用户深入理解并掌握OpenShift容器云平台的设计和架构原理。通过云原生架构的讲解、应用自动构建部署的介绍,以及DevOps、Service Mesh、Serverless和Spark数据科学在OpenShift云原生PaaS平台上的集成和应用实践,希望能够帮助企业用户快速构建全域赋能数字化转型的技术中台。同时,也希望本书能够为开源社区的技术普及和推广贡献微薄之力,为广大技术爱好者提供实践参考,为广大处于数字化转型中的企业用户提供实践思路和前行者的经验。

未来已来,只是尚未流行!希望本书能与大家携手前行,共迎未来!

读者对象

负责企业数字化转型的CTO/CIO/CDO,或者信息技术总监等

开源社区、开源云计算的贡献者和爱好者

云原生技术爱好者、架构师

PaaS平台从业者、云计算爱好者

OpenShift实施部署工程师、运维工程师

DevOps或CI/CD实践者

云原生应用开发工程师、云原生应用运维工程师

微服务、Serverless技术爱好者

云原生数据科学爱好者、大数据工程师

对云计算进行研究实践的科研院校学生或教师

本书特色

本书是一本专注于OpenShift企业用户经验总结的著作,以实现企业数字化转型为最终目标,深度讲解并实践基于OpenShift的云原生架构,以云原生应用的构建部署、DevOps、Service Mesh、Serverless和Spark数据科学为核心内容,基于OpenShift构建企业数字化转型云原生技术中台。通过阅读本书,读者就能以云原生方式,简单轻松地集成当前最主流的开源技术。

如何阅读本书

本书是企业数字化转型时代基于OpenShift构建企业云原生技术中台的匠心之作。作者基于多年在企业用户中从事云计算和数字化转型的实战经验,从开源云原生PaaS平台OpenShift的架构设计和原理讲起,深入介绍了OpenShift平台的部署及运维实践,并以实战方式介绍云原生应用的构建编排和生命周期管理,同时介绍了DevOps、Service Mesh、Serverless和Spark数据科学在OpenShift平台上的云原生实现,并以此为基础构建了企业数字化转型所必需的技术中台。

阅读本书之前,读者应具备一定的云计算知识,并对企业数字化转型的迫切需求和动机具有初步了解,对开源云计算及其相关运维工具,如Linux、OpenStack、Ansible等具有一定的了解,对DevOps、微服务、Serverless和Spark等技术具备概念性的了解。

全书分为8章,各章具体内容如下。

第1章主要介绍了云原生PaaS平台在企业数字化转型中的关键作用,不仅讲解了PaaS与云计算、微服务、DevOps、Serverless和云原生之间的关系,PaaS平台如何赋能企业数字化转型,还对企业级云原生PaaS平台OpenShift进行了初步介绍。

第2章深入讲解了OpenShift云原生PaaS平台的架构设计与原理。本章从OpenShift的总体架构讲起,详细阐述了OpenShift内部的网络架构、路由器、DNS、存储卷、权限控制和服务目录等功能组件的实现原理。

第3章系统讲述了OpenShift集群的部署与运维实践,主要介绍了OpenShift集群部署前的准备工作和资源需求,同时介绍了如何针对开发测试环境和生产环境实现OpenShift集群的高可用部署,以及如何对OpenShift集群进行运维管理。

第4章重点讲解了基于OpenShift平台的云原生应用的自动构建与部署,包括对基于OpenShift的云原生应用自动构建与部署的流程、方法,以及OpenShift应用部署资源模板和应用实践。

第5章介绍了如何在OpenShift上实现云原生DevOps工具链,从DevOps发展背景和历程讲起,详细介绍了持续集成工具Jenkins在OpenShift上的云原生实现, DevOps工具链GitLab、SonarQube和Nexus在OpenShift上的云原生实现及其与Jenkins的集成,并通过实战方式介绍了如何实现JeeSite应用的DevOps流水线。

第6章主要介绍了微服务架构在OpenShift上的实践,在介绍传统微服务架构和云原生微服务架构基础之上,以新一代微服务架构Service Mesh为主旨,剖析了Istio在OpenShift上的实现,以及基于Istio的微服务应用在OpenShift上的实践,并对Istio的功能特性进行了验证测试。

第7章重点讲解了Serverless架构在OpenShift上的实践,在详细介绍了软件架构演变历程的基础之上,深入分析了Service Mesh与云原生、微服务、PaaS和FaaS之间的关系,同时对Serverless的现状进行了概述,对Knative功能模块进行了深入分析,对Knative在OpenShift上的实现进行了讲解,同时在OpenShift上实现了基于Knative的Serverless应用,并对Knative的功能特性进行了验证测试。

第8章重点介绍了以Spark为核心的数据科学应用及其在OpenShift上的云原生实践。详细介绍了Spark计算框架及其与数据科学的关系,同时对Spark在Kubernetes上的实现进行了详细介绍。通过Radanalyticsio项目,详细介绍了Spark集群在OpenShift上的实现过程,并基于云原生Spark集群,详细介绍了自然语言和推荐引擎应用案例在OpenShift上的实现过程。

勘误和支持

在本书的写作过程中,我们参考了很多OpenShift、Kubernetes和CNCF等官方社区的资料以及历届各种开源技术峰会的讨论文档与视频,同时也参考了很多开源软件的官方资料和技术专家的经验分享,我们诚恳希望能够为OpenShift爱好者、云原生架构爱好者,以及数字化转型从业者呈现一本理论基础与应用实践相结合的参考书籍。但是由于技术变化很快,加之笔者水平有限,书中难免存在不恰当和谬误观点,若读者发现书中有任何不妥之处,恳请读者朋友批评指正。另外,鉴于OpenShift版本的迭代更新,本书主要以当前最为稳定的OpenShift 3.11为主,并有部分OpenShift 4.2的功能介绍。读者如果在阅读过程中有任何问题和意见,恳请将其发送至邮箱[email protected],我们会认真听取大家的宝贵意见。我们将实时跟进社区技术的发展变化,读者可通过关注微信公众号“OpenShift开源社区”获取最新的技术文章或者进行意见反馈。

致谢

本书的编写历时一年有余,在工作和生活极为繁忙的阶段,我仍然坚持每日查阅资料和整理文章,其间得到了招商银行很多同事和领导的关心,同时也得到了很多前IBM同事和领导的支持,在此一并谢过,正是你们的关心和支持,才使得我在繁忙的工作之余仍然怀着一颗敬畏之心进行写作。在本书的策划和写作期间,机械工业出版社华章分社的杨福川先生给予了极大的关心和帮助,在此感谢杨福川先生对本书的策划以及罗词亮、张锡鹏对全文的审阅校对,正是你们的辛勤付出才有了本书的顺利问世。

另外,还要感谢我的妻子杨彩凤女士在写作期间对我的照顾与理解,在多少个深夜与凌晨,正是你的理解与支持,我才能全身心投入写作中。在此也要感谢我的父母,感谢你们的默默养育和辛勤付出。

最后,感谢所有为本书的编写提供了帮助、支持与鼓励的朋友们。

山金孝

2020年2月于重庆



目录

目  录 Contents

前言

第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


产品特色