Becoming a mentee on a CNCF project

Greetings everyone! My name is Arthur Silva Sens, I’m from Florianópolis, Santa Catarina, Brazil, I graduated in 03/2020 in Information Systems at Federal University of Santa Catarina(UFSC) and I’ve just been select as a mentee at Cloud Native Computing Foundation(CNCF) to work with KubeVirt.

First, let me tell a little bit of my story

Almost 3 years ago I was hired as a trainee at a local software company. I got assigned to study what was Prometheus and to, later on, migrate the whole company’s monitoring system from Zabbix to this new promising monitoring tool.

With this ‘little’ project, I was able to get a promotion to a full-time Infrastructure Analyst, and later on to have a small team with 3 young trainees. Even though I was not an expert with the whole monitoring process, I was responsible to teach them how to deploy Prometheus servers on Docker containers, how to deploy different kinds of exporters, and how to configure Prometheus to scrape them.

As I was trying to bring new things to my young monitoring team, I kinda created an obsession with Prometheus and other OpenSource projects. I inevitably ended up discovering CNCF and a giant pool of amazing tools that I could be using where I was working back then.

More recently, I started working with a bunch of other CNCF projects, like Linkerd, Kubernetes, and Harbor. I feel like I owe my humble career to the CNCF’s projects and their maintainers and I was craving to help the OpenSource community since I started my Prometheus project almost 3 years ago.

Now about the Community Bridge program

One week after my graduation, Florianópolis’ mayor told us to stay home and keep our social distance(thanks corona)… so I was just scrolling down Twitter, minding my own business, and came across with this tweet! Suddenly I just had to make everything possible to be selected on this program, it was the perfect chance to enter the OpenSource world!

I’ve spent 2 whole days reading everything that I could find about the program. I’ve started reading about a lot of Community Bridge project ideas, updating resumes, writing cover letters and I ended up applying to 2 projects: Linkerd’s Granular RBAC for Metrics and KubeVirt’s Improve Observability.

In the process, I’ve entered a bunch of slack channels and just started asking the maintainers how could I help their projects. One week later I got my first PRs merged into Prometheus and Linkerd… It was just some small docs that needed to be updated, but hey, we all gotta start somewhere, right? It still made me happy!

Following the program’s schedule, on May 20th I was so anxious that I was looking at every PR merged on the CNCF/mentoring project and found out that I’ve passed on the program before my mentors notify me.

Project Specification

KubeVirt extends Kubernetes by adding additional virtualization resource types (especially the VM type) through Kubernetes's Custom Resource Definitions API. By using this mechanism, the Kubernetes API can be used to manage these VM resources alongside all other resources Kubernetes provides.

So if I was supposed to explain KubeVirt really shortly, it makes possible to run VMs on top of a K8s cluster.

To make it possible, KubeVirt uses a lot of containers to add business logic to the cluster. These containers run as additional controllers and agents at the cluster’s nodes.

Not just running VMs, KubeVirt is also able to make VM migrations, and more functionalities are being implemented, like creating VMs snapshots for example.

However, its observability is weak right now. If you are a “KubeVirt administrator”, you are probably having a hard time to keep track of how well the migrations are going. Even the VMs are quite hard to monitor since it does not give you too many metrics to work with right out of the blue.

The project I’m responsible for aims to improve the KubeVirt observability. I will have to understand all its components and implement new metrics to be exposed to a prometheus-metrics-endpoint . Then, it will be possible to create alerts and dashboards like this one above.

To accomplish my goals, I will have to study a lot to understand KubeVirt codebase and its components and I couldn’t be more excited about it. Surely it will be an awesome experience and I hope I won’t disappoint the community!

See y’all in the next week.

Open source and observability enthusiat :)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store