首页>参考读物>计算机科学与技术>软件与程序设计

云原生架构与GitOps实战
作者 : 王炜 张思施 著
出版日期 : 2023-10-23
ISBN : 978-7-111-73742-1
定价 : 109.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 :
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

全书分为5篇:
1.第1篇为入门部分,通过一个快速地上手实验让读者体验 GitOps 的强大之处,激起读者的学习欲望;
2.第二篇为核心基础部分,将介绍组成 GitOps 的核心基础例如容器化、K8s、持续构建和应用定义;
3.第三篇为进阶部分,将带领读者从零构建一个生产可用的 GitOps 工作流,并介绍高级发布策略、多环境管理、可观测性、分布式追踪以及云原生开发的相关内容;
4.第四篇为实施指南,将介绍如何在不同规模的公司下实施新技术,在实施过程如何排除非技术因素;
5.第五篇为行业认识部分,将介绍如何通过 CNCF 获取一手的云原生信息以及 GitOps 的历史发展。

图书特色

腾讯云前CODING高级架构师、CNCF大使、微软MVP撰写
Argo联合创始人Hong Wang、CNCF中国区总监Keith Chan等国际知名专家联袂推荐
立足实战,一次入门云原生12大核心技术栈
透彻掌握云原生应用交付,建立云原生架构与GitOps全周期实践蓝图

上架指导

计算机/云计算

封底文字

Argo CD, as the most popular GitOps solution, is the must-have to manage your production Kubernetes workloads. It brings governance, visibility, also positive culture change in your Kubernetes journey.
Hong Wang
Argo项目创始人、Akuity 联合创始人/CEO
为什么应该使用GitOps?因为它的优点包括:更快、更频繁的部署能力及轻松快速的错误恢复能力,并且能协助你更轻松地完成凭证管理与团队中的知识共享等。GitOps本质上是一种实现云原生应用程序持续部署的方法。它通过使用开发人员已经熟悉的工具(包括Git和持续部署工具),为开发人员提供良好的基础设施操作体验。如果你对如何使用GitOps感兴趣,阅读这本书将是一个很好的开始。
Keith Chan
Linux基金会亚太地区战略总监
CNCF中国区总监
云原生技术彻底改变了构建和看待服务端软件的方式,很高兴看到《云原生架构与GitOps 实战》的出版,无论你是初学者还是有经验的开发者,都能够从这本书里学到一些东西。
黄东旭
PingCap联合创始人/CTO
GitOps是云原生时代更敏捷和高效的持续发布工程的实践方法。本书系统、全面地介绍了GitOps的核心理论和工作流落地实践,值得每一位云原生架构师与DevOps工程师深入了解。
周鹏飞
微软产品经理、CNCF多个项目维护者
这本书从零开始,逐步带你走进云原生技术体系。它还是一本实战指南,涵盖几乎所有你学习和落地云原生架构及GitOps所需要的关键信息,推荐阅读。
周明辉
北京大学计算机学院教授/副院长

图书目录

