The article provides guidance on structuring infrastructure as code for scalability and longevity. It discusses the concept of layers and suggests managing certain layers with IaC while manually handling others. It also explores the decision-making process for determining the placement of resources in the infrastructure. Additionally, it touches on the debate between mono-repo and multi-repo approaches for IaC and offers recommendations based on different layers. The article emphasizes the importance of encapsulating resource patterns into separate repositories and sharing them across projects.
Table of contents
Layer 0: BillingLayer 1: PrivilegeLayer 2: NetworkLayer 3: PermissionsLayer 4: DataLayer 5: ComputeLayer 6: IngressLayer 7: ApplicationVisualizationPrinciple 1: The Rate of ChangePrinciple 2: Resource LifecyclePrinciple 3: RepositoriesPrinciple 3: EncapsulationControl RepoApplication RepoEncapsulation RepoSort: