谷歌公开了内部管理Infra层的两个工具的Paper
解决这个问题之前,我们依赖于传统的工作流引擎。比如,一个工作流列出部署新二进制文件的步骤:在集群X上做金丝雀测试,然后将N部署到集群Y和Z上,运行测试等等。 创建工作流本身就需要大量工作,因此我们只为经常需要做的事情创建工作流,比如二进制文件的版本更新。我们通常手动处理不那么常见的情况,比如重启。已有的脚本经常会过期而不再适用。 对于运维人员来说,这些工作流很容易实现:做X,然后Y。想要添加压力测试?只需要添加一个步骤。但是随着工作流使用规模的扩大,它的问题也显露出来。 首先,扩展工作流会造成很多重复。每个服务都有很好的理由要求一些特殊逻辑,这意味着需要定制化的实现。尝试了几次整合工作流的实现,但是只有适用于某个特定模型的服务才能使用。这样导致的重复让服务变得不一致。最佳实践,比如跨集群的有...阅读全文