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

Evaluate AsyncSSH as a replacement for Paramiko + asyncio thread executor #9

Closed
nchammas opened this issue Oct 5, 2015 · 2 comments

Comments

@nchammas
Copy link
Owner

nchammas commented Oct 5, 2015

Right now Flintrock doesn't really use the full power of asyncio. We cheat by making regular SSH calls using Paramiko in asyncio's thread executor. So all we get out of asyncio right now is perhaps a nicer API to the threading library.

The real reason Flintrock uses asyncio is that, as an orchestration tool, it manages remote resources. That means, fundamentally, Flintrock's main job is to do I/O against multiple servers across the network as quickly as possible. Most of Flintrock's interactions with the cluster nodes it manages are carried out over SSH. (The major exception is perhaps the work it does talking to the cloud provider.)

This use case sounds exactly like what asyncio is for.

AsyncSSH is a library that offers SSH over asyncio. It would replace both Paramiko as well as our use of the asyncio thread executor. More importantly, it promises to offer asynchronous SSH without the burden of threading.

I've had my eye on it for some time and have experimented with it on several occasions. The API is clean and the maintainer is active and responsive.

I want to seriously evaluate AsyncSSH as a replacement for Paramiko + thread executor, focusing on the following factors:

  1. Does it make Flintrock easier to maintain, or at least not more complicated to maintain?
  2. Does it make cluster operations, especially cluster launches, faster? How much faster?
  3. What is the risk to depending on this relatively new library that does not yet have as much adoption or popularity as Paramiko?
@nchammas
Copy link
Owner Author

FYI: My work on this will have to wait until I can get through the issues described in this comment.

@nchammas
Copy link
Owner Author

I gave this a shot some time ago in #77 and didn't succeed. It's probably worth another shot now since AsyncSSH has matured quite nicely since then, however I don't feel the payoff justifies the cost of doing this work. Flintrock works well as it is, and there are plenty of other things to work on with a higher payoff, whether from a maintenance perspective, like #70 or #157, or a user perspective, like #27.

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

No branches or pull requests

1 participant