我认为核心问题不是在于工具的选型,而是在于工具使用的方法论上。
以我公司自动化建设为例,建设自动化流水线,流水线的每个节点对于一个模块,也就是一个工具,具体的工具选型也是遵循稳定、可靠、安全、可维护的原则。把多个工具组链,形成流水线工具集,采用逻辑中台来管控工具,形成以交付为目标的流水线。
工具的使用方面,一:尽量不要做到工具的二次开发,以我的经验来看,二次开发投入的人力和物力过于庞大,而且工具的作者也有相应的优化迭代计划。对于工具的使用,只需使用工具的相应功能,如jenkins的交付、ansible的配置管理、sonar的扫描。采取接口的方式,把每个工具抛出的数据集中、聚合、分析,形成链式报表。二:做到工具集群的解耦,比如说某些工具具备高可用集群方案,或者强关联的一些功能。贸然使用,会导致工具内部出现问题不能快速的解决,需要扩容,需要做更多的配置,不能快速上线。我们的做法是工具的解耦,工具的使用永远的最干净的。
希望能够帮助你