Simplifying QUADS Architecture in 2.1

Big design improvements are coming in QUADS 2.1 by completely removing our WordPress component and bringing everything directly back to Flask / quads-web.  This greatly reduces our design complexity and adds a plethora of foundational improvements for future features.

What’s Changing?

Over the course of ~5 months of parallel development up to and through the 2.0 release of QUADS we rewrote all of the functionality previously provided by WordPress (automated wiki/inventory/etc) in pure Python, Flask and Jinja2.  This resulted in some of the following changes and improvements:

  • Complete removal of the WordPress component/dependency from QUADS
  • Removal of large parts of the code-base dedicated to automating the sync of QUADS status/wiki/inventory over the WordPress XMLRPC/Python API.
  • The quads-web service will now handle our dynamic inventory and wiki component directly via Flask
  • You can find the full patchset here in the 2.1 branch.
  • 58 files changed, +1015 lines added, -1806 lines removed so far.

Benefits and Features

  • Huge reduction in code complexity, size and configuration requirements
  • Removal of the need for quads –regen-wiki and delayed wiki/inventory updates
  • Simplification of architecture and design
  • Reduction of QUADS required resources (VM’s infra) by half, now only a single QUADS host is needed if you have a Foreman
  • Ability to manage your own static content and auto-generate navigation menus
  • Sets the foundation for serving additional UI features directly from QUADS
  • Much easier adoption for new users

Architecture Overview

This is what the QUADS 2.1 architecture looks like now:

 

When is this Available?

  • This feature is in Alpha and available via the 2.1.x quads-dev RPM package
  • We hope to have a stable 2.1.0 release in a few weeks

 

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.