"1.本书开创了云原生多元环境持续部署工具Spinnaker的先例,讲解深入。
2.本书案例基于大厂一线工程师的实际工作,具有很好好的指导性和实践性。
3.本书提供丰富的图片资源和实践源码,帮助读者快速上手。"
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | Spinnaker实战 云原生多云环境的持续部署方案 |
分类 | 教育考试-考试-计算机类 |
作者 | 王炜,王振威 |
出版社 | 电子工业出版社 |
下载 | ![]() |
简介 | 编辑推荐 "1.本书开创了云原生多元环境持续部署工具Spinnaker的先例,讲解深入。 2.本书案例基于大厂一线工程师的实际工作,具有很好好的指导性和实践性。 3.本书提供丰富的图片资源和实践源码,帮助读者快速上手。" 内容推荐 本书聚焦于云原生和多云环境的持续部署方案,共分13章,内容涉及声明式持续部署概述、Spinnaker基础与实战、金丝雀发布与灰度发布、部署安全、混沌工程及生产化建议等,结构清晰,循序渐进,深入浅出。在持续部署很好实践方面,本书重点介绍了如何实施灰度发布、自动金丝雀分析和混沌工程,这些不错部署功能是Netflix公司实现快速而稳定迭代的核心技术。关于如何落地Spinnaker,本书站在人和组织架构的视角,为迁移团队提供了指导性的意见,解决了新技术落地难的问题。 目录 01声明式持续部署概述1 1.1持续交付与持续部署2 1.1.1为什么要持续交付2 1.1.2持续交付的好处3 1.1.3保持随时可交付4 1.1.4解决问题:提高发布频率4 1.1.5自动化持续部署5 1.2命令式与声明式6 1.2.1简单易用的命令式7 1.2.2抽象和归纳的声明式8 1.3常见的声明式系统9 1.3.1Kubernetes9 1.3.2Terraform11 1.3.3Ansible12 1.4声明式与命令式结合:声明式脚本流水线13 1.4.1核心思想13 1.4.2代码即流水线14 1.4.3步骤执行15 1.5声明式脚本流水线的意义16 1.5.1简化行为描述16 1.5.2降低学习曲线17 1.5.3落地持续部署17 1.5.4实现自动化17 1.6本章小结18 02管理云基础设施19 2.1迁移至云原生与混合云的挑战20 2.1.1凭据管理20 2.1.2多云架构20 2.1.3跨地域部署21 2.1.4自动伸缩21 2.1.5不可变的基础设施和部署制品22 2.1.6服务发现22 2.2组织云基础设施23 2.2.1以应用为中心23 2.2.2抽象对云的操作24 2.2.3云模型26 2.2.4多云配置26 2.3流量组织形式27 2.3.1启用/不启用27 2.3.2启用/启用27 2.4持续部署工具对比27 2.4.1Tekton28 2.4.2ArgoCD31 2.5本章小结36 03Spinnaker简介37 3.1概念38 3.2应用管理38 3.2.1应用39 3.2.2服务器组39 3.2.3集群39 3.2.4负载均衡器41 3.2.5防火墙41 3.3应用程序部署42 3.3.1流水线42 3.3.2阶段43 3.3.3任务43 3.3.4部署策略43 3.4云提供商45 3.5Spinnaker架构46 3.5.1Deck48 3.5.2Gate50 3.5.3Clouddriver50 3.5.4Orca51 3.5.5Echo52 3.5.6Front5053 3.5.7Igor54 3.5.8Fiat54 3.5.9Rosco55 3.5.10Kayenta56 3.6本章小结57 04安装Spinnaker59 4.1环境要求59 4.1.1Kubernetes59 4.1.2Kubectl62 4.1.3Jenkins63 4.1.4DockerRegistery66 4.2安装部署67 4.2.1Halyard命令行工具67 4.2.2选择云提供商70 4.2.3选择运行环境71 4.2.4选择存储方式71 4.2.5部署73 4.2.6升级78 4.2.7备份配置79 4.2.8常见问题81 4.3本章小结82 05Spinnaker基本工作流程:流水线84 5.1管理流水线85 5.1.1创建流水线85 5.1.2配置流水线87 5.1.3添加自动触发器87 5.1.4添加阶段88 5.1.5手动运行流水线89 5.1.6禁用流水线91 5.1.7删除流水线91 5.1.8锁定流水线92 5.1.9重命名流水线93 5.1.10通过JSON编辑流水线93 5.1.11流水线历史版本94 5.2部署制品95 5.2.1在流水线中使用制品98 5.2.2自定义触发器制品103 5.2.3KubernetesManifest制品104 5.2.4制品类型108 5.3启动参数108 5.4阶段109 5.4.1基础设施阶段110 5.4.2集成外部系统阶段112 5.4.3测试阶段113 5.4.4流程控制阶段113 5.4.5自定义阶段114 5.5触发器114 5.5.1时间型触发器115 5.5.2事件型触发器115 5.6通知116 5.7流水线表达式118 5.7.1编写表达式119 5.7.2测试表达式124 5.8版本控制和审计125 5.9动态流水线示例126 5.10本章小结132 06深入核心概念133 6.1虚拟机阶段133 6.1.1Bake133 6.1.2TagImage135 6.1.3FindImageFromCluster135 6.1.4FindImageFromTags136 6.1.5Deploy137 6.1.6DisableCluster139 6.1.7DisableServerGroup140 6.1.8EnableServerGroup141 6.1.9ResizeServerGroup142 6.1.10CloneServerGroup143 6.1.11RollbackCluster144 6.1.12ScaleDownCluster145 6.2Kubernetes阶段145 6.2.1Bake(Manifest)146 6.2.2Delete(Manifest)147 6.2.3Deploy(Manifest)148 6.2.4FindArtifactsFromResource(Manifest)151 6.2.5Patch(Manifest)152 6.2.6Scale(Manifest)154 6.2.7UndoRollout(Manifest)155 6.3集成外部系统阶段156 6.3.1Jenkins156 6.3.2运行Script脚本158 6.3.3Travis阶段160 6.3.4Concourse阶段162 6.3.5Wercker阶段163 6.3.6Webhook阶段165 6.3.7自定义Webhook阶段167 6.4流程控制阶段170 6.4.1Wait171 6.4.2ManualJudgment171 6.4.3CheckPreconditions173 6.4.4Pipeline174 6.5其他阶段175 6.6部署制品类型176 6.6.1Docker镜像176 6.6.2Base64178 6.6.3AWSS3179 6.6.4GitRepo181 6.6.5GitHub文件182 6.6.6GitLab文件184 6.6.7Helm185 6.6.8HTTP文件188 6.6.9Kubernetes对象189 6.6.10Maven190 6.7配置触发器192 6.7.1Git192 6.7.2DockerRegistry194 6.7.3HelmChart196 6.7.4Artifactory197 6.7.5Webhook198 6.7.6Jenkins201 6.7.7Concourse202 6.7.8Travis202 6.7.9CRON203 6.7.10Pipeline204 6.7.11Pub/Sub204 6.8使用流水线模板205 6.8.1安装SpinCLI206 6.8.2创建流水线模板209 6.8.3渲染流水线模板211 6.8.4使用模板创建流水线211 6.8.5继承模板或覆盖213 6.9消息通知213 6.9.1Email216 6.9.2Slack218 6.9.3SMS220 6.9.4企业微信机器人221 6.9.5钉钉机器人223 6.10本章小结226 07自动金丝雀分析227 7.1Spinnaker自动金丝雀发布227 7.2安装组件229 7.2.1安装Prometheus229 7.2.2集成Minio232 7.2.3集成Prometheus233 7.3配置金丝雀233 7.3.1创建一个金丝雀配置234 7.3.2创建和使用选择器模板239 7.3.3创建金丝雀阶段240 7.4获取金丝雀报告248 7.5工作原理250 7.6很好实践251 7.7本章小结253 08混沌工程254 8.1理论基础254 8.1.1概念定义254 8.1.2发展历程255 8.2为什么需要混沌工程256 8.2.1与测试的区别256 8.2.2与故障注入的区别256 8.2.3核心思想257 8.3五大原则257 8.3.1建立稳定状态的假设257 8.3.2用多样的现实世界事件做验证258 8.3.3在生产环境中进行测试258 8.3.4快速终止和最小爆炸半径259 8.3.5自动化实验以持续运行259 8.4如何实现混沌工程259 8.4.1设计实验步骤260 8.4.2确定成熟度模型260 8.4.3确定应用度模型262 8.4.4绘制成熟度模型263 8.5在Spinnaker中实施混沌工程263 8.5.1Gremlin264 8.5.2ChaosMesh265 8.6本章小结268 09使部署更加安全269 9.1集群部署269 9.1.1部署策略269 9.1.2回滚策略278 9.1.3时间窗口283 9.2流水线执行285 9.2.1并发285 9.2.2锁定286 9.2.3禁用287 9.2.4阶段条件判断288 9.2.5人工确认288 9.3自动验证阶段295 9.4审计和可追溯299 9.4.1消息通知299 9.4.2流水线变更历史300 9.4.3事件流记录301 9.5本章小结302 10很好实践303 10.1南北流量自动灰度发布:Kubernetes+NginxIngress304 10.1.1环境准备304 10.1.2部署NginxIngress305 10.1.3初始化环境308 10.1.4创建流水线309 10.1.5运行流水线311 10.1.6原理分析317 10.1.7生产建议319 10.2东西流量自动灰度发布:Kubernetes+ServiceMesh319 10.2.1环境准备320 10.2.2安装Istio321 10.2.3Bookinfo应用322 10.2.4初始化环境324 10.2.5创建流水线326 10.2.6运行流水线328 10.2.7原理分析332 10.3本章小结334 11生产建议336 11.1SSL336 11.2认证341 11.2.1SAML342 11.2.2OAuth345 11.2.3LDAP349 11.2.4x509350 11.3授权351 11.3.1YAML353 11.3.2SAML354 11.3.3LDAP354 11.3.4GitHub355 11.3.5ServiceAccount356 11.3.6流水线权限358 11.4Redis配置优化359 11.5横向扩容360 11.6使用MySQL作为存储系统363 11.6.1Front50366 11.6.2Clouddriver367 11.6.3Orca369 11.7监控372 11.7.1Prometheus373 11.7.2Grafana378 11.8本章小结382 12扩展Spinnaker383 12.1配置开发环境383 12.1.1Kork383 12.1.2组件概述384 12.1.3环境配置385 12.2编写新阶段386 12.3本章小结394 13迁移到Spinnaker395 13.1如何说服团队395 13.2迁移原则396 13.2.1最小化变更工作流396 13.2.2利用已有设施397 13.2.3组织架构不变性397 13.3本章小结399 书评(媒体评论) "持续部署这个概念被讲得很多,但真正能将其落地实践的很少。一是因为组织文化和意识不匹配,二是因为缺乏相应的工具。在云计算时代,底层基础设施不断标准化,推动了部署的标准化,Spinnaker正是在这样的背景下诞生的持续部署工具。本书不但讲解了Spinnaker的使用,还介绍了在云计算时代开发和运维人员都应该掌握的基本概念和技术。这些内容将为你打开云原生时代的大门! ——张海龙,腾讯云CODING DevOps CEO 本书系统介绍了Spinnaker的使用、安全、生产实践、扩展等多个维度的内容,将这个云原生持续部署项目全面展示给各位读者。在提倡轻量化交付的今天,熟练掌握Spinnaker对提高研发效率和交付能力至关重要。想要入门和深入学习Spinnaker的读者,都可以阅读本书。 ——吴晟,Apache SkyWalking创始人 云原生本质上是一套“利用云计算技术为用户降本增效”的方法论。其中,研发与交付效能的提升是重中之重,也是持续交付技术的初衷与愿景。本书以Spinnaker为核心,从DevOps的理念出发,循序渐进地讲解了Spinnaker的来龙去脉和各项持续交付实践,是很好很好的入门Spinnaker的学习资料。 ——张磊,CNCF技术委员会成员 越来越多的公司正在全面拥抱云原生,实现云原生应用开发。在开源技术的推动下,云原生理念也得以进一步落地。Spinnaker就是一款开源的持续部署工具,它能帮助研发团队更灵活地实现持续部署,提升软件部署效率。本书从声明式持续部署到多云管理,再到Spinnaker实战,逐层阐述,抽丝剥茧,循序渐进,能让读者更好地实践云原生技术,更清晰地理解云原生开源理念。 ——单致豪,腾讯开源联盟主席 云原生的本质是提高资源利用率、应用交付及部署效率,而作为云原生应用落地的重要环节,持续部署涉及的工具层出不穷,Spinnaker无疑是其中的佼佼者。本书系统介绍了Spinnaker的各种丰富功能,这些将成为你实践混合云持续部署的利器。 ——宋净超(Jimmy Song),CNCF大使、Tetrate布道师、云原生社区创始人 在云计算时代,云原生技术注定会对传统的应用建设、持续交付和运维产生颠覆性影响。Spinnaker为多云环境下现代化集群管理和部署提供了方案,加快了云原生应用的交付速度。我相信这本书将带你深入了解Spinnaker的基本概念及其在生产环境下的很好实践。 ——郑东旭,百度CNCF BFE开源项目作者之一、《Kubernetes源码剖析》作者 Spinnaker是目前很好流行的云原生持续部署工具,能够快速、安全、可靠地管理云原生应用的整个生命周期。遗憾的是,目前在市场上基本找不到系统介绍Spinnaker实践的图书,这极大影响了用户的学习和使用。本书的出现弥补了这个缺陷,在本书中,你可以学到大量云原生及Spinnaker的知识,更能快速将Spinnaker应用到你的生产实践中去。 ——殷成文,PingCAP混沌工程负责人、CNCF开源项目Chaos Mesh?维护者" |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。