<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Devops on Deployed Commerce</title>
        <link>https://deployedcommerce.com/tags/devops/</link>
        <description>Recent content in Devops on Deployed Commerce</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language>
        <lastBuildDate>Sat, 02 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://deployedcommerce.com/tags/devops/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>Adobe Commerce Zero Downtime Deployments. The Good, The Bad, and The Data Patch</title>
            <link>https://deployedcommerce.com/posts/adobe-commerce-zero-downtime-deployments/</link>
            <pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate>
            <guid>https://deployedcommerce.com/posts/adobe-commerce-zero-downtime-deployments/</guid>
            <description>&lt;img src=&#34;https://deployedcommerce.com/posts/adobe-commerce-zero-downtime-deployments/zero-downtime-banner.webp&#34; alt=&#34;Featured image of post Adobe Commerce Zero Downtime Deployments. The Good, The Bad, and The Data Patch&#34; /&gt;&lt;figure style=&#34;float: left; max-width: 500px; margin: 0 1.5rem 1rem 0;&#34;&gt;&#xA;  &lt;img src=&#34;yabadee-yabadoo.webp&#34; alt=&#34;blue green, wait i mean zero downtime right?&#34; style=&#34;width: 100%; display: block;&#34;&gt;&#xA;  &lt;figcaption&gt;&lt;s&gt;blue green&lt;/s&gt; zero downtime deployments&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Zero Downtime deployments really kicks butt for frontend design work.&#xA;So if you&amp;rsquo;re on Adobe Commerce Cloud, you have zero downtime deployments available to you, but there&amp;rsquo;s a right way to set them up and it&amp;rsquo;s gotta be part of your workflow.&lt;/p&gt;&#xA;&lt;p&gt;The way it works is you move static content generation into the build phase rather than the deploy phase. That&amp;rsquo;s the key. When SCD runs during build, the deploy phase becomes short enough that Adobe can hold active connections in a queue, up to five minutes, and release them when the deployment completes. Sessions stay intact, carts don&amp;rsquo;t drop, and the store never goes dark. No maintenance window, no putting the site offline and hoping nobody notices.&lt;/p&gt;&#xA;&lt;p&gt;For the projects where everything is built to handle this that&amp;rsquo;s great, but in reality it&amp;rsquo;s going to be a PIA.&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-problem&#34;&gt;The problem&#xA;&lt;/h3&gt;&lt;p&gt;Here&amp;rsquo;s the deal with data patches.&lt;/p&gt;&#xA;&lt;p&gt;Your deploy hooks run in order, build, then deploy (setup:upgrade, data patches, the whole thing), then post-deploy. So there&amp;rsquo;s a gap where your new code is live but your database is still sitting at the old schema. If you wrote a feature that reads a new column and you didn&amp;rsquo;t write a fallback for the state before the patch runs, you&amp;rsquo;re going to get errors. Possibly &lt;em&gt;cough&lt;/em&gt; probably &lt;em&gt;cough&lt;/em&gt; in production.&lt;/p&gt;&#xA;&lt;p&gt;So you end up writing code that checks whether a column or table exists before it queries it. Making sure your data patches are idempotent. Testing what happens when the patch hasn&amp;rsquo;t run yet, not just when it has. And if the patch itself throws an exception halfway through, setup:upgrade bails and you&amp;rsquo;re in rollback territory.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s extra work on every feature ticket that touches the database. And it&amp;rsquo;s not just your code, every third party module on the project has to handle this too, and so does that legacy spaghetti codebase you&amp;rsquo;ve just been handed and asked to maintain. It&amp;rsquo;s going to bite you.&lt;/p&gt;&#xA;&lt;h3 id=&#34;where-it-actually-earns-its-keep&#34;&gt;Where it actually earns its keep&#xA;&lt;/h3&gt;&lt;p&gt;Frontend deploys. That&amp;rsquo;s where zero downtime is genuinely great.&lt;/p&gt;&#xA;&lt;p&gt;CSS changes, LESS updates, template work, layout adjustments, responsive fixes, pixel-pushing from designer mockups, none of that touches the database. Build it, deploy it, connections queue and release, done. No maintenance mode, no customers hitting a broken page mid-deploy.&lt;/p&gt;&#xA;&lt;p&gt;Most of the week-to-week deploy volume on a mature commerce site is this stuff anyway. The client wants the hero image taller. The designer sent new mockups. The PDP layout needs a second look on mobile. All of that goes through cleanly and you don&amp;rsquo;t have to think about it.&lt;/p&gt;&#xA;&lt;p&gt;You can ship a CSS fix in the afternoon, look at it on the live site, and push a follow-up before end of day. That cadence is actually useful when you&amp;rsquo;re working directly off design reviews.&lt;/p&gt;&#xA;&lt;h3 id=&#34;so&#34;&gt;So&#xA;&lt;/h3&gt;&lt;p&gt;Not going to pretend zero downtime deployments have no overhead, they do, and if you&amp;rsquo;re shipping database-touching features every sprint you&amp;rsquo;re going to feel it. Go in knowing that defensive code around your schema changes is part of the deal, and make sure your patches are bulletproof before they go anywhere near production.&lt;/p&gt;&#xA;&lt;p&gt;For frontend work though, it&amp;rsquo;s a significant upgrade over the old approach. Ships clean, stays up, nobody panics. Maybe they&amp;rsquo;ll even let me run deployments during business hours now?&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
