猜你喜欢
云原生技术中台:从分布式到云平台设计

云原生技术中台:从分布式到云平台设计

书籍作者:陈涛 ISBN:9787115596239
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:4664
创建日期:2023-05-06 发布日期:2023-05-06
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书清晰、完整地展现云平台技术架构相关的知识,包含3个部分:第一部分介绍服务扩容的发展历程,概述分布式架构与中台架构。第二部分分析传统分布式架构的核心技术,围绕中心化协同工作机制和分布式服务间的通信问题,介绍ZooKeeper、Netty、Dubbo等分布式技术的原理和实战案例。第三部分分析云平台技术组件,主要包括构建PaaS平台所用到的核心技术组件。这一部分首先分析Docker容器技术以及Kubernetes编排引擎的搭建和基础原理,然后介绍指标采集功能、告警功能以及日志管理框架,最后对微服务治理框架Istio在云平台的应用场景进行展望。
本书结合算法与源码展示云原生应用全景,阐述开源技术,能够帮助读者搭建私有云平台,适合高校计算机及相关专业学生、容器云初学者,以及对Docker有一定了解并希望深入研究和探索云技术的工程师阅读。

作者简介

陈涛,毕业于浙江大学(软件工程硕士)和浙江师范大学(软件工程硕士),现就职于毕马威信息技术服务(南京)有限公司,主要从事与Docker、Kubernetes相关的研究工作。拥有丰富的系统架构设计经验,曾参与多个大型分布式网站的架构设计与开发工作,指导过多个互联网系统的微服务改造工作,擅长Java多线程、分布式框架和PaaS平台设计,对云原生有深入的研究。曾就职于华为南京研究所,从事华为云研究工作,擅长运营商私有云服务治理解决方案,其负责的华为微服务引擎CSE(Cloud Service Engine)项目已在全球广泛部署。此外,还曾就职于南京焦点科技股份有限公司,从事分布式即时通信系统的设计和开发工作。
索海燕,毕业于苏州大学(通信与信息工程硕士),现就职于江苏省人民医院信息处,从事医疗信息系统的建设和管理工作,拥有丰富的系统建设和运维管理经验。重点关注云计算、大数据、人工智能、区块链等技术领域,对云计算、网络技术、网络存储有深刻认识,致力于将医疗信息化建设工作与各类新技术结合。参与了《健康数据分析》(Healthcare Data Analytics)一书的翻译工作。

编辑推荐

随着互联网产品的用户量和业务量不断增加,单个应用服务器已经不能满足互联网信息系统的性能需求,系统逐渐发展为分布式架构。同时,随着微服务技术、容器集群管理技术和工具的不断发展,“大中台”战略愈发得到重视,基于云平台架构的设计进一步提高了服务效率。
本书重点介绍分布式架构和云平台架构的核心技术,涉及ZooKeeper、Netty、Dubbo、Docker、Kubernetes、Prometheus和Istio等流行的技术框架。书中从安装入门到应用部署,展示云原生应用全景,帮助读者建立云原生技术知识体系,并指导读者进行实践,使其具备开发分布式或云平台微服务的能力。
本书具有以下特色:
.兼顾原理与实战,结合算法与源码,所有命令行均已经过校验;
.选用系统、流行的云原生核心技术,可指导企业进行技术选型;
.可帮助企业摆脱对公有云台的依赖,搭建自己的私有云平台。

目录
第 一部分 分布式架构与中台架构

第 1章 分布式架构与中台架构简介 3
1.1 计算机服务扩容的发展历程 3
1.1.1 从单一应用架构到集群架构 3
1.1.2 从集群架构到垂直应用架构 4
1.1.3 微服务与分布式架构 5
1.2 分布式架构概述 7
1.2.1 分布式架构设计理念 7
1.2.2 分布式架构核心功能 8
1.2.3 分布式架构设计难点 8
1.3 大中台架构概述 9

第二部分 传统分布式架构的核心技术

第 2章 分布式中心化集群:ZooKeeper原理与实战 15
2.1 ZooKeeper基础 15
2.1.1 ZooKeeper应用场景 15
2.1.2 ZooKeeper设计理念 16
2.1.3 ZooKeeper源码和安装 18
2.2 ZooKeeper内核原理 19
2.2.1 Znode类型 20
2.2.2 ZnodeAPI 21
2.2.3 Znode状态信息 23
2.2.4 监听点与通知 23
2.2.5 ACL权限控制 25
2.2.6 序列化 27
2.2.7 通信协议 28
2.2.8 事务 31
2.2.9 事务日志 32
2.2.10 内存数据模型 33
2.2.11 磁盘数据模型 35
2.2.12 会话模型 37
2.3 ZooKeeper集群原理 39
2.3.1 集群角色 39
2.3.2 Paxos算法 40
2.3.3 ZAB协议 40
2.3.4 群首选举 42
2.3.5 集群启动流程 45
2.4 Apache Curator客户端实战 48
2.4.1 抢购系统实战 48
2.4.2 分布式锁和分布式信号量 61
2.4.3 分布式线程同步 64
第3章 分布式通信框架:Netty和Dubbo原理与实战 66
3.1 分布式通信框架基础 66
3.1.1 Netty特性 67
3.1.2 Dubbo特性 69
3.1.3 Netty、Dubbo和ZooKeeper的关系 70
3.1.4 Netty服务端启动流程 71
3.1.5 Dubbo SPI和服务导出 75
3.2 Netty和Dubbo实战 80
3.2.1 抢购系统监控功能需求分析 80
3.2.2 抢购系统监控功能实战 81

