Spinnaker实战:云原生多云环境的持续部署方案

Spinnaker实战:云原生多云环境的持续部署方案

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

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

内容简介

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

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

作者简介

作者王炜,腾讯云CODING高级架构师,CNCF大使,KubeCon评审委员会成员,开源云原生开发境Nocalhost研发负责人,腾讯云大学讲师。多年来始终从事云原生架构、Docker、Kubernetes、DevOps及微服务领域的研究与实践,擅长开源项目治理和运营。

章节目录

版权信息

内容简介

推荐语

推荐序一

推荐序二

自序

前言

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 本章小结

Spinnaker实战:云原生多云环境的持续部署方案是2021年由电子工业出版社出版,作者王炜。

得书感谢您对《Spinnaker实战:云原生多云环境的持续部署方案》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
企业级云原生架构:技术、服务与实践 电子书
基于多年的大型项目架构设计实践经验,紧贴主流技术趋势,深入浅出介绍云原生相关技术及产品。
云原生技术中台:从分布式到云平台设计 电子书
本书清晰、完整地展现云平台技术架构的相关知识。
vBRAS原理、实现与部署 电子书
本书介绍了BRAS的技术背景和传统BRAS的基本原理,从而介绍vBRAS的基本原理和相关关键技术,包括SDN、NFV、云计算使能技术,软、硬件加速技术,以及主要的接口协议和开源控制器。探讨了vBRAS设备实现、主要应用场景以及vBRAS的组网技术和组网模式,最后列举了基于OpenBRAS开源社区的vBRAS开源情况。
持续测试 电子书
本书结合代码和工具,全面讲述通过持续测试交付可靠的系统。
OpenStack部署实践(第2版) 电子书
OpenStack中国社区核心技术交流群管理员之作,企业评估OpenStack云平台能力的参考书,云计算、网络、存储以及大数据处理融为一体的实践部署指导书。