不可变基础架构中的configuration更改

那些在不同环境中使用不可变基础架构处理configuration更改的人们如何? 我无法为每个angular色创build一个AMI并在所有环境中使用它。

我的意思是我如何构build一个可以部署到开发,分期和生产的单个ami,但是这指的是那个环境下正确的ELB等等。 在当下,我能想到的唯一select是:

  • 为每个angular色(生产Web服务器,产品应用服务器,登台Web服务器等)构buildAMI。 这似乎击败了II推向所有环境的相同形象的目的。
  • 构build一个几乎完整的AMI,并在启动之后,在将其添加到ELB之前进行最终configuration。 这似乎是接近,但我觉得有什么缺失。

无论如何,当我正在创build一个AMI或者别的什么的时候,把一组参数传给一个AMI吗? 其他人如何使用不可变的基础架构?

谢谢。

在Boxfuse,我们生活和呼吸不变的基础设施。 我们推荐以下两种方法的组合:

  1. 直接在AMI中为所有环境烘焙尽可能多的configuration(并在运行时自动select正确的configuration)
  2. 将其余设置作为实例用户数据shell脚本(cloud-init)传入,该脚本将环境环境输出到该机器/环境所需的值