配置管理工具的定位
每次我提到配置管理工具,有些同学就会问类似的问题:容器化时代和Serverless时代,还需要配置管理工具吗?我们先不去讨论容器化之后是否需要配置管理工具,那什么时候容器能够在全球范围达到100%的普及?什么时候AWS仅提供容器而不再提供虚拟机呢?
之所以会有如上的问题,根源还在于配置管理工具的定位,到底要解决什么问题?配置管理工具的厂商当然希望你什么事情都通过它来实现,在很长时间内,因为市面上没有针对运维各类场景的细分产品,因此配置管理工具就承担了多面手的角色,而随着各类细分产品的逐渐成熟,那些本不适合配置管理工具解决的场景,必然会被逐步替换。举个例子,你可以搜索到很多早期用配置管理工具进行服务部署的教程,但现在讲服务部署,恐怕很少会有人建议你使用配置管理工具了。
那配置管理工具的定位到底是什么呢?个人认为是持续保证运行环境的一致性,主要针对符合幂等性的变更操作,具体解释如下:
持续保证,是要在机器的整个生命周期中始终确保最终结果符合预期,不论是何种原因导致的不同,都能够修正或者至少推送不一致信息出来。如果只是一次性的操作,那直接批量下去即可,哪里需要配置管理工具。
一致性,主要是规模问题,如果只有一台机器,那这台机器就是标准,也就不会用到配置管理工具,因此配置管理工具主要是支持超大规模集群的一致性管理。