When a network change may affect a server, a provisioning tool reveals the dependency before applying it. It creates and manages infrastructure resources for a provider such as a public cloud, data center, or hosted monitoring service, and can preview expected changes through a dry run. section 1.5.2
Use provisioning tools to manage infrastructure relationships while keeping neighboring responsibilities distinct:
- Select a provider-specific tool, such as AWS CloudFormation, or a multiprovider tool, such as Terraform or Pulumi. section 1.5.2
- Keep configuration management focused on packages and server attributes; its integrations do not necessarily make it the best provisioning tool because dependency handling differs. section 1.5.3
- Coordinate provisioning with image building: configure and test the server, capture a versioned image, then provision servers from that image. section 1.5.4
Previewing and refactoring infrastructure
A Terraform dry run can show that a network change may also change a dependent server. During refactoring, existing IAM resources can be imported, checked against separated configuration, and removed from the monolith’s state so one resource is not managed twice. section 1.5.2 section 10.2.1
Table 1.1 Examples of provisioning tools and providers (view table figure)
| Various (for a complete list, see www.terraform.io/docs/providers/index.html) |
|
| Various (for a complete list, see www.pulumi.com/docs/intro/cloud-providers/) |
|
Compare provisioning tools with their supported providers, including cloud-specific, multiprovider, and Kubernetes options. section 1.5.2
