quads icon indicating copy to clipboard operation
quads copied to clipboard

[RFE] Explore / Implement Optaplanner / OptaPy Support for AI Scheduling and Decision-Making

Open sadsfae opened this issue 3 years ago • 0 comments

This RFE will cover exploratory and R&D efforts into using optaplanner / optapy for optional offloading of AI-driven decision making for QUADS workload systems scheduling.

Problem Statement

We have incoming requests for allocations of sets of bare-metal servers which span across a dozen or more different vendor types, hardware configurations and capabilities. Each system has it's own future availability schedule.

We routinely play Tetris to find the most efficient future scheduling of sets of systems as far out into the future based on our backlog of requests. Having some kind of intelligent AI/automation that helps us make business logic decisions about what to schedule for whom, when and for what time frames would save us time and resources.

https://www.optaplanner.org/blog/2021/10/05/ANewAIConstraintSolverForPythonOptaPy.html

Screenshot_2022-05-13_12-47-45

Example Usage

  • OptaPy can analyze the current requests for new workloads and compare this to our available fleet and suggest optimal scheduling actions to take.
  • This may include generating the QUADS CLI commands required to schedule systems requests or ultimately to even do them for us.

Data Requirements

  • We should be prepared to provide more concrete weighting / ranking identifiers for a few things to make the use out of automated decision making in some data set to assist with workflow:
    • Business criticality / urgency (either by product, team or timeline specified by the requestor)
    • Workload characteristics (e.g. Ceph requires more spindles and 'storage-class' systems, RH Satellite requires 'compute-class')
    • Tapping into and expanding the QUADS metadata model for querying hardware characteristics
    • Refining of optional hardware requirements in the request form(s) we use
    • Making more use of JIRA labels for example to bridge gaps in attributes and qualities that help Optaplanner accuracy.

This would bring in a few extra dependencies including a JRE so we should work to make this an optional and preview feature until it's really gotten hammered into shape.

sadsfae avatar May 13 '22 11:05 sadsfae