LFX春季计划:规模最大的毕业班,成功的28名CNCF实习生!
作者:Ihor Dvoretskyi
28 名实习生刚刚从 CNCF 最新资助的 LFX 导师计划顺利毕业。16 个来自 Crossplane、Kubernetes、Thanos、Tremor 和 Volcano 的毕业、孵化和沙箱项目参与了本轮活动。
自 2017 年以来,CNCF 一直参与 LFX 平台、谷歌 Summer of Code 等导师计划,已有超过 254 名项目实习生成功毕业。
“我们的导师计划是将新的开发人员引入云原生社区的一个很好的方式,”CNCF 首席技术官 Chris Aniszczyk 说。“他们不仅通过改进和 bug 修复帮助推进项目,而且是一个机会来建立这个包容的社区,吸引新的贡献者。我们期待着继续这种投资,并祝贺这些新毕业生在升级开源和云原生体验方面取得的成功。”
关于 CNCF 项目、导师和成功完成该项目的学生的更多细节可以在下面和GitHub[1]上找到。
Chaos Mesh
I was assigned with the task to add more features to the AWS chaos under chaos mesh project and I along with my mentor successfully integrated awsssmchaosrunner with AWS Chaos which brought in a plethora of features to Chaos Mesh which can now be implemented along with Chaos Mesh and observed in the dashboard.
Mentee: Debabrata Panigrahi
Mentor: Zhou Zhiqiang
“I was completely new to the CNCF landscape when I started with the mentorship program, also being a self taught programmer it was quite intimidating to me in the beginning. However, thanks to my mentor and his constant help with various resources, now I can write my own kubernetes controllers and generate CRDs. Moreover now I have distinct ideas about kubernetes, distributed systems and chaos engineering, which wouldn’t have been possible without this mentorship program.”
Chaos Mesh
I worked on improving Chaosd, a daemon for non-Kubernetes nodes, so it can be integrated with a centralized Dashboard. Thus making it possible to use Chaos Mesh as a cloud-agnostic Chaos Engineering as a Service.
Mentee: Shivansh Saini
Mentor: Wang Xiang
“I learnt a lot from my mentor and had a great exposure to open source best practices and collaborating with the community. So I had a blast working on my project and would definitely recommend my peers to try this program!”
Cloud Native Buildpacks
My project was called “CNCF – Cloud Native Buildpacks: Design and implement Buildpack Registry Search”. During the mentorship program, I worked on updating readme files of multiple repos, adding github action features, adding deeplinking on https://registry.buildpacks.io, and adding some rake tasks for rails application. Contributing to open source project was a new thing to me, but my mentor made me so comfortable asking him any question and I was able to learn and do my best.
Mentee: Aswin Timalsina
Mentor: Joe Kutner
“It was the best experience I ever had as a mentee. Huge shout out to my mentor – Joe Kutner. Besides being so busy with his work, he quickly responded and guided me through any issues I had. Either recommending resources or writing a long writings, he invested a tons of hours just for improving my skills. I got to learn lot of new things like Buildpacks, Ruby on Rails, Github Action, rake and automation. Even after graduating from the LFX Mentorship program I will keep on contributing to various projects and keep educating people about the open source and CNCF world.”
Crossplane
Crossplane provides a broad library of Kubernetes custom resources that let you orchestrate systems external to Kubernetes. These include AWS S3 buckets, GCP CloudSQL instances, Azure Cosmos tables, plain old SQL databases, Helm releases, and Dominos pizzas. We call these ‘managed resources’. Crossplane’s goal is to allow platform teams to build their own custom resources that are in turn composed of these primitives without needing to write Kubernetes controllers in Go. Crossplane currently has extensive unit testing, but not much in the way of automated integration/e2e tests.
Mentee: Rahul Grover
Mentor: Jared Watts, Daniel Mangum and Muvaffak Onus
Keptn
My primary task is to rewrite the keptn’s Prometheus service to make it independent of the Prometheus installation. I completed this task within a month, and I started working on an additional issue that is Adding keptn’s SLI service functionalities into keptn Prometheus service, which itself a big and complicated task for me. Finally, I was able to complete my remaining tasks within the mentorship period, and at last, I did the refactor of the Keptn’s documentation and tutorial regarding the code change.
Mentee: Raj Babu Das
Mentor: Jürgen Etzlstorfer
“I am glad that I got this opportunity to work with such a great Open Source project. LFX Mentorship is a great place for a student and a working professional to work on a project that motivates and exponentially increases the ability of a developer to work in a large team”
Keptn
My primary task was to add functionality to the Keptn CLI that allowed users to generate a keptn-service and automatically set it up for them so that they can dive right into developing the core logic of their service they wish to onboard onto Keptn, all from a single command, soon one might be able to generate a keptn-service right from their CLI and start developing the same.
Mentee: Hemanth Krishna
Mentor: Jürgen Etzlstorfer
“I am glad that I got this opportunity and have learnt a lot during the span of 3 months. I think it’s a really cool opportunity that you personally get mentored by amazing engineers who build tools to solve problems. I had an amazing experience working on this project and being mentored by Jürgen Etzlstorfer, Johannes Bräuer, and, Florian Bacher. We had weekly sync-up calls where we discussed our projects and resolved any road-blockers I faced during the implementation of the same.”
Kubernetes
My project involved shadowing some UX research leads as they interview Kubernetes users, taking down notes and helping to compile data that we will be using to put together a Jobs-to-be-done study.
Mentee: Enjeck Mbeh Cleopatra
Mentor: Tasha Drew and Gaby Moreno
“My LFX Mentorship experience was awesome. When I applied for the program, I had wanted to improve my skills and contribute to open source. The LFX Mentorship program provided this and more. The best part was being paired with experienced mentors who helped me grow my skills. The only issue I faced was with the mentorship timeline. I wanted it to last for 6 months, not 3. My mentors agreed. But we didn’t know how to reach the LFX team and request for an extension.”
Kubernetes
As part of my project, we investigated ways to evaluate dependency updates to the Kubernetes repository. We created “”depstat”” which is a command-line tool built using Cobra to analyze the dependencies of any Go modules enabled project. depstat now runs as part of two prow jobs in the Kubernetes CI system. depstat: https://lnkd.in/eAsgXzP
Mentee: Arsh Sharma
Mentor: Davanum Srinivas
“My experience was very very good. I’m so glad that I got the opportunity to do this. The best part for me was that I not only learned so much from the community but I also got to make so many friends. Amazing experience overall :)”
Kubernetes
The Kubernetes Policy WG is defining a Policy Report CRD to help unify outputs from multiple policy engines. This helps cluster-admins with managing clusters as policy results can be viewed and managed easily as Kubernetes resources from any Kubernetes management tool (kubectl, dashboard, Octant, etc.). The project scope was to create a tool that periodically runs a CIS benchmark check like kube-bench and produces a policy report. And now as the project is successfully implemented, the kube-bench adapter runs a CIS benchmark check with kube-bench and produces a policy report based on the Policy Report Custom Resource Definition.
Mentee: Mritunjay Sharma
Mentor: Jim Bugwadia
“I don’t have words to describe how amazing this program was for me. From getting an opportunity to be a Keynote guest speaker in KubeCon Europe with Priyanka Sharma (GM, CNCF) to getting involved with more cloud-native projects like Buildpacks and in fact, getting an internship as a Software Engineer at HackerRank – LFX Mentorship Program was like a watershed moment in my life. This could not have been possible without the constant support of my amazing mentor, Jim Bugwadia and the other amazing members of the Kubernetes and CNCF Community who helped me evolve technically as well as aiding improve my soft-skills. This program is definitely a 100/100 recommend for students who want to learn how it feels like to work in industry and in fact get paid for it. Thanks to all CNCF and LFX folks for organising this great program!“
Kyverno
My project was targeted towards programming a custom Prometheus exporter for Kyverno to expose Prometheus-compliant metrics providing a great set of insights around the behaviour of Kyverno and the compliance of incoming Kubernetes resources with the Kyverno policies associated with the user’s cluster.
Mentee: Yashvardhan Kukreja
Mentor: Shuting Zhao
“I always wanted to be a part of a great open source programme, especially around the Kubernetes-native space and the LFX Mentorship programme provided me an absolutely fantastic experience around that desire. It helped me to get personally mentored by talented engineers around enhancing a tool which is extremely useful in the Kubernetes-native space. And as a part of it, I also got a great set of opportunities to interact with the open source community really well, which was really fun :)”
Thanos
Worked on adding a new flag called –endpoint=
that will be passed to Thanos query and replace the current –store= and –rule= flags, and add a discovery mechanism which will be used to determine what types of services this endpoint can serve.Mentee: Hitanshu Mehta
Mentor: Lucas Servén Marín and Prem Saraswat
“It has been a great learning experience for me. Apart from learning about technologies related to the project, now I have a deeper understanding about Thanos and I’m more confident with large code bases. This will help me keep contributing in open source projects. My mentors were super helpful, supportive and flexible. The Thanos community is also very welcoming and encouraging. I will keep contributing to Thanos and other CNCF projects. Very thankful to my mentors and CNCF for this opportunity.”
Thanos
Thanos can store and serve the data for multiple tenants at once. But, it didn’t provide the needed introspective information about actions related to the tenant (e.g., external labels). My project focused on allowing admins to obtain tenants’ information on per tenant queries, operations, and ingestion, which gave actionable insight and helped them know which tenant’s data was queried the most and track per tenant data usages like CPU, Memory Utilizations. My project improves the experience of running multi-tenant Thanos on the scale.
Mentee: Abhishek Singh Chauhan
Mentor: Kemal Akkoyun and Yash Sharma
“It was a great experience overall. I got a chance to work with experienced developers on some real-world projects which have a significant impact and learned a lot of new stuff like instrumentation, multitenancy, APIs, and SRE concepts like SLOs. I not only gained technical knowledge but also improved my soft skills by giving talks around the project I worked on.”
Thanos
The Thanos ruler currently uses an embedded TSDB. This doesn’t scale because large-enough rules can create large amounts of time-series, resulting in large TSDBs too. The goal of the project is to implement a “stateless” mode for the Thanos ruler, where it sends rule evaluations to a remote object storage (instead of storing it in the embedded) TSDB.
Mentee: Michael Okoko
Mentor: Lucas Servén Marín and Bartlomiej Płotka
“It was amazing!I think almost anyone that graduates from the mentorship would improve on their technical skills. I got to learn a lot more about Go, Prometheus, and gRPC. Asides from that though, I especially love how the mentors were intentional about helping you contribute not just for the mentorship, but after. I also got the chance to learn about the collaborative nature of open-source generally, and helping people less-familiar with the code-base go from “”zero-to-hero””.”
TiKV
My task was to implement a “pluggable coprocessor framework” for TiKV, a distributed, transactional key-value database written in Rust. The idea is to allow users to run custom coprocessor plugins in TiKV, effectively allowing them to run arbitrary code directly on storage nodes. This can lead to great performance improvements for certain applications because they can (a) save a lot of network bandwidth and (b) better utilize the available hardware resources on storage nodes.
Mentee: Andreas Zimmerer
Mentor: Andy Lok, Alex Chi
“The LFX Mentorship Program at TiKV was a truly remarkable experience! In the beginning, I was a bit overwhelmed by the size of the project, but the maintainers were always very helpful when I had questions. I learned a lot about systems programming and database internals thanks to my wonderful mentors Andy Lok and Alex Chi. The best part was when my project got attention from people not directly involved. Also, I got the chance to dive into and become part of the TiKV open-source community, and I’m sure I will also contribute to TiKV in the future :)”
Tremor
My project during the internship was to add support for the Google Cloud connectors in Tremor. I worked on adding the Google Cloud Storage and Google Cloud Pub/Sub connectors. Connectors serve the purpose of sending events to and receiving events from the outside world.
Mentee: Jigyasa Khaneja
Mentor: Darach Ennis
It was an overall great journey contributing to Tremor as a part of the LFX Mentorship program. I learned so much in these 3 months’ time with the support of my mentors. I’m very grateful to CNCF for organising this as it gave me an opportunity to learn about event processing, distributed systems, Rust, Cloud-Native technologies, etc. I wouldn’t have learned so much in these 3 months’ time had I not been a part of this mentorship program. It was definitely a fun learning experience.
Tremor
My project’s aim was to enable tremor to receive and send Syslog Protocol Messages, a standard protocol used to send system log or event messages. It was desired to support both the standard IETF format and the old BSD format via UDP and TCP/TLS.
Mentee: Nupur Agrawal
Mentor: Matthias Wahl, Anup Dhamala and Heinz Gies
“The tremor community is very helpful and friendly. The mentors helped me a lot from silly rust doubts to nerve breaking code debugging and testing. There were periodic code reviews and live coding sessions which motivated me to improvise and keep going. The key focus was always on the learning rather than getting the work done. It was undoubtedly one of the most fruitful and learning experiences I have had and I wish to continue the contribution to community and project.”
Tremor
I had a great time learning completely new technologies which wouldn’t have been so accessible to learn and build things using them. The whole structure of the program and the way it is executed was sublime.
Mentee: Rohit Dandamudi
Mentor: Heinz N. Gies and Matthias Wahl
“Overall it went pretty smoothly, a way to help mentees to get jobs or future support would be an amazing thing to add. Apart from that, making mentees more involved in the community is something I would like to be actively encouraged/supported to be part of the change.”
Volcano
Volcano is a batch scheduling system built on Kubernetes, partly based on kube-batch. It provides powerful mechanisms for batching and elastic workloads in cloud-native architecture including machine learning, bioinformatics and big data applications such as batch processing, and stream processing. Compared with Kubernetes default scheduler, Volcano is more capable of various scenarios benefiting from the extensibility gain from its job lifecycle management via manifold plugins.
Mentee: Yuchen Cheng
Mentor: Lei Wu
“We often say that there is a gap between academia and industry because of various scenarios. I believe it is worth my attempt to bridge such a gap via the LFX mentorship program. I have been working closely with the community and gain valuable experience from the operation and communication with community members outside the ivory tower. This experience would also encourage me to continuously explore the world of cloud-native, and contribute to open-source projects.”
参考资料
GitHub: https://github.com/cncf/mentoring
点击【阅读原文】阅读网站原文。
CNCF概况(幻灯片)
扫描二维码联系我们!
CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux Foundation,是非营利性组织。
CNCF(云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请长按以下二维码进行关注。