注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络操作系统云原生开发实践

云原生开发实践

云原生开发实践

定 价:¥109.00

作 者: 高尚衡
出版社: 清华大学出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787302600275 出版时间: 2022-08-01 包装: 平装-胶订
开本: 16开 页数: 字数:  

内容简介

  本书以一个示例应用的云原生化实践过程为主线,系统讲述云原生的理念和主流的云原生相关技术。 全书共11章。第1章介绍贯穿全书的示例应用,包括功能和使用的编程语言。第2章介绍传统软件生产流程在应对高频发布、高频部署及规模化等场景中凸显出的问题和不足。第3章介绍以Docker为代表的容器技术在软件开发、测试和交付方面的颠覆性优势。第4章介绍对示例应用进行容器化的详细步骤,包括镜像的定义、构建、发布和使用及通过CI/CD来自动化与镜像相关的操作。第5章介绍Docker生态中的容器编排技术,包括Docker Compose与Docker Swarm。并讲解了如何利用这两种编排技术分别对示例应用进行容器编排的详细过程。第6章介绍云计算和云原生的理念和两者的密切关系及分析云原生的优势与劣势。第7章介绍作为云原生基础设施的Kubernetes的基础知识,包括常用的资源对象和搭建Kubernetes集群的方式。通过具体的示例体现出Kubernetes强大而灵活的编排能力和优秀的设计理念。第8章介绍将示例应用部署到Kubernetes的详细步骤和常见问题的解决方案,包括提升观测性的日志解决方案和提升安全性的TLS解决方案。第9章介绍Kubernetes应用的打包工具Helm的基础知识,以及为示例应用创建完整Helm Chart的详细步骤。第10章介绍云原生技术中的服务网格的理念和服务网格众多实现中颇具代表性的Linkerd技术,以及在Kubernetes集群中使用Linkerd提升示例应用可用性、可观测性的具体步骤。 本书适合人群包括计算机科学、软件工程等领域的软件工程师和大学生,探索使用容器和Kubernetes相关技术的开发者和技术管理者及希望理解云原生技术基本原理的技术管理者和开发者。

作者简介

  高尚衡,软件工程师,具有10年软件开发经验。积极参与开源软件项目,通过撰写技术博客,分享和传播软件技术和知识。致力于推动软件产业的发展和企业数字化进程。对软件生产的全生命周期有深刻理解,对软件设计、开发、测试、部署等流程的生产效率提升方案都进行了广泛探索。在供职于互联网企业期间,为企业遇到的诸多复杂软件问题提供了优异的解决方案,获得了企业高度的评价。

图书目录

