展开全部

主编推荐语

揭秘Netflix、Google、Airbnb等名企的持续部署方案,内含自动化金丝雀分析、安全部署实践等高阶实践。

内容简介

本书聚焦于云原生和多云环境的持续部署方案,共分13章,内容涉及声明式持续部署概述、Spinnaker基础与实战、金丝雀发布与灰度发布、部署安全、混沌工程及生产化建议等,结构清晰,循序渐进,深入浅出。

在持续部署最佳实践方面,本书重点介绍了如何实施灰度发布、自动金丝雀分析和混沌工程,这些高级部署功能是Netflix 公司实现快速而稳定迭代的核心技术。关于如何落地Spinnaker,本书站在人和组织架构的视角,为迁移团队提供了指导性的意见,解决了新技术落地难的问题。

目录

  • 版权信息
  • 内容简介
  • 推荐语
  • 推荐序一
  • 推荐序二
  • 自序
  • 前言
  • 01 声明式持续部署概述
  • 1.1 持续交付与持续部署
  • 1.1.1 为什么要持续交付
  • 1.1.2 持续交付的好处
  • 1.1.3 保持随时可交付
  • 1.1.4 解决问题:提高发布频率
  • 1.1.5 自动化持续部署
  • 1.2 命令式与声明式
  • 1.2.1 简单易用的命令式
  • 1.2.2 抽象和归纳的声明式
  • 1.3 常见的声明式系统
  • 1.3.1 Kubernetes
  • 1.3.2 Terraform
  • 1.3.3 Ansible
  • 1.4 声明式与命令式结合:声明式脚本流水线
  • 1.4.1 核心思想
  • 1.4.2 代码即流水线
  • 1.4.3 步骤执行
  • 1.5 声明式脚本流水线的意义
  • 1.5.1 简化行为描述
  • 1.5.2 降低学习曲线
  • 1.5.3 落地持续部署
  • 1.5.4 实现自动化
  • 1.6 本章小结
  • 02 管理云基础设施
  • 2.1 迁移至云原生与混合云的挑战
  • 2.1.1 凭据管理
  • 2.1.2 多云架构
  • 2.1.3 跨地域部署
  • 2.1.4 自动伸缩
  • 2.1.5 不可变的基础设施和部署制品
  • 2.1.6 服务发现
  • 2.2 组织云基础设施
  • 2.2.1 以应用为中心
  • 2.2.2 抽象对云的操作
  • 2.2.3 云模型
  • 2.2.4 多云配置
  • 2.3 流量组织形式
  • 2.3.1 启用/不启用
  • 2.3.2 启用/启用
  • 2.4 持续部署工具对比
  • 2.4.1 Tekton
  • 2.4.2 Argo CD
  • 2.5 本章小结
  • 03 Spinnaker简介
  • 3.1 概念
  • 3.2 应用管理
  • 3.2.1 应用
  • 3.2.2 服务器组
  • 3.2.3 集群
  • 3.2.4 负载均衡器
  • 3.2.5 防火墙
  • 3.3 应用程序部署
  • 3.3.1 流水线
  • 3.3.2 阶段
  • 3.3.3 任务
  • 3.3.4 部署策略
  • 3.4 云提供商
  • 3.5 Spinnaker架构
  • 3.5.1 Deck
  • 3.5.2 Gate
  • 3.5.3 Clouddriver
  • 3.5.4 Orca
  • 3.5.5 Echo
  • 3.5.6 Front50
  • 3.5.7 Igor
  • 3.5.8 Fiat
  • 3.5.9 Rosco
  • 3.5.10 Kayenta
  • 3.6 本章小结
  • 04 安装Spinnaker
  • 4.1 环境要求
  • 4.1.1 Kubernetes
  • 4.1.2 Kubectl
  • 4.1.3 Jenkins
  • 4.1.4 Docker Registery
  • 4.2 安装部署
  • 4.2.1 Halyard命令行工具
  • 4.2.2 选择云提供商
  • 4.2.3 选择运行环境
  • 4.2.4 选择存储方式
  • 4.2.5 部署
  • 4.2.6 升级
  • 4.2.7 备份配置
  • 4.2.8 常见问题
  • 4.3 本章小结
  • 05 Spinnaker基本工作流程:流水线
  • 5.1 管理流水线
  • 5.1.1 创建流水线
  • 5.1.2 配置流水线
  • 5.1.3 添加自动触发器
  • 5.1.4 添加阶段
  • 5.1.5 手动运行流水线
  • 5.1.6 禁用流水线
  • 5.1.7 删除流水线
  • 5.1.8 锁定流水线
  • 5.1.9 重命名流水线
  • 5.1.10 通过JSON编辑流水线
  • 5.1.11 流水线历史版本
  • 5.2 部署制品
  • 5.2.1 在流水线中使用制品
  • 5.2.2 自定义触发器制品
  • 5.2.3 Kubernetes Manifest制品
  • 5.2.4 制品类型
  • 5.3 启动参数
  • 5.4 阶段
  • 5.4.1 基础设施阶段
  • 5.4.2 集成外部系统阶段
  • 5.4.3 测试阶段
  • 5.4.4 流程控制阶段
  • 5.4.5 自定义阶段
  • 5.5 触发器
  • 5.5.1 时间型触发器
  • 5.5.2 事件型触发器
  • 5.6 通知
  • 5.7 流水线表达式
  • 5.7.1 编写表达式
  • 5.7.2 测试表达式
  • 5.8 版本控制和审计
  • 5.9 动态流水线示例
  • 5.10 本章小结
  • 06 深入核心概念
  • 6.1 虚拟机阶段
  • 6.1.1 Bake
  • 6.1.2 Tag Image
  • 6.1.3 Find Image From Cluster
  • 6.1.4 Find Image From Tags
  • 6.1.5 Deploy
  • 6.1.6 Disable Cluster
  • 6.1.7 Disable Server Group
  • 6.1.8 Enable Server Group
  • 6.1.9 Resize Server Group
  • 6.1.10 Clone Server Group
  • 6.1.11 Rollback Cluster
  • 6.1.12 Scale Down Cluster
  • 6.2 Kubernetes阶段
  • 6.2.1 Bake (Manifest)
  • 6.2.2 Delete (Manifest)
  • 6.2.3 Deploy (Manifest)
  • 6.2.4 Find Artifacts From Resource (Manifest)
  • 6.2.5 Patch (Manifest)
  • 6.2.6 Scale (Manifest)
  • 6.2.7 Undo Rollout (Manifest)
  • 6.3 集成外部系统阶段
  • 6.3.1 Jenkins
  • 6.3.2 运行Script脚本
  • 6.3.3 Travis阶段
  • 6.3.4 Concourse阶段
  • 6.3.5 Wercker阶段
  • 6.3.6 Webhook阶段
  • 6.3.7 自定义Webhook阶段
  • 6.4 流程控制阶段
  • 6.4.1 Wait
  • 6.4.2 Manual Judgment
  • 6.4.3 Check Preconditions
  • 6.4.4 Pipeline
  • 6.5 其他阶段
  • 6.6 部署制品类型
  • 6.6.1 Docker镜像
  • 6.6.2 Base64
  • 6.6.3 AWS S3
  • 6.6.4 Git Repo
  • 6.6.5 GitHub文件
  • 6.6.6 GitLab文件
  • 6.6.7 Helm
  • 6.6.8 HTTP文件
  • 6.6.9 Kubernetes对象
  • 6.6.10 Maven
  • 6.7 配置触发器
  • 6.7.1 Git
  • 6.7.2 Docker Registry
  • 6.7.3 Helm Chart
  • 6.7.4 Artifactory
  • 6.7.5 Webhook
  • 6.7.6 Jenkins
  • 6.7.7 Concourse
  • 6.7.8 Travis
  • 6.7.9 CRON
  • 6.7.10 Pipeline
  • 6.7.11 Pub/Sub
  • 6.8 使用流水线模板
  • 6.8.1 安装Spin CLI
  • 6.8.2 创建流水线模板
  • 6.8.3 渲染流水线模板
  • 6.8.4 使用模板创建流水线
  • 6.8.5 继承模板或覆盖
  • 6.9 消息通知
  • 6.9.1 Email
  • 6.9.2 Slack
  • 6.9.3 SMS
  • 6.9.4 企业微信机器人
  • 6.9.5 钉钉机器人
  • 6.10 本章小结
  • 07 自动金丝雀分析
  • 7.1 Spinnaker自动金丝雀发布
  • 7.2 安装组件
  • 7.2.1 安装Prometheus
  • 7.2.2 集成Minio
  • 7.2.3 集成Prometheus
  • 7.3 配置金丝雀
  • 7.3.1 创建一个金丝雀配置
  • 7.3.2 创建和使用选择器模板
  • 7.3.3 创建金丝雀阶段
  • 7.4 获取金丝雀报告
  • 7.5 工作原理
  • 7.6 最佳实践
  • 7.7 本章小结
  • 08 混沌工程
  • 8.1 理论基础
  • 8.1.1 概念定义
  • 8.1.2 发展历程
  • 8.2 为什么需要混沌工程
  • 8.2.1 与测试的区别
  • 8.2.2 与故障注入的区别
  • 8.2.3 核心思想
  • 8.3 五大原则
  • 8.3.1 建立稳定状态的假设
  • 8.3.2 用多样的现实世界事件做验证
  • 8.3.3 在生产环境中进行测试
  • 8.3.4 快速终止和最小爆炸半径
  • 8.3.5 自动化实验以持续运行
  • 8.4 如何实现混沌工程
  • 8.4.1 设计实验步骤
  • 8.4.2 确定成熟度模型
  • 8.4.3 确定应用度模型
  • 8.4.4 绘制成熟度模型
  • 8.5 在Spinnaker中实施混沌工程
  • 8.5.1 Gremlin
  • 8.5.2 Chaos Mesh
  • 8.6 本章小结
  • 09 使部署更加安全
  • 9.1 集群部署
  • 9.1.1 部署策略
  • 9.1.2 回滚策略
  • 9.1.3 时间窗口
  • 9.2 流水线执行
  • 9.2.1 并发
  • 9.2.2 锁定
  • 9.2.3 禁用
  • 9.2.4 阶段条件判断
  • 9.2.5 人工确认
  • 9.3 自动验证阶段
  • 9.4 审计和可追溯
  • 9.4.1 消息通知
  • 9.4.2 流水线变更历史
  • 9.4.3 事件流记录
  • 9.5 本章小结
  • 10 最佳实践
  • 10.1 南北流量自动灰度发布:Kubernetes + Nginx Ingress
  • 10.1.1 环境准备
  • 10.1.2 部署Nginx Ingress
  • 10.1.3 初始化环境
  • 10.1.4 创建流水线
  • 10.1.5 运行流水线
  • 10.1.6 原理分析
  • 10.1.7 生产建议
  • 10.2 东西流量自动灰度发布:Kubernetes + Service Mesh
  • 10.2.1 环境准备
  • 10.2.2 安装Istio
  • 10.2.3 Bookinfo应用
  • 10.2.4 初始化环境
  • 10.2.5 创建流水线
  • 10.2.6 运行流水线
  • 10.2.7 原理分析
  • 10.3 本章小结
  • 11 生产建议
  • 11.1 SSL
  • 11.2 认证
  • 11.2.1 SAML
  • 11.2.2 OAuth
  • 11.2.3 LDAP
  • 11.2.4 x509
  • 11.3 授权
  • 11.3.1 YAML
  • 11.3.2 SAML
  • 11.3.3 LDAP
  • 11.3.4 GitHub
  • 11.3.5 Service Account
  • 11.3.6 流水线权限
  • 11.4 Redis配置优化
  • 11.5 横向扩容
  • 11.6 使用MySQL作为存储系统
  • 11.6.1 Front50
  • 11.6.2 Clouddriver
  • 11.6.3 Orca
  • 11.7 监控
  • 11.7.1 Prometheus
  • 11.7.2 Grafana
  • 11.8 本章小结
  • 12 扩展Spinnaker
  • 12.1 配置开发环境
  • 12.1.1 Kork
  • 12.1.2 组件概述
  • 12.1.3 环境配置
  • 12.2 编写新阶段
  • 12.3 本章小结
  • 13 迁移到Spinnaker
  • 13.1 如何说服团队
  • 13.2 迁移原则
  • 13.2.1 最小化变更工作流
  • 13.2.2 利用已有设施
  • 13.2.3 组织架构不变性
  • 13.3 本章小结
展开全部

评分及书评

评分不足
1个评分
  • 用户头像
    给这本书评了
    5.0

    在持续部署最佳实践方面,本书重点介绍了如何实施灰度发布、自动金丝雀分析和混沌工程,这些高级部署功能是 Netflix 公司实现快速而稳定迭代的核心技术。关于如何落地 Spinnaker,本书站在人和组织架构的视角,为迁移团队提供了指导性的意见,解决了新技术落地难的问题。

      转发
      评论

    出版方

    电子工业出版社

    电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。