Bringing the Rubi to the Rubix-Kube

Mong Ting "Jenny" Gao
Aug 14 · 3 min read
Image for post
Image for post
Credit: Patrick Facheris

Intro to Rubix-Kube

Let’s start with a background check.

Rubix-Kube (a.k.a. rubix) is a Xandr framework that creates custom test environments called EZEs and deploys them using Kubernetes. If the terms above sound foreign to you or if you would like to know more about the tools mentioned, I recommend checking out the following resources:

- What is a Test Environment?

- What is Kubernetes?

Have you filled your cup of curiosity? Good. Let’s continue.

Test environments are great! Xandr EZEs are super great! Getting information about the EZE, on the other hand, not so great.

As useful as EZEs are, it is a major pain in the bottoms to figure out what settings the test environment was launched with. You need to either search through the rubix source code and do a mental merge of multiple template files or, launch the environment and run a couple of kubectl commands on the terminal. Pick your poison.

What’s with the Rubi?

Introducing Rubi-Kubi, the all-new advanced tech rubix cube that can change the world — wait, wrong script. Ignore the description.

Rubi-Kubi (a.k.a. rubi) is an intern project developed by yours truly to shed some light onto what applications and configurations that EZEs are being launched with. Users are able to look up “rubi reports” for a given rubix tag without having to launch the test environment.

The rubi report is a collection of metadata filtered from the configuration templates that the test environment would launch with. Rubi offers a user-friendly interface for users to search through and filter specific information from the rubi report.

Image for post
Image for post
Rubi-Kubi architecture

Key Learnings

Rubi is written in mainly Golang and ReactJS. The back-end component handles data fetching and data processing while the front-end handles the user interface and user interaction.

Coming from a C-heavy background, learning Golang was a new experience. I would go so far as to call it controversial (What do you mean the variable name comes before the type? You can do that???) But once I got over that little pet peeve, I fell in love with the syntax. Now I think that all C languages should adopt the Golang syntax.

ReactJS was a different story, as I did have some prior experience working with React components before this internship; but a good amount of time had passed since then, so there was a lot to review. One challenge that I wrestled with was trying to figure out how to re-render a separate component that was not directly related to the component that was being updated. In the end, I decided to create a parent component that encapsulated the two components so that they did share a point of connection. That allowed me to transfer information between the two components using props and state. Quite the React-ive solution, am I right? Okay, okay, I’ll stop.

Conclusion

Choosing Xandr for my first internship was a life-changing decision. I learned so much during my time here and I really enjoyed the interactions I had with my manager, my mentor, my team, and everyone that I had the fortune to meet and connect with. What I like the most about my Xandr experience was the open and diverse culture here that really made me felt like this was a place at which I would be motivated and enjoy working at. This summer has been one of the best summers I have experienced (ignoring the fact that there was a worldwide pandemic and other concerning issues going on at the time).

Thank you Xandr — for the unforgettable experiences, the invaluable connections, and the chance to do what I love.

About the Author

Mong Ting “Jenny” Gao is a rising senior majoring in Computer Science at Stony Brook University, NY. Her interests include karaoke, horror movies, and games (especially games).

Xandr-Tech

Our latest thoughts, challenges, triumphs, try-again’s…

Mong Ting "Jenny" Gao

Written by

Undergraduate Computer Science Student at Stony Brook University, NY

Xandr-Tech

Our latest thoughts, challenges, triumphs, try-again’s, most snarky and profound commit messages. Our proudest achievements, deepest darkest technical debt regrets (just kidding, maybe). All the humbling yet informative things you learn when you try to do things with computers.

Mong Ting "Jenny" Gao

Written by

Undergraduate Computer Science Student at Stony Brook University, NY

Xandr-Tech

Our latest thoughts, challenges, triumphs, try-again’s, most snarky and profound commit messages. Our proudest achievements, deepest darkest technical debt regrets (just kidding, maybe). All the humbling yet informative things you learn when you try to do things with computers.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

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