音乐和数学:Kubernetes 1.17发布访谈

作者:亚当·格里克(Google)

每当Kubernetes发行列车停在车站时,我们都想请发行负责人花点时间来反思他们的经历。采取每周面试的形式 Google的Kubernetes播客 我共同主持的 克雷格盒。如果您不熟悉该展会,那么我们每周都会在Cloud Native生态系统中总结新功能,并与来自更广阔的Kubernetes社区的有趣嘉宾进行深入的讨论。

在12月1.17版发布时,我们 与释放团队负责人Guinevere Saenger进行了交谈 。我们有 共享 成绩单 Kubernetes博客上以前的采访中,我们很高兴今天分享另一个。

下周,我们将为您提供有关Kubernetes 1.18的最新信息,因为我们正准备在下个月发布1.19。 订阅节目 无论您在哪里获得播客,都可以确保您不会错过聊天内容!


ADAM GLICK:对于从事软件工程师工作的人,您具有非传统背景。你能解释一下那个背景吗?

GUINEVERE SAENGER:我的第一个职业是 合作钢琴家,这是学术上说“钢琴伴奏者”的方式。我是一位受过古典训练的钢琴家,大部分时间都花在舞台上,陪伴其他人,使他们听起来很棒。

ADAM GLICK:那钢琴等同于配对编程吗?

GUINEVERE SAENGER:以前没有人像我这样对我说过,但是各种事情现在在我的脑海中开始变得有意义。我认为这是一个很好的表达方式。

ADAM GLICK:这是一个非常有趣的背景,因为有人也有音乐背景。是什么让您决定进入软件开发的?

GUINEVERE SAENGER:我发现自己处在一种生活环境中,我需要更稳定的收入来源,而教学音乐以及为各种演出机会表演,实际上只是不再减少了。我发现自己确实非常努力地工作,没有什么可展示的。我有很多朋友都是软件工程师。我住在西雅图。当您住在西雅图时,您会发生这种事情,您会认识很多软件工程师,一种或另一种方式。

我遇到的都是可爱的人,他们说,嘿,很高兴向您展示如何使用Python编程。所以我做了一点,然后我听说了这个程序 阿达开发人员学院。这是一所为期一年的编码学校,专门针对正在寻找技术第二职业的女性和非二进制人群。所以我申请了。

保险盒:关于该计划,您能告诉我们什么?

GUINEVERE SAENGER:对于初学者来说,它的选择性非常好。它在西雅图真的很受欢迎,并获得了很好的声誉。我花了3次尝试才能进入。他们每年上两节课,所以过了一段时间我才收到我的回答说:“恭喜,我们很高兴欢迎您加入第6组。”我认为Ada开发人员学院与其他训练营风格的编码程序的不同之处是三件事?最重要的一项是,如果您进入,则无需支付学费。整个计划由公司赞助商资助。

信箱:对。

GUINEVERE SAENGER:令我深信不疑的另一件事是,为期11个月的计划中有5个月是行业实习,这意味着您将获得实践经验,指导和最终的工作机会。

CRAIG BOX:非常像滑铁卢大学学位的精简版,您可以在其中合作。

GUINEVERE SAENGER:有趣。我不知道

CRAIG BOX:我在滑铁卢住了一段时间,我认识很多这样做的人。但是,您会说计算机科学中的这种浓缩的学习过程带来的好处是什么呢?

GUINEVERE SAENGER:我不确定浓缩过程是否一定会占优势。我认为这是必须的。人们必须辞职才能参加该计划。这不是晚上上课的事情。

信箱:对。

GUINEVERE SAENGER:实习基本上是一项全职工作。 Ada确实非常擅长的一件事是为我们提供与工作场所直接相关的实践经验。我们学习了如何使用Git。我们学习了如何使用 滑轨。我们还学习了如何协作,如何进行配对编程。我们每周进行一次回顾,因此我们对真实工作场所的工作流进行了简短的介绍。除此之外,我认为实习的整体经历更多是“面向工作场所的实践”,而学术则更少。

完成后,您不必重新学习如何成为与他人建立工作关系的成年人。您具有一套先前的技能。有些Ada毕业生以前曾是竞选律师,兽医,保姆,厨师和各种各样的人。事实证明,这些技能倾向于翻译,而且很重要。

ADAM GLICK:拥有音乐背景,您认为这可以使您进行哪些软件开发,而这可能是人们所经历的标准软件开发培训所缺少的?

