À medida que infraestruturas crescem em complexidade, cresce também a complexidade dos arquivos de configuração que as definem. Ferramentas como AWS CloudFormation, Kubernetes e Helm esperam arquivos de configuração com sintaxe JSON ou YAML, provavelmente na tentativa de deixá-los fáceis de escrever e processar. Contudo, na maioria dos casos, os times rapidamente chegam a um ponto em que têm partes que são similares, mas não iguais (por exemplo, quando o mesmo serviço precisa ser implantado em diferentes regiões com uma configuração ligeiramente diferente). Para esses casos, as ferramentas oferecem templates em YAML (ou JSON), o que causou muita frustração entre profissionais da área. O problema é que as sintaxes do JSON e do YAML requerem todos os tipos de concessões para inserir funcionalidades de template, como condicionais e loops nos arquivos. Recomendamos, em vez disso, usar uma API de uma linguagem de programação, ou, quando não for uma opção, um sistema de template em uma linguagem de programação, seja uma linguagem de uso geral, como Python, ou algo especializado, como Jsonnet.