随着基础架构的复杂性增加,定义它们的配置文件也会增加复杂性。工具,如AWS CloudFormation,Kubernetes和舵期望配置文件使用JSON或YAML语法,可能是为了使它们易于编写和处理。然而,在大多数情况下,团队很快就会遇到这样的情况:他们的某些部分是相似的,但又不完全相同,例如,同一服务必须部署在不同的地区,但设置略有不同。对于这种情况,工具提供模板在YAML(或JSON),这导致了大量的不满从业者.问题是JSON和YAML的语法需要各种笨拙的妥协来将模板特性(比如条件和循环)嫁接到文件中。我们建议使用来自编程语言的API,或者,如果不能这样做,建议使用编程语言中的模板系统,可以是通用语言,如Python,也可以是特殊语言,如Jsonnet.