Knative最佳实践
  • 推荐0
  • 收藏0
  • 浏览646

Knative最佳实践

Jacques Chester (作者)  赵吉壮 , 杨云锋 (译者)

  • 书  号:978-7-121-43608-6
  • 出版日期:2022-07-01
  • 页  数:272
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 原书名: Knative in Action
  • 原书号:9781617296642
纸质版 ¥118.00
本书主要围绕 Knative 进行展开,主要作者是 Knative 专家(社区作者)Jacques Chester ,先后从 Knative 构建、扩缩容、事件触发等方面介绍 Knative 以及 Serverless 架构,并从实例开始,针对 Serverless 应用进行详细的介绍,是一本深入理解 Knative & Serverless的书籍
Serverless 计算将会成为云时代默认的计算模式,并取代 Serverful (传统云)计算模式---------来自于伯克利实验室对于未来云计算趋势的论断。Knative 是谷歌开源的 Serverless 架构方案,旨在提供一套简单易用的 serverless 方案,把 serverless 标准化。目前参与的公司主要是 Google、Pivotal、IBM、Red Hat。本书主要围绕 Knative 原理以及 相关实例展开,由浅入深,讲解 Knative & Serverless 领域的技术问题。
雅克·切斯特(Jacques Chester)是VMware公司的一名工程师,(作者之前在Pivotal公司工作,后来VMware公司收购了Pivotal公司)。自2015年以来,他一直从事研发工作,为Knative等多个项目做出了贡献。在从事研发工作之前,雅克曾在Pivotal Labs担任软件咨询工程师。
当准备写这本书的时候,我正在Pivotal工作,当时正处于和Google及社区合作的初期。在Pivotal工作期间,我通过Project riff项目,成为Knative开源之前最早参与到这个项目的人员之一。
现在回想最初计划写这本书的时候,真是雄心壮志。与其说你现在拿到的是一本技术书,不如说是一本专业的单词本。首先,这本书的目标已经逐渐从谈论许多不同事物(包括Knative),演变成了只谈论Knative。这是一个全面的改进,尽管我喜欢谈论相关主题,但这些并不是一开始就需要的。本书是《Knative最佳实践》,而不是《Knative大统一理论》。
我喜欢写作,我为自己感到骄傲,所以行文中添加了很多修饰词。如果你的母语不是英语,那么你读起来可能会很慢。我可以肯定的一件事是,对于任何不熟悉的单词,你跳过就好了,那也许只是我在炫耀我的词汇量。

