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

Update deployment overview docs #17612

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Update deployment overview docs #17612

wants to merge 1 commit into from

Conversation

seanpwlms
Copy link
Contributor

Updates deployment overview page to add more context and explanation.

Checklist

  • This pull request references any related issue by including "closes <link to issue>"
    • If no issue exists and your change is not a small fix, please create an issue first.
  • If this pull request adds new functionality, it includes unit tests that cover the changes
  • If this pull request removes docs files, it includes redirect settings in mint.json.
  • If this pull request adds functions or classes, it includes helpful docstrings.

Copy link
Collaborator

@zzstoatzz zzstoatzz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a couple comments to start - one question: why remove the .deploy example?

I think if we want to keep this page conceptual we should at least link to some concrete examples for those who are looking for immediate answers on how to make deployments

---

Deployments allow you to run flows on a [schedule](/v3/automate/add-schedules/) and trigger runs based on [events](/v3/automate/events/automations-triggers/).
A deployment is a server-side store of metadata that enables remote orchestration. It defines when, where, and how a workflow should run.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

personally, I think this opening sentence is more vague than it was before. "enables remote orchestration" of what? I know that we follow up with "a workflow" but since currently deployments are server-side configuration records for flows specifically, I think we should remain concrete in our description.

- [scheduling](/v3/automate/add-schedules): You can set deployments to run manually, on a schedule, or in response [events](/v3/automate/events/automations-triggers).
- Remote management: Deployments expose an API and UI that allow you to trigger new runs, cancel active runs, pause scheduled runs, and customize parameters remotely.
- Infrastructure configuration: Deployments inherit infrastructure settings from work pools, which can be overridden at creation or runtime.
- Metadata storage: They store important information about the flow, enabling remote orchestration and management.
Copy link
Collaborator

@zzstoatzz zzstoatzz Mar 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this last bullet distinct from the existing ones?

- dynamically provision infrastructure with [work pools](/v3/deploy/infrastructure-concepts/work-pools) - optionally with templated guardrails for other users
One of the core use cases for creating a deployment is to run flows on a schedule. However, deployments do not create or schedule flow runs.
If a deployment specifies a schedule, a Prefect server (or Prefect Cloud) creates and schedules flow runs.
A lightweight polling process called a [worker](/v3/deploy/infrastructure-concepts/workers/) polls the server for scheduled runs and submits those flow runs as jobs to your infrastructure.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

imo "jobs" language makes sense in a kubernetes context, but not necessarily in general

Suggested change
A lightweight polling process called a [worker](/v3/deploy/infrastructure-concepts/workers/) polls the server for scheduled runs and submits those flow runs as jobs to your infrastructure.
A lightweight polling process called a [worker](/v3/deploy/infrastructure-concepts/workers/) polls the server for scheduled runs and submits those flow runs to your infrastructure.

[Work pools](/v3/deploy/infrastructure-concepts/work-pools/) allow you to switch between different types of infrastructure and to create a template for deployments.
Data platform teams find work pools especially useful for managing infrastructure configuration across teams of data professionals.
### Prototyping and local processes
To run flows in a local process, there are two options. The `.serve()` method can be useful for prototyping quickly; it couples the creation of a deployment and the creation of a process worker. Use a worker with a [process work pool](/v3/deploy/static-infrastructure-examples/docker) on long-lived remote infrastructure, such as a VM or EC2 instance.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

its confusing to me that we'd say "long-lived remote infrastructure" in a section titled "local processes"


<Note>
**You don't have to commit to one approach**
Only the Python SDK supports the `.serve()` method. While deployments cannot be created via the UI, they can be edited, or deleted. Prefect.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hrm, stray Prefect here?

Suggested change
Only the Python SDK supports the `.serve()` method. While deployments cannot be created via the UI, they can be edited, or deleted. Prefect.
Only the Python SDK supports the `.serve()` method. While deployments cannot be created via the UI, they can be edited, or deleted. Prefect.

- Highly decoupled setups are possible.
- You want to programmatically create deployments
- You're integrating deployment creation into existing Python scripts
- You prefer a more imperative approach to deployment definition
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- You prefer a more imperative approach to deployment definition
- You prefer an imperative approach to defining deployments

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

Successfully merging this pull request may close these issues.

2 participants