Cloud Native Data Orchestration For Machine Learning And Data Engineering With Flyte
May 23, 2022
auto_awesome
Joining the discussion are Ketan Umare, CEO and co-founder at Union, who initiated Flyte at Lyft, and Haytham Abuelfutuh, Union's CTO, who also built Flyte there. They dive into the complexities of data orchestration in machine learning, comparing traditional tools to Flyte's innovative engine on Kubernetes. The conversation highlights the architectural design for user-friendly workflows and applications of Flyte in diverse sectors, including biotech and gaming. They also discuss the balance between open-source principles and sustainable business models.
Flyte was developed out of necessity at Lyft to address the limitations of existing orchestration tools like Airflow for machine learning workflows.
The project emphasizes simplifying Kubernetes abstraction, enabling users to focus on workflow development rather than infrastructure management, enhancing scalability and reproducibility.
Community engagement and user feedback are crucial for Flyte's ongoing development, driving features that improve data quality, governance, and integration with other tools.
Deep dives
Introduction to Flight and Its Origins
Flight is an open-source, Kubernetes-native orchestration engine for data systems, born out of necessity while the founders were working at Lyft, where they faced challenges in efficiently delivering models for estimating travel times. Initially, a basic solution using existing tools like Airflow was too limiting for their complex requirements, leading to the development of their own system. As Flight evolved, it focused on the unique needs of machine learning workflows, enabling teams to deploy models consistently and rapidly, which dramatically increased user adoption across various departments. The project ultimately transitioned to an open-source model in early 2020, making it accessible for broader use in the community.
The Landscape of Workflow Engines
The current ecosystem of workflow engines has diversified, moving beyond Airflow as the de facto choice in data processing pipelines. This diversification highlights the specific shortcomings of existing tools, particularly in machine learning contexts where they often require complex workarounds. Flight aims to bridge the gap between traditional data orchestration and the demands of machine learning by providing a tool that simplifies the integration of various programming languages and execution environments. The emphasis lies on maintaining reliability and user-friendly orchestration to cater to evolving data processing needs.
Architecture and User Experience
Flight is designed to abstract away the complexity of Kubernetes, allowing users to focus on workflow development rather than infrastructure management. Its architecture promotes scalability and reproducibility, making it easy for users to deploy data workflows without needing to interact directly with Kubernetes APIs. By leveraging type safety and structured interfaces, Flight ensures that the workflows are robust and manageable, also reducing the friction typically encountered during development. This user-centered design approach enhances collaboration among teams, allowing data engineers, data scientists, and other stakeholders to work more effectively together.
Collaborative Ecosystem and Integration
The project fosters collaboration by enabling seamless integration with other tools and platforms for data management without the need to reinvent the wheel. Flight allows users to mix functionalities from various existing frameworks, such as leveraging tools for data transformations while simultaneously managing machine learning model training within the same environment. This ability to interoperate creates a more fluid experience for teams and enhances productivity by allowing user-defined workflows to remain domain-agnostic. Ultimately, this makes Flight a versatile choice for organizations aiming to optimize their data workflows and machine learning operations.
Future Directions and Community Impact
The ongoing development of Flight is deeply rooted in community engagement and responding to user feedback to ensure that it remains a relevant and effective tool for data orchestration. Future enhancements aim to simplify not just workflow execution but also improve data quality and governance capabilities inherently within the system. By actively integrating with metadata management solutions and providing features like version control and data lineage, Flight aspires to create a comprehensive ecosystem for machine learning workflows. This vision underscores a commitment to building a sustainable open-source project that drives innovation in the data management domain.
Machine learning has become a meaningful target for data applications, bringing with it an increase in the complexity of orchestrating the entire data flow. Flyte is a project that was started at Lyft to address their internal needs for machine learning and integrated closely with Kubernetes as the execution manager. In this episode Ketan Umare and Haytham Abuelfutuh share the story of the Flyte project and how their work at Union is focused on supporting and scaling the code and community that has made Flyte successful.
Announcements
Hello and welcome to the Data Engineering Podcast, the show about modern data management
When you’re ready to build your next pipeline, or want to test out the projects you hear about on the show, you’ll need somewhere to deploy it, so check out our friends at Linode. With their managed Kubernetes platform it’s now even easier to deploy and scale your workflows, or try out the latest Helm charts from tools like Pulsar and Pachyderm. With simple pricing, fast networking, object storage, and worldwide data centers, you’ve got everything you need to run a bulletproof data platform. Go to dataengineeringpodcast.com/linode today and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
This episode is brought to you by Acryl Data, the company behind DataHub, the leading developer-friendly data catalog for the modern data stack. Open Source DataHub is running in production at several companies like Peloton, Optum, Udemy, Zynga and others. Acryl Data provides DataHub as an easy to consume SaaS product which has been adopted by several companies. Signup for the SaaS product at dataengineeringpodcast.com/acryl
RudderStack helps you build a customer data platform on your warehouse or data lake. Instead of trapping data in a black box, they enable you to easily collect customer data from the entire stack and build an identity graph on your warehouse, giving you full visibility and control. Their SDKs make event streaming from any app or website easy, and their state-of-the-art reverse ETL pipelines enable you to send enriched data to any cloud tool. Sign up free… or just get the free t-shirt for being a listener of the Data Engineering Podcast at dataengineeringpodcast.com/rudder.
Data lake architectures provide the best combination of massive scalability and cost reduction, but they aren’t always the most performant option. That’s why Kyligence has built on top of the leading open source OLAP engine for data lakes, Apache Kylin. With their AI augmented engine they detect patterns from your critical queries, automatically build data marts with optimized table structures, and provide a unified SQL interface across your lake, cubes, and indexes. Their cost-based query router will give you interactive speeds across petabyte scale data sets for BI dashboards and ad-hoc data exploration. Stop struggling to speed up your data lake. Get started with Kyligence today at dataengineeringpodcast.com/kyligence
Your host is Tobias Macey and today I’m interviewing Ketan Umare and Haytham Abuelfutuh about Flyte, the open source and kubernetes-native orchestration engine for your data systems
Interview
Introduction
How did you get involved in the area of data management?
Can you describe what Flyte is and the story behind it?
What was missing in the ecosystem of available tools that made it necessary/worthwhile to create Flyte?
Workflow orchestrators have been around for several years and have gone through a number of generational shifts. How would you characterize Flyte’s position in the ecosystem?
What do you see as the closest alternatives?
What are the core differentiators that might lead someone to choose Flyte over e.g. Airflow/Prefect/Dagster?
What are the core primitives that Flyte exposes for building up complex workflows?
Machine learning use cases have been a core focus since the project’s inception. What are some of the ways that that manifests in the design and feature set?
Can you describe the architecture of Flyte?
How have the design and goals of the platform changed/evolved since you first started working on it?
What are the changes in the data ecosystem that have had the most substantial impact on the Flyte project? (e.g. roadmap, integrations, pushing people toward adoption, etc.)
What is the process for setting up a Flyte deployment?
What are the user personas that you prioritize in the design and feature development for Flyte?
What is the workflow for someone building a new pipeline in Flyte?
What are the patterns that you and the community have established to encourage discovery and reuse of granular task definitions?
Beyond code reuse, how can teams scale usage of Flyte at the company/organization level?
What are the affordances that you have created to facilitate local development and testing of workflows while ensuring a smooth transition to production?
What are the patterns that are available for CI/CD of workflows using Flyte?
How have you approached the design of data contracts/type definitions to provide a consistent/portable API for defining inter-task dependencies across languages?
What are the available interfaces for extending Flyte and building integrations with other components across the data ecosystem?
Data orchestration engines are a natural point for generating and taking advantage of rich metadata. How do you manage creation and propagation of metadata within and across the framework boundaries?
Last year you founded Union to offer a managed version of Flyte. What are the features that you are offering beyond what is available in the open source?
What are the opportunities that you see for the Flyte ecosystem with a corporate entity to invest in expanding adoption?
What are the most interesting, innovative, or unexpected ways that you have seen Flyte used?
What are the most interesting, unexpected, or challenging lessons that you have learned while working on Flyte?
From your perspective, what is the biggest gap in the tooling or technology for data management today?
Closing Announcements
Thank you for listening! Don’t forget to check out our other show, Podcast.__init__ to learn about the Python language, its community, and the innovative ways it is being used.
Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
If you’ve learned something or tried out a project from the show then tell us about it! Email hosts@dataengineeringpodcast.com) with your story.
To help other people find the show please leave a review on iTunes and tell your friends and co-workers