如果我使用不可变的服务器/容器,是否需要诸如Chef,Puppet,Ansible或Salt之类的工具?这些配置管理工具旨在建立配置然后进行维护。
如果要部署不可变服务器,是否应仅将配置管理工具用于初始配置?
如果我使用不可变的服务器/容器,是否需要诸如Chef,Puppet,Ansible或Salt之类的工具?这些配置管理工具旨在建立配置然后进行维护。
如果要部署不可变服务器,是否应仅将配置管理工具用于初始配置?
Answers:
有一些答案:
需要构建那些不变的图像。当从已知的起始状态开始时,使用老式的过程脚本来构建某些东西当然会更容易,但是随着时间的流逝它仍然变得非常笨拙(例如Dockerfiles),尤其是当您最终想要一大堆不同的图像用于Packer和其他图像构建工具可以与Chef,Ansible,Puppet,Salt等完美集成。
不变性是一个频谱,而不是二进制。即使在“非常不可变”的部署中,也有一些需要运行时管理的配置文件并不少见。这也是可以使用CAPS工具的地方,尽管轻量级的选项(例如Consul Templates或etcd)可能更有意义,具体取决于整体下文。如果您使用的是不可变的应用程序服务器,但传统上是使用Chef来管理数据库服务器,那么即使在不可变的方面对较小的管理任务也可以使用Chef。
零日管理。不变性很好,但是当下一个OpenSSL 0day掉线时您将怎么办?如果您的构建管道可以创建立即的修补程序映像并进行部署,那很好。但是许多人可能没有这种快速转向能力。
不可改变的事物。无法回答,但整个基础很少是100%不可变的。诸如数据库服务器和开发人员工作站之类的东西(是的,这些是您的基础设施的一部分)在使不可变变得困难和不可能之间处于某个位置。