我们目前在三大服务中分布了服务(例如,AWS上的s3,Azure上的VM,Gcloud上的功能等),并且使用它们各自的API来访问这些服务变得不便了。它们都是不同的,文档是命中注定的。我正在寻找一种包装器(Node.js或Python)来从一个地方控制所有三个API。
例如,我要编写.create(“vm”,”azure”)
之类的东西来创建虚拟机,或者写.list(“all”)
之类的东西来列出我在3个平台上运行的所有东西。
谷歌搜索,除了一些流氓github仓库外,我什么都找不到。
有人知道开源的任何解决方案吗?
答案 0 :(得分:4)
我不知道有任何第三方库能够以生产中使用的质量支持顶级云供应商。
我与AWS,Google,阿里巴巴和Azure合作。它们的功能集非常相似,但又有足够的差异,您确实需要注意一些小细节。在安全性方面,这是非常正确的。
我不建议与许多云供应商合作。除非您拥有需要跨供应商支持的真正大型基础架构,否则请坚持使用一个云并且非常了解它。如果您确实拥有大型基础架构,那么每个云供应商都需要一位专家。云供应商使用新产品,服务和功能的步伐如此之快,以至于要成为专家,只需要一个供应商,更不用说三到四个了。
答案 1 :(得分:2)
要添加到现有答案中,公司可能会花费太多精力来维护这样的api。
虽然一些基本功能可以很好地一对一映射,但是大多数高级功能很难一对一映射,而且最重要的是,与其他云相比,某些功能不存在或功能并不丰富,因此我怀疑这样的事情是否会发生。
答案 2 :(得分:1)
Terraform(https://www.terraform.io/,标记:terraform)可能对此有用。它允许您声明资源并将其部署到所有云提供商。所有提供程序的资源详细信息仍然不同,因此您不能仅更改提供程序并将相同的资源部署到另一个云。就像其他答案中所述,提供商的详细信息也不同。
对于无服务器基础架构,您可以使用无服务器框架(https://serverless.com/framework,标签:serverless-framework)。借助此框架,您可以在不对实际源代码进行最小更改的情况下,将无服务器基础设施部署到所有这些云中。