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

Request hot-reload func for the llama-deploy workflows #398

Open
ifreeman6 opened this issue Dec 10, 2024 · 4 comments
Open

Request hot-reload func for the llama-deploy workflows #398

ifreeman6 opened this issue Dec 10, 2024 · 4 comments

Comments

@ifreeman6
Copy link

What are the best practices for efficiently redeploying workflows with minimal downtime and maxmium effcience?

Current pain points:

  • Need to restart server for each workflow change
  • Full redeployment is time-consuming
  • Process interrupts service availability

I'm looking for:

  1. Methods to streamline the deployment process
  2. Techniques to reduce server restart frequency
  3. Solutions for faster workflow updates
@masci masci added this to Framework Dec 10, 2024
@masci
Copy link
Member

masci commented Dec 10, 2024

Hi @ifreeman6

Could you give me some more details about your setup? Are you using the apiserver or manually orchestrating the single workflow services?

@ifreeman6
Copy link
Author

Dear masci,

My usage case as follows :

  1. run the apiserver by python -m llama_deploy.apiserver
  2. deploy my workflow which has been declared in the llama_deploy.yml by llamactl deploy llama_deploy.yml

When I change my workflow, I must do the same operations again:

  1. cut down the apiserver (Ctrl + C)
  2. run the apiserver again (python -m llama_deploy.apiserver)
  3. re-deploy the workflow again (llamactl deploy llama_deploy.yml)

I want to know if has any convient hot-reload method that I can redeploy my workflow effciently?

Thanks very much!

@masci
Copy link
Member

masci commented Dec 10, 2024

Thanks for the extra context, that helps me a lot!

When I change my workflow, I must do the same operations again:

1. cut down the apiserver (`Ctrl + C`)

2. run the apiserver again (`python -m llama_deploy.apiserver`)

3. re-deploy the workflow again (`llamactl deploy llama_deploy.yml`)

There is this pending feature request that might mitigate the pain points #322 I'm happy to re-prioritize it!

Back to the previous message:

Current pain points:

* Need to restart server for each workflow change

* Full redeployment is time-consuming

With #322 these two can be improved because the underlying control plane and message queue service wouldn't be restarted, plus you wouldn't need to interrupt the process and the restart could be done via API calls.

* Process interrupts service availability

I'll try to make the restart of the workflow graceful and avoid to kill tasks mid-flight, but the real solution will only come with #357. Once we rewrite the apiserver logic on top of an orchestrator like k8s, service availability can be offloaded and managed better than what we can do from within Llama Deploy.

Let me work on #322, then we will re-evaluate if that fixes this issue.

@ifreeman6
Copy link
Author

ifreeman6 commented Dec 10, 2024

Got it. thanks for your timely reply. Hope this func could be available as soon as possible.

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

No branches or pull requests

2 participants