Role Strategy Plugin performance

Project goal: Improve performance of one of the most popular authorization plugins in Jenkins

Skills to study/improve: Java, Performance Testing

Role Strategy Plugin is widely used in Jenkins as an authorization engine, but it has known performance limitations for large-scale setups. In this project the proposal is to improve the plugin’s performance and to create a proper testing framework for Jenkins security plugins.

The project may include:

  • Perform profiling of the plugin, together with the mentor

  • Optimize memory and CPU usage by updating internal (refactor string operations, redesign APIs, etc.)

  • Introduce better caching logic for role groups and assignments

  • Setup test automation in order to verify the plugin’s performance in Jenkins pull request builds

See this JIRA query for more potential tasks for performance improvements.

Quickstart

  1. Create a Jenkins instance with many projects and user roles defined by the plugin

    • oleg-nenashev/demo-jenkins-config-as-code can be used as an example of such configuration

    • Configuration-as-code approach is recommended, because it may be needed to automate generation of roles, users and projects for this task

  2. Setup complex roles with heavy regular expressions, try to get visible performance degradation of the plugin

Newbie-friendly tasks

See this JIRA query. More issues can be added to the list if needed, please do not hesitate to ask in the task.

Potential Mentors

oleg nenashev Oleg Nenashev runzexia 夏润泽(RunZe Xia) pvtuan10 Pham Vu Tuan