万本电子书0元读

万本电子书0元读

顶部广告

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

1.本书创了云原生多元环境持续部署工具Spinnaker的先例,讲解深。 2.本书案例基于大厂一线工程师的实际工作,具有非常好的指导性和实践性。 3.本书提供丰富的图片资源和实践源码,帮助读者快速上手。

售       价:¥

纸质售价:¥80.40购买纸书

23人正在读 | 0人评论 6.2

作       者:王炜,王振威

出  版  社:电子工业出版社

出版时间:2021-09-01

字       数:17.0万

所属分类: 科技 > 计算机/网络 > 多媒体/数据通信

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书聚焦于云原生和多云环境的持续部署方案,共分13 章,内容涉及声明式持续部署概述、Spinnaker基础与实战、金丝雀发布与灰度发布、部署安全、混沌工程及生产化建议等,结构清晰,循序渐,深浅出。在持续部署实践方面,本书重介绍了如何实施灰度发布、自动金丝雀分析和混沌工程,这些高级部署功能是Netflix 公司实现快速而稳定迭代的核心技术。关于如何落地Spinnaker,本书站在人和组织架构的视角,为迁移团队提供了指导性的意见,解决了新技术落地难的问题。<br/>【推荐语】<br/>1.本书创了云原生多元环境持续部署工具Spinnaker的先例,讲解深。 2.本书案例基于大厂一线工程师的实际工作,具有非常好的指导性和实践性。 3.本书提供丰富的图片资源和实践源码,帮助读者快速上手。<br/>【作者】<br/>王炜,腾讯云CODING高级架构师,CNCF大使,KubeCon评审委员会成员,源云原生发境Nocalhost研发负责人,腾讯云大学讲师。多年来始终从事云原生架构、Docker、Kubernetes、DevOps及微服务领域的研究与实践,擅长源项目治理和运营。   王振威,腾讯云CODING研发总监,源云原生发环境Nocalhost产品负责人。深耕发者工具领域,实现了CODING代码托管、CI/CD等产品从0到1的突破,在Linux、Golang、Java、Kubernetes、Docker等技术领域有所见长。<br/>
目录展开

内容简介

推荐语

推荐序一

推荐序二

自序

前言

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

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部