新書推薦:
《
中国古代北方民族史丛书——东胡史
》
售價:HK$
87.8
《
巨人传(插图珍藏本)
》
售價:HK$
705.6
《
地下(村上春树沙林毒气事件的长篇纪实)
》
售價:HK$
76.7
《
偿还:债务与财富的阴暗面
》
售價:HK$
80.2
《
清华大学藏战国竹简校释(壹):《命训》诸篇
》
售價:HK$
94.4
《
封建社会农民战争问题导论(光启文库)
》
售價:HK$
68.4
《
虚弱的反攻:开禧北伐
》
售價:HK$
92.0
《
中华内丹学典籍丛书:古书隐楼藏书汇校(上下)
》
售價:HK$
257.2
|
編輯推薦: |
本书以一个用户认证应用程序的实战项目为例,详细讲述应用开发从传统方式一步步云原生化的过程,其中包括容器化,分别使用Compose、Swarm、K8s部署应用及使用Helm打包等。结合项目实践讨论大规模集群环境下传统软件生产方式的缺陷和云原生方式的优势及其带来的巨大价值。
|
內容簡介: |
本书以一个示例应用的云原生化实践过程为主线,系统讲述云原生的理念和主流的云原生相关技术。 全书共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云原生趋势展望
|
內容試閱:
|
现代软件的复杂度和部署规模呈指数级膨胀,同时迭代周期越来越短,甚至在一天内会发布多个新版本。传统软件生产方式的缺点日益凸显,尤其在大规模集群的生产场景下软件开发和维护越来越困难。云原生技术在提高软件生产和部署效率及节约IT成本方面有很大优势,所以云原生迅速被广大开发者和软件企业接受,产生了许多大规模落地的案例。
无论是开发工程师还是运维工程师及技术决策者,了解云原生的技术理念并进行开发实践都会对以后的工作产生积极的帮助。
书中以一个用户认证应用程序的实战项目为例,详细讲述应用开发从传统方式一步步向云原生化过渡的过程,其中包括容器化,分别使用Compose、Swarm、Kubernetes部署应用及使用Helm打包等。结合项目实践讨论大规模集群环境下传统软件生产方式的缺陷和云原生方式的优势及其带来的巨大价值。
为贴近生产实践,书中有关示例应用的操作区分了开发环境和生产环境。另外,书中的大部分知识点都附带了通过运行检验的示例,百闻不如一见,相信直观的例子可以使晦涩的知识变得易于理解,可以最大程度地降低学习的难度,提高学习效率和乐趣。
扫描下方二维码,可获取书中示例源代码。
本书源代码
最后感谢家人和朋友的全力支持,让笔者可以全身心投入创作。
由于作者水平有限,书中难免存在疏漏,敬请读者批评指正,以便及时改正和更新。
高尚衡2022年5月
|
|