<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[The Config Report]]></title><description><![CDATA[Network engineer helping SMBs and IT pros simplify automation, security, and networking.]]></description><link>https://theconfigreport.com</link><image><url>https://substackcdn.com/image/fetch/$s_!P-1l!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9dca975-662b-4840-a6b8-c7e2d30746d9_626x626.png</url><title>The Config Report</title><link>https://theconfigreport.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 15 Apr 2026 20:15:19 GMT</lastBuildDate><atom:link href="https://theconfigreport.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[JJ from The Config Report]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[jj@theconfigreport.com]]></webMaster><itunes:owner><itunes:email><![CDATA[jj@theconfigreport.com]]></itunes:email><itunes:name><![CDATA[JJ – Chief Packet Pusher]]></itunes:name></itunes:owner><itunes:author><![CDATA[JJ – Chief Packet Pusher]]></itunes:author><googleplay:owner><![CDATA[jj@theconfigreport.com]]></googleplay:owner><googleplay:email><![CDATA[jj@theconfigreport.com]]></googleplay:email><googleplay:author><![CDATA[JJ – Chief Packet Pusher]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Infrastructure as Code: The State File Nobody Warned You About]]></title><description><![CDATA[Learn what the IaC state file is, how configuration drift happens, and why automation breaks. Practical tips for network engineers to prevent outages and manage Infrastructure as Code safely.]]></description><link>https://theconfigreport.com/p/iac-the-state-file</link><guid isPermaLink="false">https://theconfigreport.com/p/iac-the-state-file</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 13 Apr 2026 14:34:23 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3640e504-80bf-429b-a332-d93bb5474973_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong>Everything was fine&#8230; until it wasn&#8217;t</strong></h2><p>Everything was working.</p><p>No alerts. No tickets. No angry Slack messages.</p><p>You ran your automation like you&#8217;ve done a hundred times before.</p><p>And then&#8230;</p><p>Something disappeared.<br>Something changed.<br>Something broke.</p><p>And the worst part?</p><p>Your automation said everything was successful.</p><p>Welcome to <strong>state</strong>.</p><div><hr></div><h2><strong>What &#8220;State&#8221; Actually Is (In Human Terms)</strong></h2><p>When people talk about Infrastructure as Code, they usually focus on:</p><ul><li><p>Version control</p></li><li><p>Repeatable deployments</p></li><li><p>Automation</p></li></ul><p>But behind all of that&#8230; there&#8217;s something quietly keeping score.</p><p><strong>State is what your IaC tool </strong><em><strong>believes</strong></em><strong> exists.</strong></p><p>Not what actually exists.<br>Not what was changed 10 minutes ago.<br>Not what someone &#8220;just quickly fixed&#8221; in the CLI.</p><p>Just&#8230; what it <em>thinks</em> is true.</p><p>Think of it like this:</p><blockquote><p>State is a network diagram that updates automatically&#8230;<br>but sometimes lies to you with full confidence.</p></blockquote><div><hr></div><h2><strong>Why State Exists (And Why You Actually Need It)</strong></h2><p>Before we start blaming state for everything&#8230;</p><p>It&#8217;s doing something important.</p><p>Your IaC tool needs to answer three questions:</p><ol><li><p>What exists right now?</p></li><li><p>What should exist?</p></li><li><p>What needs to change to get there?</p></li></ol><p>Without state:</p><ul><li><p>Every run would be a blind push</p></li><li><p>Or a full tear-down and rebuild</p></li><li><p>Or worse&#8230; unpredictable results every time</p></li></ul><p>State is what makes IaC <strong>efficient instead of chaotic</strong>.</p><div><hr></div><h2><strong>Here&#8217;s Where Things Get Dangerous</strong></h2><p>State works perfectly&#8230;</p><p>&#128073; <strong>As long as nothing changes outside of it.</strong></p><p>And if you&#8217;ve worked in networking for more than 5 minutes&#8230;</p><p>You already know that&#8217;s not reality.</p><div><hr></div><h2><strong>Problem #1: Drift (AKA &#8220;Who Touched My Config?&#8221;)</strong></h2><p>Drift happens when:</p><ul><li><p>Someone makes a manual change</p></li><li><p>A hotfix gets applied directly</p></li><li><p>A controller updates something behind the scenes</p></li></ul><p>Now your real environment &#8800; your state file.</p><p>So what happens next?</p><p>You run your automation again.</p><p>&#128073; And it &#8220;fixes&#8221; the difference.</p><p>Meaning:</p><blockquote><p>Congrats. Your firewall just undid a critical change from two hours ago.</p></blockquote><div><hr></div><h2><strong>Problem #2: Stale State (Yesterday&#8217;s Truth, Today&#8217;s Problem)</strong></h2><p>Sometimes nothing changed manually.</p><p>But your state is just&#8230; old.</p><p>Maybe:</p><ul><li><p>The last run failed halfway</p></li><li><p>The state file didn&#8217;t update correctly</p></li><li><p>Another process modified things</p></li></ul><p>Now your tool is operating on <strong>outdated assumptions</strong>.</p><blockquote><p>&#8220;I updated the VLAN.&#8221;<br>Cool&#8230; except that VLAN hasn&#8217;t existed since Tuesday.</p></blockquote><div><hr></div><h2><strong>Problem #3: Shared State (Team Chaos Mode)</strong></h2><p>Things get really fun when multiple people or pipelines are involved.</p><ul><li><p>Two engineers run automation at the same time</p></li><li><p>One pipeline overwrites another</p></li><li><p>State gets updated mid-run</p></li></ul><p>Now you&#8217;ve got:</p><ul><li><p>Race conditions</p></li><li><p>Conflicting changes</p></li><li><p>&#8220;It worked on my run&#8221; arguments</p></li></ul><div><hr></div><h2><strong>Problem #4: Losing State (The Oh No Scenario)</strong></h2><p>If your state file disappears or gets corrupted&#8230;</p><p>You don&#8217;t just lose data.</p><p>You lose <strong>awareness</strong>.</p><p>Your IaC tool now has no idea:</p><ul><li><p>What exists</p></li><li><p>What it created</p></li><li><p>What it should manage</p></li></ul><p>At that point, your options are:</p><ul><li><p>Rebuild everything</p></li><li><p>Or manually figure it out</p></li></ul><p>Neither one feels great.</p><div><hr></div><h2><strong>Why Network Engineers Feel This Pain More Than Anyone</strong></h2><p>In theory, IaC assumes:</p><blockquote><p>All changes go through code.</p></blockquote><p>In reality, networking looks more like:</p><ul><li><p>Emergency CLI fixes</p></li><li><p>Vendor GUIs making &#8220;helpful&#8221; changes</p></li><li><p>Multiple systems touching the same config</p></li><li><p>Partial automation</p></li></ul><p>Which means:</p><p>&#128073; Drift isn&#8217;t rare.<br>&#128073; It&#8217;s constant.</p><div><hr></div><h2><strong>The Real Problem</strong></h2><p>IaC doesn&#8217;t just manage your network.</p><p>It manages your <strong>understanding of your network</strong>.</p><p>And if that understanding is wrong&#8230;</p><p>Everything built on top of it will be wrong too.</p><div><hr></div><h2><strong>What You&#8217;ll Learn in the Rest of This Issue</strong></h2><p>In the full version, I&#8217;ll walk you through how to:</p><ul><li><p>Prevent config drift from silently breaking your environment</p></li><li><p>Safely manage state across multiple engineers and pipelines</p></li><li><p>Avoid the &#8220;automation just wiped my change&#8221; nightmare</p></li><li><p>Build a workflow that actually works in real-world networks</p></li></ul><p>Because state isn&#8217;t the problem.</p><p>Ignoring it is.</p><div><hr></div><h1>&#128274; <strong>Continue Reading (Extended Version)</strong></h1><div><hr></div><h2><strong>Let&#8217;s Fix This Before It Fixes You</strong></h2><p></p>
      <p>
          <a href="https://theconfigreport.com/p/iac-the-state-file">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Infrastructure as Code: Declarative vs Imperative (And Why Your Automation Still Breaks)]]></title><description><![CDATA[Learn the difference between declarative and imperative Infrastructure as Code, why most network automation breaks, and how to build safer, repeatable configs using real-world patterns.]]></description><link>https://theconfigreport.com/p/iac-declarative-vs-imperative</link><guid isPermaLink="false">https://theconfigreport.com/p/iac-declarative-vs-imperative</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 30 Mar 2026 14:03:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9727e5d9-940c-42ee-a44f-5022d63ad8e1_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>The Moment Everything Gets Confusing</h2><p>You start automating your network.</p><p>At first, it feels great.</p><p>No more clicking around in GUIs.<br>No more late-night &#8220;what changed?&#8221; guessing games.</p><p>You write a script like this:</p><ul><li><p>Create VLAN 20</p></li><li><p>Assign ports</p></li><li><p>Enable trunk</p></li></ul><p>Boom. Automation.</p><p>You sit back, sip your coffee, and think:</p><blockquote><p>&#8220;Yeah&#8230; I&#8217;m basically DevOps now.&#8221;</p></blockquote><p>Then something weird happens.</p><p>You run the same script again&#8230;<br>And now things break.</p><div><hr></div><h2>The Problem You Didn&#8217;t Know You Had</h2><p>Your script isn&#8217;t wrong.</p><p>It&#8217;s just&#8230; <strong>bossy.</strong></p><p>This is what we call <strong>imperative automation</strong>.</p><p>You&#8217;re telling the network:</p><blockquote><p>&#8220;Do these exact steps. In this exact order. No questions.&#8221;</p></blockquote><p>And the network is like:</p><blockquote><p>&#8220;Cool&#8230; but I already did some of that.&#8221;</p></blockquote><p>Now you&#8217;ve got:</p><ul><li><p>Duplicate configs</p></li><li><p>Unexpected errors</p></li><li><p>Or worse&#8230; silent failures</p></li></ul><p>Your automation didn&#8217;t fail.</p><p>It did <em>exactly</em> what you told it to do.</p><p>That&#8217;s the problem.</p><div><hr></div><h2>Imperative vs Declarative (The Real Difference)</h2><p>Let&#8217;s make this painfully clear.</p><h3><strong>Imperative (What most network engineers start with):</strong></h3><pre><code>create vlan 20
