×
暂无评论
图文详情
  • ISBN:9787302600275
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:448
  • 出版时间:2022-08-01
  • 条形码:9787302600275 ; 978-7-302-60027-5

本书特色

本书以一个用户认证应用程序的实战项目为例,详细讲述应用开发从传统方式一步步云原生化的过程,其中包括容器化,分别使用Compose、Swarm、K8s部署应用及使用Helm打包等。结合项目实践讨论大规模集群环境下传统软件生产方式的缺陷和云原生方式的优势及其带来的巨大价值。 计算机工程师手把手教你从零基础学习云原生技术!系统讲解软件生产从传统方式到高效容器编排的迁移方案★*近几年,大数据和云计算技术成为IT行业炙手可热的技术方向,基于大数据和云计算的相关解决方案成为新的热点。Docker和Kubernetes作为云原生的基础技术成为目前*为流行的解决方案。本书详细地介绍了Docker和Kubernetes的各种应用开发技巧和知识。本书对于有志于在云计算方面深入研究的技术人员来讲是如虎添翼。在阅读这本书后,我就被其条理清晰和技术深度所折服。《云原生开发实践》能为云计算技术人员带来技术理解上的极大提升,同时也能让没有接触过云计算的技术人员茅塞顿开。 ——田尊崇 汉王科技软件工程师★如何更好地解决软件的交付速度和质量,让程序员告别996,开发者普遍将Docker+Kubernetes应用于敏捷开发、DevOps实践、混合云和微服务架构。目前主流公司(如腾讯、阿里、百度、滴滴、美团……)也都将应用托管到容器上,同时主流厂商也都提供了容器服务,并为之打造了丰富、强大的生态。本书不仅涵盖了Docker+Kubernetes特性,还涵盖了绝大部分日常操作场景,理论与实践相结合,相信本书可以让人在不同的水平阶段反复摄取知识,是一本不可多得的、优秀的参考图书和学习指南。 ——石文远 滴滴软件工程师★从过去以物理机和虚拟机为主体的开发运维环境向以容器为核心的基础设施的转变过程,涉及对网络、存储、调度、操作系统、分布式原理等各个方面的容器化理解和改造,很多初学者和从业者在面对容器等云原生技术中的种种难题时,由于没有实际项目案例而导致上手困难。《云原生开发实践》即为解决这些难题而作,通过深入剖析云原生的本质、核心原理和设计思想,帮读者打通学习云原生技术的“任督二脉”,让读者通过真实案例实践真正掌握云原生技术体系的精髓,拥抱云原生变革。 ——高胜寒 默沙东 Clinical Data Manager★云原生是IT转型的强力推手,作为云原生基础设施的Kubernetes为容器化的应用提供了资源调度、部署运行、服务发现、扩容及缩容等一整套功能。《云原生开发实践》从一个开发者的角度去理解、分析和解决问题,囊括了Kubernetes入门、核心原理、实践指南、开发指导、高级案例、运维指南及源码分析等方面的内容,图文并茂、内容丰富、由浅入深、讲解全面,并围绕着生产环境中可能出现的问题,给出了大量的典型案例,例如安全问题、网络方案的选择、高可用性方案等,有很强的可借鉴性。无论是对于软件工程师、测试工程师、运维工程师、软件架构师、技术经理,还是对于资深IT人士来讲,本书都极具参考价值。 ——王耀琦 腾讯软件工程师

内容简介

本书以一个示例应用的云原生化实践过程为主线,系统讲述云原生的理念和主流的云原生相关技术。 全书共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提升示例应用的可用性、可观测性的具体步骤。第11章介绍云原生现状和展望。
本书适合计算机科学、软件工程等领域的软件工程师和大学生,探索使用容器和Kubernetes相关技术的开发者和技术管理者及希望理解云原生技术基本原理的技术管理者和开发者阅读。

目录




目录

第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云原生趋势展望


展开全部

作者简介

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

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航