The definition of Infrastructure as Code (IaC) has introduced, in the "operation" activities, the advantages of source code management and the adoption of well-known best practices. The resulting code, however, is often difficult to maintain. This is due to the poor readability and the limited syntax and expressive power of the languages currently used in the IaC world. In this talk, we'll show how we got to use Kotlin and Scala to write an IaC system based on the AWS CDK tool and run through Docker images.