You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 21 Current »


The JBoss Community is planning to participate in Google Summer of Code in 2025.

All contributors & developers are welcome to participate in the https://summerofcode.withgoogle.com/ program with the JBoss Community. 

If you are a contributor looking forward to participating in the GSoC 2025 with the JBoss Community:

  • Feel free to browse the growing idea list below.
  • Please don't hesitate to contact the mentor(s) indicated in the proposal for any related clarification and to discuss proposals.
  • You can have a look at ideas list of previous years for inspiration.
  • Please see our contributor guide.
  • You may find a sample GSoC proposal document here which was for this idea.

Contributors: Please read the list above and also read our contributor guide.

A note to mentors

MENTORS: Red Hat employees can change this page directly to add ideas. Please be extra careful to not get other mentors' edits discarded.
Red Hatters should have linked their jboss.org account with Red Hat and can be checked on https://sso.jboss.org/login

Non-Red Hatters can add a comment to the page and admins will make sure the idea is added to the page.


Table of Contents

Administrators and Mentors

We will list the potential mentors in this place. For now, if you have any questions, please contact the GSoC administrators:

George Zaronikas (gzaronikas) and Sokratis Zappis (szappis AT redhat DOT com)

Communication channels

Gitter    : JBossOutreach/GSoC - Gitter 


Please take note - These channels are about generic doubts. For project-specific doubts you will need to contact project mentors and channels specified in the project description.


Idea template (for mentors)

Project title

Summary of idea:

-Idea

-Feature A

-Feature B

Knowledge prerequisite: Languages/Technologies goes here

Github repo:

Project size: medium (~175 hours) or large (~350 hours)

Skill level: Beginner/Intermediate/Advanced

Contact(s) / potential mentor(s): Mentor(s) name and contact details

Associated JBoss community project(s):

Idea Proposals


Kiali

Summary of idea: Improving Kiali UI and Developing the Backstage Plugin Integration

  • The Kiali project is an open-source service mesh observability tool that integrates with Istio to provide advanced visualizations and monitoring. The goal of this project is twofold:

    1. Enhance Kiali's User Interface (UI): Streamline and modernize the user experience, making it more intuitive and accessible for users.
      1. Design and implement an updated, more user-friendly UI.
      2. Focus on enhancing navigation, responsiveness, and accessibility.
    2. Develop a Backstage Plugin for Kiali: Integrate Kiali into Backstage, an open platform for building developer portals. This plugin will provide seamless access to Kiali’s features within the Backstage ecosystem, allowing developers to view and manage their service mesh directly from Backstage.
      1. Develop a Backstage plugin that integrates Kiali’s core functionalities.
      2. Provide options for users to access mesh-related metrics, traces, and visualizations directly from the Backstage interface.
      3. Include authentication mechanisms for secure access to Kiali’s data.
    3. Documentation and Tutorials
      1. Comprehensive documentation for both the UI changes and Backstage plugin.
      2. User guide and developer documentation to help others set up, contribute to, and extend the integration.
  • Image registry is QUAY.
  • Pipeline and builds are done by GitHub CI.

Outcome: The proposal will improve the usability and accessibility of Kiali while providing a new integration with the Backstage platform, enabling a broader range of users to interact with the Kiali tool.

Possible features for this project:

  • Adapt Kiali Wizards to new React purpose
  • Work in the backstage plugin area to add new components.
  • Developer community website to show stats
  • Write documentation

Knowledge prerequisite: React

Github repo: https://github.com/kiali/kiali

Project size: Large (~350 hours)

Skill level: Intermediate

Contact / potential mentors: Alberto Gutierrez (aljesusg@redhat.com | aljesusg@gmail.com)

Associated community projects: 


From Reactive to Proactive: AI-Enhanced Performance Insights in Kruize

Summary of Idea:

In dynamic containerized environments, predicting and preventing performance bottlenecks is crucial for maintaining efficiency and cost-effectiveness. Kruize provides container right-sizing recommendations based on performance metrics such as CPU and memory usage, collected from Prometheus. Currently, recommendations are generated using a percentile-based approach.

To enhance this, we propose integrating a time series and regression-based models into Kruize. These models will analyze historical performance data to generate more proactive, data-driven recommendations. The integration of these models will improve predictive accuracy, enable real-time and batch data processing, and ultimately help users optimize their infrastructure more effectively.

Possible features for this project:

  • Collect historical usage data from Prometheus, perform feature engineering (e.g., smoothing, normalization, trend extraction) to enhance model accuracy.
  • Store processed data efficiently for real-time and batch analysis.
  • Implement and train a time series model (e.g., ARIMA, Prophet, or LSTM).
  • Develop and evaluate a regression-based model (e.g., Random Forest, XGBoost).
  • Compare their performance in terms of prediction accuracy, latency, and robustness.
  • Integrate both models into Kruize to generate performance recommendations. 

Knowledge Prerequisite:

  • Languages: Python, Java, Shell Scripting 
  • Technologies: Scikit-Learn, Pandas, NumPy, Matplotlib
  • Machine Learning Concepts: Time Series Analysis, Regression Models, Forecasting
  • Experience with containerized environments, shell scripting and performance tuning is a plus.

GitHub Repository: https://github.com/kruize/autotune.git 

Project Size: Medium (~175 Hours)

Skill Level: Intermediate

Contact(s) / Potential Mentor(s): 

Associated Community Project(s):

EAT  - Testing Infinite Software Project Versions

Summary of idea:

