Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Edge Agent #447

Closed
sammachin opened this issue Apr 6, 2022 · 6 comments
Closed

Edge Agent #447

sammachin opened this issue Apr 6, 2022 · 6 comments
Assignees
Labels
epic A significant feature or piece of work that doesn't easily fit into a single release scope:device Agent feature for Gateways and PLCs size:XL - 8 Sizing estimation point
Milestone

Comments

@sammachin
Copy link
Contributor

Description

The Edge Agent is an application that runs on the user owned edge hardware.

  • Once installed is is then configured with the address and credentials for a FlowForge server such that it can register as a device
  • In MVP the agent also installs the latest version of Node-RED
  • The Agent auto starts when the hardware is booted
  • The Agent then connects to the FF Server and awaits instructions.
  • The Agent is responsible for receiving a project push from the server and storing that data in the local filesysytem such that Node-RED can run the project.
  • The Agent is responsible for starting/stopping/restarting Node-RED in response to either a server command or a project push.
  • The agent should be built such that it can be installed on a standard linux distribution from the command line, and installs any dependencies eg NodeJS.
  • The agent should store its config for the FF server in the localfs.
  • When the agent is installed or upgraded it should look for this config file.
  • The Agent should run the (last copy of) the project even if it is unable to contact the FF Server
@sammachin sammachin added the epic A significant feature or piece of work that doesn't easily fit into a single release label Apr 6, 2022
@sammachin sammachin moved this to 📐 Design in ☁️ Product Planning Apr 6, 2022
@PLCMercenary
Copy link

on this topic of the edge agent / edge runtime there were a couple of ideas spitballed by the PLC OEM engineers. I have not seen these in any of the figures or notes or discussions since.

  1. automatic store and forward. their notion is that edge machines should have a no configuration store and forward buffer, any data that would normally traverse the broker should get buffered locally and if comms are lost, once reestablished, push all the buffered data to mqtt.
  2. live backup, flow load balancing or some sort of back-up task sharing
  3. Shared context at the FF level. or project context. possibly.. if that is some thing worth discussing.

@sammachin
Copy link
Contributor Author

Buffering data is a much larger consideration that just the edge agent, it could be implemented as part of Node-RED core or via the Nodes, I'll raise that as a separate feature request.

Same for load balancing, that would be a feature of FlowForge that would then need considering for the edge use case.

There is an epic for persistent context which mentions also sharing between projects although there are significant complexities in that. #212

@PLCMercenary
Copy link

Thanks Sam, I had not associated the persistent context with the discussion. just wanted to get those captured somewhere and not let them drop

@knolleary knolleary added the size:XL - 8 Sizing estimation point label Apr 7, 2022
@knolleary
Copy link
Member

I've put a largish sizing on this. There is a lot of basic core engineering needed to create the edge agent - and until the work is done to properly define the connectivity back to the platform, there is a degree of uncertainty in what will be needed in the edge agent.

@sammachin sammachin added this to the 0.6 milestone May 6, 2022
@sammachin sammachin moved this from 📐 Design to ✅ Ready in ☁️ Product Planning May 6, 2022
@sammachin sammachin moved this to Todo in 🛠 Development May 10, 2022
@knolleary knolleary moved this from Todo to In Progress in 🛠 Development May 16, 2022
@ZJvandeWeg
Copy link
Member

@knolleary @hardillb Should this issue be closed and move follow up items to: https://github.com/flowforge/flowforge-device-agent/issues?

@ZJvandeWeg ZJvandeWeg added the scope:device Agent feature for Gateways and PLCs label Jun 3, 2022
@knolleary
Copy link
Member

@ZJvandeWeg yes - that was the plan once we are happy we've completed the work needed for 0.6.

Given the current state of things, I think we are at that point. We will raise stories for the agent in the agent repo.

@knolleary knolleary moved this from In Progress to Done in 🛠 Development Jun 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic A significant feature or piece of work that doesn't easily fit into a single release scope:device Agent feature for Gateways and PLCs size:XL - 8 Sizing estimation point
Projects
Archived in project
Development

No branches or pull requests

5 participants