加入SIG可扩展性并以艰难的方式学习Kubernetes

作者: 亚历克斯·汉迪

促进SIG可扩展性是学习Kubernetes全方位和深度的一种好方法,团队希望拥有您 作为贡献者加入。我了解了艰苦学习的价值,并采访了当前的SIG主席,以使您了解贡献的感觉。

学习艰辛之道的价值

在软件开发社区中,存在一种信念,即寻求一种最具挑战性和最严格的学习新语言或系统的方法。这些往往以“学习__艰难的方式”的名字来形容。示例比比皆是:艰苦学习代码,艰苦学习Python,以及Zed Shaw的该主题课程中产生的许多其他内容。

虽然那里有人为您提供“以艰难的方式学习Kubernetes”类型的体验(最著名的是 凯尔西·高塔(Kelsey Hightower)),任何“硬道”项目都应尝试涵盖核心主题原则的各个方面。

因此,“艰难地学习Kubernetes”的真正方法是加入CNCF,并参与项目本身。而且只有一个SIG可以真正为Kubernetes提供全栈学习体验:SIG可扩展性。

SIG可扩展性背后的团队负责检测和处理当Kubernetes集群使用多达一千个节点时出现的问题。说过 沃基切赫·季琴斯基是Google的资深软件工程师,也是SIG Scalability的成员,该SIG的测试群集的标准大小超过5,000个节点。

但是,此SIG并不是由具有高度可扩展性的系统设计博士组成。例如,与Tyczynski合作的许多人都加入了SIG,对这类问题知之甚少,而对Kubernetes的了解却很少。

进行SIG可伸缩性的工作就像跳入游泳池深处学习游泳一样,并且SIG本质上与整个Kubernetes项目有关。 SIG可扩展性侧重于Kubernetes的整体功能和大规模功能。 SIG可伸缩性团队的成员有动力去学习每个系统,并了解所有系统如何相互影响。

复杂而有益的贡献者经验

尽管这听起来很复杂(而且确实如此!),但这并不意味着它超出了普通开发人员,测试人员或管理员的能力。谷歌软件开发人员Matt Matejczyk从2019年初才加入团队,从那以后他一直是团队的重要成员,发现了很多漏洞。

“我是新来的,”马捷奇克说。 “我于[2019年1月]加入团队。在那之前,我在纽约Google从事AdWords工作。为什么加入?我在那里认识一些人,所以这是我搬迁的决定之一。那时,Kubernetes是一项独特的尖端技术。我认为进行这项工作很酷。”

马捷奇(Matejczyk)的冷静是正确的。他说:“很酷。” “所以,实际上,提高可伸缩性并不容易。您需要了解很多事情。您需要非常了解Kubernetes。它可以使用Kubernetes的每个部分。在这8个月之后,我仍在逐步提高。我认为我花了大约三个月的时间才能达到体面的速度。”

当Matejczyk谈到他在这8个月中所做的工作时,他回答说:“一个有趣的例子是我最近一直在进行的回归。我们注意到在特定情况下Kubernetes控制平面的整体运行缓慢,我们无法归因于最后,我们意识到一切都归结为golang级别的内存分配,因为有两个完全独立的代码段(作为同一二进制文件的一部分运行)会影响性能,这非常违反直觉。彼此之间的差异仅仅是因为其中之一分配内存的速度太快了。但是将所有的点连接起来并达到这种回归的最低点,将会带来极大的满足感。”

Tyczynski说:“不仅调试回归,而且调试和发现瓶颈。总的来说,这些可以是回归,但可以改善我们的状况。另一个重要领域是向用户扩展我们想要保证的范围。扩展SLA和SLO覆盖了系统,因此用户可以在性能和可伸缩性上依赖他们对系统的期望。Matt在扩展我们的测试以使其更具代表性和覆盖更多Kubernetes概念方面正在进行大量工作。”

尝试SIG可扩展性

SIG可伸缩性团队始终需要新成员,并且如果您是喜欢承担新的复杂挑战,或者喜欢以艰苦的方式学习知识的开发人员或测试人员,请考虑加入此SIG。正如团队指出的那样,在您的简历中添加Kubernetes专业知识绝不是一个坏主意,这是您可以从头到尾学习所有内容的一个SIG。

看到 SIG的文档 了解即将举行的会议及其章程等。您也可以加入 #sig-scalability松弛通道 看看是什么样的。我们希望看到您加入,以利用这一绝佳的机会来学习Kubernetes并同时回馈自己。