serokell / deploy-rs

A simple multi-profile Nix-flake deploy tool.
Other
1.35k stars 101 forks source link

Parallel Deploys #46

Open lovesegfault opened 3 years ago

lovesegfault commented 3 years ago

Would you consider allowing deploy-rs to deploy to multiple nodes simultaneously?

I wanted to attempt implementing that, but figured I'd check before so as not to end up wasting time.

notgne2 commented 3 years ago

Absolutely, but one thing to bare in mind is I would one day like to support deploying multiple profiles to the same node, which will require doing away with our profilesOrder attribute in favor of a dependency map.

I'm not suggesting you go through that hard work too (though I would obviously appreciate it), but if it ends up being relevant, if you could make your logic not too hard to develop into supporting paralell profile deployment that would make it easier for me in the future.

nrdxp commented 3 years ago

I've been playing with tokio threads lately so if the author would still like to start on this or has already please share and I'll try to help :smile:

This would really be an infinitely scalable solution for large deployments.

To @notgne2's point, I really don't think a simple implementation of proper profile dependency structure would be horribly difficult with the right mindshare :)

DieracDelta commented 3 years ago

I've also been playing around with tokio a bunch and would be interested in helping.

jzbor commented 1 year ago

I think a nice idea would be building in parallel (as this is the most work-intensive part) and deploying in serial to ensure low down times and some degree of determinism.