致谢
我想对一千个人表示感谢,可能都感谢不全,不过首先感谢下面几个人。
感谢埃莱诺·加德纳(Eleonor Gardner)从互联网上找到的一些人,这样迈克尔·斯蒂芬斯(Michael Stephens)才能启动这个项目。感谢我非常乐观的编辑珍妮佛·斯托特(Jennifer Stout)和忧郁的技术编辑约翰·格思里(John Guthrie)。还有弗朗西斯·布兰(Frances Buran),他忍受了我通篇都是逗号的毛病。谢谢他们,因为有他们这本书才变得更好。
同样感谢迄今为止参与过本书的Manning的工作人员:妮可·巴特菲尔德(Nicole Butterfield)、克里斯汀·沃特森(Kristen Watterson)、丽贝卡·里内哈特(Rebecca Rinehart)、瑞哈娜·马卡诺维奇(Rebecca Rinehart)、麦特·赫尔文(Matko Hrvatin)、萨姆·伍德(Sam Wood)、拉德米拉·埃尔切戈瓦茨(Randmila Ercegovac)、科迪·坦克斯利(Cody Tankersley)、特洛伊·德雷尔(Troy Dreier)、坎迪斯·吉尔霍利、布兰科·拉提尼克(Branko Latincic)、穆罕默德·帕西奇、詹妮弗·霍勒(Jennifer Houle)、斯特列潘·尤雷科维奇(Stjepan Jurekovic)、迪尔德·希亚姆(Deirdre Hiam)、杰森·埃弗里特(Jason Everett)和米哈拉·贝蒂尼克(Mihaela Batinic)。
除了Manning的工作人员,我还非常感谢那些匿名的审稿人员,他们对早期的草稿进行了认真的审核,有些人甚至审核了三次,他们的严谨和细心极大地提高了本书的质量。虽然我并没有采纳所有的建议,但还是想说谢谢他们,谢谢。
我认为这本书能完成很大程度上要归功于Knative社区,我从社区维护者们的身上学到了很多,很享受和他们之间的交流,比如:马特·摩尔(Matt Moore)、维尔·艾卡斯(Ville Aikas)、埃文·安德森(Evan Anderson)、乔·伯内特(Joe Burnett)、斯科特·尼科尔斯(Scott Nichols)、杰森·霍尔(Jason Hall)、马库斯·瑟姆斯(MarkusThömmes)、恩吉亚·特兰(Nghia Tran)、朱利安·弗里德曼(Julian Friedman)、卡洛斯·桑塔纳(Carlos Santana)、尼玛·卡维尼(Nima Kaviani)、迈克尔·马克西米利安(Doug Davis)、本·布朗宁(Ben Browning)、格兰特·罗杰斯(Grant Rodgers)、保罗·莫里(Paul Morie)、陈慧琳(Brenda Chan)、唐娜·玛梅丽(Donna Malayeri)、马克·科罗夫(Mark Kropf)和马克·查马尼(Mark Chmarny)。同样在社区中,还有我在Pivotal和VMware认识的许多人,包括大名鼎鼎的戴夫·普罗塔索夫斯基(Dave Protasowski)、马克·费舍尔(Mark Fisher)、斯科特·安德鲁斯(Scott Andrews)、格林·诺明顿(Glynn Normington)、苏克·苏里什(Sukhil Suresh)、坦泽布·卡利利(Tanzeeb Khalili)(有一天我可能会见到他)、大卫·图兰斯基(David Turanski)、托马斯·里斯伯格(Thomas Risberg)、德米特里·卡里宁(Dmitriy Kalinin)、于尔根·莱施纳(Jurgen Leschner)和不知疲倦的肖什·雷迪(Shash Reddy)。
还是要说一下Pivotal公司和VMware公司的朋友,他们使我更专注地写这本书。我欠了迈克·达莱西奥(Mike Dalessio)和凯瑟琳·麦加维(Catherine McGarvey)一个人情,他们给我提供了为Pivotal公司工作的机会,后来他们依然很热心地帮助我。格雷厄姆·西纳(Graham Siener)在自己很忙的时候依然会倾听我的抱怨。伊恩·安德鲁斯(Ian Andrews)和理查德·塞罗特(Richard Seroter)为营销铺平了道路,赛勒斯·沃迪亚(Cyrus Wadia)、戴夫·沙赫纳(Dave Schachner)和海蒂·希希曼(Heidi Hischmann)负责所有的流程和手续。在此过程中,我还要感谢我的经理埃迪·比尔(Edie Beer)和本·莫斯(Ben Moss)。
还有Pivotal公司纽约分部的所有同事们(当然还有在旧金山、多伦多、圣莫妮卡、伦敦和其他地方的同事),我很喜欢和他们在一起的时间。最困难的事情是,我花费了个人所有的时间来写这本书。最好的事情是,我依然属于友好、聪明、干练的Pivotal团队。一旦加入Pivotal,将终生属于Pivotal。
我也非常感谢在我写这本书时和我交谈的播客。“备份中心:全部还原”中的柯蒂斯·普雷斯顿(W. Curtis Preston)和普拉萨纳(Prasana);“流媒体:融合的播客”中的蒂姆·伯格隆德(Tim Berglund),还有维多利亚·于(Victoria Yu);“Offer之禅播客”中的乔米罗·埃明(Jomiro Eming);“云中集群”中的乔纳森·贝克(Jonathan Baker)和贾斯汀·布罗德利(Justin Brodley)。我非常喜欢和他们之间的每次交流。
还有所有的审稿人:亚历山德罗·坎佩斯(Alessandro Campeis)、亚历克斯·卢卡斯(Alex Lucas)、安德烈斯·萨科(Andres Sacco)、博扬·朱科维奇(Bojan Djurkovic)、克利福德·瑟伯(Conor Redmond)、埃德杜·梅隆德斯·冈萨雷斯(EdraMeléndezGonzales)、埃兹拉·西梅洛夫(Ezra Simeloff)、盖特·范·莱瑟姆(Geert Van Laethem)、乔治·海恩斯(Guy Ndjeng)、杰弗里·楚(Jeffrey Chu)、杰罗姆·梅耶(Jerome Meyer)、朱利安·波希(Keith Senhlum)、开尔文·约翰逊(Kelvin Johnson)、卢克·库普卡(Luke Kupka)、马特·韦尔克(Mel Welke)、迈克尔·布赖特(Michael Bright)、米格尔·卡瓦科·科凯特(Peturu Raj)、拉斐尔·文塔格里奥(Raffaella Ventaglio)、理查德·沃恩(Richard Vaughan)、罗伯·帕切科(Rot Pacheco)、萨达德鲁·罗伊(Satadru Roy)、泰勒·多勒扎尔(Taylor Dolezal)、蒂姆·兰福德(Tim Langford)和佐罗扎伊·穆库亚(Zorodzayi Mukuya),感谢他们的辛苦工作。
我所做的一切都给所有人留下了深刻的印象,实际上我做的只是对我父母的一种传承。当我打扰其他人的时候我只是在讲述我父母的生活。他们涉猎很广,做了很多事情,克服了生活中的种种障碍。这本书是对他们做过的事的一个缩影。
当然,还有雷尼(Renée),他是我有史以来遇到的最好的运气之星。没有他,我无法坚持到最后。