第1章用户认证项目
1.1项目介绍
1.2开发环境
1.2.1前端
1.2.2后端
第2章传统软件生产流程
2.1开发
2.2测试
2.3计算资源评估
2.4部署
2.5更新和升级
第3章容器技术的流行
3.1容器的优势
3.2Docker简介
3.3Docker安装
3.4Docker在开发领域的价值
3.5Docker在测试领域的价值
第4章容器化
4.1容器化简介
4.2保持简单和专注
4.3容器镜像
4.4镜像定义
4.4.1Dockerfile基础知识
4.4.2定义后端镜像
4.4.3定义前端镜像
4.5构建镜像
4.5.1docker build命令
4.5.2镜像缓存
4.5.3构建用于开发环境的后端镜像
4.5.4构建用于生产环境的后端镜像
4.5.5构建数据迁移镜像
4.5.6构建用于开发环境的前端镜像
4.5.7构建用于生产环境的前端镜像
4.6启动镜像
4.6.1启动MySQL镜像
4.6.2数据迁移
4.6.3启动后端镜像
4.6.4bridge网络
4.6.5自定义网络
4.6.6启动前端镜像
4.7发布镜像
4.7.1Docker Hub
4.7.2私有镜像仓库
4.8CI/CD
4.8.1后端引入CI/CD
4.8.2前端引入CI/CD
第5章容器编排
5.1容器编排简介
5.2Docker Compose
5.2.1Compose文件
5.2.2Compose环境变量
5.2.3Compose运行应用
5.2.4Compose更新应用
5.3Docker Swarm
5.3.1创建Swarm集群
5.3.2将样例服务部署到Swarm集群
5.3.3伸缩样例服务
5.3.4更新样例服务
5.3.5维护Swarm节点
5.3.6Swarm路由网格
5.3.7开发环境Swarm部署
5.3.8生产环境Swarm部署
5.3.9约束服务调度
5.3.10日志收集
第6章云原生软件生产流程
6.1云原生简介
6.2云计算的能力
6.3云原生的优势
6.4云原生的劣势
第7章云原生基础设施
7.1Kubernetes 是什么
7.2客户端工具kubectl
7.2.1kubectl简介
7.2.2使用HomeBrew安装kubectl
7.2.3使用apt安装kubectl
7.2.4使用curl安装kubectl
7.2.5设置kubectl命令自动补全
7.3本地启动Kubernetes
7.4使用kubeadm创建Kubernetes集群
7.4.1环境要求
7.4.2安装容器运行时
7.4.3安装kubeadm、kubelet、kubectl
7.4.4初始化
7.4.5设置kubeconfig
7.4.6安装网络插件
7.4.7部署样例程序
7.4.8将Node添加到集群
7.5创建托管的Kubernetes集群
7.6Kubernetes 对象
7.6.1Kubernetes对象简介
7.6.2如何描述Kubernetes对象
7.6.3如何管理Kubernetes对象
7.7Node
7.7.1Node简介
7.7.2管理Node
7.7.3Node状态
7.7.4Node控制器
7.7.5Node容量
7.8Pod
7.8.1Pod简介
7.8.2Pod使用模式
7.8.3Pod示例
7.8.4Pod模板
7.8.5Pod生命周期
7.8.6Pod中的容器状态
7.8.7Probe
7.8.8Init容器
7.9ReplicaSet
7.9.1ReplicaSet简介
7.9.2ReplicaSet示例
7.9.3获取模板以外的Pod
7.9.4缩放ReplicaSet
7.10Deployment
7.10.1Deployment简介
7.10.2Deployment示例
7.10.3更新Deployment
7.10.4回滚Deployment
7.10.5缩放Deployment
7.10.6暂停和恢复Deployment
7.11StatefulSet
7.11.1StatefulSet简介
7.11.2StatefulSet示例
7.11.3稳定的网络标识
7.11.4稳定的存储
7.12DaemonSet
7.12.1DaemonSet简介
7.12.2DaemonSet示例
7.12.3DaemonSet扩缩容
7.13Job
7.13.1Job简介
7.13.2Job示例
7.13.3Job清理
7.14ConfigMap
7.14.1ConfigMap简介
7.14.2ConfigMap示例
7.14.3Pod使用ConfigMap
7.15Secret
7.15.1Secret简介
7.15.2创建Secret
7.15.3查看Secret数据
7.16Kubernetes存储
7.16.1Volume
7.16.2PersistentVolume
7.16.3PersistentVolumeClaim
7.16.4Pod使用PersistentVolumeClaim
7.16.5StorageClass
7.16.6动态卷供应
7.16.7AWS EBS使用示例
7.17Kubernetes Service
7.17.1Service简介
7.17.2Service示例
7.17.3代理模式
7.17.4服务发现
7.17.5Service类型
7.17.6ClusterIP类型
7.17.7NodePort类型
7.17.8LoadBalancer类型
7.17.9ExternalName类型
7.17.10headless Service
7.18Kubernetes DNS
7.18.1DNS服务
7.18.2Service DNS
7.18.3PodDNS
7.19Kubernetes Ingress
7.19.1Ingress简介
7.19.2Ingress示例
7.19.3Ingress规则
7.19.4Ingress控制器
7.19.5默认后端
7.19.6资源后端
7.19.7fanout示例
7.19.8虚拟主机示例
7.19.9TLS示例
7.20Kubernetes 身份认证
7.20.1Kubernetes用户
7.20.2认证策略
7.20.3证书认证方式
7.21Kubernetes 授权
7.21.1授权模式
7.21.2RBAC
7.21.3常用命令
7.21.4Service Account
7.22Kubernetes 调度
7.22.1调度简介
7.22.2约束Node选取
7.22.3亲和性和反亲和性
7.22.4nodeName
7.22.5污点和容忍
7.22.6Pod优先级
7.22.7Pod抢占
7.22.8Pod拓扑分布
7.23Kubernetes 日志
7.23.1Kubernetes基础日志功能
7.23.2节点级日志
7.23.3集群级日志
7.24Kustomize
7.24.1Kustomize简介
7.24.2生成ConfigMap
7.24.3生成Secret
7.24.4生成器选项
7.24.5设置横切字段
7.24.6组合
7.24.7定制
7.24.8变量注入
7.24.9基准和覆盖
7.24.10应用、查询和删除对象
第8章Kubernetes部署应用
8.1环境
8.1.1开发环境
8.1.2生产环境
8.2MySQL服务
8.2.1开发环境
8.2.2生产环境
8.3数据迁移
8.4后端服务
8.5前端服务
8.6Ingress
8.7DNS
8.7.1开发环境
8.7.2生产环境
8.8TLS
8.8.1证书管理软件
8.8.2ACME
8.8.3Ingress TLS
8.9日志
8.9.1方案简介
8.9.2ElasticSearch
8.9.3Fluentd
8.9.4Kibana
8.10Kustomize
第9章Helm
9.1安装Helm
9.2Helm Chart
9.2.1Chart简介
9.2.2安装Chart
9.2.3定制Chart
9.2.4Release
9.2.5升级和回滚
9.2.6卸载Release
9.2.7搜索Chart
9.3Chart模板
9.3.1模板示例
9.3.2模板调用
9.3.3内置对象
9.3.4值文件
9.3.5模板函数和管道
9.3.6流程控制
9.3.7变量
9.3.8命名模板
9.3.9访问文件
9.3.10NOTES.txt
9.3.11helmignore文件
9.3.12Debug
9.3.13最佳实践
9.4Chart依赖
9.4.1简介
9.4.2值覆盖
9.4.3全局值
9.5Chart Hook
9.5.1简介
9.5.2Hook示例
9.5.3Hook权重
9.5.4Hook删除策略
9.6Chart测试
9.6.1测试简介
9.6.2测试示例
9.6.3运行示例测试
9.7库Chart
9.7.1简介
9.7.2示例
9.7.3使用库Chart
9.8创建自己的Chart
9.8.1后端服务
9.8.2MySQL服务
9.8.3前端服务
9.8.4数据迁移任务
9.8.5Ingress
9.8.6安装Chart
第10章服务网格
10.1服务网格简介
10.2Linkerd
10.2.1Linkerd简介
10.2.2安装Linkerd
10.2.3网格化
10.2.4代理自动注入
10.2.5暴露仪表盘
第11章云原生现状和展望
11.1云原生在企业的落地情况
11.2云厂商对云原生的支持
11.3云原生趋势展望
 

本目录推荐