GUINEVERE SAENGER:当我告诉他们我曾经是音乐家的时候,人们往往会真正地联系在一起。当然,我仍然认为自己是音乐家,因为您并没有真正停止成为音乐家。但是他们说,“哦,是的,音乐和数学”,那只是一种类似的大脑。这很有意义。我认为这有一点意义。当学习一首音乐时,您必须快速,几乎直觉地开始识别模式。

我认为这是转化为编程的主要技能,即识别模式,找到有效的事物,找到无效的事物。对我而言,尤其是作为一名协作钢琴家,这是与人沟通,找出人们真正想要的东西,前进的方向,如何弄清楚我们要采取的总体方向,然后再开始编写第一个。代码行。

CRAIG BOX:根据您在Ada的经验或您曾经拥有的其他经验,您是否能够为您推荐的人识别其他背景下的模式,“嘿,您擅长音乐,因此您可能想要考虑做类似计算机科学课程的事情?

GUINEVERE SAENGER:总体而言,我认为最终编写代码只是向计算机提供一组指令。我们一直在日常生活中这样做。我们给孩子们指导,我们给学生们指导。我们做数学,我们写教科书。当您在法庭上出任律师时,我们会指示一间人满为患的房间。

实际上,Ada开发人员学院的入学考试曾经有来自 LSAT考试 在上面查看您是否有资格加入该计划。当我申请时,他们改变了这一点,但我认为那是一回事。因此,总的来说,我认为软件工程的领域比我们认为的要多得多,并且有许多方法可以应用所谓的其他技能并将其带入软件工程的保护范围。

框框:我确实认为编程实际上是艺术和科学的一半。有创造力可以应用。也许有一种方法可以最有效地解决问题。但是,您可以选择多种不同的方式来表达您如何以这种方式编译某些内容。

GUINEVERE SAENGER:是的,我的意思是绝对正确的。我认为,您可能会证明的一种方式是,如果您在工作中编写代码,并且正在与其他人一起工作,那么您可能可以通过编写方式知道哪个同事写了哪个程序包,或如何进行记录,如何设置样式或进行任何此类操作。我确实确实认为人性格闪耀。

ADAM GLICK:您对Kubernetes和开源有什么兴趣?

GUINEVERE SAENGER:诚实的回答绝对没有。回到我的编程学校-并记住我必须在培训中进行为期五个月的实习-实习的工作方式是该计划的赞助商公司根据他们赞助特定人群的人数吸引实习生学生的。

因此,当时,三星和SDS提议在其实习生中安排两个实习生,为期五个月 云原生计算团队 并以此作为他们的实践经验。因此,我离开了Ruby on 滑轨全栈Web开发培训营,参加了我的实习,他们说:“欢迎使用Kubernetes。尝试建立一个集群。”我说:“库伯什么?”

惊险者:有时候我们都这么说。

ADAM GLICK:靠火审判,哇。

GUINEVERE SAENGER:我要说的是,整个团队都非常出色,合作愉快,乐于助人。对于在该环境中获得的所有帮助和支持,我将永远感激不已。这是一个学习的好地方。

CRAIG BOX:您现在在GitHub的Kubernetes基础架构上工作。显然,在Kubernetes之前就有GitHub,因此发生了迁移。您能告诉我们有关GitHub到Kubernetes上运行的过渡的信息吗?

GUINEVERE SAENGER:在此免责声明-过渡到Kubernetes时,我不在GitHub。但是,据我所知,已经做出了过渡到Kubernetes的决定,人们决定,是的,我们想尝试Kubernetes。我们想使用Kubernetes。大多数情况下,剩下的唯一决定就是,我们应该将哪个应用程序移至Kubernetes?

CRAIG BOX:我以为GitHub是用Rails编写的,所以只有一个应用程序。

GUINEVERE SAENGER:[笑]我们在幕后有很多补充内容。

保险盒:我确定。

GUINEVERE SAENGER:但是,是的,GitHub是用Rails编写的。它仍然是用Rails编写的。而且大多数补充性内容目前都在Kubernetes上运行。我们有很多目前无法在Kubernetes上运行的东西。主要是与GitHub Enterprise相关的东西。我对此知之甚少,因为我在帮助人们使用Kubernetes基础架构的平台团队中。但是回到您的问题,当时的领导层认为从GitHub开始,将Rails网站作为迁移到Kubernetes的第一个项目是一个好主意。

