Terraform 与 gcloud 部署管理器
Terraform vs gcloud deployment-manager
我面临着 gcloud 部署管理器的选择。
这两种工具提供相似的功能,遗憾的是缺少所有资源。
例如:
- gcloud 可以创建服务帐户(terraform 不能)
- terraform 可以管理 DNS 记录集(gcloud 不能)
- 还有许多其他人...
问题:
- 你能推荐一种工具吗?
- 你怎么看,哪个工具的可用资源会更丰富运行?
- 您在项目中使用哪种解决方案?
有人可能会说这不是你应该在 Whosebug 上问的问题,但我还是会回答的。
可以组合多个工具。您应该 运行 的主要工具是 Terraform。使用 Terraform 管理它原生支持的所有资源,并使用 external provider 调用 gcloud
(或其他任何资源)。虽然有时它不是很优雅,但它会起作用。
实际上我用同样的方法在 external
中调用 aws-cli
。
我个人发现 Deployment Manager 对于我想做的事情来说更难上手。虽然我以前有过 Terraform 的经验,因此我可能有偏见。 Terraform 对我来说更容易。
尽管如此,gcloud
命令行工具非常好,正如 Anton 所说,您可以在需要时通过 external
提供它。另请注意,这就是 terraform 所做的并且已经做了很长时间。它们在我添加新功能等方面的经验也相当不错。是的,Gcloud Deployment Manager 可能首先拥有它们,因为它 google 在内部,但 terraform 永远不会落后。
从长远来看,运行 terraform 可能更容易与其他服务集成,并且总是有转向其他提供商的选择。最重要的是,您可以使用一种配置格式。由于这就是 Terraform 所做的,我发现您构建和使用它的方式非常合乎逻辑且易于理解。如果您要与其他团队成员分享和合作,那是很有价值的东西。
Deployment Manager 是一种声明式部署编排工具,专门用于 Google Cloud Platform。因此,如果您全力以赴 Google,或者只是想在我们的基础架构上自动化您的流程,您当然可以使用 Deployment Manager 来实现。 Deployment Manager 还允许您与其他 GCP 服务集成,例如身份访问管理。 Puppet、Chef 和 Terraform 等跨平台替代方案跨多个云提供商工作。它们不是托管的,您最终将建立自己的基础架构来支持它们。来自 AWS 的 Cloud Formation 的结构仅适用于 AWS 基础设施,并且与 AWS 服务集成良好。
我面临着 gcloud 部署管理器的选择。
这两种工具提供相似的功能,遗憾的是缺少所有资源。
例如:
- gcloud 可以创建服务帐户(terraform 不能)
- terraform 可以管理 DNS 记录集(gcloud 不能)
- 还有许多其他人...
问题:
- 你能推荐一种工具吗?
- 你怎么看,哪个工具的可用资源会更丰富运行?
- 您在项目中使用哪种解决方案?
有人可能会说这不是你应该在 Whosebug 上问的问题,但我还是会回答的。
可以组合多个工具。您应该 运行 的主要工具是 Terraform。使用 Terraform 管理它原生支持的所有资源,并使用 external provider 调用 gcloud
(或其他任何资源)。虽然有时它不是很优雅,但它会起作用。
实际上我用同样的方法在 external
中调用 aws-cli
。
我个人发现 Deployment Manager 对于我想做的事情来说更难上手。虽然我以前有过 Terraform 的经验,因此我可能有偏见。 Terraform 对我来说更容易。
尽管如此,gcloud
命令行工具非常好,正如 Anton 所说,您可以在需要时通过 external
提供它。另请注意,这就是 terraform 所做的并且已经做了很长时间。它们在我添加新功能等方面的经验也相当不错。是的,Gcloud Deployment Manager 可能首先拥有它们,因为它 google 在内部,但 terraform 永远不会落后。
从长远来看,运行 terraform 可能更容易与其他服务集成,并且总是有转向其他提供商的选择。最重要的是,您可以使用一种配置格式。由于这就是 Terraform 所做的,我发现您构建和使用它的方式非常合乎逻辑且易于理解。如果您要与其他团队成员分享和合作,那是很有价值的东西。
Deployment Manager 是一种声明式部署编排工具,专门用于 Google Cloud Platform。因此,如果您全力以赴 Google,或者只是想在我们的基础架构上自动化您的流程,您当然可以使用 Deployment Manager 来实现。 Deployment Manager 还允许您与其他 GCP 服务集成,例如身份访问管理。 Puppet、Chef 和 Terraform 等跨平台替代方案跨多个云提供商工作。它们不是托管的,您最终将建立自己的基础架构来支持它们。来自 AWS 的 Cloud Formation 的结构仅适用于 AWS 基础设施,并且与 AWS 服务集成良好。