关于本书
本书适合哪些人
本书主要面向那些希望学习Knative服务模块和服务模块概念及功能的人,笔者仅在需要的时候介绍Kubernetes的概念,除此之外,笔者主要讲解Knative。
笔者的目标是让没有Kubernetes使用经验的人能够上手使用Knative,不知道该目标能不能达成。笔者写了很多关于容器技术、云原生架构和Kubernetes的背景知识,希望能够给大家讲明白Knative。
写这本书的目的不是告诉你学习基本原理时会产生哪些问题。对笔者而言,一方面,是给你展示网络交互的函数示例;另一方面,要权衡讲解过程中是否要引出其他问题。笔者会简要提一下自身认为有关的内容(比如排队论),限于篇幅,不会过多地展开叙述。

本书的主要脉络
第1章主要介绍Knative及其在云计算中的定位。第2章引入Knative服务模块。第3章深入介绍Knative的服务和配置。第4章介绍路由。第5章的核心内容是自动扩/缩容。第6章主要介绍事件模块和CloudEvents。第7章介绍事件源和接收器(事件模块的主要概念)。第8章在第7章的基础上继续介绍事件代理、过滤器、串行消息和并行消息。第9章主要进行总结,笔者集中回答了“如何将软件投入生产环境”和“软件是否正在运行”这两个问题。
建议读者按顺序阅读本书,因为这样阅读起来会容易理解一些。当然,你先读Eventing,再读Serving也能读懂。
本书缺少一个正常运行的完整例子。笔者一开始考虑过,并写过一些草稿代码,不过后来都放弃了。一方面,因为笔者也在学习没用过的知识;另一方面,社区的代码发展得太快了,笔者可能面临刚写完完整的示例代码又要推倒重来的风险。不过在每章的上下文中会穿插相应的示例代码。
关于代码
本书中的大多数代码都是CLI命令和YAML文件。实际代码是用Go语言写的。
在线电子书论坛
购买本书可以免费访问由Manning出版社运营的官方在线论坛,可以在线对图书进行评论、提出技术问题并获得作者和其他用户的帮助。
Manning承诺提供一个可以让读者之间,以及读者和作者之间交流的场所。这不是作者对论坛参与程度的承诺,作者对论坛的贡献是自愿的。我们建议读者向作者提出一些具有挑战性的问题,以免作者失去兴趣!
其他在线资源
首先是Knative的官方网站,官方网站一直保持更新中。本书是为一般技术读者入门knative而写的。对于具体细节,Knative官方文档是一个非常推荐的参考。
另外,Knative社区也是一个开放并且对新手很友好的地方。快速熟悉Knative最好的方式是加入Knative的Slack频道,还有就是加入Knative用户的Google论坛,加入该论坛不仅可以为你提供Knative成员邮件列表,还可以访问共享的社区日历和工作文档。
每周的工作组会议都涉及各种主题,从服务API到自动缩放,再到操作和文档。同样,每周该项目的技术监督委员会都会收到一个工作组的最新消息,其中会介绍他们过去几个月的工作。所有的会议和会议纪要都做了记录,可以很容易地查找以前的对话。

目录