ADAM GLICK:高额赌注!

GUINEVERE SAENGER:这样做的原因是,他们决定是否不打算大刀阔斧,这实际上永远不会过渡。真的不会发生。因此,他们只是决定全力以赴,并取得了成功,为此,我认为课程可能会尽早完成,并付出很大。

CRAIG BOX:您还可以从公司进行的过渡中学到什么吗?或者,您可能还适用于其他正在考虑将其公司从传统基础架构迁移到Kubernetes的人吗?基础设施?

GUINEVERE SAENGER:我不确定这是一个具体的课程,但是最近我得到了支持,事实证明,由于不可预见的情况和人为错误的混合,我们的一个Kubernetes集群上有很多名称空间已删除。

ADAM GLICK:哦,我的。

吉内弗·桑格(GUINEVERE SAENGER):在这一点上,它应该不影响任何客户。但总而言之,我们几乎花了几个小时才能从此事件中完全恢复过来。我认为,没有Kubernetes,这是不可能的。

危险框:通常,删除类似的东西是灾难性的。我们已经看到许多其他供应商在某人做某事时遭受了严重的停机,这就是为什么我们得到 #hugops 一直在推特上。

GUINEVERE SAENGER:人们确实给了我#hugops,这是发生了的事情。但是总的来说,类似这样的测试是一个有趣的压力测试,并证明它并没有最坏情况下的灾难性。

CRAIG BOX:GitHub 运行自己的数据中心。 Kubernetes基本上是为在云上运行而构建的,但是很多人确实选择在自己的裸机上运行它。您如何管理群集和运行的机器的配置?

GUINEVERE SAENGER:开始时,我的入职项目是取消配置旧群集,确保所有流量都移至可以继续运行的位置,设置新群集,然后将网站流量移至新群集。那是一个非常令人兴奋的入门项目。当时,我们使用Puppet设置了裸机。我们仍然在一定程度上做到这一点,但是我相信现在运行我们的计算资源的团队实际上将虚拟机作为裸机和Kubernetes节点之间的额外层插入。

再说一次,我并不是该决定的内在组成部分,但我的理解是,这只是为了提高整体可靠性和可重复性。我们遇到了一些有趣的硬件依赖性问题,虚拟机基本上避免了这些问题。

CRAIG BOX:您已经与Kubernetes合作了两年了。您是如何参与发布过程的?

GUINEVERE SAENGER:当我第一次开始该项目时,我从 贡献者经验特别兴趣小组,因为当时我的一位同事Aaron Crickenberger是Kubernetes社区的重要人物。还是。

CRAIG BOX:我们已经 让他参加表演 这些非常释放的采访之一!

GUINEVERE SAENGER:的确如此!所以我和亚伦实际上回到了三星SDS。无论如何,亚伦建议我为Kubernetes项目写一份文稿,我说,对吗?他说,是的,当然。你将会 在KubeCon上发言,因此您可能应该开始使用PR或其他东西。所以我尝试了,确实非常困难。我对此抱怨 在公开的GitHub问题中,人们说,是的。是的,我们知道这很难。您想帮忙吗?

因此,我开始真正参与 新的参与者开始的过程 并取得成功,就像在Kubernetes一样庞大而多样的项目中立足。从那时起,我开始与人交谈,结识人。 Kubernetes社区的伟大之处在于,有太多的指导老师可以参加。

ADAM GLICK:对。

GUINEVERE SAENGER:有这么多友好的人愿意提供帮助。当我与其他人谈论这件事时,这真的很有趣。他们说,您的同事是什么意思?我说,嗯,他确实是一位同事。他确实在另一家公司工作。

CRAIG BOX:他是正式的竞争对手。

吉内弗·桑格:是的。

克雷格·博格:但是我们是朋友。

GUINEVERE SAENGER:但是,当我不知道如何git打补丁我乏味的pull请求时,他就完全帮助了我。这样就发生了。最后,有人建议我开始遵循发布过程,并让某人担任发布团队角色。那是当时的错误分类负责人蒂姆·佩珀(Tim Pepper),我为他担任了这个角色。

CRAIG BOX:另一个 播客 在面试火车上。

GUINEVERE SAENGER:这是一种模式,一旦我向您介绍发布团队的影子流程,它可能会变得更有意义。

ADAM GLICK:好吧,让我们谈谈Kubernetes的发布和发布过程。首先,此版本1.17有哪些新功能?