第三部分 构建PaaS平台的核心云平台技术组件

第4章 Docker容器技术原理与实战 89
4.1 Docker基础 89
4.1.1 Docker背景与关键词 89
4.1.2 Linux Docker运行环境 92
4.1.3 macOS和Windows Docker运行环境 94
4.1.4 运行第 一个Docker容器 94
4.2 Docker核心原理 95
4.2.1 镜像分层概述 95
4.2.2 镜像存储 97
4.2.3 镜像命名和构建 98
4.2.4 容器进程 99
4.2.5 容器生命周期和重启策略 101
4.2.6 容器资源限制 102
4.3 Docker容器实战 103
4.3.1 制作抢购系统监控功能的镜像 103
4.3.2 运行抢购系统监控功能的容器 107
第5章 Kubernetes编排引擎 112
5.1 Kubernetes基础 112
5.1.1 Kubernetes特性 112
5.1.2 Kubernetes核心关键词 113
5.1.3 Kubernetes和PaaS的关系 114
5.2 Kubernetes集群部署 115
5.2.1 准备虚拟机 115
5.2.2 必要环境配置 117
5.2.3 安装Docker 118
5.2.4 安装kubeadm、kubelet和kubectl 118
5.2.5 部署首个Master 120
5.2.6 加入其他Master 121
5.2.7 加入Node 122
5.2.8 部署网络插件 122
5.3 Kubernetes集群管理 124
5.3.1 Node信息 124
5.3.2 Master信息 126
5.3.3 可视化管理界面 127
5.3.4 集群安全策略 129
5.3.5 理解Namespace 130
5.3.6 理解ConfigMap和Secret 131
5.3.7 理解Service 134
5.3.8 理解API Server 137
5.4 深入理解Pod组件原理 143
5.4.1 理解Pod核心概念 143
5.4.2 理解Pod生命周期 144
5.4.3 理解Pod资源限制 146
5.4.4 理解QoS 149
5.5 深入理解Pod调度原理 151
5.5.1 理解标签和选择器定向调度 151
5.5.2 理解Pod亲和性和互斥调度 152
5.5.3 理解Taints和Tolerations 155
5.5.4 理解Pod优先级与抢占调度 157
5.5.5 理解Deployment 158
5.5.6 理解HPA 159
5.5.7 理解StatefulSet和Job 161
5.5.8 理解调度器原理 162
5.6 深入理解驱逐机制 164
5.6.1 理解kubelet垃圾回收策略 164
5.6.2 理解驱逐信号和驱逐阈值 165
5.6.3 理解驱逐策略对Node的影响 167
5.6.4 理解驱逐策略对Pod的影响 167
5.6.5 理解节点OOM内存不足 169
5.6.6 实践驱逐机制 169
5.7 深入理解Pod滚动升级 170
5.7.1 滚动升级产生的背景 170
5.7.2 理解Pod滚动升级过程 171
5.7.3 理解Rollout回滚 173
5.8 深入理解PV存储 174
5.8.1 理解PV 174
5.8.2 理解PVC 176
5.9 Kubernetes实战 178
5.9.1 部署抢购系统运维功能的准备工作 178
5.9.2 在Kubernetes集群上运行抢购系统运维功能 184
5.9.3 滚动升级实战 190
第6章 Prometheus指标监控与告警 194
6.1 Prometheus基础 194
6.1.1 Prometheus特性 194
6.1.2 Prometheus使用方式 197
6.1.3 Prometheus部署在Docker 198
6.1.4 Prometheus部署在Kubernetes 199
6.2 Prometheus指标概念 201
6.2.1 Prometheus指标名称 201
6.2.2 Prometheus指标类型 203
6.3 Prometheus监控 204
6.3.1 监控Kubernetes集群节点 204
6.3.2 第三方厂商提供的Exporter 207
第7章 Kubernetes集群日志管理 209
7.1 Kubernetes集群日志架构 209
7.1.1 基本日志记录 209
7.1.2 节点级别日志记录 210
7.1.3 集群级别日志记录 210
7.2 Elastic Stack 211
7.2.1 Elasticsearch概述 212
7.2.2 Elastic Stack应用场景 214
7.2.3 Elastic Stack和Prometheus对比 216
7.3 Elastic Stack安装方式 218
7.3.1 使用Docker安装 218
7.3.2 使用Helm Chart安装 218
7.3.3 使用Elastic Cloud方式安装 218
7.3.4 创建Kibana实例 221
7.3.5 使用Elastic Stack检索日志 224
7.4 Elastic Beats 225
7.4.1 Beats组件 225
7.4.2 Filebeat分析 226
第8章 Istio服务治理 229
8.1 Istio概念 229
8.1.1 Istio是什么 229
8.1.2 Istio核心组件 231
8.2 环境准备:在Kubernetes上安装Istio 233
8.2.1 下载Istio 234
8.2.2 安装Istio 234
8.2.3 部署Bookinfo示例 235
8.2.4 部署Bookinfo步骤 236
产品特色