DataBricks + Kedro 对比 GCP + Kubeflow 对比服务器 + Kedro + Airflow
DataBricks + Kedro Vs GCP + Kubeflow Vs Server + Kedro + Airflow
我们正在 10 多家公司之间部署一个数据联盟。 Wi 将为所有公司部署多个机器学习模型(通常是高级分析模型),我们将管理所有模型。我们正在寻找一种管理多个服务器、集群和数据科学管道的解决方案。我喜欢 kedro,但不确定在使用 kedro 时管理所有内容的最佳选择是什么。
总而言之,我们正在寻找最佳解决方案来管理不同服务器和可能的 Spark 集群中的多个模型、任务和管道。我们目前的选择是:
AWS 作为我们的数据仓库,Databricks 用于管理服务器、集群和任务。我觉得databricks的notebooks对于构建pipeline和协同工作不是一个很好的解决方案,所以我想将kedro连接到databricks(好吗?是否容易安排kedro的运行使用数据块的管道?)
将 GCP 用于数据仓库,并使用 kubeflow (iin GCP) 部署模型以及管道和所需资源的管理和计划
从 ASW 或 GCP 设置服务器,安装 kedro 并使用 airflow 安排管道(我发现管理 20 个服务器和 40 个管道是个大问题)
我想知道是否有人知道这些替代方案之间的最佳选择是什么,它们的优缺点,或者是否有更多的可能性。
我会尝试总结一下我所知道的,但请注意,我还没有参与过 KubeFlow 项目。
Databricks 上的 Kedro
我们的方法是使用 CI 构建我们的项目,然后从笔记本执行管道。我们没有在作业和交互式集群(DB-connect 需要)之间使用kedro recommended approach of using databricks-connect due to the large price difference。如果您正在处理数 TB 的数据,这很快就会变得相关。
作为 DS,这种方法可能感觉很自然,但作为 SWE 则不然。 运行笔记本中的 ning 管道感觉很老套。它有效,但感觉非工业化。 Databricks 在自动启动和关闭集群以及为您处理 运行 时间方面表现出色。因此,他们的附加值是从您那里抽象出 IaaS(稍后会详细介绍)。
GCP 和“云原生”
Pro:GCP的主要卖点是BigQuery。它是一个非常强大的平台,仅仅是因为您可以从第 0 天开始就富有成效。我看到人们在它之上构建整个网络 API。 KubeFlow 未绑定到 GCP,因此您可以稍后将其移植到其他地方。 Kubernetes 还允许您 运行 在集群上进行任何您想要的操作,API、流媒体、Web 服务、网站,应有尽有。
Con:Kubernetes 很复杂。如果你有 10 多个工程师长期 运行 这个项目,你应该没问题。但不要低估 Kubernetes 的复杂性。它之于云,就像 Linux 之于 OS 世界。想想日志管理、嘈杂的邻居(一个集群用于 web APIs + 批处理 spark 作业)、多集群管理(一个集群每个 department/project)、安全、资源访问等
IaaS 服务器方法
你的最后一个选择,手动安装服务器是我推荐的方法,只有当你有一个庞大的团队,非常大的数据并且正在构建一个长期产品,其收入可以承受大量维护成本时。
背后的人
您所在地区的人才市场情况如何?如果您可以聘请具有 GCP 知识的经验丰富的工程师,我会选择第二种解决方案。 GCP 是一个成熟的“本地”平台,因为它为客户抽象了很多东西。如果您的市场主要是 AWS 工程师,那可能是一条更好的道路。如果您有许多 kedro 工程师,那也很重要。请注意,kedro 是不可知的,足以 运行 任何地方。这真的只是 python 代码。
主观建议:
主要从事 AWS 项目和一些 GCP 项目,我会选择 GCP。我会使用该平台的组件(BigQuery、Cloud 运行、PubSub、Functions、K8S)作为一个工具箱来选择并围绕它构建一个组织。 Kedro 可以 运行 在任何这些上下文中,作为调度程序触发的作业,作为 Kubernetes 上的容器或作为将数据传入(或传出)BigQuery 的 ETL 管道。
虽然 Databricks 比原始 AWS“更少管理”,但它仍然需要考虑服务器和 VPC 网络费用。 BigQuery 只是查询 GB。函数只是调用计数。这些高级组件将使您能够快速向客户展示价值,并且您只需要在扩展时更深入(RaaS -> PaaS -> IaaS)。
AWS 在 IaaS 上也有这些更高级别的抽象,但总的来说,(在我看来)Google 的产品似乎是最成熟的。主要是因为他们发布了在内部使用了将近十年的工具,而 AWS 则为市场构建了新工具。 AWS 是 IaaS 之王。
终于有点内容了,two former colleagues have discussed ML industrialisation frameworks earlier this fall
我们正在 10 多家公司之间部署一个数据联盟。 Wi 将为所有公司部署多个机器学习模型(通常是高级分析模型),我们将管理所有模型。我们正在寻找一种管理多个服务器、集群和数据科学管道的解决方案。我喜欢 kedro,但不确定在使用 kedro 时管理所有内容的最佳选择是什么。
总而言之,我们正在寻找最佳解决方案来管理不同服务器和可能的 Spark 集群中的多个模型、任务和管道。我们目前的选择是:
AWS 作为我们的数据仓库,Databricks 用于管理服务器、集群和任务。我觉得databricks的notebooks对于构建pipeline和协同工作不是一个很好的解决方案,所以我想将kedro连接到databricks(好吗?是否容易安排kedro的运行使用数据块的管道?)
将 GCP 用于数据仓库,并使用 kubeflow (iin GCP) 部署模型以及管道和所需资源的管理和计划
从 ASW 或 GCP 设置服务器,安装 kedro 并使用 airflow 安排管道(我发现管理 20 个服务器和 40 个管道是个大问题)
我想知道是否有人知道这些替代方案之间的最佳选择是什么,它们的优缺点,或者是否有更多的可能性。
我会尝试总结一下我所知道的,但请注意,我还没有参与过 KubeFlow 项目。
Databricks 上的 Kedro
我们的方法是使用 CI 构建我们的项目,然后从笔记本执行管道。我们没有在作业和交互式集群(DB-connect 需要)之间使用kedro recommended approach of using databricks-connect due to the large price difference。如果您正在处理数 TB 的数据,这很快就会变得相关。
作为 DS,这种方法可能感觉很自然,但作为 SWE 则不然。 运行笔记本中的 ning 管道感觉很老套。它有效,但感觉非工业化。 Databricks 在自动启动和关闭集群以及为您处理 运行 时间方面表现出色。因此,他们的附加值是从您那里抽象出 IaaS(稍后会详细介绍)。
GCP 和“云原生”
Pro:GCP的主要卖点是BigQuery。它是一个非常强大的平台,仅仅是因为您可以从第 0 天开始就富有成效。我看到人们在它之上构建整个网络 API。 KubeFlow 未绑定到 GCP,因此您可以稍后将其移植到其他地方。 Kubernetes 还允许您 运行 在集群上进行任何您想要的操作,API、流媒体、Web 服务、网站,应有尽有。
Con:Kubernetes 很复杂。如果你有 10 多个工程师长期 运行 这个项目,你应该没问题。但不要低估 Kubernetes 的复杂性。它之于云,就像 Linux 之于 OS 世界。想想日志管理、嘈杂的邻居(一个集群用于 web APIs + 批处理 spark 作业)、多集群管理(一个集群每个 department/project)、安全、资源访问等
IaaS 服务器方法
你的最后一个选择,手动安装服务器是我推荐的方法,只有当你有一个庞大的团队,非常大的数据并且正在构建一个长期产品,其收入可以承受大量维护成本时。
背后的人
您所在地区的人才市场情况如何?如果您可以聘请具有 GCP 知识的经验丰富的工程师,我会选择第二种解决方案。 GCP 是一个成熟的“本地”平台,因为它为客户抽象了很多东西。如果您的市场主要是 AWS 工程师,那可能是一条更好的道路。如果您有许多 kedro 工程师,那也很重要。请注意,kedro 是不可知的,足以 运行 任何地方。这真的只是 python 代码。
主观建议:
主要从事 AWS 项目和一些 GCP 项目,我会选择 GCP。我会使用该平台的组件(BigQuery、Cloud 运行、PubSub、Functions、K8S)作为一个工具箱来选择并围绕它构建一个组织。 Kedro 可以 运行 在任何这些上下文中,作为调度程序触发的作业,作为 Kubernetes 上的容器或作为将数据传入(或传出)BigQuery 的 ETL 管道。
虽然 Databricks 比原始 AWS“更少管理”,但它仍然需要考虑服务器和 VPC 网络费用。 BigQuery 只是查询 GB。函数只是调用计数。这些高级组件将使您能够快速向客户展示价值,并且您只需要在扩展时更深入(RaaS -> PaaS -> IaaS)。
AWS 在 IaaS 上也有这些更高级别的抽象,但总的来说,(在我看来)Google 的产品似乎是最成熟的。主要是因为他们发布了在内部使用了将近十年的工具,而 AWS 则为市场构建了新工具。 AWS 是 IaaS 之王。
终于有点内容了,two former colleagues have discussed ML industrialisation frameworks earlier this fall