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

In-place upgradable components through in-band channels #24

Open
gmerlino opened this issue Jun 23, 2015 · 1 comment
Open

In-place upgradable components through in-band channels #24

gmerlino opened this issue Jun 23, 2015 · 1 comment

Comments

@gmerlino
Copy link
Member

We need to be able to upgrade code piece-wise, especially critical parts, such as the WAMP communication subsystem, without disrupting the reachability of the remote boards, at all times.

This translates into:

  • in-place code replacement, where needed
  • in-band file transfer and upgrade

including fault-tolerant upgrades, such as, e.g., secondary WAMP client being up and working before shutting off the primary.

Self-contained executables and plugin-based logic is another essential enabler for this issue.

@flongo82
Copy link
Member

In the OpenStack version of the IoTronic we are introducing the concept of Lightning-rod module.

The Lightning-rod in its initial configuration should be as thin as possible, just being able to connect to the WAMP router and receive new modules to load. Each advanced functionalities (e.g., networking, plugins, drivers) should be implemented as a separate module. Moreover, the version of the Lightning-rod that has been implemented to interact with the OpenStack version of the IoTronic has already been implemented so that there is a main process that spawns a child process and monitor its life-cycle. If the child process crashes for any reason it is respawned. Moreover, when a change in the configuration file is triggered by the Cloud, the child process is killed and respawned so that the new configuration file is loaded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants