Define infrastructure resources using programming constructs and provision them using HashiCorp Terraform