GUINEVERE SAENGER:我们只有很少的新事物。我最兴奋的是我们已经搬家了 IPv4和IPv6双协议栈 支持alpha。这是最重大的变化,我认为已经过去了一年半。因此,这是该功能的第一版,对此我感到非常兴奋。

记者:那些被许诺了很多很多年但仍然没有真正看到IPv6的人们,这对他们意味着什么?

ADAM GLICK:最重要的是,为什么我们跳过IPv5支持?

GUINEVERE SAENGER:我不知道!

信箱:请参阅 此播客的附录 有关技术说明。

GUINEVERE SAENGER:拥有双堆栈配置显然使人们可以拥有更加灵活的基础架构,而不必担心制定过时或过于复杂的决策。这基本上意味着Pod可以具有双堆栈地址,而节点可以具有双堆栈地址。基本上,这使沟通变得更加容易。

CRAIG BOX:那些未纳入发行版的功能又如何呢?我们在与Lachie的谈话中 1.16面试在他提到的地方 边柜。不幸的是,他们没有加入该版本。我现在看到他们也没有做到这一点。

GUINEVERE SAENGER:他们还没有,我们目前实际上正在努力跟踪可翻转多个版本的功能。

作为一个社区,我们需要每个人的帮助。人们想要很多功能。还需要进行大量清理。我们已经开始在以前的KubeCons上反复谈论维护者倦怠,审查者倦怠的问题,很难为您的特定贡献找到评论,特别是如果您不是社区的根深蒂固的成员。很明显,这是整个社区都需要改进的领域。

因此,不幸的现实是有时生活会发生,人们会很忙。这是一个开源项目。这不是公司强制性的OKR。特别是在北美第四季度,但在世界范围内,我们有很多假期。这是年底。北美Kubecon也发生了。这通常使得很难及时找到审阅者或寻求增强建议所需的支持。不幸的是,滑倒发行是相当普遍的,并且在这一点上是可以预期的。我们首先进行了42项改进, 降落了大约一半.

CRAIG BOX:我想问一下由于今年第四季度而被截断的时间表,世界上大部分地区都有假期。您是否发现Q4总体上比其他版本要小,如果不是因为它短了几周而已?

GUINEVERE SAENGER:第四季度的发布有必要缩短,因为我们正在努力在年底假期结束前完成该年度的最终发布。通常,发布会受到KubeCons的压力,在此期间,如果您正在参加会议,则很难找到审阅者,甚至找不到工作时间。即使您不参加,您的审阅者也可能正在参加。

它是去年提出来的,目的是使最终版本更加稳定,这意味着没有新的alpha功能。实际上,对于此发行版,这实际上与事实很接近。我们有4个即将升级至Beta的功能,而我们的大多数功能都已逐渐过渡到稳定版。我希望以此为先例来更改我们的流程,以使最终版本从现在起成为稳定版本。时间轴适合。过去的经验适合这种模式。

ADAM GLICK:在正在进行的所有发布工作中,还发生了KubeCon。而您参与了 贡献者峰会。峰会怎么样?

GUINEVERE SAENGER:这是第一次贡献者峰会,我们拥有一个组织有序的活动团队,活动组织线索,手册和流程。而且我从多个人那里听到过-这只是口口相传-这是他们最喜欢的贡献者峰会。

惊险的盒子:有人分配帽子生产吗? 每个人都有水手帽.

GUINEVERE SAENGER:是的,整个活动人员都戴着带GitHub句柄的水手帽,这真是太棒了。您可能会看到我穿着贡献者峰会中的一些照片。从字面上看,这是在贡献者峰会早晨开箱即用的,没人知道。但是起初,我有点怀疑,但后来我戴上它,看着镜子里的自己。我当时想,是的。是的,这是正确的。我们都应该穿这些。

ADAM GLICK:将所有人聚集在一起参加贡献者峰会是否对发布过程有所帮助?

GUINEVERE SAENGER:没有。确实相反。好吧,那太强大了。

ADAM GLICK:这只是时间问题吗?

GUINEVERE SAENGER:这是完全不同的重点。老实说,它有助于与我目前仅在视频中进行交互的人面对面地认识。但是我们确实不得不取消了在贡献者峰会当天召开的发布团队,因为这样做没有任何意义。我相信,我们将其移至星期二。

CRAIG BOX:发布团队负责人的角色已被描述为仆人领导。您认为该职位是主动还是被动?

