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

ideal flow for DevOps #2000

Merged
merged 3 commits into from
Jan 8, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions rsts/deployment/devops.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
.. _devops-ideal-flow:

Ideal Flow for DevOps
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this should not say devops, we can just say how to maintain a good workflow?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Now using the title: "How to Streamline Your Flyte Workflows"

---------------------

Flyte could be useful for many use cases, be it model training, data processing, ELT/ETL, or bioinformatics.
When workflows are built and deployed, be it in any domain, we may need automation to reduce human-in-the-loop to some extent;
essentially, to automate serializing and registering workflows, creating docker containers, etc.

Before diving into an example use case that explains how DevOps could power Flyte pipelines, let's look at some DevOps-style features Flyte ships with.

- Every DAG is versioned with Git commit's SHA, which is modifiable
samhita-alla marked this conversation as resolved.
Show resolved Hide resolved
- Tasks and workflows are immutable
samhita-alla marked this conversation as resolved.
Show resolved Hide resolved
- In the case of rapid iteration of code with no dependency modification, :ref:`deployment-fast-registration` can be used
- Multi-tenancy support through projects and domains
- Executions can be monitored using logs on :ref:`Flyte UI <ui>`

Lyft's Use Case
samhita-alla marked this conversation as resolved.
Show resolved Hide resolved
===============

Flyte powers more than 1 million model training and data processing executions per month at Lyft.
DevOps automation has been made part of Flyte pipelines to handle such a massive number of executions.

- Every time a new PR is created:

- A Docker container is built from the PR
- Tasks and workflows are registered with Flyte
- If dependencies are modified, PR securely builds the container again
- For just code changes, fast registration is used
samhita-alla marked this conversation as resolved.
Show resolved Hide resolved
- Once a PR is merged, the user simulates a deployment through a deployment pipeline
- At each stage of the deployment, tasks and workflows are registered with a specific domain in Flyte,
where each domain may change the data directory, associated roles, or some meta attributes like labels and annotations
- For production deployments, logs and metrics are automatically tracked, and models are promoted to serving infrastructure
- Users can use interactive notebooks to retrieve intermediate or final outputs, analyze data and automate various monitoring tasks

Thus, everything is automatically tracked. In fact, multiple users can create isolated PRs and test independently.

Implementing DevOps when running Flyte pipelines is essential when Flyte is deployed to production.
samhita-alla marked this conversation as resolved.
Show resolved Hide resolved
You could have a team of engineers working on various pipelines with continuous code iteration and deployment.
In such a case, we highly encourage you to incorporate automation to build Flyte pipelines.
This could help speed up your development, iteration, and deployment time!
9 changes: 9 additions & 0 deletions rsts/deployment/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,14 @@ solution). The following pages will help you effectively deploy and manage an en
^^^^^^^^^^^^
Flyte comes with a lot of things you can configure. These pages will walk you through the various components.

---
.. link-button:: devops-ideal-flow
:type: ref
:text: Ideal Flow for DevOps
:classes: btn-block stretched-link
^^^^^^^^^^^^
An example use case leveraging DevOps practices to run Flyte pipelines.


.. toctree::
:maxdepth: 1
Expand All @@ -79,3 +87,4 @@ solution). The following pages will help you effectively deploy and manage an en
sandbox
plugin_setup/index
security/security
devops