<?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://vacua.dev/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://vacua.dev/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://vacua.dev/thoughts/a-release-gate-must-fail-before-incompatible-code-goes-live/</link><pubDate>Tue, 01 Nov 2016 00:00:00 +0000</pubDate><guid>https://vacua.dev/thoughts/a-release-gate-must-fail-before-incompatible-code-goes-live/</guid><description>&lt;p&gt;A deployment completed, traffic reached the new code, and database queries
started failing. The code expected columns or tables which did not exist.&lt;/p&gt;
&lt;p&gt;The missing step was documented. After each manual deployment, somebody had to
run a shell script which applied the pending migrations. The instructions were
available, but the working knowledge remained concentrated in one operator.
Other people followed the sequence for a while and eventually skipped it.&lt;/p&gt;
&lt;p&gt;Running the migrations restored the application. The incident was not caused
by an obscure database failure. A release had been allowed to report success
before one of its prerequisites was true.&lt;/p&gt;</description></item></channel></rss>