orchest
incubation-engineering
Our great sponsors
orchest | incubation-engineering | |
---|---|---|
44 | 18 | |
4,016 | - | |
0.2% | - | |
4.5 | - | |
10 months ago | - | |
TypeScript | ||
Apache License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
orchest
-
Building container images in Kubernetes, how would you approach it?
The code example is part of our ELT/data pipeline tool called Orchest: https://github.com/orchest/orchest/
-
Launch HN: Patterns (YC S21) – A much faster way to build and deploy data apps
First want to say congrats to the Patterns team for creating a gorgeous looking tool. Very minimal and approachable. Massive kudos!
Disclaimer: we're building something very similar and I'm curious about a couple of things.
One of the questions our users have asked us often is how to minimize the dependence on "product specific" components/nodes/steps. For example, if you write CI for GitHub Actions you may use a bunch of GitHub Action references.
Looking at the `graph.yml` in some of the examples you shared you use a similar approach (e.g. patterns/openai-completion@v4). That means that whenever you depend on such components your automation/data pipeline becomes more tied to the specific tool (GitHub Actions/Patterns), effectively locking in users.
How are you helping users feel comfortable with that problem (I don't want to invest in something that's not portable)? It's something we've struggled with ourselves as we're expanding the "out of the box" capabilities you get.
Furthermore, would have loved to see this as an open source project. But I guess the second best thing to open source is some open source contributions and `dcp` and `common-model` look quite interesting!
For those who are curious, I'm one of the authors of https://github.com/orchest/orchest
-
Argo became a graduated CNCF project
Haven't tried it. In its favor, Argo is vendor neutral and is really easy to set up in a local k8s environment like docker for desktop or minikube. If you already use k8s for configuration, service discovery, secret management, etc, it's dead simple to set up and use (avoiding configuration having to learn a whole new workflow configuration language in addition to k8s). The big downside is that it doesn't have a visual DAG editor (although that might be a positive for engineers having to fix workflows written by non-programmers), but the relatively bare-metal nature of Argo means that it's fairly easy to use it as an underlying engine for a more opinionated or lower-code framework (orchest is a notable one out now).
-
How do you deal with parallelising parts of an ML pipeline especially on Python?
We automatically provide container level parallelism in Orchest: https://github.com/orchest/orchest
-
Prefect vs other things question
If you’re looking for something with a great UI experience you can check out our open source project called Orchest. It might be what you seek from a simplicity perspective. https://github.com/orchest/orchest
-
Airflow's Problem
Argo is pretty amazing if you want to take advantage of the work Kubernetes has done to scale resource efficiently across a cluster of compute nodes.
If you’re looking for something that’s a bit more high level and friendly to expose directly to your data team (data scientists/data engineers/data analysts) you can check out https://github.com/orchest/orchest
You can think of it as a browser UI/workbench for Argo scheduled pipelines. Disclaimer: author of the project
-
How are you guys validating your data?
+1 on a lightweight version of GE to more easily make part of an existing pipeline. Would like it for internal use (our data pipelines), but also for our open source users (https://github.com/orchest/orchest).
- Apache Hop 2.0
-
I reviewed 50+ open-source MLOps tools. Here’s the result
You might want to add https://github.com/orchest/orchest/ to the Pipeline orchestration category (disclaimer: I work at the company making it)
incubation-engineering
-
Why Postgres RDS didn't work for us
However if you really want to optimize data currently residing in Postgres for analytical workloads, as the original comment suggests - consider moving to a dedicated OLAP DB like ClickHouse.
See results from Gitlab benchmarking ClickHouse vs TimescaleDB: https://gitlab.com/gitlab-org/incubation-engineering/apm/apm...
Key findings:
-
Automating Your Homelab with Proxmox, Cloud-init, Terraform, and Ansible
ansible: stage: configure image: alpine rules: - if: $ANSIBLE_SETUP_VM != "" && $ANSIBLE_SETUP_HOST != "" variables: ANSIBLE_HOST_KEY_CHECKING: "False" script: - apk add curl bash openssh python3 py3-pip - pip3 install ansible paramiko - ansible-galaxy collection install -r ansible/requirements.yml - curl --silent "https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/download-secure-files/-/raw/main/installer" | bash - mkdir /root/.ssh && cp .secure_files/ansible.priv /root/.ssh/id_rsa && chmod 600 /root/.ssh/id_rsa - ansible-playbook ansible/main.yml -i ansible/inventory --extra-vars vyos_host=$ANSIBLE_SETUP_VM --limit $ANSIBLE_SETUP_HOST,$ANSIBLE_SETUP_VM ```
-
Float Compression 3: Filters
Interesting to match with the observations from the practice of using ClickHouse[1][2] for time series:
1. Reordering to SOA helps a lot - this is the whole point of column-oriented databases.
2. Specialized codecs like Gorilla[3], DoubleDelta[4], and FPC[5] lose to simply using ZSTD[6] compression in most cases, both in compression ratio and in performance.
3. Specialized time-series DBMS like InfluxDB or TimescaleDB lose to general-purpose relational OLAP DBMS like ClickHouse [7][8][9].
[1] https://clickhouse.com/blog/optimize-clickhouse-codecs-compr...
[2] https://github.com/ClickHouse/ClickHouse
[3] https://clickhouse.com/docs/en/sql-reference/statements/crea...
[4] https://clickhouse.com/docs/en/sql-reference/statements/crea...
[5] https://clickhouse.com/docs/en/sql-reference/statements/crea...
[6] https://github.com/facebook/zstd/
[7] https://arxiv.org/pdf/2204.09795.pdf "SciTS: A Benchmark for Time-Series Databases in Scientific Experiments and Industrial Internet of Things" (2022)
[8] https://gitlab.com/gitlab-org/incubation-engineering/apm/apm... https://gitlab.com/gitlab-org/incubation-engineering/apm/apm...
[9] https://www.sciencedirect.com/science/article/pii/S187705091...
- ClickHouse Cloud is now in Public Beta
-
Dokter: the doctor for your Dockerfiles
I'll make sure to add support from 3.6 upwards! Issue: https://gitlab.com/gitlab-org/incubation-engineering/ai-assist/dokter/-/issues/4
-
MLFlow users, what would you want from an integration with GitLab?
I am currently keeping my backlog of ideas on this epic, and if you want to keep informed of changes I post biweekly updates. If you have any ideas or feedback, do reach out :D
I took a look at few different options, the main issue is that GitLab is ruby, while most options (like nbdime) are in python. It also needs to work by default, so zero effort for the user. What I did was create a markdown from each version, cleaning up a bit metadata and some noisy outputs, and diff them (https://gitlab.com/gitlab-org/incubation-engineering/mlops/rb-ipynbdiff). It's an MVP, but it works well enough and allows for diffing output as well (I will be adding some metadata back soon too). The next step is create a semantic diff algorithm over the JSON tree, and actually render the diffs per cell.
What is the experience you are looking for? You can execute a notebook as part of the CI using something like papermill, but you can't define a pipeline in the notebook (I did some explorations on how we could do that in https://gitlab.com/gitlab-org/incubation-engineering/mlops/poc/glyter/-/tree/poc)
What are some alternatives?
docker-airflow - Docker Apache Airflow
ploomber - The fastest ⚡️ way to build data pipelines. Develop iteratively, deploy anywhere. ☁️
hookdeck-cli - Manage your Hookdeck workspaces, connections, transformations, filters, and more with the Hookdeck CLI
n8n - Free and source-available fair-code licensed workflow automation tool. Easily automate tasks across different services.
label-studio - Label Studio is a multi-type data labeling and annotation tool with standardized output format
Node RED - Low-code programming for event-driven applications
ExpansionCards - Reference designs and documentation to create Expansion Cards for the Framework Laptop
parabol - Free online agile retrospective meeting tool
metaflow - :rocket: Build and manage real-life ML, AI, and data science projects with ease!
PostHog - 🦔 PostHog provides open-source product analytics, session recording, feature flagging and A/B testing that you can self-host.
jina - ☁️ Build multimodal AI applications with cloud-native stack
Kedro - Kedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipelines that are reproducible, maintainable, and modular.