Hemos usado Terraform extensivamente para crear y manejar infraestructuras en la nube. En nuestra experiencia con instalaciones m¨¢s grandes, donde el c¨®digo se encuentra dividido en m¨®dulos y las configuraciones se incluyen de diferentes maneras, los equipos eventualmente se tropiezan con un muro inevitable de repetici¨®n ocasionado por la falta de flexibilidad. Hemos resuelto esto utilizando , una delgada capa para Terraform que implementa las pr¨¢cticas propuestas por Yevgeniy Brikman en su libro . Hemos encontrado ¨²til a Terragrunt porque fomenta la creaci¨®n de m¨®dulos versionados y la reutilizaci¨®n para distintos entornos. Los hooks para el ciclo de vida son otra funcionalidad ¨²til que entrega flexibilidad adicional. En t¨¦rminos de empaquetado, Terragrunt tiene las mismas limitaciones que Terraform: no hay una forma apropiada para definir paquetes o dependencias entre paquetes. Como alternativa, puedes utilizar m¨®dulos y versiones espec¨ªficas asociadas a una etiqueta de Git.
We widely use Terraform as code to configure a cloud infrastructure. is a thin wrapper for Terraform that implements the practices advocated by the book. We've found Terragrunt helpful as it encourages versioned modules and reusability for different environments with some handy features, including recursive code execution in subdirectories. We'd like to see the tool evolve to support CD practices natively, where all code can be packaged, versioned and reused across different environments on CD pipelines. Our team achieves this today with workarounds.

