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

Create a high availability MQTT broker in DoES #1354

Open
MatthewCroughan opened this issue Dec 21, 2019 · 5 comments
Open

Create a high availability MQTT broker in DoES #1354

MatthewCroughan opened this issue Dec 21, 2019 · 5 comments
Assignees

Comments

@MatthewCroughan
Copy link

@MatthewCroughan MatthewCroughan commented Dec 21, 2019

https://medium.com/@lelylan/how-to-build-an-high-availability-mqtt-cluster-for-the-internet-of-things-8011a06bd000

Now that I'm getting proficient with k8s and docker, it's starting to seem simple enough to do at DoES between a few pi zeros. Seeing as the broker software is getting rather critical, it makes sense to divorce it from the existing setup, which is https://github.com/dynamicdevices/ming running on a single pi.

In an ideal world I would have the time to make MING entirely load balanced within the Balena configuration, then we could have a highly available MING on each Pi. Though for speed, I think it's best to simply run 3 Pi's with Mosquitto configured to be HA alone to reduce the complexity and workload for the time being.

@MatthewCroughan

This comment has been minimized.

Copy link
Author

@MatthewCroughan MatthewCroughan commented Dec 21, 2019

@MatthewCroughan

This comment has been minimized.

Copy link
Author

@MatthewCroughan MatthewCroughan commented Dec 21, 2019

This somewhat relates to #1213 in the sense that I've mentioned a HA MING.

@amcewen

This comment has been minimized.

Copy link
Member

@amcewen amcewen commented Dec 29, 2019

I don't think the MQTT broker is sufficiently critical that we need to introduce a lot more infrastructure overhead (documenting it all, training people up on k8s, docker and balena, etc.). If you want to play around with it yourself, that's ace, but I don't think the DoES MQTT infrastructure is the place for that.

@MatthewCroughan

This comment has been minimized.

Copy link
Author

@MatthewCroughan MatthewCroughan commented Dec 29, 2019

@amcewen Alright. The nature of mqtt is such that this doesn't matter anyway, I can set up mqtt-robust.local for example and then it would be up to anyone that wants to use such a setup in their client.

Though mostly, yes, this is just me wanting to play around with HA.

@MatthewCroughan

This comment has been minimized.

Copy link
Author

@MatthewCroughan MatthewCroughan commented Dec 29, 2019

Although if I do #1347 right, this will matter even less. Since there'll be a maintainer for every little thing that's setup that we can contact. Then it won't matter who set up mqtt.local if it breaks, because there might be mqtt-robust.local and mqtt-adrian.local for example that can be fallen back on until we fix any issues, and we'll know who maintains each one. I'm not suggesting we just apply that to mqtt alone, I'm saying it's a useful idea in general.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.