1.从零上手 GitOps
1.1.构建容器镜像
1.1.1.初识容器
1.1.2.构建镜像
1.1.3.构建方法总结
1.2.将镜像部署到 Kubernetes
1.2.1.本地安装 Kubernetes
1.2.2.部署容器镜像
1.2.3.查看和访问 Pod
1.2.4.进程、容器镜像和工作负载的关系
1.3.自动扩容和自愈
1.3.1.传统扩容和自愈方案
1.3.2.传统方案的缺点
1.3.3.Kubernetes 自愈
1.3.4.Kubernetes 自动扩容
1.4.构建 GitOps 工作流
1.4.1.Kubernetes 应用的一般发布流程
1.4.2.安装 FluxCD
1.4.3.构建 GitOps 工作流
1.4.4.自动发布
1.4.5.快速回滚
1.5.总结
2.Docker 极简实战
2.1.不同语言构建容器镜像的方法
2.1.1.Java
2.1.2.Golang
2.1.3.Node.js
2.1.4.Vue
2.1.5.构建多平台镜像
2.2.压缩镜像体积
2.2.1.以 Golang 为例
2.2.2.替换基础镜像
2.2.3.重新思考 Dockerfile
2.2.4.多阶段构建
2.2.5.进一步压缩
2.2.6.极限压缩
2.2.7.复用构建缓存
2.3.基础镜像的选择
2.3.1.通用镜像
2.3.2.专用镜像
2.4.总结
3.Kubernetes 极简实战
3.1.示例应用介绍
3.1.1.应用架构
3.1.2.部署架构
3.1.3.部署示例应用
3.1.4.Kubernetes 对象解析
3.2.命名空间
3.2.1.理解命名空间
3.2.2.使用场景
3.2.3.跨命名空间通信
3.2.4.规划命名空间
3.3.工作负载类型和使用场景
3.3.1.ReplicaSet
3.3.2.Deployment
3.3.3.StatefulSet
3.3.4.DaemonSet
3.3.5.Job/CronJob
3.4.服务发现和 Service
3.4.1.Pod 通信
3.4.2.Service 示例
3.4.3.Endpoints
3.4.4.Service IP
3.4.5.Service 域名
3.4.6.Service 的类型
3.5.服务配置管理
3.5.1.传统配置管理方式
3.5.2.Env
3.5.3.ConfigMap
3.5.4.Secret
3.6.服务暴露
3.6.1.传统的服务暴露方式
3.6.2.NodePort
3.6.3.Loadbalancer
3.6.4.Ingress
3.6.5.部署 Ingress-Nginx
3.7.资源配额和服务质量
3.7.1.概述
3.7.2.初识 CPU 和内存
3.7.3.查看 Pod 资源消耗
3.7.4.资源请求和资源限制
3.7.5.服务质量
3.8.水平扩容
3.8.1.基于 CPU 的扩容策略
3.8.2.基于内存的扩容策略
3.9.服务探针
3.9.1.Pod 和容器的状态
3.9.2.探针检查方式
3.9.3.就绪探针
3.9.4.存活探针
3.9.5.启动阶段探针
3.10.总结
4.持续构建
4.1.GitHub Action
4.1.1.基本概念
4.1.2.创建持续构建流水线
4.2.GitLab CI
4.2.1.基本概念
4.2.2.创建持续构建流水线
4.3.Tekton 自托管构建
4.3.1.安装组件
4.3.2.基本概念
4.3.3.创建 Tekton Pipeline
4.3.4.创建 GitHub Webhook
4.3.5.触发 Pipeline
4.4.总结
5.镜像仓库
5.1.搭建 Harbor 企业级镜像仓库
5.1.1.安装组件
5.1.2.配置 DNS 解析
5.1.3.访问 Dashboard
5.1.4.推送镜像
5.2.在 Tekton Pipeline 中使用 Harbor
5.2.1.修改仓库地址
5.2.2.修改凭据
5.2.3.触发流水线
5.3.Harbor 生产建议
5.3.1.PVC 在线扩容
5.3.2.使用 S3 存储镜像
5.3.3.使用托管数据库和 Redis
5.3.4.开启镜像扫描和阻止漏洞镜像
5.4.总结
6.应用定义
6.1.Kustomize
6.1.1.示例应用改造
6.1.2.创建基准目录和环境目录
6.1.3.差异分析
6.1.4.创建基准 Manifest
6.1.5.创建环境 Manifest
6.1.6.部署
6.2.Helm
6.2.1.基本概念
6.2.2.示例应用改造
6.2.3.部署
6.2.4.发布 Helm Chart
6.3.Helm 应用管理
6.3.1.调试
6.3.2.查看
6.3.3.更新
6.3.4.历史版本
6.3.5.回滚
6.3.6.卸载
6.4.总结
7.构建 GitOps 工作流
7.1.使用 Argo CD 构建工作流
7.1.1.工作流总览
7.1.2.安装 Argo CD
7.1.3.创建应用
7.1.4.连接工作流
7.2.生产建议
7.2.1.修改默认密码
7.2.2.配置 Ingress 和 TLS
7.2.3.使用 Webhook 触发
7.2.4.将源码仓库和应用定义仓库分离
7.2.5.加密 Git 仓库的 Secret 密钥
7.3.监听镜像版本变更触发工作流
7.3.1.工作流总览
7.3.2.安装 Argo CD Image Updater
7.3.3.创建镜像拉取凭据
7.3.4.创建 Helm Chart 仓库
7.3.5.创建应用
7.3.6.触发工作流
7.4.总结
8.高级发布策略
8.1.蓝绿发布
8.1.1.概述
8.1.2.手动蓝绿发布
8.1.3.Argo Rollout 自动蓝绿发布
8.1.4.原理解析
8.2.金丝雀发布
8.2.1.概述
8.2.2.手动金丝雀发布
8.2.3.Argo Rollout 自动金丝雀发布
8.3.自动金丝雀发布
8.3.1.概述
8.3.2.Rollout
8.3.3.AnalysisTemplate
8.3.4.安装组件
8.3.5.运行自动渐进式交付流水线
8.4.总结
9.多环境管理
9.1.常见环境
9.1.1.开发环境
9.1.2.测试环境
9.1.3.预发布环境
9.1.4.生产环境
9.2.自动多环境管理
9.2.1.示例应用
9.2.2.ApplicationSet
9.2.3.访问多环境
9.2.4.自动创建新环境
9.3.总结
10.GitOps 安全
10.1.重点关注对象
10.1.1.业务依赖
10.1.2.CI 流水线
10.1.3.镜像仓库
10.1.4.Git 仓库
10.1.5.Kubernetes 集群
10.1.6.云厂商服务
10.2.安全存储密钥
10.2.1.Sealed-Secrets
10.2.2.External-Secrets
10.2.3.Vault
10.3.Sealed-Secrets 实战
10.3.1.示例应用介绍
10.3.2.创建应用
10.3.3.加密 Secret 对象
10.3.4.验证 Secret 对象
10.3.5.原理解析
10.3.6.生产建议
10.4.总结
11.可观测性
11.1.健康状态排查
11.1.1.应用健康状态
11.1.2.Pod 健康状态
11.1.3.Service 连接状态
11.1.4.Ingress 连接状态
11.2.日志
11.2.1.安装 Loki
11.2.2.部署示例应用
11.2.3.查询日志
11.2.4.常用 LogQL 例子
11.2.5.原理解析
11.2.6.生产建议
11.3.监控
11.3.1.Prometheus
11.3.2.配置 Grafana 和数据源
11.3.3.部署示例应用
11.3.4.查询指标
11.3.5.Dashboard 市场
11.4.告警
11.4.1.如何选择告警指标
11.4.2.配置告警策略
11.4.3.配置邮箱通知
11.4.4.触发告警
11.4.5.CPU 使用率告警
11.4.6.飞书和其他告警通知
11.5.总结
12.服务网格和分布式追踪
12.1.Istio
12.1.1.简介
12.1.2.示例应用
12.2.分布式追踪实战
12.2.1.Jaeger
12.2.2.Zipkin
12.2.3.Lightstep
12.3.总结
13.云原生开发
13.1.开发循环反馈
13.1.1.架构演进
13.1.2.循环反馈变慢的原因
13.1.3.提高开发循环反馈效率
13.2.远程开发
13.2.1.安装 Nocalhost
13.2.2.添加 K8s 集群
13.2.3.部署示例应用
13.2.4.秒级开发循环反馈
13.3.热加载和一键调试
13.3.1.容器热加载
13.3.2.一键调试
13.4.总结
14.进阶云原生领域
14.1.CNCF 云原生基金会
14.1.1.云计算历史
14.1.2.组织形式
14.1.3.项目托管
14.1.4.职业认证
14.2.值得关注的 CNCF Landscape 方向
14.2.1.应用定义和镜像构建
14.2.2.持续集成和持续交付
14.2.3.调度和编排
14.2.4.API 网关
14.2.5.服务网格
14.2.6.云原生存储
14.2.7.容器运行时
14.2.8.容器仓库
14.2.9.监控
14.2.10.日志
14.2.11.分布式追踪
14.2.12.混沌工程
14.3.GitOps 原则和优势
14.3.1.GitOps 的四个原则
14.3.2.优势
14.3.3.成为交付标准的原因
14.4.Argo CD 历史和特性
14.4.1.历史
14.4.2.特性
14.4.3.Argo CD 对比 FluxCD
14.4.4.Argo 生态
14.5.命令式和声明式
14.5.1.什么是命令式
14.5.2.什么是声明式
14.5.3.Kubernetes 实现声明式的核心原理
14.5.4.其他声明式项目
14.6.总结
15.如何落地 GitOps
15.1.如何说服团队
15.2.迁移原则
15.2.1.提供组织保障
15.2.2.工作流最小变更原则
15.2.3.利用已有基础设施
15.3.总结

教学资源推荐
作者: 【美】梁勇(Y.Daniel Liang) 著
作者: [英]理查德·伯德(Richard Bird) 著
参考读物推荐