lively-lunch-9285
04/16/2024, 11:37 PMlively-lunch-9285
04/17/2024, 12:32 AM@pypi_docker decorator which builds images instead of venvs.
c. Using Docker with metaflow is a burden for us because we need to create our own pipelines to build and publish images to ECR. This means that it’s difficult for example to create a DAG where every step uses a different docker image. And when you want to add even one additional library to an existing image… you can’t without publishing a whole new image (or pip installing at runtime). This encourages our team to create “super images” which attempt to contain every dependency a DS could ever need… which naturally results in images that are heavy. I’d like to point out that ClearML also uses the ZenML approach and I found it really intuitive to use—and it still abstracts the hardest parts about docker from the DS. It would also fix the limitation Metaflow currently has where you can’t install packages that don’t have wheels published (e.g. thrift) if you’re using other packages that do (e.g) pandas. This is a major pain point for us.
5. 1st class Pyproject.toml -- So far, Dagster is the only tool I know supports “proper packaging” AKA your code base having a pyproject.toml file. ClearML has a way to add a “pip install” as an “on startup” lifecycle action for that.
6. Non-class-based API: @step and @pipeline over pure functions as opposed to nesting everything under a class.
I think where Outerbounds still beats ZenML Cloud, Dagster, and ClearML (at least in our workflow) is
• remote workstations
• automatic right sizing of step compute,
• from what I could tell—better cost and compute analytics.
• Possibly some of the integrations like fast data loading from S3, pyspark, DBT, etc. but I haven’t used these features yetvictorious-lawyer-58417
04/17/2024, 3:24 AMvictorious-lawyer-58417
04/17/2024, 3:25 AM@card provides (1) to a degree but it can be improved (dig deeper into artifacts, don't just truncate etc)victorious-lawyer-58417
04/17/2024, 3:25 AMvictorious-lawyer-58417
04/17/2024, 3:26 AMvictorious-lawyer-58417
04/17/2024, 3:26 AMvictorious-lawyer-58417
04/17/2024, 3:29 AMrequirements.txt and pyproject.toml makes sense. When it comes to "proper packaging" in general, I'd argue that Metaflow goes beyond most other tool, as we snapshot the whole execution environment at the deployment time (akin to baking a Docker layer automatically), which gives much more stable environments than `pip install`'ing on the fly, which can fail in multitude of ways (been there, seen that)victorious-lawyer-58417
04/17/2024, 3:30 AMvictorious-lawyer-58417
04/17/2024, 3:32 AMfast-vr-44972
04/17/2024, 6:44 AMhelpful-baker-78647
04/17/2024, 7:40 AM