GUINEVERE SAENGER:坦白地说,我认为这取决于发布团队的负责人,对吗?有些人非常警惕并寻找趋势,试图在问题发生之前发现问题。我倾向于在那个营地,但是我也知道有时候无法预测事情。有时会有最后一刻的错误,有时没有。如果存在最后一个错误,则必须准备好解决这个问题。因此,对我而言,我想确保自己的工作顺序井井有条,并且在无法使用时也要进行备份。

ADAM GLICK:对您来说,发布过程中最有趣的部分是什么?

GUINEVERE SAENGER:在担任发布团队领导之前,发布领导必须在发布团队中担任其他角色。对我来说,很有趣的一点是,还负责其他角色,我以前从内部没有看到过这些角色,例如文档,CI信号。我已经为CI信号提供了一些帮助,但我想向CI信号负责人Alena Varkockova表示极大的欢迎,他能够与遇到破损测试,失败测试的所有人进行有效和友好的沟通。她在启动和运行我们所有的测试方面非常有效。

因此,看到它实际上真的很酷。是的,只是看到了团队的更多工作,对我而言,这令人兴奋。当然,另一件激动人心的事情是看到正在进行的所有更改以及正在做出的所有努力。

CRAIG BOX:1.18版的发布线索刚刚宣布为 豪尔赫·阿拉尔孔。您打算把什么放在信封里作为对他的建议?

GUINEVERE SAENGER:我希望Jorge真正确保将每个进行更改的特殊兴趣小组(对1.18进行了增强)放在时间轴上并且响应迅速。交流往往是个问题。我早些时候曾暗示过,但是某些改进只是由于没有足够的审阅者带宽而滑落了。

更好地与时间线沟通,并给人们更多的时间和空间来进行更改,或者至少通过发出预警来给他们更多的时间和空间,这将是有帮助的。当然,他的发布时间也将比我更长。这可能与第四季度的独特挑战有关。总的来说,我鼓励他多休息一下,更多地依赖他的释放阴影,并以一种允许每个人都有转弯和每个人都有休息的方式来拆分工作。

ADAM GLICK:对于听到您的经历并受到启发参与Kubernetes发布或贡献者流程的人,您的建议是什么?

吉内弗·桑格:这是两个独立的问题。因此,让我首先解决Kubernetes发行问题。 Kubernetes SIG发行 我认为,对于新会员而言,它是一个非常出色的入门计划。我们有所谓的 发布团队影子计划。我们也有“发布工程影子计划”或“发布管理影子计划”。这是SIG版本中的两个单独的子项目。每个子项目都有一个角色团队,每个角色可以有2-4个阴影,这些阴影基本上是该角色团队的一部分,他们在学习过程中正在学习该角色。

因此,例如,如果我是发布团队中的错误分类的负责人,那么我可能有两个,三个或四个人与我密切合作进行错误分类任务。这些人是我的影子。一旦他们在一个发布周期中成为阴影,他们现在就有资格担任该角色的领导者。我们为此流程提供了一份申请表格,该表格可能会在一月份提交。通常,一旦所有发布线索放在一起,就会在发布的第一周发生。

CRAIG BOX:您认为成为发布团队的一员对Kubernetes项目整体而言是一个很好的第一贡献吗?

GUINEVERE SAENGER:这取决于您的目标,对吧?我相信是这样。我认为,就我个人而言,这对我根本不了解的项目的各个角落(例如API机械,存储设备)非常有用。查看我通常从未接触过的所有代码领域,真是令人兴奋。

这取决于您要摆脱的困境。总的来说,我认为成为发布团队的影子是成为社区一部分的一个非常非常重要的起点,因为它为贡献做出了铺垫。您所要做的就是出席会议,向主管提出问题,要求谁回答这些问题。

您也可以做真正的工作。您真的很有帮助,您真的做出了贡献。如果您遇到问题并在回购中提出请求,您将看到,“嗨,我的名字是某某某某。我正在为当前版本屏蔽CI信号线。你能帮我吗?这是一笔宝贵的贡献,它可以将人们介绍给其他人。然后人们会认出您的名字。他们会看到您的拉动请求,他们就像哦,是的,我认识这个人。他们是合法的。


Guinevere Saenger 是GitHub的软件工程师,并曾担任Kubernetes 1.17发布团队负责人。

你可以找到 Google的Kubernetes播客 @KubernetesPod 在Twitter上,您可以 订阅 这样您就不会错过任何一集。