描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111744610
汇集Docker、K8s、GitLab Cl/CD技术
CI/CD流水线设计与应用实战
提供源代码、PPT及扫码看视频
全书共分为3篇,第1篇为第1~3章,主要介绍云计算、云原生、微服务、敏捷开发、持续集成、DevOps、docker容器技术以及Kubernetes(简称K8s)核心技术等。第2篇为第4~9章,主要介绍了GitLab安装部署与基础使用、GitLab CI/CD中Runner的类型以及部署、GitLab CI/CD流水线模型、GitLab CI/CD变量、GitLab CI/CD流水线的触发方式以及GitLab CI/CD流水线中的缓存和附件等。第3篇为第10~13章,主要介绍了前后端项目的创建、GitLab CI/CD中基于SonarQube的静态代码检查,以及GitLab CI/CD 中的编译、构建、发布、部署、测试和上线等流程。
全书以搭建企业级DevOps应用平台为目标,从云原生技术基础容器以及Kubernetes技术入手;然后介绍了GitLab CI/CD的常见功能应用;最后从零开始,以经典的前后端项目为例,以解决企业内研发流程的困境为思路,一步一步地将整个项目的DevOps流水线创建起来。此外,还结合Kubernetes技术进行可动态伸缩的弹性部署上线。
本书适合对docker技术、K8s技术、GitLab技术及DevOps技术感兴趣的读者和相关工作人员。随书配备了案例源代码、授课用PPT及教学视频(扫码观看),可以帮助读者更好地学习这些知识。
通过本书的学习,读者既可以掌握以docker容器技术和Kubernetes技术为代表的云原生技术,又可以掌握GitLab CI/CD中丰富的流水线功能,最重要的是可以更容易地搭建起企业级应用的DevOps平台。
第1章 DevOps技术背景
1.1云计算简介
1.1.1什么是虚拟化技术
1.1.2什么是云计算
1.1.3云计算的类型与应用
1.2云原生简介
1.3微服务简介
1.4敏捷开发简介
1.5CICD简介
1.6DevOps简介
1.7GitLab CICD简介
第2章 容器技术基础
2.1容器概述
2.1.1容器技术简介
2.1.2docker技术简介
2.2虚拟机及docker环境安装
2.2.1VMware虚拟机的安装
2.2.2VMware安装CentOS 7操作系统的虚拟机
2.2.3docker环境安装
2.3docker镜像常用操作命令
2.4docker容器的基础应用
2.4.1docker容器的常用操作命令详解
2.4.2docker容器实战:基于docker部署MySQL数据库
2.5自定义docker镜像
2.5.1Dockerfile常用的语法
2.5.2镜像编译实战:将flask应用编译为docker镜像并部署
2.5.3发布镜像到dockerhub
2.6docker-compose的应用
2.6.1docker-compose的安装
2.6.2docker-compose实战:编译部署flask应用与redis数据库
2.7搭建私有dockerhub服务
2.8DockerSwarm集群
2.8.1DockerSwarm集群部署
2.8.2基于DockerSwarm实现服务弹性扩缩容
第3章 Kubernetes核心技术
3.1初识Kubernetes
3.1.1Kubernetes的产生背景
3.1.2Kubernetes的组件
3.1.3Kubernetes的常见插件
3.2Kubernetes集群环境搭建
3.3Kubernetes快速体验
3.4Kubernetes的命名空间
3.4.1对命名空间进行操作
3.4.2利用yaml配置文件方式处理命名空间
3.5Pod基础操作
3.5.1通过命令行方式操作Pod
3.5.2通过yaml配置文件的方式操作Pod
3.5.3Pod的yaml配置文件的编写方法
3.6Pod中常用配置
3.6.1Pod中的容器名称和镜像配置
3.6.2Pod中容器镜像拉取策略配置
3.6.3Pod中容器的环境变量配置
3.6.4Pod中容器启动命令配置
3.6.5Pod中容器的端口配置
3.6.6Pod中容器的配额配置
3.6.7Pod中的容器探针配置
3.6.8Pod中的初始化容器
3.6.9Pod中的钩子函数
3.6.10Pod的定向调度方式
3.6.11Pod的亲和性调度方式
3.6.12污点与容忍的调度方式
3.7Pod控制器
3.7.1Pod控制器简介
3.7.2ReplicaSet控制器
3.7.3Deployment控制器
3.7.4Deployment控制器实现滚动发布
3.7.5Deployment控制器实现版本回退
3.7.6Deployment控制器实现金丝雀发布
3.7.7HPA控制器实现全自动动态扩缩容
3.7.8DaemonSet控制器
3.7.9Job和CronJob控制器
3.7.10StatefulSet控制器
3.8Kubernetes中Service服务组件
3.8.1ClusterIP类型的Service
3.8.2Headless类型的Service
3.8.3NodePort类型的Service
3.8.4ExternalName类型的Service
3.9Kubernetes中的存储管理
3.9.1HostPath类型的存储
3.9.2NFS类型的存储
3.9.3PV和PVC
3.9.4ConfigMap配置存储
3.9.5Secret安全存储第2篇GitLab CICD功能应用
第4章 GitLab基础
4.1GitLab CICD简介
4.2GitLab环境部署
4.2.1基于Linux虚拟机部署GitLab
4.2.2基于docker部署GitLab
4.2.3基于Kubernetes部署GitLab
4.3GitLab基础应用
4.3.1GitLab创建组及项目
4.3.2GitLab代码仓分支管理
4.3.3GitLab需求任务管理
4.4GitLab代码管理
4.4.1配置SSH公钥
4.4.2更新与提交代码
4.5Git常用命令
4.5.1安装Git客户端
4.5.2Git常用的命令
第5章 GitLab CICD配置Runners
5.1GitLab-Runner简介
5.2注册GitLab-Runner准备工作
5.3配置shell类型的GitLab-Runner
5.4配置docker类型的GitLab-Runner
第6章 GitLab CICD流水线模型
6.1GitLab CICD流水线快速体验
6.2基本类型流水线
6.3有向图(DAG)类型流水线
6.4父子类型流水线
6.5多项目类型流水线
第7章 GitLab CICD变量
7.1预定义变量
7.2yaml中自定义变量
7.3UI中自定义变量目录
第8章GitLab CICD流水线的触发方式
8.1通过指定分支名触发
8.2通过MergeRequest触发
8.3通过打tag触发
8.4手动按钮触发
8.5定时任务触发
8.6通过trigger触发
8.7通过检测指定目录文件修改触发
8.8通过正则匹配方式触发
第9章GitLab CICD中的缓存与附件
9.1相同分支不同Job之间实现数据共享
9.2不同分支相同Job之间实现数据共享
9.3不同分支不同Job之间实现数据共享
9.4将文件文件夹保存为附件
9.5基于artifacts在不同的Job和runner之间实现数据共享
第3篇企业级DevOps实战
第10章环境准备
10.1基于SpringBoot创建后端项目
10.2基于Vue创建前端项目
10.3基于pytest创建自动化测试
10.4DevOps流水线设计
第11章GitLab CICD静态代码检查
11.1后端Java项目的单元测试
11.2部署SonarQube平台
11.3配置SonarQube集成GitLab
11.4配置SonarQube使用GitLab账号授权登录
11.5配置后端Java项目静态代码检查
第12章GitLab CICD 编译发布
12.1后端Java项目编译Jar包
12.2后端Java项目构建docker镜像
12.3前端Web项目构建docker镜像
第13章GitLab CICD 部署应用
13.1后端Java项目部署
13.2前端Web项目部署
13.3部署自动化测试
13.4DevOps流水线应用流程
在DevOps体系中,Jenkins曾经充当了重要角色。但是随着业务的不断扩张和规模的不断扩大,以Jenkins为基础的DevOps流水线弊端日趋明显。因此,基于GitLab CI/CD技术和云原生技术相结合的DevOps自动化体系越来越受欢迎,导致越来越多的企业更喜欢使用GitLab CI/CD。
市面上关于GitLab CI/CD方面的书籍资料相对较少,有些也是仅仅停留在文档介绍层面,很少有书籍基于实战角度的介绍。因此,本书致力于从企业级实战应用的角度,介绍基于GitLab CI/CD和云原生技术相结合的DevOps体系建设。
本书共分为3篇。第1篇为DevOps技术基础,包含第1~3章:第1章介绍了云计算、云原生、微服务、敏捷开发、持续集成、DevOps等相关的技术;第2章详细介绍了docker容器技术;第3章详细介绍了Kubernetes技术。第2篇为GitLab CI/CD功能应用,包含第4~9章:第4章介绍了如何安装部署GitLab以及GitLab的基本应用;第5章介绍了GitLab CI/CD中的Runner类型及其部署方式;第6章介绍了GitLab CI/CD中流水线模型的类型选择与应用;第7章介绍了GitLab CI/CD中的变量类型与使用技巧;第8章介绍了GitLab CI/CD流水线的各种触发方式;第9章介绍了GitLab CI/CD中的缓存技术以及附件等。第3篇为企业级DevOps实战,包含第10~13章:第10章为环境准备,介绍了如何创建后端SpringBoot项目、前端Vue项目以及基于pytest框架的自动化测试体系;第11章介绍了静态代码检查步骤,包含如何搭建SonarQube平台、配置静态检查流水线和SpringBoot项目的单元测试流水线;第12章介绍了SpringBoot项目编译Jar包以及构建docker镜像的流水线,同时搭建私有化dockerhub,并构建前端项目的docker镜像;第13章结合Kubernetes环境,对前后端项目进行弹性扩缩容方式的部署,并从实际应用的角度设置了CI、测试、生产三套环境的部署以及自动化测试等。
本书从基础入手,层层递进。首先讲解了DevOps体系的基础,即云原生技术,以docker容器技术和Kubernetes技术为代表。然后从实际应用的角度介绍GitLab CI/CD功能的使用,比如第6章介绍流水线模型时,详细介绍了如何根据业务场景选择适合自己的流水线模型,而非简单地介绍GitLab CI/CD中的某几个关键字的使用方法。最后通过比较典型的前后端项目组合的例子,从企业实际需求出发,一步一步建立DevOps体系。本书特别强调灵活性,要因时因势地做出最符合自身的选择而非教条思维。坚持DevOps流水线是为了服务产品研发而非阻碍产品研发,这也是DevOps工作的出发点和落脚点。
本书涉及docker容器技术、Kubernetes技术、GitLab CI/CD技术以及综合实战。对docker技术感兴趣的读者可以重点阅读第2章,对Kubernetes技术感兴趣的读者可以重点阅读第3章,对GitLab CI/CD技术感兴趣的读者可以重点关注第4~9章。当然,对DevOps感兴趣的读者,既可以从头开始阅读,也可以根据自己的技术基础,选择性地阅读。此外,本书还可以作为众多DevOps工作者和爱好者手边查阅的工具书。总体来说,对于从事测试开发(尤其是从事研发质量平台建设)、测试(向测试开发转型)、运维(向自动化运维转型)及开发等岗位的读者,均可从本书获得提升自身价值的知识。
由于编者水平有限,书中难免有不足之处,恳请读者批评指正。
评论
还没有评论。