第1章 介绍
1.1 Knative是什么
1.1.1 部署、升级和流量路由
1.1.2 自动扩/缩容
1.1.3 事件模块
1.2 Knative能干什么
1.3 Knative的优势
1.3.1 具有不可预测性、延迟不敏感性的工作负载
1.3.2 合并多个事件源
1.3.3 微服务拆分
1.4 计数器应用
1.5 版本变更
1.6 Knative系统组件
1.6.1 服务模块
1.6.2 事件模块
1.6.3 服务模块和事件模块
1.7 Knative控制器
1.7.1 反馈控制
1.7.2 循环嵌套
1.8 准备好开始了吗
1.9 总结
第2章 Knative服务模块
2.1 演练
2.1.1 首个部署
2.1.2 第二个部署
2.1.3 状态
2.1.4 Active表示什么
2.1.5 修改镜像
2.1.6 分流
2.2 服务模块
2.2.1 控制器和协调器
2.2.2 网络钩子
2.2.3 网络控制器
2.2.4 自动缩放器、激活器和队列代理
2.3 总结
第3章 配置和修订
3.1 记录历史发布记录并对其进行发布
3.2 部署版本的概念
3.2.1 蓝/绿部署
3.2.2 金丝雀部署
3.2.3 渐进式部署
3.2.4 回到未来
3.3 剖析配置
3.3.1 配置的状态
3.3.2 通过kubectl describe查看配置
3.4 剖析修订版本
3.4.1 修订版本的基本概念
3.4.2 容器的基本概念
3.4.3 容器镜像
3.4.4 容器启动命令
3.4.5 直接设置环境变量
3.4.6 间接设置环境变量
3.4.7 通过文件来设置配置文件
3.4.8 健康检查
3.4.9 设置资源限制
3.4.10 容器的并发
3.4.11 超时时间
3.5 总结
第4章 路由
4.1 使用kn操作路由
4.2 剖析路由
4.3 剖析流量目标
4.3.1 配置名称和版本名称
4.3.2 最新版本
4.3.3 标签
4.4 总结
第5章 自动扩/缩容
5.1 自动扩/缩容问题
5.2 零实例下的自动扩/缩容
5.3 少量实例状态下的自动扩/缩容
5.4 大量实例状态下的自动扩/缩容
5.5 自动扩/缩容理论
5.5.1 控制回路
5.5.2 队列
5.6 扩/缩容算法
5.7 配置自动扩/缩容
5.7.1 配置是如何设置的
5.7.2 设置扩/缩容限制
5.7.3 设置扩/缩容比率
5.7.4 设置目标值
5.7.5 设置决定周期
5.7.6 设置窗口大小
5.7.7 设置恐慌阈值
5.7.8 设置目标突发容量
5.7.9 其他自动缩放器
5.8 警告
5.9 总结
第6章 事件模块
6.1 CloudEvents之路
6.2 剖析CloudEvents
6.2.1 必需属性
6.2.2 可选属性
6.2.3 扩展属性
6.3 事件格式和协议绑定那些事儿
6.3.1 结构化内容模式
6.3.2 二进制内容模式
6.3.3 批处理内容模式
6.4 演练
6.5 事件模块的基础架构
6.5.1 消息传递
6.5.2 事件
6.5.3 事件源
6.5.4 事件流
6.5.5 鸭子类型
6.6 总结
第7章 事件源和接收器
7.1 事件源
7.1.1 解析事件源
7.1.2 使用kn处理事件源
7.2 接收器
7.3 SinkBinding和ContainerSource
7.4 其他事件源
7.5 总结
第8章 过滤器和事件流
8.1 代理
8.2 过滤器
8.2.1 过滤自定义属性
8.2.2 事件模块提供的好东西
8.3 顺序事件
8.4 剖析顺序事件
8.4.1 步骤
8.4.2 回复
8.4.3 通道模板和通道
8.4.4 混合顺序事件和过滤器
8.5 并行事件
8.6 处理失败
8.6.1 重试和退避
8.6.2 死信消息
8.6.3 坏消息
8.7 总结
第9章 从概念到生产
9.1 将软件变成可运行的东西
9.1.1 使用摘要
9.1.2 使用云原生构建包和pack工具
9.2 将软件带到它运行的地方
9.3 了解软件是如何运行的
9.3.1 日志
9.3.2 指标
9.3.3 追踪
9.4 总结
附录A 安装kubectl和kn
附录B 安装Knative

读者评论

相关图书

ATT&CK框架实践指南

过去,入侵检测能力的度量是个公认的行业难题,各个企业得安全负责人每年在入侵防护上都投入大量费用,但几乎没有人能回答CEO 的问题:“买了这么多产品,我们的入侵防...

¥148.00

云原生数据库:原理与实践

周恩昌 (作者)

本书详细剖析了作为核心基础软件系统的数据库在云计算时代的技术演进历程,从架构设计、实现机制和系统优化等多个角度阐述传统数据库技术是如何一步步发展到云原生形态的。...

¥99.00

SequoiaDB分布式数据库权威指南

黄达玮 (作者)

本书旨在介绍 SequoiaDB 巨杉数据库的基本概念、应用场景、企业级应用案例、数据库实例创建与管理方式、数据库集群管理的基本策略、以及性能调优和问题诊断。...

¥99.00

最强iOS和macOS安全宝典

Jonathan Levin (作者) 郑旻 (译者)

《最强iOS和macOS安全宝典》以苹果操作系统的安全为主题,主要面向苹果高级用户、系统管理员、安全研究人员和黑客。<br>本书主要分三个部分:第一部分重点介绍...

¥179.00

极限黑客攻防:CTF赛题揭秘

王新辉 天融信阿尔法实验室 张黎元 郭勇生 (作者)

CTF在网络安全领域特指网络安全技术人员之间进行技术竞技的一种比赛。CTF代替了以往黑客通过互相发起真实攻击进行技术比拼的方式,题目来自日常工作环境,并将其中的...

¥99.00

深入集群:大型数据中心资源调度与管理

李雨前 (作者)

本书内容聚焦资源侧:集群调度和管理,非一般性的应用集群调度和管理。尽管按集群调度和集群管理两大部分来进行内容组织,实质上这两部分是一体的。集群管理是为了保障集群...

¥89.00