SE-Radio Episode 268: Kief Morris on Infrastructure as Code

Topics covered
Popular Clips
Episode Highlights
Defining IaC
Infrastructure as Code (IaC) is a pivotal concept in modern software development, allowing teams to manage and provision infrastructure through code rather than manual processes. explains that IaC enables the application of software development practices, such as version control and automated testing, to infrastructure management 1. This approach reduces the risk of human error and ensures consistency across environments. He notes, "The idea of testing, and particularly automated testing in a test environment, isn't something that we necessarily do as rigorously in the systems administration world as we insist our developers do."
The idea of testing, and particularly automated testing in a test environment, isn't something that we necessarily do as rigorously in the systems administration world as we insist our developers do.
---
Morris also distinguishes between programmable infrastructure and IaC, emphasizing that IaC is more of a philosophy that involves defining infrastructure in version-controlled files and progressing them through environments 2.
Iron vs. Cloud
The transition from the "Iron Age" to the "Cloud Age" marks a significant shift in how infrastructure is managed. describes the Iron Age as a time when infrastructure was physical, requiring lengthy processes to provision servers, whereas the Cloud Age allows for rapid, virtual provisioning 3. This shift enhances efficiency and scalability, enabling organizations to quickly adapt to changing demands. He explains, "The feedback loop becomes very, very tight, very quick," highlighting the agility of cloud-based infrastructure.
The feedback loop becomes very, very tight, very quick.
---
Additionally, Morris points out that while some variability between machines is unavoidable, capturing these differences in code enhances traceability and auditability, crucial for compliance in sectors like healthcare 4.
Version Control
Version control is a cornerstone of Infrastructure as Code, ensuring that all infrastructure changes are tracked and managed systematically. emphasizes the importance of using version control to maintain code integrity and consistency across environments 5. By parameterizing configuration files, teams can use the same code across different environments, adjusting only the necessary parameters. He states, "The code is the same, but just the parameters I put into are different," underscoring the efficiency of this approach.
The code is the same, but just the parameters I put into are different.
---
This practice not only streamlines the deployment process but also ensures that any changes are thoroughly tested before reaching production, reducing the risk of errors and increasing reliability.
Automating Setup
Automating server setup is a key benefit of Infrastructure as Code, offering significant efficiency gains and reducing human error. explains that automation eliminates the need for repetitive manual tasks, allowing teams to focus on more strategic work 6. By documenting server configurations in code, organizations ensure transparency and consistency in their setups. He notes, "It's transparent that way because then anybody can look at that file," highlighting the clarity and accessibility of automated configurations.
It's transparent that way because then anybody can look at that file.
---
This approach not only saves time but also ensures that servers are set up correctly every time, minimizing discrepancies and enhancing reliability.
Related Episodes


SE Radio 634: Jim Bugwadia on Kubernetes Policy as Code
Answers 383 questions

SE-Radio Episode 295: Michael Feathers on Legacy Code
Answers 383 questions

Episode 482: Luke Hoban on Infrastructure as Code
Answers 383 questions

Episode 405: Yevgeniy Brikman on Infrastructure as Code Best Practices
Answers 383 questions

SE Radio 577: Casey Muratori on Clean Code, Horrible Performance?
Answers 383 questions

SE-Radio Episode 357: Adam Barr on Code Quality
Answers 383 questions

SE Radio 618: Andreas Møller on No-Code Platforms
Answers 383 questions

SE-Radio Episode 288: DevSecOps
Answers 383 questions

SE Radio 631: Abhay Paroha on Cloud Migration for Oil and Gas Operations
Answers 383 questions

SE-Radio Episode 247: Andrew Phillips on DevOps
Answers 383 questions

SE-Radio Episode 251: Martin Klose on Code Retreats
Answers 383 questions

SE Radio 635: Stevie Caldwell on Zero-Trust Architecture
Answers 383 questions

SE-Radio Episode 350: Vivek Ravisankar on HackerRank
Answers 383 questions

SE Radio 637: Steve Smith on Software Quality
Answers 383 questions

SE-Radio Episode 319: Nicole Hubbard on Migrating from VMs to Kubernetes
Answers 383 questions














