MAAS UI: Improving the performance of MAAS UI

Summary

In this (2-weeks) iteration, our MAAS team are focusing on what we can do to improve the performance of MAAS UI. In the previous releases, we have noticed that one of the biggest pain points in MAAS UI is that the machine list can take a long time to load. Especially, when there are more than 1000 machines. So this iteration, we looked into different ways to assuage the performance issue from the API perspective, the UI perspective, and the UX perspective. In the section below I will only cover topics that we have worked on from the UI and UX perspective.

User interaction perspective

From the User Experience and Interaction point of view, @eden, our Senior UX Designer, has been exploring some of the common behaviours in our Machine listing page based on the feedback we received in discourse and previous research sessions. He has broken down some of the odd behaviours when interacting with the UI and how MAAS users tackle these problems.

The image below is the analysis of the most common actions ranked by popularity. From here some of things we want to know are

  • how common it is to use the search and filtering tool?
  • what are some common things people search for?
  • how the naming convention is structured to help with search?
  • Can we display the machine list differently?

At the moment, we haven’t had a solid or approved solution yet. We will follow up with the team next week to understand what we can do right now to improve the performance in the UI.

UI perspective

From the UI perspective, @petermakowski, our Senior Web Engineer, has created a quick prototype as a PoC for what the UI could look like if we can customise the columns. We think that one way to reduce the load is to reduce the data shown, by requesting lesser data.

On top of that, @huwshimi, our Senior Web Engineer, also created a prototype to measure our UI performance using the Sitespeed, the JS library, to monitor and measure the performance of our UI.

These are some of the exploration and prototype work that we have done this week on the UI side. If MAAS UI performance is one of your biggest pain points too, tell us about it!

We would love to learn more about how we can improve the performance in the UI. Tell us how you are currently using the search and filtering tool on the Machine listing page, what are the things that you are struggling with, and how you currently tackle it? Or any other pain points that you would like us to look into :smiley:

3 Likes

I wanna use the serial number to find the machine.
Now I have nearly 6,000 physical machines deployed through Maas, and I’ve divided them into five clusters based on regions.

So I’ve encountered more than 2,000 servers in a single region and it takes a long time to load.When I need to search for a machine, I need to search through five regions.
Although the query speed was optimized in version 2.9 but I think it can get better.
The current solution is to write a program that periodically caches the list of servers in all clusters to help me find the BMC Information and the serial number information.
I am glad that the community is willing to face up to this problem and make improvements, and thank you for all that you have done.

1 Like

We change the machine’s MAAS hostname to its serial number when we enlist machines so we can search them directly, but the sheer number of machines we manage still makes it a long wait.

1 Like

@amylily Has your team considered at least loading machines into the UI in the reverse order they were added to the database? I am usually interested in working with a machine I added recently versus one I added three years ago.

Good question. As far as I know, we have a way to re-order the list in the UI (from newest first). But, I’m not sure if that’s how it works in the database. However, in the past week, we have rewritten some part of the Websocket API (for our MAAS UI) to handle search, filtering, ordering, grouping, as well as pagination.