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

New worker for running job services in Snowpark Container Services #15674

Open
bjorhn opened this issue Oct 13, 2024 · 5 comments · May be fixed by #16393
Open

New worker for running job services in Snowpark Container Services #15674

bjorhn opened this issue Oct 13, 2024 · 5 comments · May be fixed by #16393
Labels
enhancement An improvement of an existing feature

Comments

@bjorhn
Copy link
Contributor

bjorhn commented Oct 13, 2024

Describe the current behavior

There is no worker suitable for running flows in Snowpark Container Services.

Describe the proposed behavior

A new worker is added, capable of running flows as job services in Snowpark Container Services.

I've already developed a worker that does this. It isn't ready for release yet, might take a couple of weeks, When it's ready, I'm wondering if it'd make more sense to release it as a PR into prefect-snowflake.

It would be great to hear what someone from the Prefect team thinks. If you're already planning to add this, perhaps my contribution can be a starting point. If not, I'll develop and maintain this on my own, as a 3rd-party package.

Example Use

Users could run their flows in Snowpark Container Services as an alternative to Kubernetes, Azure Container Instances etc.

Additional context

Snowpark Container Services seems to be a Kubernetes-based, Snowflake-managed job service, capable of handling both long-running "services" (with auto restarts etc) as well as short, one-off "job services". Job services seems like the best fit for a Prefect integration.

@bjorhn bjorhn added the enhancement An improvement of an existing feature label Oct 13, 2024
@desertaxle
Copy link
Member

desertaxle commented Oct 14, 2024

Hey @bjorhn! It's super cool to hear that you're developing a worker for Snowpark Container Services! I'm definitely open to exploring adding your implementation to prefect-snowflake. When you're ready, feel free to open a PR to prefect-snowflake and we can give it a look!

Also, if you run into any issues while developing the worker, feel free to comment on this issue and we can help!

@bjorhn
Copy link
Contributor Author

bjorhn commented Oct 22, 2024

The worker is done, since yesterday it's running all of our flow runs in our dev and test environments. If it stays stable, we will switch over to it for production work as well, hopefully in about a week. When we are confident it's running well in production, I'll create a PR to gather some feedback.

@cicdw
Copy link
Member

cicdw commented Dec 13, 2024

Hey @bjorhn ! Is your worker implementation in a state that you'd be comfortable sharing? Another group is building out a new worker type soon and I'd love to use your worker as another reference example.

@bjorhn
Copy link
Contributor Author

bjorhn commented Dec 13, 2024

I had to implement a temporary workaround for a problem I've since spoken with Snowflake's engineers about, so my plan was to wait until they push an API update that would let me remove the workaround, which is due in January.

I suppose it wouldn't do any harm to get the PR up anyway, it'll be a good opportunity to collect some feedback meanwhile. We have been running the worker in our production environment for 6 weeks now and it's been near flawless.

I should be able to get something up this weekend.

@bjorhn
Copy link
Contributor Author

bjorhn commented Dec 15, 2024

It's up!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement An improvement of an existing feature
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants