기류 대 대구 비교
6845 단어 webdevprogrammingopensourcego
Airflow는 몇 년 동안 인기 있는 도구였지만 Cron을 대체하기에는 과잉 솔루션입니다.
Dagu를 사용하면 Airflow보다 더 간단하게 DAG(워크플로)를 정의할 수 있으며 스케줄러로 필요한 모든 기능을 갖추고 있습니다.
이번 글에서는 Airflow에 비해 Dagu의 장점을 자세히 설명하고자 합니다.
기류 대비 다구의 장점
Dagu는 Airflow에 비해 다음과 같은 5가지 주요 장점이 있습니다.
1. 쉽게 설치
Dagu를 설치하려면 바이너리를 설치하기만 하면 됩니다.
brew install yohamta/tap/dagu
brew
를 사용할 수 없는 경우 다음 Bash 명령을 실행하여 현재 디렉터리에 Dagu를 설치할 수 있습니다.curl -L https://raw.githubusercontent.com/yohamta/dagu/main/scripts/downloader.sh | bash
2. 간편한 설정 및 실행(데이터베이스가 필요하지 않음)
Dagu를 실행하려면
dagu server
명령을 실행하기만 하면 됩니다.dagu server
그런 다음 http://127.0.0.1:8080으로 이동하면 dagu의 웹 UI가 표시됩니다.
데이터베이스 설치가 필요하지 않습니다!
3. 간단한 YAML 형식으로 DAG(워크플로) 정의
"hello world"및 "done!"을 출력하는 워크플로 로그에 대한 정의는 다음과 같이 간단하게 정의할 수 있습니다.
steps:
- name: "step 1"
command: "echo Hello World"
- name: "step 2" command: "echo done!
command: "echo done!
depends:
- "step 1"
Airflow는 Python 코드에서 워크플로를 정의합니다. 위와 동일한 워크플로를 다음과 같이 정의할 수 있습니다.
동일한 DAG의 Airflow 버전
from airflow import DAG
from airflow.operators.bash import BashOperator
dag = DAG(dag_id="hello_world_dag")
task1 = BashOperator(
task_id="hello_world",
bash_command='echo Hello World',
dag=dag)
task2 = BashOperator(
task_id="done",
bash_command='echo done',
dag=dag)
task1 >> task2
Airflow의 약점은 워크플로우가 무엇을 하는지 한눈에 이해하기 어렵다는 것입니다.
4. 기존 프로그램을 수정하지 않고 그대로 사용
Dagu 워크플로에서는 어떤 명령이든 그대로 쓸 수 있습니다. 그것에 대해 특별한 것은 없습니다.
Cron에서 실행하던 프로그램이 있다면 Crontab에서 작성한 명령을 복사하여 YAML 파일에 붙여넣기만 하면 Dagu에서 워크플로우로 호출할 수 있습니다.
기존 코드를 호출하기 위해 Python 코드를 작성하거나 Airflow와 관련하여 Python 코드로 다시 작성하는 수고를 할 필요가 없습니다.
5. Cron 표현식으로 일정 잡기
Dagu 워크플로 일정은 Cron 식으로 쉽게 설정할 수 있습니다. 다음과 같이 YAML 파일에
schedule
를 작성하면 됩니다.schedule: "0 10 * * * *"
steps:
- name: step 1
command: echo Hello World
Dagu 스케줄러는
dagu scheduler
명령으로 호출할 수 있습니다. 실행하기만 하면 작업 흐름이 자동으로 일정을 따릅니다.dagu scheduler --dags=<directory>
요약
Dagu 스케줄러는 Airflow보다 설치가 쉽고 간단하고 짧은 YAML로 워크플로(또는 작업)를 구성할 수 있습니다.
Cron에서 작업을 실행하는 경우 Airflow 또는 다른 워크플로 스케줄러를 설치할 때 고려해야 할 사항이 많습니다. 예를 들어 스케줄러용 데이터베이스를 배포하는 경우 단일 실패 지점이 되지 않도록 해당 데이터베이스를 중복으로 만들어야 합니다.
Dagu의 가장 큰 장점은 아키텍처가 모두 파일 기반이기 때문에 데이터베이스에 의존하지 않기 때문에 설정이 쉽다는 것입니다.
Dagu의 소스 코드 및 저장소
Dagu는 Golang과 React로 개발된 오픈 소스 소프트웨어이며 지속적으로 개발되고 있습니다. 관심이 있으시면 원하는 방식으로 소프트웨어에 기여해 주십시오. 정말 환영합니다 :)
https://github.com/yohamta/dagu
Reference
이 문제에 관하여(기류 대 대구 비교), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yohamta/airflow-vs-dagu-comparison-kp7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)