当Cron失败时

你好!

我们每天晚上都会向其所有者发送大量有关产品指标的夜间报告。几年前,他们是由定期的Cron收集的,但事实证明这是一个非常不稳定的故事。Cron需要考虑某些细微差别和纪律:如果未收集报告,则需要重新启动脚本。而且它可能由于多种原因而失败:一个MySQL数据库没有响应,或者轮询的服务没有响应,或者运行Cron的服务器在夜间重新启动或出现故障。这些报告大多数是由分析师创建的,他们通常没有将所有这些考虑在内。因为他们是分析师,但这不是他们的任务。因此,我们开始寻找可以使每个人的生活更轻松的选择。

他们找到了。

Airflow Kubernetes. .  , , Data Team,  – , - .

– , , . – , , . , , ,   ,    . , ,     , , , – , .

. – .  :  , . , production-, , . , . , . .

, - : . python, Cron' . , . , ,  – . : , , , .

DataTeam . , . 

: "", , .

-  – . , , ,  – . ,  ,  , . , ,  . Cron . , .

Cron' . , , - . Cron' . , , . .

 – , . , , . : , , - . - ( , ). , .

, ( ), . Kubernetes'.  ,  CronJob. , Cron'. :  , CronJob , . , , . , Cron , . CronJob "" ( : A cron job creates a job object about once per execution time of its schedule. ). "" , . .  CronJob .   .

,  Kubernetes' . ,  CronJob , , .  – , . , , , . , , , , - , , .

, . Airflow.

Airflow

(,  ). Arflow , .  – ( directed acyclic graph).

 – ,    . , , . Airflow . , .

– . Cron CronJob . Cron' , , CronJob – Kubernetes'.  , Airflow ,  Kubernetes', - . , . Airflow , , . .

, , Kubernetes'. Airflow    , , : KubernetesPodOperator KubernetesExecutor. KubernetesPodOperator: docker- Kubernetes'.

 kubernetes-client  API Kubernetes', Airflow.  configmap' , . KubernetesExecutor' : Airflow , , .

Airflow + KubernetesPodOperator + Kubernetes , , , Airflow Kubernetes, , - .

KubernetesPodOperator'

Kubernetes' Docker' Airflow. - SimpleHttpOperator' PythonOperator',  http- , . , , - .  – , -. , : , , , . Airflow.  – - , , ,   , .

, .

: . . BI- Metabase, . ().

 Airflow + KubernetesPodOperator + Kubernetes .

, " !"?

:

  1. ;

  2. , ;

  3. , ;

  4. , .

    , Airflow , / ;

  5. , , ;

  6. 5.

, "how to"  Airflow , .




All Articles