官方对Apache Airflow进行了大规模的更新,发布第2个主要版本,除了改进调度器性能之外,同时也简化了KubernetesExecutor的使用方法,另外,这个版本也加入新的范式,供开发者编写有向无环图(Directed Acyclic Graph,DAG)。
现在于Apache Airflow编写有向无环图更简单了,官方添加TaskFlow API,让用户能够在有向无环图中,显式声明任务之间传递的消息,有助于简化声明PythonOperator的过程,并且更清楚地处理相依关系。
官方也改善了Airflow调度器的性能,并支持同时执行多个调度器,可用来构建高可用配置,以提升调度性能,或是避免其中一个调度器故障,官方提到,要执行多调度器,必需要使用Postgres 9.6或MySQL 8以上版本,但不需要进行额外的设置,调度器启动后,会自动通过数据库与其他调度器配合运行。
在Apache Airflow 2.0中,官方以更快更有弹性的形式,重新构建了KubernetesExecutor,用户可以用主动的方式,访问完整的Kubernetes API,同时官方还移除KubernetesExecutor中约3,000行程序代码,使得KubernetesExecutor执行效率更好,并且减少潜在的错误。
对于在Apache Airflow集群使用大量传感器的用户,集群性能会在2.0版本获得改善。过去传感器占用大部分的集群资源,为了改善这一点,官方在新版加入了智能传感器模式,通过整合长时间运行的轻量级任务,来大幅降低Airflow基础设施的成本。这项功能经Airbnb严谨测试过,但仍被标记为早期访问功能,代表之后仍可能会有破坏性变动。
Apache Airflow 2.0并非单一的应用程序,而是由核心以及61个供应商组件构成,这些组件提供诸如Google、Amazon和微软等外部服务,还有数据库与协议等各种功能,用户可以创建自定义的Airflow安装程序,仅安装需要的部分。