Flyte 1.9: ArrayNode, Execution Tags, New Navigation and More
We're thrilled to introduce Flyte 1.9! This release introduces two experimental features, along with a fresh UI navigation and bug fixes. Let's explore the highlights!
ArrayNode map tasks
This feature is currently being introduced in an experimental capacity. We value feedback from the community to enhance and refine the feature further.
ArrayNode map tasks serve as a seamless substitution for regular map tasks, differing solely in the submodule utilized to import the `map_task` function. Specifically, you will need to import `map_task` from the experimental module as illustrated below:
Flyte introduces `map_task` to enable parallelization of homogeneous operations, offering efficient evaluation and a user-friendly API. Because it’s implemented as a backend plugin, its evaluation is independent of core Flyte logic, which generates subtask executions that lack full Flyte functionality. ArrayNode tackles this issue by offering robust support for subtask executions. It also extends mapping capabilities across all plugins and Flyte node types. This enhancement will be a part of our move from the experimental phase to general availability.
In contrast to map tasks, an ArrayNode provides the following enhancements:
- Wider mapping support. ArrayNode extends mapping capabilities beyond Kubernetes tasks, encompassing tasks such as Python tasks, container tasks and pod tasks.
- Cache management. It supports both cache serialization and cache overwriting for subtask executions.
- Intra-task checkpointing. ArrayNode enables intra-task checkpointing, contributing to improved execution reliability.
- Workflow recovery. Subtasks remain recoverable during the workflow recovery process. (This is a work in progress.)
- Subtask failure handling. The mechanism handles subtask failures effectively, ensuring that running subtasks are appropriately aborted.
- Multiple input values. Subtasks can be defined with multiple input values, enhancing their versatility.
We expect the performance of ArrayNode map tasks to compare closely to standard map tasks.
A note for Flyte enthusiasts: ArrayNode encompasses a definition for the mappable subnode, working with collections of input/output lists and seamlessly integrating into the existing Flyte DAG, akin to any other node type. Consequently, a `map_task` executes entirely within FlytePropeller, employing the existing node traversal mechanism rather than comprising a separate plugin.
Execution tags
This feature is currently being introduced in an experimental capacity. We value feedback from the community to enhance and refine the feature further.
Execution tags allow users to discover their executions and other Flyte entities more easily, by creating smarter groupings. While we’re working to highlight the feature in a future release of FlyteConsole, it is currently supported via FlyteRemote.
You can create execution tags using the following commands:
To retrieve the tags using FlyteRemote, follow these steps:
New navigation and breadcrumb
Mobile navigation
In our ongoing efforts to provide a seamless user experience, we have made significant improvements to our mobile navigation. We understand the importance of easy navigation on small screens, so we've carefully redesigned certain aspects of our user interface.
We have taken a closer look at elements like tables and execution details, ensuring they are now fully adapted to the constraints of smaller screens. Additionally, we've fine-tuned the padding and margin settings throughout the interface to ensure a visually pleasing and user-friendly experience.
New desktop navigation
We have added a fresh vertical navigation style to our application. You can now choose to enable or disable it using a feature flag.
New page header, breadcrumb navigation
We have revamped the header in the app to offer quick access links throughout. Now, right from the execution page, you can conveniently reach the associated task or workflow entity that initiated the execution. Plus, we've introduced several other improvements to enhance your overall user experience.
Feature flags
You can now toggle feature flags directly from the URL query parameters. For instance:
- To enable the new horizontal layout, use: https://example.com/console?horizontal-layout=true
- To enable breadcrumbs, use: https://example.com/console?breadcrumbs=true
New navigation style
- Feature Flag: horizontal-layout=true
- Env Variable: HORIZONTAL_LAYOUT
New page header, breadcrumb navigation
- Feature Flag: breadcrumbs=true
- Env Variable: BREADCRUMBS
Custom breadcrumbs
Tailor your experience in the FlyteConsole by adding your own breadcrumbs. For instance, you have the ability to create breadcrumbs that exclusively display workflows featuring input variables in the dropdown menu.
You can find more info on creating your own breadcrumbs here:
- Breadcrumb definitions: https://github.com/flyteorg/flyteconsole/blob/master/packages/console/src/components/Breadcrumbs/registry/contextualDefaults.ts
- Breadcrumb interface types:
https://github.com/flyteorg/flyteconsole/blob/master/packages/console/src/components/Breadcrumbs/types.ts
Docs improvements
- Notifications guide: Now available — a step-by-step guide to help you set up notifications on your demo cluster. You can now effortlessly employ the email sender feature within the demo cluster, eliminating the need for Google Pub/Sub or SNS integration
- Improved plugin setup guide: We have upgraded our plugin setup guide to include instructions for deployments created using both the flyte-binary and flyte-core Helm charts
Other enhancements
- PyTorch elastic plugin: Added `rdzv_configs` to `flytekitplugins.kfpytorch.Elastic`
- Log link templates: More task execution metadata variables now available
- Agent-service plugin: Customized gRPC config support added
Check out the full release notes here.
1.9 contributors
We extend our heartfelt gratitude to all the contributors who have made invaluable contributions to Flyte 1.9. Thank you for your dedication and support!
{{contributors-1-9="/blog-component-assets"}}
We highly value the feedback of our users and community members, which helps us to improve our product continuously. To connect with other users and get support from our team, we encourage you to join our Slack channel. For updates on product development, community events, and announcements, follow us on Twitter to join the conversation and share your thoughts.
In case you encounter any issues or bugs, we request you let us know by creating a GitHub issue. If you find Flyte useful, don't forget to ⭐ on GitHub.