这篇文章发表已超过一年。较旧的文章可能包含过时内容。请检查页面中的信息自发布以来是否仍然准确。
加入 SIG Scalability,用艰难的方式学习 Kubernetes
为 SIG Scalability 做贡献是深入全面学习 Kubernetes 的绝佳方式,团队非常欢迎你加入贡献者行列。我研究了“艰难学习”的价值,并采访了当前的 SIG 主席们,以让你了解贡献的感觉。
学习“艰难模式”的价值
在软件开发社区中有一种信念,推崇通过最具挑战性和最严谨的方式学习新的语言或系统。这些通常被称为“艰难学习 __”的方法。例如:Learn Code the Hard Way、Learn Python the Hard Way,以及许多源自 Zed Shaw 相关课程的此类方法。
虽然有一些人提供“艰难学习 Kubernetes”的体验(最著名的是Kelsey Hightower 的项目),但任何“艰难学习”项目都应该尝试涵盖核心主题原则的方方面面。
因此,“艰难学习 Kubernetes”的真正方法是加入 CNCF 并参与到项目本身。并且只有一个 SIG 可以真正为 Kubernetes 提供全栈学习体验:SIG Scalability。
SIG Scalability 团队负责发现和处理 Kubernetes 集群节点数超过一千时出现的问题。Google 的一名高级软件工程师兼 SIG Scalability 成员 Wojiciech Tyczynski 表示,该 SIG 测试集群的标准规模超过 5,000 个节点。
然而,这个 SIG 并不是由研究高度可扩展系统设计的博士组成的。许多与 Tyczynski 合作的人,比如,加入 SIG 时对这类问题知之甚少,而且通常对 Kubernetes 也知之甚少。
在 SIG Scalability 工作就像跳进泳池深水区学习游泳,而且该 SIG 本质上关注整个 Kubernetes 项目。SIG Scalability 专注于 Kubernetes 作为一个整体如何运行以及在大规模下的表现。SIG Scalability 团队成员有动力学习每个系统,并理解所有系统如何相互作用。
复杂而有益的贡献者体验
虽然这听起来很复杂(确实如此!),但这并不意味着它超出了普通开发者、测试人员或管理员的能力范围。Google 软件开发者 Matt Matejczyk 自 2019 年初才加入这个团队,从那时起,他一直是团队中备受珍视的成员,负责找出 bug。
“我刚来这里,”Matejczyk 说。“我是 2019 年 1 月加入这个团队的。之前,我在纽约 Google 做 AdWords 相关工作。为什么加入?我认识那里的一些人,所以这是我决定调过来的一个原因。当时我觉得 Kubernetes 是一项独特、前沿的技术。我认为参与这方面的工作会很酷。”
Matejczyk 说得没错。“很酷,”他说。“所以实际上,提升可伸缩性方面的能力并不容易。你需要理解很多东西。你需要非常了解 Kubernetes。它可以利用 Kubernetes 的各个部分。这 8 个月后我还在适应。我想我大概花了 3 个月才达到不错的速度。”
当 Matejczyk 被问及他在那 8 个月里都做了些什么时,他回答说:“一个有趣的例子是我最近一直在处理的一个性能回归问题。我们注意到在特定场景下,Kubernetes 控制平面的整体速度变慢了,但我们无法将其归因于任何特定组件。最后,我们意识到这一切都归结于 golang 层面的内存分配。两个完全独立的代码片段(作为同一个二进制文件的一部分运行)仅仅因为其中一个内存分配过快而相互影响性能,这非常反直觉。但将所有线索联系起来并彻底解决这样的性能回归问题,能带来巨大的满足感。”
Tyczynski 说:“这不仅仅是调试性能回归问题,也包括调试和寻找瓶颈。一般来说,这些可能是性能回归,但也可能是我们可以改进的地方。另一个重要领域是扩展我们希望向用户保证的内容。扩展系统的 SLA 和 SLO 覆盖范围,以便用户可以依靠系统在性能和可伸缩性方面的预期表现。Matt 在扩展我们的测试方面做了大量工作,使测试更具代表性,并覆盖更多 Kubernetes 概念。”
尝试加入 SIG Scalability
SIG Scalability 团队一直需要新成员,如果你是那种喜欢接受新复杂挑战,或者喜欢“艰难学习”的开发者或测试人员,请考虑加入这个 SIG。正如团队所指出的,在你的简历中增加 Kubernetes 专家经验绝对不是坏事,而这是唯一一个可以让你从头到尾学习所有知识的 SIG。
请参阅该 SIG 的文档,了解即将召开的会议、其章程等信息。你也可以加入 #sig-scalability Slack 频道,看看那里的氛围。我们希望看到你加入,利用这个极好的机会学习 Kubernetes 并同时做出贡献。