liveBook · Manning

Low-level resource

As explained in Infrastructure as Code, Patterns and Practices: With examples in Python and Terraform

A low-level resource is an infrastructure resource that supplies attributes or references required by higher-level resources.

A low-level resource is an infrastructure resource whose attributes or references are required by higher-level resources. Networks, subnets, and routing tables sit beneath dependent servers, clusters, applications, and firewall rules. section 4.1 section 9.2.1

Use low-level resources to make infrastructure dependencies explicit and changes safer:

  • Expose selected identifiers or attributes through outputs rather than embedding direct references in higher-level modules. section 4.2.1
  • Create or update the low-level resource first, test it, then update and test the resources that depend on it. section 9.2.1
  • During monolith refactoring, extract resources in dependency order and use dependency injection to retrieve required low-level values. section 10.2.3 section 10.2.2

Moving servers to a green network

A blue-green change creates a green network with a new IP range, then deploys a cluster and servers configured for that network. The live environment remains isolated while dependent resources are tested. Changing a network attribute in place could otherwise affect the existing cluster and servers. section 9.2.1 section 9.2.2

Figure 9.6 After creating the network, a low-level infrastructure resource, you also need to create new high-level resources like the server and container cluster that depend on it.

Shows the dependency stack from a low-level network to higher-level servers and a container cluster. section 9.2.2

How Infrastructure as Code, Patterns and Practices: With examples in Python and Terraform covers it

How deep it goes
Defines dependency direction and demonstrates outputs, injection, extraction, testing, and blue-green sequencing; it stops short of provider-neutral internals.
Examples
Uses networks, subnets, routing tables, clusters, servers, firewall rules, Terraform state outputs, and GCP API lookups.
What it assumes
Assumes basic infrastructure-as-code and resource relationships while defining low-level and high-level roles from their dependency direction.
What you can do after
Apply it via IaC outputs and dependency injection to isolate resource changes, refactor monoliths, and limit deployment disruption.
How it connects
Connects infrastructure dependencies, high-level resources, dependency injection, inversion of control, blue-green deployment, and infrastructure-as-code refactoring.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Infrastructure as Code, Patterns and Practices: With examples in Python and Terraform. The section links point to the parts of the book it draws on.