Full Stack Journey 052: Scaling Infrastructure As Code Beyond A Single Engineer

Infrastructure-as-code is not a new topic for the Full Stack Journey podcast—we’ve discussed it in episode 27 (understanding Terraform and using “defensive Terraform”), episode 30 (focused on Pulumi and using general-purpose programming languages for infrastructure-as-code), episode 32 (talking about Lyra), and episode 35 (testing and validation for infrastructure-as-code). Surely this topic has been fully explored, right?

Nope! In today’s show, Scott is joined by Tim Davis (@vtimd on Twitter), Developer Advocate at Env0, to talk about the challenges of scaling infrastructure-as-code beyond a single engineer. Scott and Tim provide practical insights into these challenges and ways to address them.

Some of the topics we cover include:

  • Issues with scaling infrastructure-as-code
  • Managing state–do you need more than just a central storage location?
  • How to handle variable values
  • What is TACOS?
  • The drift problem–what it is, and how to address it

If you’re new to infrastructure-as-code, or if you’re seeking advice on how to scale it to your entire team, this conversation is sure to provide useful information.

Show Notes:

@vtimd  – Tim Davis on Twitter

Env0

The DevOps subreddit

Terraform Cloud

Scalr

Share this episode

Have feedback for the hosts?

We want your follow-up.

SEND AN FU 😎

Join the conversation

Find professional peers and chat all things networking in the Packet Pushers Slack community.

JOIN 💬

Leave a Comment

window.addEventListener("DOMContentLoaded", function() { var preElements = document.getElementsByTagName("pre"); if (preElements && preElements.length > 0) { for (var i = 0; i < preElements.length; i++) { var preElement = preElements[i]; var spanElement = document.createElement("span"); spanElement.classList.add("copy-container"); var buttonElement = document.createElement("button"); buttonElement.textContent = "Copy Snippet"; buttonElement.classList.add("copy-button"); buttonElement.addEventListener("click", createCopyTextHandler(preElement)); spanElement.appendChild(preElement.cloneNode(true)); spanElement.appendChild(buttonElement); preElement.parentNode.replaceChild(spanElement, preElement); } } }); function createCopyTextHandler(element) { return function() { var text = element.textContent; var tempInput = document.createElement("textarea"); tempInput.style = "position: absolute; left: -1000px; top: -1000px"; tempInput.value = text; document.body.appendChild(tempInput); tempInput.select(); document.execCommand("copy"); document.body.removeChild(tempInput); }; } */ ?>