openSUSE / mentoring

The openSUSE Developer Mentoring Program
http://101.opensuse.org
60 stars 49 forks source link

Extract and containerize Uyuni Salt event processor #210

Open rjmateus opened 8 months ago

rjmateus commented 8 months ago

Project Title:

Extract and containerize Uyuni Salt event processor

Description:

Uyuni is an open-source systems management solution that can be used to manage various Linux distributions using a powerful web UI and API.

Salt project is used for the communication and management layer. Data is transferred between servers and is minions in the form of events. The events that arrive on the Uyuni server need more processing than the ones performed by salt master.

The processing of Salt event cannot block the salt master. For this reason, salt is configured to save the salt events on the database to be asynchronously processed. Currently, the process responsible for this is Tomcat. However, tomcat should be focused on serving the web application and not processing the salt events.

This project is focused on extracting the salt-event processing to an external process and containerizing it. The extraction is partially done in here.

The major work will be focused on containerization and deployment using uyuni-tools project.

Deliverable:

Mentor:

@rjmateus @mackdk @renner

Skills:

Skill Level:

Medium,

Project Size:

Medium Sized Project (175 hours)

Get started:

eklaDFF commented 8 months ago

Hi @rjmateus , I am here after GSOC listing. I am not familiar with the Uyuni Project and it's services. Reading above description suggests like "as the events arrives to the Uyuni Server, processing of that Salt event by Tomcat blocks the the salt master. Now what have to do is to isolate that salt processing." I am very beginner to the Open Source Development, might I have misunderstood the task. Please let me know.

As I am in 2nd year of my college, but I do have interest in Computer System and experience in Java

rjmateus commented 8 months ago

Hey @eklaDFF thank you for your message. When events arrive to salt-master they are saved in the database and salt-master don't get blocked. Those events are then processed by a process running inside tomcat. However, tomcat is also responsible for serving the web application. The problem in this approach is the case of high load in event processing can impact the tomcat responsibility of serving the web application. What we plan to do is extract this event processing from inside tomcat to a dedicated container and remove it from inside tomcat and remove this dependency.

I hope I was able to explain it better. If you didn't get anything let me know

eklaDFF commented 8 months ago

@rjmateus I got it, thank you. Please let me know the next process or prerequisite before applying for GSOC Proposal. What resources might help me to create the proposal.

Sakshamgupta90 commented 8 months ago

Hi @rjmateus , I'm Saksham Gupta, a final year student from India, and I'm very interested in working on this project. While I'm currently not experienced in Uyuni Salt, but I'm eager to acquire new skills and learn. I believe that tackling projects with diverse tech stacks is the best way to enhance one's learning abilities, and I thrive in such environments:) Looking forward to the opportunity to contribute to this project! Is there any specific tasks that I need to do before sending the proposals? And what all I need to learn to work on this project? It would be much more helpful if you could provide me a brief regarding the same.

rjmateus commented 7 months ago

@eklaDFF You could play around with uyuni and have a good understand of it's internal. We have some presentations about it, like: https://www.youtube.com/watch?v=pQhkCSUTEkI This is a great presentation, but a bit old. Please ignore all the parts of "traditional stack"

rjmateus commented 7 months ago

@Sakshamgupta90 thank you for your interest. It would be great if you could experiment on deploying the product using the containerized version of it. Knowledge in Golang and containers would be great since the tasks are in that area.