FlowFuse / flowfuse

Connect, collect, transform, visualise, and interact with your Industrial Data in a single platform. Use FlowFuse to manage, scale and secure your Node-RED solutions.
https://flowfuse.com
Other
278 stars 63 forks source link

Possibility to assign Devices Groups to a DevOps Pipeline #2989

Closed MarianRaphael closed 10 months ago

MarianRaphael commented 1 year ago

User Story

As a FlowFuse user, I want the ability to push a Snapshot through a DevOps Pipeline to a groups of devices, So that I can efficiently manage and update multiple devices simultaneously

### Requirements
- [ ] https://github.com/FlowFuse/flowfuse/issues/2902
- [ ] https://github.com/FlowFuse/flowfuse/issues/2756
- [ ] https://github.com/FlowFuse/flowfuse/issues/3183
MarianRaphael commented 11 months ago

What happens if a Device in a Group in in DEV mode? Warning pop-up and automatic switch to fleet mode

MarianRaphael commented 11 months ago

Next iteration: https://github.com/FlowFuse/flowfuse/issues/3142

Steve-Mcl commented 11 months ago

@MarianRaphael, @joepavitt , @Yndira-FlowForge

Firstly, My apologies if there are existing designs that I missed (I did look in the three linked issues)

Questions on design specifically around "Device Groups" that will soon block me - looking for direction please?

Image

  1. Device Group colour?
  2. What will we display in the stage?
    • Considering there could be a large about of devices, perhaps simple stats like:
      • Device Count pill
      • Targeted Count pill (the amount of devices with target snapshot set to that of the last pipeline deploy)
      • Active Count (the number of devices in the group that have the Active snapshot set to that of the last pipeline deploy)
  3. Should we have a stage AFTER a Device Group stage? Does it make sense?
  4. If yes to above ^ then what are the deployment actions and can this me a later iteration or is it MVP?
joepavitt commented 11 months ago
  1. Device Group colour?

I had assumed the same at the "Device Icon". The blue we use as a link, purple is for the dev mode. Green/Yellow have traffic light connotations, so I'd say keep the same. Happy to be overruled by @Yndira-FlowForge though.

  1. What will we display in the stage?

I'd agree with your ideas here. Although a user is then inevitably going to want to see which devices haven't been deployed to yet, although I guess that's accessible by going to the Device Group page anyway?

  1. Should we have a stage AFTER a Device Group stage? Does it make sense?

Good question as it's not clear what the selected action could do. There are no Device Group scoped Snapshots or anything, so I'd say, for now, nothing can go after a Device Group in a Pipeline. Thoughts @MarianRaphael?

MarianRaphael commented 11 months ago

Should we have a stage AFTER a Device Group stage? Does it make sense?

To make it as simple as possible in this iteration, no

Although a user is then inevitably going to want to see which devices haven't been deployed to yet

I have a follow-up story for this need: https://github.com/FlowFuse/flowfuse/issues/3142 But I agree just a small notification with the different numbers is a good idea:

Steve-Mcl commented 11 months ago
  1. Device Group colour?

I had assumed the same at the "Device Icon". The blue we use as a link, purple is for the dev mode. Green/Yellow have traffic light connotations, so I'd say keep the same. Happy to be overruled by @Yndira-FlowForge though.

@Yndira-FlowForge can you comment please?

IMHO, the device and device-group icons are so similar that habing the same colour makes it a little difficult to distinguish

image

Steve-Mcl commented 11 months ago

RE: Device Group status info

This is what I ended up achieving:

V1: Successful deployment

image

V1: Added another device to Device Group

image

V1: Partial deployment

image


This was discussed with Joe.

Although Joe knew what the numbers were, his instinct was to "add them up" and felt it was distracting / unclear.

After some discussion, Joe has asked that the "Target" and "Developer Mode" counts be removed.

This leaves us with this:

V2: A full pipeline deploy

image

V2: A NON fully active pipeline deployed group (status by inference)

image


@joepavitt tagged for his thoughts (as discussed)

@Yndira-FlowForge for your thoughts alternative design direction

joepavitt commented 11 months ago

We should also have a tooltip on the "3" to detail this a little further.

The listing of the states beyond just "Active" is confusing as it still doesn't give the full picture. My reasoning for just showing Active is that's what the user cares about here, so put it front and centre. The others were distracting.

To investigate why, they would need to click on the Device Group, and then in the "Devices" view, we need to list target/Active snapshot as per the existing Devices Browser. I know this is a followup action though, and not part of 1st iteration here

Steve-Mcl commented 11 months ago

We should also have a tooltip on the "3" to detail this a little further.

image

If the device count matches the active count, there will be no tootip

open to suggestions on wording

joepavitt commented 11 months ago

there will be no tootip

"All Devices running latest snapshot" in this case would be clearer.

open to suggestions on wording

Think as you have it is fine for now, but we change it to "Some devices not running latest Snapshot. View Device Group for more information" or something along those lines - maybe too wordy.

Steve-Mcl commented 11 months ago

or something along those lines - maybe too wordy

After a nights sleep and going back n forth, I have stumbled on the following wording that feels more "related" to piplines (since the status badge is driven by the pipeline deployed targetSnapshotId) 🤞

image

image

joepavitt commented 10 months ago

nailed it @Steve-Mcl 👍

Steve-Mcl commented 10 months ago

Staging verification: 20/12/2023

"Steve on Staging" team

Pipeline ops

Issues noted (follow up issues/tasks to be raised for each)

  1. Instance info missing if suspended:
  2. Empty State is displayed on pipeline when first navigated to
  3. Disabling Device Groups on team type leaves configured device group in a pipeline stage (still works, displays correctly etc, needs design discussion)