QUADS is a framework for providing automated future scheduling, documentation, end-to-end provisioning and assignment of servers and networks. QUADS is used primarily in the Red Hat Performance Engineering R&D labs to manage large sets of constantly changing bare-metal systems and networks.
We wrote QUADS because there was no solution for pulling together provisioning, automation and future scheduling of large sets of systems and network resources the way we use them in fast-paced, shared R&D environments with a tremendous amount of change and demand.
We needed something that handled the full lifecycle of deployment, validation, automated documentation and asset reclamation for many parallel, disparate scale/performance workloads in our R&D labs that changed hands often, to many groups and many other Engineers all the time.
QUADS grew over time into a full-blown Open Source project, starting with a single Python script and some expect and shell tools to automate those repetitive, time-consuming and error-prone aspects of our jobs better left for software to tackle.
QUADS allows a very small team to fully automate the networks/systems administration and documentation overhead of slicing-and-dicing large swaths of baremetal infrastructure that require rapid change and varied temporal ownership by flexibly scheduling unlimited, complex allocation actions to happen in a tightly controlled set of schedules in the future so you can spend your time doing other things.
Future Asset Scheduling as a Service
Below is an example of a multi-month view of Red Hat’s Performance and Scale R&D lab using QUADS to slice n’ dice up systems/network infrastructure to automatically build, deploy and reclaim varied, isolated workload assignments for disparate Engineering teams and products.
- Provisioning, validation, deployment and ultimately reclamation to shift systems/network resources into other varied purposes based on a schedule all happen automatically when the future time comes as entered into QUADS.
Visualizations of Past, Current and Future Assignments
- View all past, current and future availability of QUADS-managed systems via the auto-generated heat map visualization.
Readiness and Validation
- All predefined system assignment schedules (clouds) go through systems and network validation prior to being automatically released to their tenants.
QUADS Project Details
- Language: Python
- License: GPLv3
- Documentation: Github
- Installation Methods: RPM, Docker Compose, Github source
- Platforms: Linux, BSD, OSX
- Requirements: QUADS works best with the Foreman as your primary systems lifecycle management platform but can be used as a standalone future infrastructure asset scheduler and dynamic resource visualizer.
Typical Architecture in Containers
Below is a high-level summary of the architecture in a container-based deployment.
Core Development Team
You can find us on #quads on irc.freenode.net. Click here to join via a web browser.
- Will Foster
- sadsfae on IRC & Github
- Kambiz Aghaiepour
- kambiz on IRC, kambiz-aghaiepour on Github
- Gonzalo Rafuls
- grafuls on IRC & Github
EuroPython 2017 Presentation