Key capabilities
Now that you understand the core concepts – TaskEnvironment, tasks, runs, and apps – here’s an overview of what Flyte can do. Each capability is covered in detail later in the documentation.
Environment and resources
Configure how and where your code runs.
-
Multiple environments: Create separate configurations for different use cases (dev, prod, GPU vs CPU) → Multiple environments
-
Resource specification: Request specific CPU, memory, GPU, and storage for your tasks → Resources
- Reusable containers: Eliminate container startup overhead with pooled, warm containers for millisecond-level task scheduling → Reusable containers
Deployment
Get your code running remotely.
- Cloud image building: Build container images remotely without needing local Docker → Container images
-
Code packaging: Your local code is automatically bundled and deployed to remote execution → Packaging
-
Local testing: Test tasks locally before deploying with
flyte run --local→ How task run works
Data handling
Pass data efficiently between tasks.
-
Files and directories: Pass large files and directories between tasks using
flyte.io.Fileandflyte.io.Dir→ Files and directories -
DataFrames: Work with pandas, Polars, and other DataFrame types natively → DataFrames
Parallelism and composition
Scale out and compose workflows.
-
Fanout parallelism: Process items in parallel using
flyte.maporasyncio.gather→ Fanout -
Remote tasks: Call previously deployed tasks from within your workflows → Remote tasks
Security and automation
Manage credentials and automate execution.
-
Secrets: Inject API keys, passwords, and other credentials securely into tasks → Secrets
-
Triggers: Schedule tasks on a cron schedule or trigger them from external events → Triggers
-
Webhooks: Build APIs that trigger task execution from external systems → App usage patterns
Durability and reliability
Handle failures and avoid redundant work.
-
Error handling: Catch failures and retry with different resources (e.g., more memory) → Error handling
-
Retries and timeouts: Configure automatic retries and execution time limits → Retries and timeouts
-
Caching: Skip redundant computation by caching task results based on inputs → Caching
-
Traces: Add fine-grained checkpoints within tasks for recovery and observability → Traces
Apps and serving
Deploy long-running services.
-
FastAPI apps: Deploy REST APIs and webhooks → FastAPI app
-
LLM serving: Serve large language models with vLLM or SGLang → vLLM app, SGLang app
-
Autoscaling: Scale apps up and down based on traffic, including scale-to-zero → Autoscaling apps
-
Streamlit dashboards: Deploy interactive data dashboards → Streamlit app
Notebooks
Work interactively.
- Jupyter support: Author and run workflows directly from Jupyter notebooks, and fetch workflow metadata (inputs, outputs, logs) → Notebooks
Next steps
Ready to put it all together? Head to First project to build an end-to-end ML system with training tasks and a serving app.