assign ports
enable trunk</code></pre><p>You are controlling <strong>how</strong> the network gets there.</p><p>Step by step. Like a checklist.</p><div><hr></div><h3><strong>Declarative (What IaC actually wants):</strong></h3><pre><code>vlans:
  - id: 20
    name: users</code></pre><p>You are describing <strong>what the network should look like</strong>.</p><p>Not how to build it.</p><div><hr></div><p>Here&#8217;s the simplest way to think about it:</p><ul><li><p><strong>Imperative:</strong> &#8220;Do these steps.&#8221;<br></p></li><li><p><strong>Declarative:</strong> &#8220;This is the outcome &#8212; figure it out.&#8221;<br></p></li></ul><div><hr></div><h2>Why Your Scripts Break (Even When They&#8217;re &#8220;Correct&#8221;)</h2><p>Imperative automation assumes one dangerous thing:</p><blockquote><p>The starting state is always what you expect.</p></blockquote><p>It&#8217;s almost never true.</p><p>Real networks have:</p><ul><li><p>Old configs nobody remembers<br></p></li><li><p>Manual changes at 2AM<br></p></li><li><p>&#8220;Temporary&#8221; fixes from 6 months ago<br></p></li><li><p>That one engineer who &#8220;just tweaked something real quick&#8221;<br></p></li></ul><p>So when your script runs:</p><ul><li><p>Maybe VLAN 20 already exists<br></p></li><li><p>Maybe ports are already assigned<br></p></li><li><p>Maybe the trunk is already enabled<br></p></li></ul><p>Now your script either:</p><ul><li><p>Errors out<br></p></li><li><p>Overwrites something it shouldn&#8217;t<br></p></li><li><p>Or quietly does nothing useful<br></p></li></ul><div><hr></div><h2>Declarative Thinking Changes Everything</h2><p>Declarative systems don&#8217;t care how things got messed up.</p><p>They only care about one thing:</p><blockquote><p>&#8220;Does the current state match the desired state?&#8221;</p></blockquote><p>If not&#8230; fix it.</p><p>If yes&#8230; do nothing.</p><p>That&#8217;s why declarative automation is:</p><ul><li><p><strong>Idempotent</strong> (safe to run over and over)<br></p></li><li><p><strong>Predictable</strong><br></p></li><li><p><strong>Much harder to break at scale</strong><br></p></li></ul><div><hr></div><h2>Controllers, Templates&#8230; and the IaC Confusion</h2><p>This is where things get a little awkward.</p><p>Because a lot of network engineers think:</p><blockquote><p>&#8220;We already have templates. We&#8217;re basically doing Infrastructure as Code.&#8221;</p></blockquote><p>And to be fair&#8230; you&#8217;re not wrong.</p><p>Tools like:</p><ul><li><p>Panorama device groups<br></p></li><li><p>Aruba Central group configs<br></p></li><li><p>Meraki network templates<br></p></li></ul><p><strong>Absolutely make your life better.</strong></p><p>They give you:</p><ul><li><p>Consistency<br></p></li><li><p>Centralized management<br></p></li><li><p>Less copy/paste chaos<br></p></li></ul><p>Compared to pure CLI chaos, that&#8217;s a huge step forward.</p><div><hr></div><h2>But Here&#8217;s the Problem</h2><p>They&#8217;re not <em>actually</em> Infrastructure as Code.</p><p>They&#8217;re <strong>centralized configuration</strong>.</p><p>And that&#8217;s not the same thing.</p><p>Because in most environments:</p><blockquote><p>The <strong>source of truth is still the controller UI.</strong></p></blockquote><p>Which means&#8230;</p><ul><li><p>Someone logs into the controller<br></p></li><li><p>Makes a quick change<br></p></li><li><p>Clicks commit<br></p></li><li><p>Moves on with their day<br></p></li></ul><p>And just like that:</p><ul><li><p>The network changed<br></p></li><li><p>Nobody reviewed it<br></p></li><li><p>Nothing was versioned<br></p></li><li><p>No one knows <em>why</em> it changed next week<br></p></li></ul><div><hr></div><h2>This Is Still Imperative Thinking (Just With a GUI)</h2><p>Even with templates, you&#8217;re still doing this:</p><blockquote><p>&#8220;Go into the controller and make this change.&#8221;</p></blockquote><p>That&#8217;s imperative.</p><p>You&#8217;re still telling the system <strong>how to change</strong>, not defining <strong>what it should be</strong>.</p><div><hr></div><h2>What IaC Actually Changes</h2><p>Infrastructure as Code flips the model.</p><p>Instead of this:</p><blockquote><p>&#8220;Log into the controller and update the template&#8221;</p></blockquote><p>You do this:</p><ul><li><p>Define config in a repo<br></p></li><li><p>Submit a change<br></p></li><li><p>Review it<br></p></li><li><p>Merge it<br></p></li><li><p>Let automation push it<br></p></li></ul><p>Now the flow becomes:</p><blockquote><p>Code &#8594; Automation &#8594; Controller &#8594; Devices</p></blockquote><p>Not:</p><blockquote><p>Engineer &#8594; Controller &#8594; Hope nothing breaks</p></blockquote><div><hr></div><h2>The Controller&#8217;s New Job</h2><p>In IaC, the controller doesn&#8217;t disappear.</p><p>It just gets demoted a little &#128516;</p><p>It becomes:</p><blockquote><p><strong>A deployment platform &#8212; not the source of truth</strong></p></blockquote><div><hr></div><h2>Why This Matters More Than People Realize</h2><p>Because without this shift, you still have:</p><ul><li><p>No real version control<br></p></li><li><p>No safe rollback<br></p></li><li><p>No audit trail that actually helps<br></p></li><li><p>No guarantee your &#8220;template&#8221; matches reality<br></p></li></ul><p>You&#8217;ve improved <em>consistency</em>&#8230;</p><p>But you haven&#8217;t solved <em>control</em>.</p><div><hr></div><h2>&#9888;&#65039; Where This Starts Getting Interesting</h2><p>Because once you stop telling the network <em>how</em> to change&#8230;</p><p>And start defining <em>what it should be</em>&#8230;</p><p>You run into a new problem:</p><blockquote><p><strong>How do you actually enforce that state safely?</strong></p></blockquote><div><hr></div><h2>&#128275; What Paid Subscribers Get in This Issue</h2><p>If your automation only works when you babysit it&#8230;<br>this is the part you don&#8217;t want to miss.</p><p>In the rest of this issue, I break down:</p><ul><li><p>How to make <strong>imperative tools (like Ansible)</strong> behave like declarative systems</p></li><li><p>The <strong>3 rules</strong> that turn fragile scripts into safe, repeatable automation</p></li><li><p>Real-world patterns for checking state <em>before</em> making changes</p></li><li><p>How to stop writing &#8220;run once and pray&#8221; automation</p></li><li><p>Why most network automation fails silently&#8212;and how to fix it</p></li></ul><p>This is the difference between:</p><blockquote><p>&#8220;I have scripts&#8221;</p></blockquote><p>and</p><blockquote><p>&#8220;I have automation I actually trust in production&#8221;</p></blockquote>
      <p>
          <a href="https://theconfigreport.com/p/iac-declarative-vs-imperative">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Infrastructure as Code: Why Most Networks Are Still Built Like It's 2005 – Extended Version]]></title><description><![CDATA[A deeper look at Infrastructure as Code, snowflake infrastructure, and how Git, automation, and CI/CD make networks reproducible and easier to manage.]]></description><link>https://theconfigreport.com/p/iac-why-networks-are-built-like-2005-extended</link><guid isPermaLink="false">https://theconfigreport.com/p/iac-why-networks-are-built-like-2005-extended</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 16 Mar 2026 20:40:15 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2a2a8d39-84f9-4fd8-a29d-dbeaee30b572_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the free version of this issue, we talked about how traditional infrastructure tends to evolve into <strong>snowflake systems</strong>.</p><p>Every device becomes slightly different.</p><p>Configs drift.<br>Documentation gets outdated.<br>And the only reliable record of the infrastructure becomes the running configuration on the device.</p><p>Infrastructure as Code attempts to solve that problem.</p><p>But understanding IaC requires thinking about infrastructure in a completely different way.</p><p>Instead of asking:</p><p>&#8220;How do we configure this device?&#8221;</p><p>IaC asks a different question:</p><p>&#8220;How do we <strong>recreate this infrastructure from scratch</strong>?&#8221;</p><p>That shift in thinking is where most teams struggle.</p><div><hr></div><h2>The Real Test of Infrastructure</h2><p>A good way to understand Infrastructure as Code is to imagine a simple scenario.</p><p>A core switch fails.</p><p>Completely dead.</p><p>No configuration backup available.</p><p></p>
      <p>
          <a href="https://theconfigreport.com/p/iac-why-networks-are-built-like-2005-extended">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Infrastructure as Code: Why Most Networks Are Still Built Like It's 2005]]></title><description><![CDATA[What Infrastructure as Code really means for network engineers, why most networks still rely on manual configs, and how IaC changes infrastructure management.]]></description><link>https://theconfigreport.com/p/iac-why-networks-are-built-like-2005</link><guid isPermaLink="false">https://theconfigreport.com/p/iac-why-networks-are-built-like-2005</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 16 Mar 2026 20:29:54 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/541280da-56ee-4c1d-acf8-ae074bff41af_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You inherit a network.</p><p>The documentation is outdated.<br>Half the switches have configs that don&#8217;t match each other.<br>There&#8217;s a firewall rule nobody understands but everyone is afraid to delete.</p><p>Someone tells you:</p><p>&#8220;Don&#8217;t touch that. It&#8217;s been like that for years.&#8221;</p><p>So you do the only thing network engineers have done for decades.</p><pre><code>show run</code></pre><p>You scroll.<br><br>You search.<br><br>You try to reverse-engineer the history of the network from the running configuration.</p><p>Welcome to traditional infrastructure management.</p><p>And whether we like it or not, <strong>this is still how most networks operate today.</strong></p><div><hr></div><h2>The Snowflake Infrastructure Problem</h2><p>For a long time, infrastructure was built the same way most home labs are built.</p><p>One device at a time.</p><p>An engineer logs in, configures something, saves the config, and moves on.</p><p>Over time, every device becomes slightly different.</p><p>Different VLAN names.<br><br>Different ACL structures.<br><br>Different routing policies.</p><p>No two devices are exactly the same.</p><p>Every server, switch, and firewall becomes a <strong>special little snowflake</strong>.</p><p>Unique.<br><br>Fragile.<br><br>And terrifying to rebuild.</p><div><hr></div><h2>The &#8220;Just SSH In Real Quick&#8221; Culture</h2><p>Most infrastructure teams developed a habit that still exists today.</p><p>Something breaks.</p><p>An engineer logs into the device.</p><p>They make a change directly on the CLI.</p><p>Problem solved.</p><p>Until six months later when someone else asks:</p><p>&#8220;Why is this configured like this?&#8221;</p><p>And the only documentation available is:</p><pre><code>show running-config</code></pre><p>This approach worked for a long time because networks were smaller, simpler, and changed less frequently.</p><p>But modern infrastructure moves faster than manual configuration can keep up.</p><div><hr></div><h2>Software Engineers Solved This Problem Years Ago</h2><p>Here&#8217;s where things start to look strange from the infrastructure side.</p><p>Software engineers can rebuild an entire application from a Git repository.</p><p>Every dependency.<br><br>Every configuration.<br><br>Every version.</p><p>If their production server disappears, they don&#8217;t panic.</p><p>They redeploy it.</p><p>Infrastructure teams, on the other hand, often can&#8217;t rebuild a single switch configuration without digging through backups, documentation, and tribal knowledge.</p><p>That difference is exactly what <strong>Infrastructure as Code</strong> was created to solve.</p><div><hr></div><h2>What Infrastructure as Code Actually Means</h2><p>Despite the buzzwords, Infrastructure as Code is a simple idea.</p><p>Infrastructure should be <strong>defined in code and reproducible from source control</strong>.</p><p>Instead of logging into devices and configuring them manually, the configuration lives in a repository.</p><p>Changes are tracked.<br><br>Versions are recorded.<br><br>Deployments are automated.</p><p>The infrastructure becomes something you can <strong>rebuild instead of repair</strong>.</p><p>In other words:</p><p>Your network stops being a collection of mystery configurations and starts behaving more like software.</p><div><hr></div><h2>Why Network Engineers Struggle With IaC</h2><p>Infrastructure as Code sounds simple, but for many network engineers it feels unnatural at first.</p><p>Networking has historically been built around direct device access.</p><p>CLI commands.<br><br>Vendor GUIs.<br><br>Manual configuration.</p><p>Automation tools came later.</p><p>And even today, the instinct when something breaks is still:</p><p>&#8220;Let me SSH in real quick.&#8221;</p><p>Infrastructure as Code flips that model.</p><p>Instead of fixing things manually, changes happen through <strong>code and automation</strong>.</p><p>Which means the CLI stops being the primary tool for managing infrastructure.</p><p>For many engineers, that&#8217;s a major shift in how operations work.</p><div><hr></div><h2>What Infrastructure as Code Is NOT</h2><p>A lot of teams believe they&#8217;re doing Infrastructure as Code when they really aren&#8217;t.</p><p>IaC is not:</p><p>&#8226; Running scripts occasionally<br><br>&#8226; Copy-pasting configs through automation<br><br>&#8226; Using Ansible once in a while<br><br>&#8226; Storing backups in Git</p><p>Infrastructure as Code is about <strong>desired state and reproducibility</strong>.</p><p>If a device disappears, you should be able to recreate it from the code.</p><p>No guessing.</p><p>No archaeology.</p><p>No asking the engineer who configured it three years ago.</p><p>Just code.</p><div><hr></div><h2>The Real Goal of IaC</h2><p>The goal of Infrastructure as Code is simple.</p><p>If a switch, firewall, or server disappears tomorrow&#8230;</p><p>You should be able to rebuild it from Git.</p><p>Not rebuild it <em>approximately</em>.<br><br>Not rebuild it <em>close enough</em>.</p><p>Rebuild it <strong>exactly</strong>.</p><p>That&#8217;s when infrastructure stops being fragile and starts being reliable.</p><div><hr></div><h2>What Comes Next</h2><p>Once infrastructure is defined in code, a new set of concepts appears that can be confusing at first.</p><p>Terms like:</p><p>Declarative<br><br>Imperative<br><br>Idempotent<br><br>State</p><p>These ideas are at the core of how modern infrastructure automation works.</p><p>And understanding them is what separates simple automation from true Infrastructure as Code.</p><p>In the next issue, we&#8217;ll break down one of the most misunderstood concepts in automation:</p><p><strong>Declarative vs Imperative infrastructure.</strong></p><p>Because understanding that difference is where Infrastructure as Code really starts to make sense.</p><div><hr></div><h2>Want the deeper dive?</h2><p>Most teams trying Infrastructure as Code fail for the same reason.</p><p>They try to automate infrastructure <strong>without changing how the team operates</strong>.</p><p>The result is predictable.</p><p>The code says one thing.<br>The infrastructure slowly becomes something else.</p><p>Eventually nobody trusts the automation anymore.</p><p>In the <strong>Extended Version</strong>, we break down:</p><p>&#8226; The real test that proves whether your infrastructure is reproducible<br>&#8226; The biggest mistake teams make when adopting IaC<br>&#8226; How Git becomes the control plane for infrastructure<br>&#8226; Why automation fails when manual changes are still allowed</p><p>If you&#8217;ve ever inherited a network where nobody knows why half the configs exist, the extended version will feel painfully familiar.</p><div><hr></div><p>&#8212; JJ &#8211; Chief Packet Pusher.</p>]]></content:encoded></item><item><title><![CDATA[Why Your CI/CD Pipeline Is a Liar – Extended Version]]></title><description><![CDATA[Build infrastructure pipelines that protect production. Includes drift detection, blast radius checks, rollback strategy, and a CI/CD maturity checklist.]]></description><link>https://theconfigreport.com/p/cicd-pipeline-is-a-liar-extended</link><guid isPermaLink="false">https://theconfigreport.com/p/cicd-pipeline-is-a-liar-extended</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 02 Mar 2026 15:30:30 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/992d16ed-2f6b-4930-9527-005985a3c8ae_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Your pipeline is green.</p><p>Prod is down.</p><p>Someone says, &#8220;But the build passed.&#8221;</p><p>And now you&#8217;re staring at a dashboard like it personally betrayed you.</p><p>This is the finale of the CI/CD series.</p><p>We&#8217;ve covered what CI actually means.<br>We&#8217;ve separated Delivery from Deployment.<br>We&#8217;ve talked about pipelines for infrastructure &#8212; not just app dev.</p><p>Now we&#8217;re going to fix the r&#8230;</p>
      <p>
          <a href="https://theconfigreport.com/p/cicd-pipeline-is-a-liar-extended">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Why Your CI/CD Pipeline Is a Liar]]></title><description><![CDATA[Green builds don&#8217;t guarantee safe deploys. Learn why CI/CD pipelines fail infrastructure teams&#8212;and how to stop trusting fake success signals.]]></description><link>https://theconfigreport.com/p/cicd-pipeline-is-a-liar</link><guid isPermaLink="false">https://theconfigreport.com/p/cicd-pipeline-is-a-liar</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 02 Mar 2026 15:04:14 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d2ad9c31-a528-48b1-bba1-f744883783c2_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Your pipeline was green.</p><p>All checks passed.<br>Linting? Clean.<br>Validation? Successful.<br>Approval? Clicked.</p><p>And then production immediately fell over like a folding chair at a backyard BBQ.</p><p>If the pipeline was green&#8230; how did prod still catch on fire?</p><p>Welcome to the finale of the CI/CD series.</p><p>Today we&#8217;re talking about the uncomfortable truth:</p><p>Your pipeline might be lying to you.</p><div><hr></div><h2>Lie #1 &#8212; &#8220;All Tests Passed&#8221;</h2><p>This one feels comforting.</p><p>&#8220;All tests passed&#8221; sounds like:</p><ul><li><p>We&#8217;re safe.</p></li><li><p>We&#8217;re mature.</p></li><li><p>We&#8217;re DevOps now.</p></li></ul><p>But what did those tests actually test?</p><p>For infrastructure teams, most pipelines check structure &#8212; not intent.</p><p>Examples you&#8217;ve probably lived through:</p><ul><li><p>Ansible syntax check passes&#8230; but you referenced the wrong variable group.</p></li><li><p>Terraform validates&#8230; but your plan destroys the wrong resource.</p></li><li><p>Firewall rules commit cleanly&#8230; but you just shadowed a critical ACL.</p></li><li><p>YAML lints perfectly&#8230; and still points production traffic to the wrong subnet.</p></li></ul><p>Passing lint is not the same thing as validating logic.</p><p>A syntax check will happily confirm that your disaster is formatted correctly.</p><p>Most infrastructure pipelines prove that the config is legal.</p><p>They do not prove that it is smart.</p><div><hr></div><h2>Lie #2 &#8212; &#8220;It Worked in QA&#8221;</h2><p>Ah yes. QA.</p><p>Where everything works.</p><p>Because QA:</p><ul><li><p>Has fewer devices.</p></li><li><p>Has less traffic.</p></li><li><p>Has no mystery static routes from 2011.</p></li><li><p>Doesn&#8217;t have that one undocumented NAT rule nobody wants to touch.</p></li></ul><p>Production is messy.</p><p>It has history.<br>It has hotfixes.<br>It has &#8220;temporary&#8221; changes from five years ago.</p><p>And if your environments drift &#8212; which they absolutely do &#8212; then &#8220;it worked in QA&#8221; just means:</p><p>&#8220;It worked in a cleaner universe.&#8221;</p><p>Environment drift is one of the biggest lies pipelines hide.</p><p>Your CI/CD process assumes parity.</p><p>Your network does not.</p><div><hr></div><h2>Lie #3 &#8212; &#8220;We Have a Pipeline, So We&#8217;re Mature&#8221;</h2><p>This one hurts.</p><p>Some pipelines exist for one reason:</p><p>To push changes faster.</p><p>That&#8217;s it.</p><p>No diff validation.<br>No policy enforcement.<br>No blast radius awareness.<br>No rollback plan.<br>No drift detection.</p><p>Just:</p><p>Push button &#8594; Deploy everywhere &#8594; Hope.</p><p>If your pipeline&#8217;s only job is to move changes faster, it&#8217;s not CI/CD.</p><p>It&#8217;s a cannon.</p><p>Speed without guardrails is not maturity.</p><p>It&#8217;s automation with confidence issues.</p><div><hr></div><h2>Lie #4 &#8212; &#8220;Green Means Safe&#8221;</h2><p>Dashboards are addictive.</p><p>Big green checkmarks.<br>Happy pipeline stages.<br>Pretty graphs.</p><p>But green only means:</p><p>&#8220;The steps we defined completed successfully.&#8221;</p><p>If the steps are shallow&#8230;<br>The green is meaningless.</p><p>You can have:</p><ul><li><p>Zero validation of route impact.</p></li><li><p>Zero awareness of overlapping firewall rules.</p></li><li><p>Zero health checks after deployment.</p></li></ul><p>And still get a big green check.</p><p>Your pipeline doesn&#8217;t know your business impact.</p><p>It only knows the commands it ran.</p><div><hr></div><h2>So What Makes a Pipeline Honest?</h2><p>An honest pipeline does more than execute.</p><p>It questions the change.</p><p>At a high level, honest infrastructure pipelines include things like:</p><ul><li><p>Pre-change diffs reviewed before apply.</p></li><li><p>Policy checks (not just syntax checks).</p></li><li><p>Approval gates with context.</p></li><li><p>Rollback strategies that are real &#8212; not &#8220;revert manually.&#8221;</p></li><li><p>Drift detection that catches CLI hotfixes.</p></li><li><p>Post-deploy validation (connectivity, routing, service health).</p></li></ul><p>Honest pipelines try to break your change before production does.</p><p>They are guardrails &#8212; not speedrun buttons.</p><div><hr></div><h2>The Real Goal of CI/CD (For Infrastructure)</h2><p>CI/CD is not about deploying faster.</p><p>It&#8217;s about feedback.</p><p>It&#8217;s about safety.</p><p>It&#8217;s about visibility.</p><p>It&#8217;s about being able to answer:</p><ul><li><p>Who approved this?</p></li><li><p>What changed?</p></li><li><p>Why did it change?</p></li><li><p>Can we roll it back?</p></li><li><p>Does production actually match Git?</p></li></ul><p>Automation doesn&#8217;t remove responsibility.</p><p>It removes excuses.</p><div><hr></div><h2>Want to Build a Pipeline That Doesn&#8217;t Lie?</h2><p>In the <strong>Extended Version</strong>, I break down:</p><ul><li><p>The four levels of infrastructure pipeline maturity</p></li><li><p>What real CI looks like for Ansible, Terraform, and firewall changes</p></li><li><p>Drift detection patterns most teams ignore</p></li><li><p>Blast radius awareness before deployment</p></li><li><p>Rollback strategies that don&#8217;t require panic</p></li><li><p>A practical CI/CD self-assessment checklist you can use immediately</p></li></ul><p>If your pipeline is green but prod still makes you nervous&#8230;<br>that version is for you.</p><div><hr></div><p>That&#8217;s the finale of the CI/CD series.</p><p>You don&#8217;t need trendier tools.</p><p>You need stricter feedback loops.</p><p>And maybe fewer green checkmarks you don&#8217;t trust.</p><p>&#8212; JJ &#8211; Chief Packet Pusher</p>]]></content:encoded></item><item><title><![CDATA[CI/CD for Infra, Not Just App Dev – Extended Version]]></title><description><![CDATA[Deep dive into safe CI/CD pipelines for Ansible, Terraform, and firewall changes. Includes diff gating, approval design, and GitOps strategy.]]></description><link>https://theconfigreport.com/p/cicd-for-infrastructure-extended</link><guid isPermaLink="false">https://theconfigreport.com/p/cicd-for-infrastructure-extended</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 16 Feb 2026 15:31:24 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/04065cb6-b942-48c7-a44c-d53a09e823d5_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you&#8217;ve made it this far in the series, you already know:</p><p>CI/CD is not Jenkins.<br>It&#8217;s not GitHub Actions.<br>It&#8217;s not a green checkmark.</p><p>And it&#8217;s definitely not &#8220;auto-deploy everything and hope for the best.&#8221;</p><p>Now let&#8217;s talk about what CI/CD actually looks like when the thing you&#8217;re deploying can take down an entire region.</p>
      <p>
          <a href="https://theconfigreport.com/p/cicd-for-infrastructure-extended">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[CI/CD for Infra, Not Just App Dev]]></title><description><![CDATA[Learn how CI/CD applies to infrastructure automation. A practical guide for Ansible, Terraform, firewall rules, and network engineering teams.]]></description><link>https://theconfigreport.com/p/cicd-for-infrastructure</link><guid isPermaLink="false">https://theconfigreport.com/p/cicd-for-infrastructure</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 16 Feb 2026 15:11:31 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/51e4ae0c-d1a5-412c-a6a5-eeb27ef45df2_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You ever notice how every CI/CD example online involves:</p><ul><li><p>A microservice</p></li><li><p>A Docker build</p></li><li><p>47 unit tests</p></li><li><p>And someone in a hoodie saying &#8220;we deploy 200 times a day.&#8221;</p></li></ul><p>Cool.</p><p>Now try doing that with a firewall.</p><div><hr></div><h2>&#8220;CI/CD&#8221; Hits Different in Infrastructure</h2><p>In app dev land, if something breaks, you roll forward, patch it, redeploy.</p><p>In infrastructure land, if something breaks:</p><ul><li><p>The network is down</p></li><li><p>The VPN is down</p></li><li><p>DNS is down</p></li><li><p>Or worse&#8230; everything is <em>kind of</em> up but nothing works</p></li></ul><p>There&#8217;s no blue/green deployment for a core switch.</p><p>There&#8217;s just you&#8230;<br>And a change window&#8230;<br>And the sound of your heartbeat in your ears.</p><div><hr></div><h2>The Lie We&#8217;ve Been Sold</h2><p>Most CI/CD content assumes:</p><ul><li><p>Stateless workloads</p></li><li><p>Rapid iteration</p></li><li><p>Disposable environments</p></li></ul><p>Infrastructure is none of those things.</p><p>Your firewall rules aren&#8217;t disposable.<br>Your BGP config isn&#8217;t a feature flag.<br>Your core switch is not &#8220;just another container.&#8221;</p><p>Yet we keep trying to copy/paste app-dev CI/CD patterns into infrastructure teams and wondering why networking and security people panic.</p><div><hr></div><h2>So What <em>Is</em> CI/CD for Infrastructure?</h2><p>Let&#8217;s translate this into sysadmin language.</p><h3>CI for Infra = Validation Before Damage</h3><p>Continuous Integration for infrastructure is not about deployments.</p><p>It&#8217;s about feedback.</p><p>Before anything touches prod, your pipeline should:</p><ul><li><p>Lint your Ansible playbooks</p></li><li><p>Validate Terraform syntax</p></li><li><p>Check required variables</p></li><li><p>Catch obvious config mistakes</p></li><li><p>Show you the diff</p></li></ul><p>CI for infrastructure means catching broken configs <strong>before you reload prod</strong>.</p><p>If your &#8220;CI&#8221; step only checks YAML formatting&#8230;<br>That&#8217;s not protection.<br>That&#8217;s spell check.</p><div><hr></div><h3>CD for Infra = Ready, Not Reckless</h3><p>Continuous Delivery does <strong>not</strong> mean &#8220;auto-push-to-prod.&#8221;</p><p>It means:</p><ul><li><p>The change is validated</p></li><li><p>The diff is visible</p></li><li><p>The blast radius is understood</p></li><li><p>The rollout is controlled</p></li></ul><p>CD in infrastructure is about being <strong>ready to deploy safely</strong>, not racing to deploy automatically.</p><p>If your pipeline auto-applies firewall rules with no approval gate&#8230;</p><p>That&#8217;s not maturity.</p><p>That&#8217;s optimism.</p><div><hr></div><h2>Pipelines Are Guardrails, Not Speedrun Buttons</h2><p>Some teams treat pipelines like this:</p><blockquote><p>&#8220;The faster we can push changes, the more DevOps we are.&#8221;</p></blockquote><p>Infrastructure doesn&#8217;t reward speed without control.</p><p>A good infra pipeline should:</p><ul><li><p>Block risky diffs</p></li><li><p>Highlight rule explosions</p></li><li><p>Catch missing variables</p></li><li><p>Detect config drift</p></li><li><p>Force visibility before impact</p></li></ul><p>It should slow down disasters.</p><p>Not accelerate them.</p><p>If your pipeline is just a dashboard that turns green&#8230;<br>But no one actually reads the output&#8230;</p><p>It&#8217;s decoration.</p><div><hr></div><h2>Why GitOps Makes Auditors Weirdly Happy</h2><p>Here&#8217;s the part no one tells you:</p><p>Auditors don&#8217;t care about your YAML elegance.</p><p>They care about:</p><ul><li><p>Who changed this</p></li><li><p>When they changed it</p></li><li><p>Who approved it</p></li><li><p>And how you can roll it back</p></li></ul><p>When your infrastructure lives in Git:</p><ul><li><p>Every change has history</p></li><li><p>Every diff is reviewable</p></li><li><p>Every approval is traceable</p></li><li><p>Every rollback is possible</p></li></ul><p>GitOps isn&#8217;t about buzzwords.</p><p>It&#8217;s about making auditors slightly less suspicious of you.</p><p>Which, frankly, is a win.</p><div><hr></div><h2>The Infrastructure Reality Check</h2><p>CI/CD for infra is:</p><ul><li><p>Slower than app dev</p></li><li><p>Higher stakes than app dev</p></li><li><p>Less flashy</p></li><li><p>Way more stressful</p></li></ul><p>But done correctly?</p><p>It gives you:</p><ul><li><p>Predictability</p></li><li><p>Traceability</p></li><li><p>Confidence</p></li><li><p>And fewer 2AM &#8220;why is the core down?&#8221; calls</p></li></ul><p>And that&#8217;s the kind of automation we actually want.</p><div><hr></div><h2>&#128064; In the Extended Version</h2><p>In the paid version, we go deeper and more practical:</p><ul><li><p>A real-world CI pipeline example for Ansible</p></li><li><p>What Terraform validation should <em>actually</em> check</p></li><li><p>How to gate risky diffs (not just syntax errors)</p></li><li><p>Firewall rule testing strategies that don&#8217;t cause outages</p></li><li><p>How to design approval gates that protect prod without slowing engineers to a crawl</p></li><li><p>The infra CI/CD maturity model (and how to know where you really are)</p></li><li><p>What you absolutely should <strong>not</strong> automate</p></li></ul><p>If you&#8217;ve ever stared at a &#8220;green&#8221; pipeline and still felt nervous&#8230;</p><p>The extended version is for you.</p><div><hr></div><p>Automation isn&#8217;t about moving fast.</p><p>It&#8217;s about moving safely, repeatedly, and without drama.</p><p>And in infrastructure&#8230;</p><p>Drama travels at line rate.</p><p>&#8212; JJ &#8211; Chief Packet Pusher.</p>]]></content:encoded></item><item><title><![CDATA[Continuous Delivery vs Deployment – Extended Version]]></title><description><![CDATA[A practical deep dive into Continuous Delivery vs Deployment for infrastructure teams, covering approval gates, change windows, rollback, and risk.]]></description><link>https://theconfigreport.com/p/cicd-continuous-delivery-extended</link><guid isPermaLink="false">https://theconfigreport.com/p/cicd-continuous-delivery-extended</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 02 Feb 2026 15:33:12 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d4d060ba-5bf1-4ec5-abfe-ea924989d9d6_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If the free version was about clearing up confusion, this one is about <strong>reality</strong>.</p><p>Because once you move past definitions, CI/CD immediately collides with:</p><ul><li><p>Change windows</p></li><li><p>Approval boards</p></li><li><p>Compliance</p></li><li><p>Blast radius</p></li><li><p>And people who have PagerDuty scars</p></li></ul><p>This is where most &#8220;DevOps blog posts&#8221; quietly stop being useful.</p>
      <p>
          <a href="https://theconfigreport.com/p/cicd-continuous-delivery-extended">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Continuous Delivery vs Deployment]]></title><description><![CDATA[Learn the real difference between Continuous Delivery and Deployment, and why CI/CD for infrastructure still needs approvals, gates, and humans.]]></description><link>https://theconfigreport.com/p/cicd-continuous-delivery</link><guid isPermaLink="false">https://theconfigreport.com/p/cicd-continuous-delivery</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 02 Feb 2026 15:06:59 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/297214af-37e1-475b-9518-cda4f8875342_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Let&#8217;s clear up one of the most cursed misunderstandings in modern tech.</p><p><strong>Continuous Delivery does </strong><em><strong>not</strong></em><strong> mean &#8220;YOLO deploy to prod on every commit.&#8221;</strong></p><p>If that were true, most networking and security teams would have already burned the data center down for warmth.</p><p>Yet somehow, every CI/CD conversation eventually turns into:</p><blockquote><p>&#8220;Wait&#8230; are you saying prod deploys automatically now?&#8221;</p></blockquote><p>No.<br>Absolutely not.<br>Put the pitchfork down.</p><div><hr></div><h2>Continuous Delivery &#8800; Continuous Deployment</h2><p>These two get lumped together like they&#8217;re the same thing.</p><p>They are not.</p><p><strong>Continuous Delivery</strong> means:</p><ul><li><p>Every change is <em>ready</em> to be deployed</p></li><li><p>The system <em>could</em> deploy it safely</p></li><li><p>Humans still decide <strong>when</strong> it actually happens</p></li></ul><p><strong>Continuous Deployment</strong> means:</p><ul><li><p>Every approved change goes straight to prod</p></li><li><p>No pause</p></li><li><p>No human gate</p></li><li><p>Maximum stress</p></li></ul><p>Most infrastructure, networking, and security teams want <strong>Delivery</strong>, not <strong>Deployment</strong>.</p><p>And honestly? That&#8217;s the sane choice.</p><div><hr></div><h2>What Continuous Delivery Actually Looks Like</h2><p>In the real world &#8212; not startup demo land &#8212; CD usually means:</p><ul><li><p>Code merges cleanly</p></li><li><p>Tests and validation pass</p></li><li><p>Config checks don&#8217;t scream</p></li><li><p>Artifacts are built and ready</p></li><li><p><strong>Then it stops</strong></p></li></ul><p>And waits.</p><p>For:</p><ul><li><p>A change window</p></li><li><p>An approval</p></li><li><p>A human with coffee and context</p></li></ul><p><strong>CD is about readiness, not recklessness.</strong></p><p>You&#8217;re shortening the distance between <em>&#8220;this is ready&#8221;</em> and <em>&#8220;we approve this.&#8221;</em><br>Not deleting the approval entirely.</p><div><hr></div><h2>Why Networking &amp; Security Teams Panic Here</h2><p>Because they&#8217;ve seen things.</p><p>They&#8217;ve lived through:</p><ul><li><p>&#8220;Just one quick firewall change&#8221;</p></li><li><p>&#8220;It worked in the lab&#8221;</p></li><li><p>&#8220;Nothing else should be affected&#8221;</p></li><li><p>Famous last words, every time</p></li></ul><p>Infrastructure isn&#8217;t a stateless web app.</p><p>It has:</p><ul><li><p>Blast radius</p></li><li><p>Compliance rules</p></li><li><p>Rollback nightmares</p></li><li><p>Change tickets that will be audited six months later</p></li></ul><p>CD doesn&#8217;t remove those realities.<br>It just gives you <strong>guardrails</strong> instead of vibes.</p><div><hr></div><h2>Approval Gates Are Not a Failure</h2><p>Somewhere along the way, approval gates got labeled as &#8220;anti-DevOps.&#8221;</p><p>That&#8217;s nonsense.</p><p>Approval gates mean:</p><ul><li><p>Risk is acknowledged</p></li><li><p>Changes are reviewed</p></li><li><p>Humans stay accountable</p></li></ul><p>That&#8217;s not slowing things down.<br>That&#8217;s <strong>not being reckless</strong>.</p><p>A fast pipeline that pauses before prod is still a fast pipeline.</p><div><hr></div><h2>Rollback Is Still a Human Problem</h2><p>No matter how clean your pipeline is:</p><ul><li><p>Rollbacks still need decisions</p></li><li><p>Someone still has to say &#8220;undo that&#8221;</p></li><li><p>Context still matters</p></li></ul><p>CD doesn&#8217;t magically fix bad changes.<br>It just makes it easier to <strong>not deploy them in the first place</strong>.</p><p>Which is&#8230; kind of the point.</p><div><hr></div><h2>The Real Truth No One Puts on the Slides</h2><p>Here it is:</p><blockquote><p><strong>Continuous Delivery doesn&#8217;t remove humans.</strong><br><strong>It just makes them faster at approving things.</strong></p></blockquote><p>And that&#8217;s a win.</p><p>Because the goal was never &#8220;no humans.&#8221;<br>The goal was <strong>fewer bad surprises</strong>.</p><div><hr></div><h3>Want the Real-World Version of This?</h3><p>The free version explains <em>why</em> Continuous Delivery isn&#8217;t the same thing as auto-deploying to prod.</p><p>The <strong>Extended (paid) version</strong> gets into the messy, practical stuff most blog posts skip:</p><ul><li><p>Where teams intentionally stop automation &#8212; and why that&#8217;s smart</p></li><li><p>What approval gates actually look like in real CI/CD pipelines</p></li><li><p>How networking and security teams balance speed with blast radius</p></li><li><p>Why &#8220;deploy everything automatically&#8221; is a terrible default for infrastructure</p></li></ul><p>If you&#8217;re responsible for uptime <em>and</em> approvals, the paid version is where this topic actually becomes useful.</p><div><hr></div><p>&#8212; <strong>JJ &#8211; Chief Packet Pusher</strong></p>]]></content:encoded></item><item><title><![CDATA[CI/CD - Continuous Integration – Extended Version]]></title><description><![CDATA[Most teams misunderstand Continuous Integration. Learn how CI catches broken configs early and prevents outages in infrastructure and automation workflows.]]></description><link>https://theconfigreport.com/p/cicd-continuous-integration-extended</link><guid isPermaLink="false">https://theconfigreport.com/p/cicd-continuous-integration-extended</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 19 Jan 2026 22:34:06 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5f897c0d-32b9-4bff-a4a6-a72253a4aab5_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you&#8217;re reading this, you&#8217;re past the theory.</p><p>The free version explains <strong>what</strong> CI is and <strong>why</strong> people get it wrong.<br>This version is about <strong>how it actually works in the real world</strong> &#8212; with guardrails, tradeoffs, and mistakes you only make once.</p><p>In this issue, we&#8217;re getting into:</p><ul><li><p>What <em>real</em> CI checks look like for infrastructure teams</p></li><li><p>Where most pipelines lie to you</p></li><li><p>&#8230;</p></li></ul>
      <p>
          <a href="https://theconfigreport.com/p/cicd-continuous-integration-extended">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[CI/CD - Continuous Integration]]></title><description><![CDATA[Most teams misunderstand Continuous Integration. Learn how CI catches broken configs early and prevents outages in infrastructure and automation workflows.]]></description><link>https://theconfigreport.com/p/cicd-continuous-integration</link><guid isPermaLink="false">https://theconfigreport.com/p/cicd-continuous-integration</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 19 Jan 2026 22:33:39 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2db2d12d-1057-422f-80f2-5497ab955859_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Everyone loves to talk about &#8220;CI/CD.&#8221;</p><p>Very few people can explain <strong>CI</strong> without immediately pointing at a tool and saying,</p><blockquote><p>&#8220;It&#8217;s basically Jenkins.&#8221;</p></blockquote><p>No.<br>That&#8217;s like saying <strong>seatbelts are a car model</strong>.</p><p>Let&#8217;s fix that.</p><div><hr></div><h2>What Continuous Integration <em>Actually</em> Is</h2><p>Continuous Integration is <strong>about feedback</strong>, not deployments.</p><p>CI answers one simple question:</p><blockquote><p><em>&#8220;If I merged this change right now&#8230; would something obviously break?&#8221;</em></p></blockquote><p>That&#8217;s it.<br>That&#8217;s the whole job.</p><p>CI is the boring but critical step where automation taps you on the shoulder and says:</p><ul><li><p>&#8220;Hey, this YAML is invalid.&#8221;</p></li><li><p>&#8220;That variable doesn&#8217;t exist.&#8221;</p></li><li><p>&#8220;This config will absolutely brick prod.&#8221;</p></li><li><p>&#8220;Are you <em>sure</em> you meant to do that?&#8221;</p></li></ul><p>If CI does its job well, <strong>nothing exciting happens</strong>.</p><p>Which is exactly why people ignore it.</p><div><hr></div><h2>CI Is Not About Shipping Code</h2><p>Let&#8217;s be clear:</p><ul><li><p>&#10060; CI is <strong>not</strong> deploying anything</p></li><li><p>&#10060; CI is <strong>not</strong> restarting services</p></li><li><p>&#10060; CI is <strong>not</strong> touching prod</p></li></ul><p>CI is just running checks <strong>early</strong> so humans don&#8217;t have to learn lessons <strong>late</strong>.</p><p>The goal is <strong>fast, cheap failure</strong>.</p><p>Because fixing a typo in a pull request is:</p><ul><li><p>free</p></li><li><p>quiet</p></li><li><p>doesn&#8217;t involve incident bridges</p></li></ul><p>Fixing it after a reload?</p><ul><li><p>expensive</p></li><li><p>loud</p></li><li><p>now you&#8217;re explaining it to leadership</p></li></ul><div><hr></div><h2>What CI <em>Should</em> Be Doing</h2><p>A sane CI pipeline checks things like:</p><ul><li><p>Syntax validation</p></li><li><p>Linting</p></li><li><p>Unit tests</p></li><li><p>Schema checks</p></li><li><p>Config sanity validation</p></li></ul><p>For infrastructure folks, this looks like:</p><ul><li><p>Does the playbook parse?</p></li><li><p>Does the Terraform plan explode?</p></li><li><p>Does the firewall rule reference an object that doesn&#8217;t exist?</p></li><li><p>Did someone just remove the default route because &#8220;it looked unused&#8221;?</p></li></ul><p>CI doesn&#8217;t need to be smart.<br>It just needs to be <strong>early</strong>.</p><div><hr></div><h2>Why Most Orgs Skip CI and Go Straight to Chaos</h2><p>Because CI is unsexy.</p><p>It doesn&#8217;t:</p><ul><li><p>ship features</p></li><li><p>make dashboards green in exciting ways</p></li><li><p>impress executives</p></li></ul><p>So what happens?</p><ul><li><p>CI becomes optional</p></li><li><p>tests are skipped &#8220;just this once&#8221;</p></li><li><p>pipelines turn into deploy buttons</p></li></ul><p>And now your &#8220;CI/CD pipeline&#8221; is just:</p><blockquote><p><em>manual testing + vibes</em></p></blockquote><p>Which works great until it doesn&#8217;t.</p><div><hr></div><h2>CI for Infrastructure (This Is the Important Part)</h2><p>If you manage servers, networks, or security:</p><p><strong>CI is your last line of defense before muscle memory takes over.</strong></p><p>CI for infrastructure means:</p><ul><li><p>catching broken configs <strong>before</strong> reloads</p></li><li><p>validating changes <strong>before</strong> they touch devices</p></li><li><p>stopping &#8220;just one quick fix&#8221; from becoming an outage</p></li></ul><p>Or, put another way:</p><blockquote><p>CI is how you avoid finding syntax errors via monitoring alerts.</p></blockquote><div><hr></div><h2>The Dirty Secret of CI</h2><p>If your CI pipeline fails all the time, people stop trusting it.</p><p>If it never fails, it&#8217;s probably doing nothing.</p><p>Good CI fails <strong>just often enough</strong> to be annoying<br>and <strong>early enough</strong> to be useful.</p><p>That&#8217;s the balance.</p><div><hr></div><h2>Want the Practical Version? (Paid Subscribers &#128064;)</h2><p>The free version explains <strong>why CI matters</strong>.</p><p>The <strong>paid version</strong> gets into the stuff you actually want to steal:</p><ul><li><p>What <em>real</em> CI checks look like for <strong>Ansible, Terraform, and network configs</strong></p></li><li><p>Examples of <strong>cheap, fast CI validations</strong> that catch breakage without slowing teams down</p></li><li><p>How to design CI so it <strong>fails early without becoming background noise</strong></p></li><li><p>Common &#8220;looks fine in CI&#8221; traps that still blow up prod &#8212; and how to avoid them</p></li></ul><p>Basically:<br><strong>Less philosophy. More guardrails. Fewer outages.</strong></p><p>If you&#8217;re tired of finding broken configs <em>after</em> reloads, the paid version is where the real value lives.</p><p>&#128073; <strong>Upgrade to get the full breakdown.</strong></p><div><hr></div><h2>Coming Up Next</h2><p>In <strong>Issue 3</strong>, we&#8217;re tackling the argument that never dies:</p><p><strong>Continuous Delivery vs Continuous Deployment</strong></p><p>Yes, they&#8217;re different.<br>No, auto-deploying to prod is not required.<br>And yes, this is where networking and security teams start sweating.</p><p>&#8212; JJ &#8211; Chief Packet Pusher</p>]]></content:encoded></item><item><title><![CDATA[CI/CD Without the Cult Language – Extended Version]]></title><description><![CDATA[A practical, infra-focused guide to CI/CD pipelines&#8212;what works, what fails, and how sysadmins can use CI/CD without breaking production.]]></description><link>https://theconfigreport.com/p/cicd-without-the-cult-language-extended</link><guid isPermaLink="false">https://theconfigreport.com/p/cicd-without-the-cult-language-extended</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 05 Jan 2026 17:27:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1e31921f-7705-4d2d-8069-0d03467f2247_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If the Free version was the intervention, this is the whiteboard session afterward.</p><p>No buzzwords. No &#8220;DevOps journey.&#8221;<br>Just what CI/CD actually looks like when it&#8217;s not lying to you.</p>
      <p>
          <a href="https://theconfigreport.com/p/cicd-without-the-cult-language-extended">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[CI/CD Without the Cult Language]]></title><description><![CDATA[Confused by CI/CD? This plain-English breakdown explains what CI and CD really mean for sysadmins, infra teams, and IT pros&#8212;no vendor fluff.]]></description><link>https://theconfigreport.com/p/cicd-without-the-cult-language</link><guid isPermaLink="false">https://theconfigreport.com/p/cicd-without-the-cult-language</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 05 Jan 2026 17:20:05 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6aa3f7d5-4506-4e4d-a09c-619c9aa31a91_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Somewhere in every IT org is a meeting where someone confidently says:</p><blockquote><p>&#8220;Yeah, we do CI/CD.&#8221;</p></blockquote><p>No one asks follow-up questions.<br>No one wants to know <em>how</em>.<br>And everyone quietly hopes the pipeline doesn&#8217;t break before lunch.</p><p>CI/CD has become one of those acronyms&#8212;like &#8220;cloud-native&#8221; or &#8220;zero trust&#8221;&#8212;that people claim because <em>not</em> claiming it feels career-limiting.</p><p>The problem?<br>Most people don&#8217;t actually know what it means.<br>They just know the tools they were handed and the scars they earned.</p><p>Let&#8217;s fix that.</p><div><hr></div><h2>The One-Sentence Definitions (That No One Uses)</h2><p>Here&#8217;s CI/CD without the buzzwords:</p><p><strong>Continuous Integration (CI)</strong><br>Automatically checking that your changes don&#8217;t suck <em>before</em> they get merged.</p><p><strong>Continuous Delivery (CD)</strong><br>Automatically preparing changes so they&#8217;re always deployable&#8212;<em>even if you choose not to deploy them yet.</em></p><p>That&#8217;s it.<br>No unicorns. No DevOps priesthood. No &#8220;digital transformation journey.&#8221;</p><p>CI finds problems early.<br>CD removes panic from release day.</p><p>Neither one magically makes you &#8220;move fast.&#8221;</p><div><hr></div><h2>What CI/CD Is <em>Not</em></h2><p>Let&#8217;s clear the fog:</p><ul><li><p>It&#8217;s <strong>not a tool</strong></p></li><li><p>It&#8217;s <strong>not Jenkins</strong></p></li><li><p>It&#8217;s <strong>not GitHub Actions</strong></p></li><li><p>It&#8217;s <strong>not auto-deploying to prod</strong></p></li><li><p>It&#8217;s <strong>not something you buy from a vendor</strong></p></li></ul><p>If you can&#8217;t describe your CI/CD process without naming a product, you don&#8217;t have CI/CD&#8212;you have software.</p><p>And software without a process is just an outage waiting to happen.</p><div><hr></div><h2>Why CI/CD Feels Fake in Most Organizations</h2><p>CI/CD has a reputation problem because this is how it usually goes:</p><ul><li><p>The pipeline worked in the demo</p></li><li><p>Tests check syntax, not reality</p></li><li><p>Everything is green&#8230; right up until prod explodes</p></li><li><p>Infra gets involved <em>after</em> the failure</p></li></ul><p>So the pipeline becomes:</p><ul><li><p>A checkbox for leadership</p></li><li><p>A dashboard that lies</p></li><li><p>A thing you bypass &#8220;just this once&#8221;</p></li></ul><p>At that point, it&#8217;s not automation&#8212;it&#8217;s theater.</p><div><hr></div><h2>The Sysadmin Reframe (This Is the Important Part)</h2><p>If CI/CD sounds like a dev-only thing, that&#8217;s because it&#8217;s usually explained badly.</p><p>Here&#8217;s the infrastructure translation:</p><p><strong>CI for infra means:</strong></p><ul><li><p>Linting configs</p></li><li><p>Validating syntax</p></li><li><p>Catching bad changes <em>before</em> they touch real devices</p></li></ul><p><strong>CD for infra means:</strong></p><ul><li><p>Controlled, repeatable releases</p></li><li><p>Predictable rollbacks</p></li><li><p>Fewer late-night SSH heroics</p></li></ul><p>Or said another way:</p><blockquote><p>CI/CD is just change management that doesn&#8217;t hate you back.</p></blockquote><p>It doesn&#8217;t remove humans.<br>It removes <em>surprises</em>.</p><div><hr></div><h2>Why This Matters (Even If You&#8217;re Not &#8220;Doing DevOps&#8221;)</h2><p>You don&#8217;t need microservices.<br>You don&#8217;t need containers.<br>You don&#8217;t need a startup hoodie.</p><p>If you manage:</p><ul><li><p>Firewalls</p></li><li><p>Switches</p></li><li><p>Servers</p></li><li><p>Cloud configs</p></li><li><p>Infrastructure-as-code</p></li></ul><p>&#8230;you&#8217;re already living in CI/CD territory&#8212;whether you call it that or not.</p><p>The difference is whether your process catches mistakes early or lets them reach production at full speed.</p><div><hr></div><h2>What&#8217;s Coming Next</h2><p>This is the kickoff. Not the deep dive.</p><p>In the next issue, we&#8217;ll zoom in on the most misunderstood part of the whole thing:</p><blockquote><p><strong>Continuous Integration &#8212; why everyone skips it, and why that makes deployments feel cursed.</strong></p></blockquote><p>Paid readers will get real-world examples and practical breakdowns.<br>Free readers will still get the clarity (and the sarcasm).</p><p>Either way, no cult robes required.</p><div><hr></div><p><strong>&#8212; JJ &#8211; Chief Packet Pusher</strong></p>]]></content:encoded></item><item><title><![CDATA[So… Should You Actually Move to the Cloud? - Extended Version]]></title><description><![CDATA[A Survival Guide for On-Prem Brains in a Pay-As-You-Panic World]]></description><link>https://theconfigreport.com/p/should-you-move-to-the-cloud-extended</link><guid isPermaLink="false">https://theconfigreport.com/p/should-you-move-to-the-cloud-extended</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 22 Dec 2025 15:56:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!P-1l!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9dca975-662b-4840-a6b8-c7e2d30746d9_626x626.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you made it this far in the series, congrats &#8212; you now understand the cloud better than half the people selling it.</p><p>This version answers the question executives ask and engineers fear:</p><blockquote><p>&#8220;So&#8230; should we move everything to the cloud?&#8221;</p></blockquote><h3>&#9989; A Real Cloud Decision Checklist</h3><p>Move to the cloud <strong>only if most of these are true</strong>:</p><ul><li><p>Workloads scale unpredictably</p></li><li><p>You deploy of&#8230;</p></li></ul>
      <p>
          <a href="https://theconfigreport.com/p/should-you-move-to-the-cloud-extended">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[So… Should You Actually Move to the Cloud?]]></title><description><![CDATA[A Survival Guide for On-Prem Brains in a Pay-As-You-Panic World]]></description><link>https://theconfigreport.com/p/should-you-move-to-the-cloud</link><guid isPermaLink="false">https://theconfigreport.com/p/should-you-move-to-the-cloud</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 22 Dec 2025 15:47:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!P-1l!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9dca975-662b-4840-a6b8-c7e2d30746d9_626x626.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Let&#8217;s be honest.</p><p>By now, you&#8217;ve learned that the cloud is:</p><ul><li><p>Not magic</p></li><li><p>Not cheaper by default</p></li><li><p>Not simpler</p></li><li><p>And definitely not &#8220;set it and forget it&#8221;</p></li></ul><p>It&#8217;s just someone else&#8217;s data center&#8230;<br>with better marketing&#8230;<br>and a bill that updates in real time to shame you.</p><p>So the real question isn&#8217;t <em>&#8220;What is the cloud?&#8221;</em><br>It&#8217;s <strong>&#8220;Should </strong><em><strong>we</strong></em><strong> actually be using it?&#8221;</strong></p><h3>&#129300; When the Cloud Actually Makes Sense</h3><p>The cloud is great when you need:</p><ul><li><p><strong>Elastic workloads</strong> (spikes, seasonal traffic, unpredictable usage)</p></li><li><p><strong>Rapid deployments</strong> without waiting on hardware</p></li><li><p><strong>Global reach</strong> without building your own mini-internets</p></li><li><p><strong>Managed services</strong> because you&#8217;re tired and understaffed</p></li></ul><p>If your environment looks like:</p><blockquote><p>&#8220;Sometimes 10 users, sometimes 10,000, nobody knows why&#8221;</p></blockquote><p>Congrats &#8212; the cloud might save your sanity.</p><h3>&#129521; When On-Prem Is Still King</h3><p>On-prem still wins when:</p><ul><li><p>Workloads are <strong>predictable</strong></p></li><li><p>Latency actually matters</p></li><li><p>Compliance teams breathe down your neck</p></li><li><p>You already own the hardware</p></li><li><p>You don&#8217;t want your CFO asking why a test VM costs $800/month</p></li></ul><p>If your setup has:</p><blockquote><p>&#8220;The same apps, same users, same traffic&#8230; for the last 7 years&#8221;</p></blockquote><p>You&#8217;re not <em>behind</em>.<br>You&#8217;re just&#8230; <strong>stable</strong>.</p><h3>&#129504; The Big Lie Nobody Tells You</h3><p>The cloud didn&#8217;t remove complexity.</p><p>It <strong>relocated it</strong>.</p><p>Instead of:</p><ul><li><p>VLANs</p></li><li><p>Switchports</p></li><li><p>Firewalls</p></li></ul><p>You now manage:</p><ul><li><p>IAM policies</p></li><li><p>Service limits</p></li><li><p>Inter-service permissions</p></li><li><p>Billing alerts</p></li><li><p>And permissions that break things silently</p></li></ul><p>Same stress.<br>New UI.<br>Higher invoice.</p><h3>&#129534; The Hybrid Reality</h3><p>Most real environments end up here:</p><ul><li><p>Some workloads on-prem</p></li><li><p>Some in <strong>Amazon Web Services</strong></p></li><li><p>Some in <strong>Microsoft Azure</strong></p></li><li><p>One forgotten project in <strong>Google Cloud Platform</strong></p></li><li><p>And a VPN held together by hope</p></li></ul><p>Hybrid isn&#8217;t a failure.<br>It&#8217;s adulthood.</p><h3>&#129504; Final Translation</h3><p>If this series taught you anything, it&#8217;s this:</p><blockquote><p>The cloud didn&#8217;t change IT fundamentals.<br>It changed <strong>who you yell at when things break</strong>.</p></blockquote><p>The skills still matter.<br>The concepts still apply.<br>The buzzwords just got louder.</p><div><hr></div><p>&#128161; <strong>Paid subscribers get the extended version</strong>, including:</p><ul><li><p>A real decision checklist (cloud vs on-prem vs hybrid)</p></li><li><p>Cost-control rules that actually work</p></li><li><p>IAM survival strategies</p></li><li><p>Migration myths to ignore</p></li><li><p>And what <em>not</em> to lift-and-shift unless you enjoy pain</p></li></ul><p>&#8212;<br><strong>JJ &#8211; Chief Packet Pusher</strong></p>]]></content:encoded></item><item><title><![CDATA[The Cloud Control Panel: Where Sanity Goes to Die - Extended Version]]></title><description><![CDATA[IAM, Billing Dashboards, and Other Dark Arts]]></description><link>https://theconfigreport.com/p/the-cloud-control-panel-where-sanity-extended</link><guid isPermaLink="false">https://theconfigreport.com/p/the-cloud-control-panel-where-sanity-extended</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 08 Dec 2025 16:08:45 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3aa4af2d-0a54-4858-bb37-976a3824c242_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the extended cut &#8212; the version where we get into <strong>actual examples, commands, diagrams-in-text</strong>, and the &#8220;stuff you wish cloud training actually explained.&#8221;</p><p>Let&#8217;s dive deeper.</p>
      <p>
          <a href="https://theconfigreport.com/p/the-cloud-control-panel-where-sanity-extended">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Cloud Control Panel: Where Sanity Goes to Die]]></title><description><![CDATA[IAM, Billing Dashboards, and Other Dark Arts]]></description><link>https://theconfigreport.com/p/the-cloud-control-panel-where-sanity</link><guid isPermaLink="false">https://theconfigreport.com/p/the-cloud-control-panel-where-sanity</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 08 Dec 2025 16:03:49 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3c9444b9-9d8c-43fb-a670-8e95ac48fce2_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to <em>The Cloud Decoder</em>, the sysadmin translation guide for when the cloud interface lies, the bill cries, and IAM denies.</p><p>This is the <strong>final chapter of the beginner series</strong>, and oh boy&#8230; we saved the worst for last:<br><strong>Cloud Control Panels</strong> &#8212; the place where dreams go to 403.</p><p>Today we&#8217;re decoding three of the cloud&#8217;s most chaotic realms:</p><ol><li><p><strong>IAM (Identity &amp; Access Management)</strong></p></li><li><p><strong>Billing Dashboards &amp; Cost Visibility</strong></p></li><li><p><strong>Automation &amp; IaC</strong></p></li><li><p><em>And yes, a final cheat sheet to survive future cloud meetings.</em></p></li></ol><p>Let&#8217;s go.</p><div><hr></div><h2>&#128272; IAM: The Final Boss of the Cloud</h2><p>IAM is the part of the cloud designed to teach humility.</p><p>On-prem, access is simple:</p><ul><li><p>Add the user to the right AD group.</p></li><li><p>Log them out.</p></li><li><p>Log them in.</p></li><li><p>Boom. Done.</p></li></ul><p>Cloud IAM:<br>&#8220;No.&#8221;<br>&#8220;No, but with JSON.&#8221;<br>&#8220;No, but you <em>almost</em> had it.&#8221;<br>&#8220;No, but now the whole environment is broken.&#8221;</p><p>Every provider has their own special flavor:</p><ul><li><p><strong>AWS IAM:</strong> A choose-your-own-adventure book where every wrong choice returns a 403.</p></li><li><p><strong>Azure RBAC:</strong> Permission inheritance logic crafted in a labyrinth by Microsoft Minotaurs.</p></li><li><p><strong>GCP IAM:</strong> <em>Actually</em> the easiest&#8230; but still somehow confusing because Google names roles like Pok&#233;mon evolutions.</p></li></ul><p><em>On-prem equivalent:</em><br>It&#8217;s AD, but every OU is a grenade.</p><div><hr></div><h2>&#128184; Billing Dashboards: Where Happiness Is a Line Graph</h2><p>Cloud sales pitch: &#8220;Pay for what you use!&#8221;<br>Reality: &#8220;Pay for what you used, what you might use, what someone clicked once, and also for that egress you didn&#8217;t notice.&#8221;</p><p>Billing dashboards aren&#8217;t dashboards &#8212; they&#8217;re <strong>escape rooms</strong>.<br>You must solve puzzles like:</p><ul><li><p>&#8220;Why did my bill triple overnight?&#8221;</p></li><li><p>&#8220;Who spun up a 128-CPU instance for five minutes?&#8221;</p></li><li><p>&#8220;Why is data leaving my bucket&#8230; where is it going&#8230; WHO IS PAYING FOR THIS?!&#8221;</p></li></ul><p>Welcome to <strong>FinOps Lite&#8482;</strong>, the free trial nobody asked for.</p><p><em>On-prem equivalent:</em><br>Your CFO yelling about the power bill every July.</p><div><hr></div><h2>&#129302; Automation &amp; IaC: How Adults Use the Cloud</h2><p>Eventually you will get tired of clicking around the control panel like it&#8217;s Minesweeper.<br>Enter:</p><ul><li><p><strong>Terraform</strong> &#8212; &#8220;What if config files could ruin prod globally?&#8221;</p></li><li><p><strong>CloudFormation</strong> &#8212; For people who think YAML isn&#8217;t painful enough yet.</p></li><li><p><strong>Ansible</strong> &#8212; The good friend who buys you coffee and says, &#8220;Let&#8217;s automate that disaster before it happens again.&#8221;</p></li></ul><p>IaC exists for one main reason:<br><strong>Cloud GUIs were designed by gremlins.</strong></p><div><hr></div><h2>&#129517; The Cheat Sheet: What to Google When Lost</h2><p>Because you <em>will</em> get lost. The cloud control panel likes to rearrange things when you aren&#8217;t looking.</p><p>Cheat sheet of survival queries:</p><ul><li><p>&#8220;AWS IAM which policy do I need for X&#8221;</p></li><li><p>&#8220;Azure cost explorer why is everything pink&#8221;</p></li><li><p>&#8220;GCP roles viewer vs editor vs why does this exist&#8221;</p></li><li><p>&#8220;Terraform destroy accidentally help panic&#8221;</p></li><li><p>&#8220;Why is my cloud bill so high&#8221; (every month)</p></li></ul><p>Congratulations:<br>If you&#8217;ve followed Issues 1&#8211;5, you now speak Cloudish, understand the madness, and can hold your own in cloud meetings without sweating through your shirt.</p><p>Next step?<br>Stick around &#8212; the <strong>Advanced Cloud Decoder</strong> series is coming.</p><p>&#8212; JJ &#8211; Chief Packet Pusher</p>]]></content:encoded></item><item><title><![CDATA[☁️ Storage Wars: Cloud Edition (Extended Version)]]></title><description><![CDATA[The 4th extended version of "The Cloud Decoder"]]></description><link>https://theconfigreport.com/p/storage-wars-cloud-edition-extended</link><guid isPermaLink="false">https://theconfigreport.com/p/storage-wars-cloud-edition-extended</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 24 Nov 2025 15:22:18 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/cf2f4fff-3352-4934-a51a-fcda9b0ac114_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><em>Buckets, Blobs, Blocks, and Bills.</em></h3><p>Welcome to the paid side of The Cloud Decoder &#8212; where we go deeper, get nerdier, and make fun of the cloud with slightly more enthusiasm than is probably healthy.</p><p>In the free edition, we covered what cloud storage <em>is</em>.<br>Here, we cover how it <strong>actually behaves</strong>, why your bill explodes, and how to avoid architecting something t&#8230;</p>
      <p>
          <a href="https://theconfigreport.com/p/storage-wars-cloud-edition-extended">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[☁️ Storage Wars: Cloud Edition]]></title><description><![CDATA[The 4th issue of "The Cloud Decoder" series]]></description><link>https://theconfigreport.com/p/storage-wars-cloud-edition</link><guid isPermaLink="false">https://theconfigreport.com/p/storage-wars-cloud-edition</guid><dc:creator><![CDATA[JJ – Chief Packet Pusher]]></dc:creator><pubDate>Mon, 24 Nov 2025 15:16:45 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d7e4d96e-7855-46fc-b0c5-a23506bb35d4_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><em>Buckets, Blobs, Blocks, and Bills.</em></h3><p>Welcome back, cloud wanderer. Today we dive into the magical land of cloud storage &#8212; a place where your files live forever, and so does your bill.</p><p>If you thought storage was simple (&#8220;it&#8217;s just files&#8221;), the cloud providers would like a word.<br>And that word is: <strong>egress</strong> &#8212; the new &#8220;gotcha&#8221; that replaces licensing fees, printer toner, and whatever it was VMware used to charge you for.</p><p>Let&#8217;s decode the storage chaos.</p><div><hr></div><h2>&#127855; <strong>Object Storage (aka &#8220;Files but Fancy&#8221;)</strong></h2><p>This is the cloud&#8217;s favorite storage type. They all have their own flavor:</p><ul><li><p><strong>AWS:</strong> S3</p></li><li><p><strong>Azure:</strong> Blob Storage</p></li><li><p><strong>GCP:</strong> Cloud Storage</p></li></ul><p>It&#8217;s basically files in a bucket. Buckets which, by the way, will <em>absolutely</em> still be named <code>mybucket123</code> because naming things is still the hardest part of IT.</p><p>Great for backups, logs, images, and &#8220;data we should probably keep but hope to never touch again.&#8221;</p><p><strong>Downside:</strong> Retrieving your own data sometimes costs more than storing it.</p><div><hr></div><h2>&#128230; <strong>Block Storage (aka &#8220;Hard Drive&#8230; in the Sky&#8221;)</strong></h2><p>These are the virtual disks you attach to your VMs:</p><ul><li><p>EBS</p></li><li><p>Azure Managed Disks</p></li><li><p>GCP Persistent Disks</p></li></ul><p>They&#8217;re fast, reliable, predictable &#8212; exactly the personality you want in storage.</p><p><strong>Downside:</strong><br>Delete a VM, forget the unattached disk, and suddenly you&#8217;re sponsoring a $140/mo orphaned SSD.</p><div><hr></div><h2>&#128193; <strong>File Storage (aka &#8220;SMB/NFS, but With More Steps&#8221;)</strong></h2><p>Cloud file storage keeps your legacy apps alive long enough for you to migrate them &#8220;next quarter,&#8221; which is what you&#8217;ve been saying for four years.</p><p>Common services:</p><ul><li><p>AWS EFS / FSx</p></li><li><p>Azure Files</p></li><li><p>GCP Filestore</p></li></ul><p>Great for shared folders, lift-and-shift apps, or anything written by that developer who quit in 2013.</p><p><strong>Downside:</strong> Highly available, highly convenient, highly priced.</p><div><hr></div><h2>&#128184; <strong>Pricing Gotchas (aka &#8220;Welcome to the Egress Casino&#8221;)</strong></h2><p>Cloud storage pricing is like an amusement park:</p><ul><li><p><strong>PUT requests</strong> = entry fee</p></li><li><p><strong>GET requests</strong> = the snacks</p></li><li><p><strong>Storage tier fees</strong> = gift shop</p></li><li><p><strong>Egress fees</strong> = rollercoaster that breaks your soul</p></li></ul><p>Archive tiers are cheap&#8230; until you need something back. Then the retrieval fees politely ask for your wallet, car keys, and retirement plan.</p><div><hr></div><h2>&#127991;&#65039; <strong>Naming Conventions: The True Final Boss</strong></h2><p>Every cloud bucket looks like something generated by a toddler:</p><ul><li><p><code>prod-bucket-final</code></p></li><li><p><code>backups-please-work</code></p></li><li><p><code>delete-this-later-but-not-now</code></p></li><li><p><code>idk-test?</code></p></li></ul><p>You try to be organized.<br>Your teammates try to be &#8220;creative.&#8221;<br>Audit season tries to be painful.</p><div><hr></div><h2>&#129504; <strong>Quick Cloud Decoder: Storage Edition</strong></h2><p>Here&#8217;s the fast translation your brain actually wants:</p><ul><li><p><strong>On-prem file share?</strong><br>That becomes S3, Blob Storage, or GCP Cloud Storage.</p></li><li><p><strong>SAN LUNs and virtual disks?</strong><br>That&#8217;s EBS, Azure Managed Disks, or GCP Persistent Disks.</p></li><li><p><strong>NAS appliances (Synology, NetApp, etc.)?</strong><br>In the cloud, that becomes EFS, Azure Files, or GCP Filestore.</p></li><li><p><strong>On-prem question:</strong> &#8220;Why is the disk full?&#8221;<br><strong>Cloud question:</strong> &#8220;Why does storage cost more than compute?&#8221;</p></li></ul><p>The fundamentals didn&#8217;t change &#8212; the naming, billing, and dashboards did.</p><div><hr></div><h2>&#127919; <strong>Takeaway</strong></h2><p>Cloud storage isn&#8217;t complicated.<br>It&#8217;s just unnecessarily dramatic.</p><p>Know your storage types. Watch your egress. And name your buckets like someone else might have to read them&#8212;<br>even though they absolutely won&#8217;t.</p><div><hr></div><p><strong>Paid subscribers get the full deep dive &#8212; including storage tiers, cost traps, real-world architecture examples, and naming conventions that save future-you from therapy.</strong></p><p>&#8212; JJ &#8211; Chief Packet Pusher.</p>]]></content:encoded></item></channel></rss>