Published Apr 7, 2020

Episode 405: Yevgeniy Brikman on Infrastructure as Code Best Practices

Explore the transformative potential of Infrastructure as Code with Yevgeniy Brikman, as he delves into best practices using Terraform, the microservices architecture's impact on scalability, and the importance of reusable, modular components for efficient IT operations.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • IaC Overview

    , co-founder of Gruntwork, explains the concept of Infrastructure as Code (IaC), highlighting its roots in the DevOps movement. He describes IaC as the practice of managing and provisioning computing infrastructure through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools 1. This approach allows for faster, more consistent deployments, as infrastructure is managed through code rather than manual processes. emphasizes the shift from traditional server management to cloud-based operations, where infrastructure is increasingly managed through software 2.

       

    Design Patterns

    Design patterns in IaC, such as module layering, are crucial for efficient infrastructure management. explains that layering in Terraform involves creating modules that can be reused and combined to build complex infrastructure systems 3. This modular approach allows for flexibility and scalability, as different components can be adjusted or replaced without affecting the entire system. He illustrates this with the example of Vault, a HashiCorp product, where separate modules manage different aspects like security rules and IAM permissions 4.

       

    IaC Benefits

    The benefits of IaC are numerous, including automation, consistency, and improved documentation. highlights how IaC automates infrastructure management, reducing human error and enhancing reliability 5. Code serves as documentation, allowing for version control and easier auditing of changes. This approach not only saves time but also improves the overall quality of infrastructure management. "You basically get all of that through versioned releases," he notes, emphasizing the long-term efficiency gains 6.

       

    IaC Challenges

    Implementing IaC comes with challenges, particularly in the realm of open source and dependency management. points out that many open-source infrastructure codes lack automated tests, making them difficult to maintain and integrate 7. Additionally, the ecosystem for IaC tools is still developing, lacking the mature dependency management systems found in traditional software development 8. He suggests that while the potential for reusable infrastructure code is high, the current state requires careful consideration and adaptation.

Related Episodes