<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Deployments on Brian Faust</title><link>https://wimdy.works/tags/deployments/</link><description>Recent content in Deployments on Brian Faust</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate><atom:link href="https://wimdy.works/tags/deployments/rss.xml" rel="self" type="application/rss+xml"/><item><title>A Release Gate Must Fail Before Incompatible Code Goes Live</title><link>https://wimdy.works/thoughts/a-release-gate-must-fail-before-incompatible-code-goes-live/</link><pubDate>Tue, 01 Nov 2016 00:00:00 +0000</pubDate><guid>https://wimdy.works/thoughts/a-release-gate-must-fail-before-incompatible-code-goes-live/</guid><description>&lt;p&gt;We had a deployment step everybody knew about and people still forgot it. The
code was pulled manually, then someone had to run a shell script which applied
pending migrations. The instructions existed, but the habit remained
concentrated in one operator.&lt;/p&gt;
&lt;p&gt;Eventually a deployment completed without the script. Traffic reached code
which expected columns or tables that did not exist, and database queries began
failing. Running the migrations restored the application. There was no obscure
database bug here; the release process had declared success before one of its
prerequisites was true.&lt;/p&gt;</description></item></channel></rss>