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

  • Open Source

    Open source libraries play a crucial role in the development of Infrastructure as Code (IaC), offering reusable components that save time and effort. highlights the value of these libraries, comparing them to essential tools in any programming language, such as database clients or date manipulation libraries 1. discusses the importance of these libraries in the Terraform ecosystem, emphasizing their ability to streamline processes and reduce the need to start from scratch 2.

    If I was going to start a task in any programming language, and I need to do things like talk to a database or manipulate date and time, I'm not going to code that all up from scratch.

    ---

    These libraries not only enhance efficiency but also foster community support and collaboration, making them indispensable in modern software development.

       

    Modular Design

    The modular design of infrastructure components, such as HashiCorp Vault, offers flexibility and scalability. explains how modularity allows for the separation of components like load balancers, security group rules, and IAM permissions, enabling tailored deployments for different environments 3. This design approach not only simplifies the deployment process but also accommodates varying needs across production and pre-production settings.

    Instead of spending two, three months learning how to run it, learning how to secure it, learning how to scale it, and all of these other pieces, you can basically grab this code off the shelf.

    ---

    By leveraging modular components, developers can efficiently manage infrastructure, ensuring that systems like Vault are both robust and adaptable 4.

       

    Code Reusability

    Infrastructure code reusability is a key practice in modern software engineering, allowing for efficient and flexible deployments. describes how reusable components serve as building blocks, which can be parameterized and combined to suit different environments 5. This approach mirrors traditional software engineering practices, such as dependency injection, enhancing control and adaptability.

    The infrastructure you need under the hood is going to look pretty darn similar. You're going to use it in a million different ways.

    ---

    By creating reusable infrastructure code, companies can streamline their operations, reducing redundancy and fostering innovation across various platforms like AWS, Google Cloud, and Azure 6.

Related Episodes