HackerTrans
TopNewTrendsCommentsPastAskShowJobs

tchiotludo

no profile record

Submissions

[untitled]

1 points·by tchiotludo·há 2 anos·0 comments

Kestra raises another $8M for its open-source orchestration platform

techcrunch.com
7 points·by tchiotludo·há 2 anos·0 comments

[untitled]

1 points·by tchiotludo·há 3 anos·0 comments

[untitled]

1 points·by tchiotludo·há 3 anos·0 comments

Tech Salaries Parsing from 2020 to 2023 with DuckDB and Orchestrated with Kestra

kestra.io
3 points·by tchiotludo·há 3 anos·0 comments

Techniques You Should Know as a Kafka Streams Developer

kestra.io
2 points·by tchiotludo·há 3 anos·0 comments

[untitled]

1 points·by tchiotludo·há 4 anos·0 comments

[untitled]

1 points·by tchiotludo·há 4 anos·0 comments

[untitled]

1 points·by tchiotludo·há 4 anos·0 comments

Ask HN: Open-source with Kafka as dependencies, is this a instant turn off?

1 points·by tchiotludo·há 4 anos·0 comments

Debezium Change Data Capture Without Kafka Connect

medium.com
7 points·by tchiotludo·há 4 anos·0 comments

Show HN: Kestra - Open-Source Airflow Alternative

github.com
142 points·by tchiotludo·há 4 anos·69 comments

Kestra: Infinitely scalable open source orchestration and scheduling platform

github.com
7 points·by tchiotludo·há 4 anos·2 comments

comments

tchiotludo
·há 4 anos·discuss
All the issues described in this post lead me to create Kestra [0] . Airflow was a true revolution when it was open-source and we need thanks its innovation. But I totally agree that a large static dag is not appropriate in the actual data world with data mesh and domain responsibility.

[0] https://github.com/kestra-io/kestra
tchiotludo
·há 4 anos·discuss
First of all, the article published is a retrospective, we are talking from decision in 2019, we can't talk from the past that leed us for a choice?

Second, not all issues, some of them are fixed but there is still major issue, just dig google about issue scaling airflow on production, even with airflow 2, it's still complicated. Airflow still use a lot of CPU for doing nothing else than waiting for some api call. Just try to run 5000 tasks that sleep (simulation of an api call) in Airflow and we will see the challenge of scaling it.

Third, Airflow have still design issues that will not allow you to deal with some sort of pipeline.

Last one, I'm not here to fight against Airflow, some people love, some people hate it. We have take a completely different choice about designing and scaling data pipeline, I let people used what they like. For me, Airflow (and other workflow manager) doesn't fit.
tchiotludo
·há 4 anos·discuss
There is no documentation for that for now but it's not complicated:

- git clone the project

- ./gradlew executableJar

