1

我的客户希望在云中自动配置他们的测试和开发环境。他们的愿景是,他们将能够在 Web 界面中输入如下信息:

  1. 服务器数量
  2. CPU 数量
  3. 内存
  4. 贮存
  5. 网络端口数
  6. 备份要求(如果有)
  7. 操作系统版本
  8. 软件堆栈(可能到中间件)
  9. 负载均衡器

我想这个想法是编写一个脚本,从这里获取信息并使用云 API 来配置云中的环境。问题是——我们可以自动化多少?操作系统版本和中间件可以捆绑在一个 VM 映像中,然后可以进行部署。云 API 是否允许设置 VM 实例,然后自动向其部署映像?您能否配置负载平衡器和防火墙设置?

4

1 回答 1

3

简短的回答

是的!(好吧,见下文)

长答案

云服务器 API

使用来自任何主要提供商的 API,您可以编排部署,选择服务器、CPU、RAM、存储、操作系统版本和负载平衡器的数量。不过,您确实必须与每个提供商的基本图像和风格保持一致。

每个都有自己的备份系统,具体取决于您正在寻找的粒度。

至于“网络端口数”,我没见过这样的。您通常只能获得一个面向公众的网络、一个内部(数据中心)网络,如果您愿意,还可以选择一个隔离网络。

图像创建

几乎所有的提供程序都允许您拍摄当前正在运行的服务器的快照(映像),以便您可以再次重新部署相同的映像。您也可以使用 API 自动执行此操作。

部署软件堆栈

不过,就软件堆栈而言,您希望使用一些配置管理软件(ChefSaltStackAnsiblePuppet甚至只是 Fabric 脚本)来帮助您以自动化方式部署软件。基础设施即代码让生活变得更好。

事实上,回到原点,使用salt-cloud之类的软件,您可以为您的基础架构以及要安装在每个盒子上的软件布局地图。

OpenStack HeatAWS Formation Templates也将这一点提升到另一个层次,用于布置基础设施模板,甚至与那些相同的配置管理套件集成。

于 2013-11-13T21:48:05.327 回答