Maestro: Netflix's Workflow Orchestrator
Netflix introduces Maestro, a versatile workflow orchestrator on GitHub. Maestro handles large-scale workflows efficiently, supporting various use cases with scalability, reusable patterns, and configurable features. It simplifies workflow management and offers flexibility.
Read original articleNetflix has introduced Maestro, a workflow orchestrator now available to the public on GitHub. Maestro manages large-scale workflows like data pipelines and machine learning model training pipelines, supporting both acyclic and cyclic workflows with reusable patterns. The platform has successfully handled an 87.5% increase in executed jobs, launching thousands of workflow instances daily. Maestro offers scalability and versatility, managing various workflow use cases at Netflix efficiently. The orchestrator simplifies workflow management by preserving key properties across versions and supporting configurable retry policies. Maestro's workflow definition includes properties, versioned workflow metadata, and steps, allowing users to define complex workflows with parameters and expression language support. The platform offers different run strategies like sequential, strict sequential, first-only, last-only, and parallel with concurrency limit to automate data pipelines effectively. Maestro also provides building blocks like foreach loops, conditional branches, and subworkflows to define dataflow patterns easily. The platform's parameterized workflows strike a balance between static and dynamic workflows, offering flexibility and ease of management for users.
Related
'Meridian': Why Netflix Is Helping Competitors with Content and Code (2016)
Netflix created "Meridian," a 12-minute film for testing video codecs on 4K TVs. Shared under a Creative Commons license, it aids industry collaboration and promotes open source practices in Hollywood.
Netflix wants managers to ask whether they would rehire their employees
Netflix implements the "keeper test" for managers to assess employee retention. Emphasizing performance over unconditional support, the company values open communication, experimentation, and individual autonomy in its unique work culture.
Simple GitHub Actions Techniques
Denis Palnitsky's Medium article explores advanced GitHub Actions techniques like caching, reusable workflows, self-hosted runners, third-party managed runners, GitHub Container Registry, and local workflow debugging with Act. These strategies aim to enhance workflow efficiency and cost-effectiveness.
Show HN: Uniflow - A fast multipurpose workflow engine
Uniflow is a high-performance workflow engine known for managing tasks of varying lengths and allowing on-the-fly specification modifications. It seamlessly integrates new nodes for enhanced features. Find more details on Uniflow on its GitHub Repository.
Netflix has open-sourced its Maestro Workflow Orchestrator
Netflix's Maestro is a workflow orchestrator on their data platform, offering a managed service for scheduling workflows at scale. It caters to various users and streamlines complex workflow management.
- Comparison with other tools: Several comments compare Maestro to existing tools like Windmill, Temporal, Airflow, and ActiveBatch, highlighting differences in language, scalability, and features.
- Concerns about maintenance and adoption: Some users express skepticism about adopting new tools from large corporations due to potential lack of long-term support and the liability of maintaining custom code.
- Interest in open-source contributions: There is appreciation for Netflix's open-source efforts, though some question the practical impact and adoption of yet another orchestrator in a crowded space.
- Technical details and confusion: Comments discuss technical aspects such as the use of CockroachDB, Java, and comparisons to Netflix's previous tools like Conductor, with some confusion about the project's dependencies and versions.
- Desire for simplicity and usability: Users express a need for simpler, more user-friendly workflow orchestrators, especially for non-enterprise or single-server deployments.
I would rather use off-the-shelf open source stuff with long history of maintenance and improvement, rather than reinvent the cron/celery/airflow/whatever, because code is a liability. Somebody needs to maintain it, fix bugs, add new features. Unless I get +1 grade promotion and salary/rsu bump, ofc.
People need to realize that code is a liability, anything that is not the business critical stuff that earns/makes $$$ for the company is a distraction and resource sink.
Update: I just find it really interesting that many individuals in many companies like to build workflow engines. This is a not deriding comment towards anyone or Netflix in particular. To me, such observation is worth some friendly chitchat.
> Maestro is a general-purpose, horizontally scalable workflow orchestrator designed to manage large-scale workflows such as data pipelines and machine learning model training pipelines. It oversees the entire lifecycle of a workflow, from start to finish, including retries, queuing, task distribution to compute engines, etc.. Users can package their business logic in various formats such as Docker images, notebooks, bash script, SQL, Python, and more. Unlike traditional workflow orchestrators that only support Directed Acyclic Graphs (DAGs), Maestro supports both acyclic and cyclic workflows and also includes multiple reusable patterns, including foreach loops, subworkflow, and conditional branch, etc.
You could replace Maestro with Windmill here and it would be precisely correct. Their rollup is what we call the openflow state.
Main differences I see:
- Windmill is written in Rust instead of Java.
- Maestro relies on CockroachDB for state and us Postgresql for everything (state but also queue). I can see why they would use CockroachDB, we had to rollout our own sharding algorithms to make Windmill horizontally scale on our very large scale customer instances
- Maestro is Apache 2.0 vs Windmill AGPL which is less friendly
- It's backed by Netflix so infinite money but although we are profitable, we are a much smaller company
- Maestro doesn't have extensive docs about self-hosting on k8s or docker-compose and either there is no UI to build stuff, or the UI is not yet well surfaced in their documentation
But overall, pretty cool stuff to open-source, will keep an eye on it and benchmark it asap
[0] https://github.com/Netflix/conductor
[1] https://github.com/conductor-oss/conductor
[2] https://github.com/Netflix/maestro/blob/e8bee3f1625d3f31d84d...
Airflow may be robust but it is hidden behind a complexity fence that prevents most from seeing whatever its true capability may be. The same goes for other "open source" competitors.
Why can't someone just develop a robust DB backed GUI first system?
I have tried online services as well, they pale in comparison. I guess the cost of maintaining extensions is what kills simpler paid offerings?
Its a complete shame that ActiveBatch is walled off behind a stupid enterprise sales model. This has prevented this wonderful piece of software from being picked up by the wider community. Its like a hidden secret. :/
I'm looking forward to testing it out.
Folks making stuff open source and building in the open is obviously brilliant, but when it comes to "orchestrators" (as this is, and identifies) there is already so much that has been before (Airflow and so on) it's quite hard to see how this actually adds anything to the space other than another option nobody is ever going to use in a commercial setting.
Shameless plug: https://getorchestra.io
This is a critical software infrastructure I have been promoting for years yet almost everyone thinks they don't need it.
Related
'Meridian': Why Netflix Is Helping Competitors with Content and Code (2016)
Netflix created "Meridian," a 12-minute film for testing video codecs on 4K TVs. Shared under a Creative Commons license, it aids industry collaboration and promotes open source practices in Hollywood.
Netflix wants managers to ask whether they would rehire their employees
Netflix implements the "keeper test" for managers to assess employee retention. Emphasizing performance over unconditional support, the company values open communication, experimentation, and individual autonomy in its unique work culture.
Simple GitHub Actions Techniques
Denis Palnitsky's Medium article explores advanced GitHub Actions techniques like caching, reusable workflows, self-hosted runners, third-party managed runners, GitHub Container Registry, and local workflow debugging with Act. These strategies aim to enhance workflow efficiency and cost-effectiveness.
Show HN: Uniflow - A fast multipurpose workflow engine
Uniflow is a high-performance workflow engine known for managing tasks of varying lengths and allowing on-the-fly specification modifications. It seamlessly integrates new nodes for enhanced features. Find more details on Uniflow on its GitHub Repository.
Netflix has open-sourced its Maestro Workflow Orchestrator
Netflix's Maestro is a workflow orchestrator on their data platform, offering a managed service for scheduling workflows at scale. It caters to various users and streamlines complex workflow management.