如何经济高效地配置Google Cloud Composer

时间:2018-11-15 12:27:36

标签: airflow google-cloud-composer

经过一些研究和测试,我们决定开始使用Google Cloud Composer。由于我们当前的DAG和任务相对较小,并且不需要服务器连续运行,因此我正在寻找如何管理成本的方法。

两个问题:

  1. 使用preemptible VM的选项似乎合乎逻辑。这样可以大大节省成本,我正在考虑使用3倍的n1-standard-4。我希望每个任务都很短,所以不要认为这会对我们的工作量产生重大影响。可以在Composer中使用preemptible个VM吗?
  2. 按照this post的要求来安排打开/关闭Composer环境的时间表。我找不到文档中的方法,要么关闭整个环境,要么按照答案中的建议关闭工作人员。

有帮助吗?

1 个答案:

答案 0 :(得分:1)

这是一个有趣的问题。

您可能会遇到的一个障碍是气流本身的性质。通常,Airflow不适用于短暂使用。相反,我怀疑Airflow的绝大多数使用(无论是Cloud Composer还是其他方式)都是持久的。短暂性带来成本优势,但气流架构也会带来风险。例如,如果计划程序重新启动Airflow资源失败,该怎么办?

要回答您的问题:

  1. Composer不支持抢占式对象。虽然PVM有很多很棒的好处,但它们可能会使任务处于非常奇怪的状态,尤其是如果您多次被抢占。
  2. 该过程没有正式的文档,因为它通常是非正式的,因此如果必须依赖于您的环境,则不建议这样做。但是,基本方法是:
    1. 创建一个非常小的GCE VM
    2. 设置Cloud SDK(gcloud)以连接到您的项目
    3. 创建一个crontab,该crontab在需要时可以重新创建/删除环境,或者/或者在Composer工作池中暂停VM

从长远来看,我认为Composer将更好地支持临时使用工人资源。在短期内,另一种选择是在小型(Gish)GCE VM上运行轻量级Airflow环境,然后在需要使用Airflow时挂起/恢复该VM。您不会以这种方式获得Composer,但是您确实会从团队的工作中受益,他们在核心Airflow中改进和扩展了GCP支持。