<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>PipelineOps — DevOps &amp; AWS Engineering Blog</title>
        <link>https://pipelineops.dev</link>
        <description>Production incidents, AWS deep-dives, and CI/CD battle stories — told honestly by an SRE who's been there.</description>
        <lastBuildDate>Thu, 14 May 2026 09:14:48 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>PipelineOps — DevOps &amp; AWS Engineering Blog</title>
            <url>https://pipelineops.dev/icon.svg</url>
            <link>https://pipelineops.dev</link>
        </image>
        <copyright>© 2026 PipelineOps</copyright>
        <atom:link href="https://pipelineops.dev/feed.xml" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[The Wrong SLI Almost Broke Our Reliability Culture]]></title>
            <link>https://pipelineops.dev/blog/wrong-sli-reliability-culture</link>
            <guid isPermaLink="false">https://pipelineops.dev/blog/wrong-sli-reliability-culture</guid>
            <pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Our SLO was green while support was on fire. The real issue wasn't the SLI — it was using SLO as a report card. Here's how we fixed both.]]></description>
        </item>
        <item>
            <title><![CDATA[Setting Up AWS CodeBuild as a GitHub Actions Runner: No More Self-Managed EC2]]></title>
            <link>https://pipelineops.dev/blog/codebuild-github-actions-runner</link>
            <guid isPermaLink="false">https://pipelineops.dev/blog/codebuild-github-actions-runner</guid>
            <pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Burned out managing EC2 self-hosted runners, I switched to CodeBuild-managed runners. Here's the full setup — including the Webhook and IAM gotchas that cost me a day.]]></description>
        </item>
        <item>
            <title><![CDATA[AWS ECS vs EKS: Choosing Container Orchestration in 2026]]></title>
            <link>https://pipelineops.dev/blog/ecs-vs-eks</link>
            <guid isPermaLink="false">https://pipelineops.dev/blog/ecs-vs-eks</guid>
            <pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Three months piloting EKS alongside ECS in production. What the upgrade overhead costs, what broke, and a four-question framework for the decision.]]></description>
        </item>
        <item>
            <title><![CDATA[CloudFormation vs Terraform: Which IaC Tool for AWS in 2026?]]></title>
            <link>https://pipelineops.dev/blog/cloudformation-vs-terraform</link>
            <guid isPermaLink="false">https://pipelineops.dev/blog/cloudformation-vs-terraform</guid>
            <pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[We hit CloudFormation's 500-resource hard limit mid-migration. Here's what broke, how we fixed it, and when to choose each tool.]]></description>
        </item>
        <item>
            <title><![CDATA[Why Your CI Pipeline Is Slow (And How to Fix It)]]></title>
            <link>https://pipelineops.dev/blog/why-your-ci-pipeline-is-slow</link>
            <guid isPermaLink="false">https://pipelineops.dev/blog/why-your-ci-pipeline-is-slow</guid>
            <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[CI pipelines slow down for four reasons: missing cache, sequential jobs, no path filtering, and broken Docker layer cache. I diagnosed a 32-minute pipeline and cut it down to about 15 minutes.]]></description>
        </item>
        <item>
            <title><![CDATA[GitHub Actions Self-Hosted Runners on AWS EC2: What No One Tells You]]></title>
            <link>https://pipelineops.dev/blog/github-actions-self-hosted-runners-ec2</link>
            <guid isPermaLink="false">https://pipelineops.dev/blog/github-actions-self-hosted-runners-ec2</guid>
            <pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[I put a self-hosted runner on EC2 and it died at 2am. Here's what broke, why non-ephemeral runners are a trap, and the step-by-step path to a production-ready setup.]]></description>
        </item>
        <item>
            <title><![CDATA[Docker Multi-Stage Builds: Cut Image Size by 80%]]></title>
            <link>https://pipelineops.dev/blog/docker-multi-stage-builds</link>
            <guid isPermaLink="false">https://pipelineops.dev/blog/docker-multi-stage-builds</guid>
            <pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[My Spring Boot Docker image hit 1.2 GB. CI took 12 minutes per run and Trivy flagged 140 vulnerabilities. Multi-stage builds brought it down to 245 MB — here's exactly what I changed.]]></description>
        </item>
        <item>
            <title><![CDATA[How to Set Up Zero-Downtime Deployment on AWS ECS]]></title>
            <link>https://pipelineops.dev/blog/ecs-zero-downtime</link>
            <guid isPermaLink="false">https://pipelineops.dev/blog/ecs-zero-downtime</guid>
            <pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[ECS rolling update defaults don't give you zero downtime. Here's the three-layer fix — graceful shutdown, ALB deregistration delay, and stopTimeout — that ended our deploy-time 502s.]]></description>
        </item>
        <item>
            <title><![CDATA[GitHub Actions vs Jenkins: Which CI/CD Tool in 2026?]]></title>
            <link>https://pipelineops.dev/blog/github-actions-vs-jenkins</link>
            <guid isPermaLink="false">https://pipelineops.dev/blog/github-actions-vs-jenkins</guid>
            <pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Ran Jenkins for years before switching to GitHub Actions. We saw a 20% drop in release work — here's the reasoning I actually used.]]></description>
        </item>
    </channel>
</rss>