Infrastructure as code with the Pulumi SDK
Pulumi has the same end goal as Terraform – use a developer workflow involving code to automate your infrastructure management. The fundamental way Pulumi is different from Terraform and many other IaC tools such as CloudFormation and ARM is the choice of language. Terraform and most other IaC tools use domain-specific languages such as HCL, YAML, and JSON, which allows you to declare the end state of your infrastructure, and then the IaC tool goes on to implement it. DSL is the preferred mode of achieving IaC because it is fundamentally a declaration of objects with several properties. The issue, however, is that, given it’s a declarative model, there is not much custom logic you can employ. The best you can do is connect the resources using the constructs of your DSL or do rudimentary filtering and joining.
This is where Pulumi takes a different approach. Instead of depending on a chosen DSL, Pulumi supports IaC using popular...