100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Terraform & Infrastructure as Code
30 minintermediate

The Module Registry and Versioning

Modules stored in local directories work within a single repository but cannot be easily shared across teams and organisations. The Terraform Registry (registry.terraform.io) provides a public discovery and hosting platform for modules, and private module registries (Terraform Cloud, GitHub Packages, S3, etc.) enable organisations to distribute internally developed modules. Module versioning addresses the module author's ability to evolve a module's internals and fix bugs without breaking existing callers, and the caller's ability to control when they adopt new versions. Understanding module sources, version constraints, and the semantic versioning conventions used in the Terraform ecosystem is essential for building a sustainable, maintainable infrastructure codebase that can grow over years without becoming an unmaintainable tangle of tightly coupled configurations.

Analogy🏏Cricket
🏏 Think of it like cricket: Before standardised cricket rulebooks existed, every ground played by its own local customs — different LBW interpretations, different wide-ball rules, inconsistent DRS protocols. A touring team playing in a new city had to learn an entirely different set of rules. The standardised ICC rulebook is IaC: a version-controlled document that specifies exactly how cricket is played anywhere in the world. When any ground host asks 'how should this match be set up?', they apply the rulebook — not their memory, not local tradition, not a wiki page from 2019. Every ground becomes reproducible because they're all applying the same version-controlled specification. The insight is that codifying rules enables consistency at scale — you can run a thousand simultaneous cricket matches and every one follows the same rules because they all reference the same canonical document.
Lesson 14 of 24
0% complete