- cp build/executable/* docker/app/kestra

- docker build -t myimage .

In resume, you just need to have an image providing java 11 and start the executable build by gradle

hope it help
tchiotludo
·há 4 anos·discuss
Sorry, I didn't see your comment before. We provide 2 image tag, one with no plugins and one with all plugin, more information here ; https://kestra.io/docs/administrator-guide/deployment/docker...

In resume, all image exist with tag full containing all plugins
tchiotludo
·há 4 anos·discuss
Temporal.io is a really cool framework for building business process like managing microservice workflow (like paiement workflow: user pay, we call the shipping microservice, the billing microservice, ...) and good fit to handle individual event (lots of individual events).

Kestra (and so airflow) is more a workflow manager to handle data pipeline like moving large dataset (batch) between different source and destination, do some transformation inside database (ELT) or with Kestra you are also able to transform the data (ETL) before save it to external systems.

This lead Kestra (and so airflow) to have a lot of connectors to differents systems (like SQL, NOSQL, Columns database, Cloud Storage, ...) that is ready to use out of the box.

temporal.io, since it's first design to handle microservice (proprietary & internal service) don't have this connector out of the box, and you will need code all this interaction.

So my opinion:

Building data pipeline interacting with many standard systems will be done easily & quickly with Kestra (or airflow)

Handling internal business process of micro service will done easily with temporal.io
tchiotludo
·há 4 anos·discuss
You can easily scale down for small project using a mono node using a simple docker compose setup: https://kestra.io/docs/getting-started/

Working well on a standard laptop easily
tchiotludo
·há 4 anos·discuss
I know that that some issues are fixed in Airflow 2, they have made a large improvement with that release. But not all issues is resolved with this one.

The performance issue is still here, just launch Airflow and submit thousand dagruns with simple python sleep(1) and you will hit the cpu bound very quickly with a total time that will have a large duration. Airflow is not designed for a lot of short duration tasks. When using event driving data flow, it's really complicated to managed.

Imagine a flow that will be triggered for each store for example (thousand of store, with 10+ tasks for each one), Airflow will not be able to manage this kind of workflow quickly (and it's not its goals). Airflow was clearly defined to handle small (hundreds tasks) for a long time.

For the XCOM part, Airflow store this in database, so you can't store data into this, you will need to store a small data (database is not here to store big files). In Kestra, we have a provide a storage that allow storing large data (Go, To, ...) between tasks natively with the pain on multiple node clusters.
tchiotludo
·há 4 anos·discuss
The title was changed by moderators and I can't edit it anymore :'(
tchiotludo
·há 4 anos·discuss
Airflow have design issue and performance issue, If you want to have some details, you can find some reason on this article: https://kestra.io/blogs/2022-02-22-leroy-merlin-usage-kestra....

For other workflow engine (dagster, prefect, ...), we decided to use a complete different approach on how to build a pipeline. Since others decide to use python code, we decided to go to descriptive language (like terraform for example). This have a lot of advantages on how the developer user experience is: With Kestra, you can directly the web UI in order to edit, create and run your flows, no need to install anything on the user desktop and no need a complex deployment pipeline in order to test on final instance. Other advantage is that it allow to use terraform to deploy your flows, typical development workflow are: on development environment, use the UI, on production deploy your resource with terraform, flow and all the others cloud resource.

After, it will be really nice to have some independent performance benchmark. I really think Kestra is really fast since it was based on a queue system (Kafka) and not a Database. Since workflow are only events (change status, new tasks, ...) that is need to be consume by different service, database don't seems to be a good choice and my benchmark show that Kestra is able to handle a lot of concurrent tasks without using a lot of CPU.
tchiotludo
·há 4 anos·discuss
The project start as a side project (yet another side project I do the night and weekend) but was quickly promoted and used in a French Big Retail Company.

This one trust on the project and decide to go production with Kestra. So they decide to inject some resource in order to develop some features that need and that is missing.

But basically, not so much people for now. We are trying to start a community around the product and started to communicate around the product since few weeks only, I hope community will follow us! And I hope to succeed like on my other open source project: https://github.com/tchiotludo/akhq
tchiotludo
·há 4 anos·discuss
Do you have a screenshot please ? I didn't notice where. Thanks
tchiotludo
·há 4 anos·discuss
Agree that both are expensive to scale on multiple node. But keep in mind, you can use it with a single node (like others do with a database like mysql).

Just don't go multiple node if not needed by the project. But when you will need to, with Kestra you can go multiple node and scale.
tchiotludo
·há 4 anos·discuss
Yes, of course!

You have 3 solutions for that:

- you can use this task using runner:DOCKER property and choose the image: https://kestra.io/plugins/core/tasks/scripts/io.kestra.core....

- you can also use PodCreate to launch a pod on a kubernetes cluster: https://kestra.io/plugins/plugin-kubernetes/tasks/io.kestra....

- you have also CustomJob from VertexAI on GCP to be able to launch a container a ephemeral cluster (with any CPU / GPU): https://kestra.io/plugins/plugin-gcp/tasks/vertexai/io.kestr...
tchiotludo
·há 4 anos·discuss
Ok got it, every task type are able to logged what they want, so basically, there is one task that is sending dirty output, I add a fix on the roadmap in order to clean this task, thanks for the report
tchiotludo
·há 4 anos·discuss
Really thanks wpietri to have understand the hidden sense behind :+1:
tchiotludo
·há 4 anos·discuss
I don't pitch as more complicated version of Airflow, rather, I think it's more simple than Airflow on the UX side: we use declarative flow with yaml and not python code that can be

I agree with you that Kafka & ElasticSearch can be a pain to scale if you need to have a horizontal and vertical scaling.

On other side, on single machine, it's really has easy to setup. With this, you will have the same scaling than Airflow for exemple since it depend on a non scalable database (mysql or postgres). But the chance you will have with Kestra is that you will be able to scale to multiple node for your backend (as well with kestra that allow scaling all services). When you hit the limit with standard database, you will be stuck.

And yes clearly infinite scale is not a literal statement terms, nothing can scale infinitely but since the architecture is really robust (and scalable), the issues will be on other aspects than Kestra (cloud limit, database overload, ...).

A final point and a more important one, the backend are all pluggagle in Kestra since Kestra is really think as module: Look at the directory here : https://github.com/kestra-io/kestra :

- runner-kafka & runner-memory are 2 implementation of Kestra, you can add a new one that will use Redis, Pulsar, ...

- repository-elasticsearch & repository-memory is the same, you can implement another one, I started one implementation for JDBC that I don't have the time to finish for now : https://github.com/kestra-io/kestra/pull/368
tchiotludo
·há 4 anos·discuss
Sorry I don't understand, we display with pretty print, see here : https://kestra.io/assets/img/05.8b5545ef.png

It's not as json ? or I don't understand where you see that.
tchiotludo
·há 4 anos·discuss
The support of windows server seems to be easy I think. Since it's java behind, most of the api is working on windows. Just need to create a custom task for windows, added in the backlog : https://github.com/kestra-io/kestra/issues/519

For the desktop app, I don't know, build one with electron can be simple, but a full app is not on the roadmap for now. What is your usages ?
tchiotludo
·há 4 anos·discuss
- For performance mostly, Kestra rely a lot on Java thread to be able to handle a very large workload

- Because the application is built on top of Kafka, and Kafka Streams that is only available on Java

- Because the java ecosystem is very large and there is a lot good library to handle a lot of workload

- Because I love strong typing and the language (but no matter for the user, just a personal pleasure :D)
tchiotludo
·há 4 anos·discuss
To be honest, we don't have think about that for now. It's a complicated subject.