The innovative part of EAT is creating the test once and testing with any version of the tested software. It may be firstly applied for the JBoss Servers, but, in general, a similar structure, can be used for creating tests about any software with multiple versions or for multiple software programs that have a part of the testsuite in common. EAT is a project under the ΙΔΕΑ statement.


Possible features for this project :

  • extend the existing EAT testsuite with latest JBOSS Community server snapshot
  • create an android mobile application tested with EAT
  • create an example combining EAT with MiliLib (https://github.com/Lkop/MiniLib) regarding the deployment part, in order to use the minimal deployment code
  • create an example of testing multiple mobile devices in parallel
  • the contributors are welcome to make their proposals


Project size: large (~350 hours)

Skill Level: Intermediate

Github repohttps://github.com/EAT-JBCOMMUNITY/EAT

Contact / potential mentor: Panagiotis Sotiropoulos (psotirop@redhat.com)

Associated JBoss community project: EAT (https://github.com/EAT-JBCOMMUNITY/EAT)

JWS Operator

Summary of idea:

  • JWS operator is an Openshift operator which makes deploying web applications in a containerized environment easier. The operator was developed for JWS, but it can be used with other container images with Tomcat. This project aims to extend the test suite to use images with Apache Tomcat, improve tests, and test coverage and ensure the operator runs smoothly on Kubernetes clusters.

Features:

  1. Check the existing dependencies on JWS images in the test suite.
  2. Replace JWS image usages with a public image based on Apache Tomcat
  3. Check the current operator feature coverage
  4. Add new tests if the coverage is not sufficient

Knowledge prerequisites: 

  • Languages: Golang or other programming language
  • Technologies: general concept of containerized applications and kubernetes

Github repo: https://github.com/web-servers/jws-operator.git

Project size: ~175 hours

Skill level: Intermediate

Contacts / potential mentors:

Associated JBoss community project: https://github.com/web-servers/jws-operator

Transactuations in ArjunaCore

Summary of idea:

ArjunaCore, the transactional engine at the heart of Narayana, was originally developed as a university project to provide researchers with an elastic testbed for experimenting with multiple transaction protocols and abstractions. Today, Narayana leverages ArjunaCore’s flexibility to support a wide range of transaction types, from standard Jakarta Transactions (AKA JTA) to Long Running Actions (LRA), covering multiple use cases and scenarios.

The requirements of new technologies, such as microservices, IoT, and cloud computing have introduced interesting challenges that push the boundaries of transaction management. As a consequence, ArjunaCore/Narayana needs to be developed to support new transaction models. In this regard, an innovative concept is "Transactuations", which introduces a runtime system called Relacs to execute transactions that exclude the Durability property of ACID.

This project explores how ArjunaCore’s flexibility can be utilised to implement and expand the Transactuations abstraction, with a focus on applications in cloud environments.

Reading: Narayana ; Transactuations

Possible features for this project:

  • Develop the Transactuation model in ArjunaCore
  • Test performance of the new transaction model vs existing ArjunaCore's transactions

Knowledge prerequisites: Distributed Transactions

Github repo: https://github.com/jbosstm/narayana

Project Size: Medium (~175 Hours)

Skill level: Intermediate

Contact / potential mentor: Manuel Finelli (jfinelli@redhat.com)

Associated JBoss community project: Narayana (https://www.narayana.io/)


Transaction interoperability in WebAssembly

Summary of idea:

WebAssembly provides a compilation target for code written in multiple languages including C, C++, and Rust, and uniquely standardizes the mechanism for function call interoperability and data sharing regardless of the component languages used.

Transaction standards define how components and business logic from different vendors can interoperate to guarantee data integrity. XA, a C-based API specification, is widely implemented by databases, message queues and application runtime platforms.

As an emerging platform, WebAssembly lacks such transaction support at present, limiting its usefulness in enterprises accustomed to this functionality.

In this project, with a focus on the premium open-source transaction manager Narayana, you will investigate how XA distributed transactions can be provided in the WebAssembly ecosystem, with a emphasis on interoperation between components written in different languages.

Reading: WebAssembly ; Extism ; Narayana

Possible features for this project:

  • Develop a database driver

Knowledge prerequisites: polyglot programming, distributed transactions, database drivers, virtual machines

Github repo: https://github.com/jbosstm/narayana

Project Size: Large (~350 hours)

Skill level: Intermediate

Contact / potential mentor: Manuel Finelli (jfinelli@redhat.com)

Associated JBoss community project: Narayana (https://www.narayana.io/)


Transactional Microservices in Webassembly

Summary of idea:

WebAssembly (WASM) is emerging as a language neutral compilation target for server-side microservices frameworks, offering good portability and small deployment footprints. Its web and database support is evolving rapidly, building on WASI, WASIX and the WASM component model. At this early stage many opportunities exist to add further foundational capabilities to the platform and shape its future.

MicroProfile’s Long-Running Action (LRA) protocol provides an open, interoperable standard for implementing transactional microservices. Enhancing existing WASM web support with LRA capabilities would increase its utility for business applications.

In this project, the student will craft an LRA participant in a language of their preference and use WebAssembly to make it available on the web, providing the world's first such example of using the platform in this way.

Reading: WebAssembly ; Spin ; Narayana ; LRA

Possible features for this project:

  • LRA participant

Knowledge prerequisites: polyglot programming, web services, distributed transactions, LRA protocol.

Github repo: https://github.com/jbosstm/narayana

Project Size: Medium (~175 hours)

Skill level: Intermediate

Contact / potential mentor: Manuel Finelli (jfinelli@redhat.com)

Associated JBoss community project: Narayana (https://www.narayana.io/)

  • No labels