|
288 | 288 | <div class="md-content" data-md-component="content"> |
289 | 289 | <article class="md-content__inner md-typeset"> |
290 | 290 | <h1>Advanced Deployments</h1> |
291 | | -<p>The standard SuperStack replaces the stack in place.</p> |
| 291 | +<p>The standard SuperStack has a single app, and it's upgraded in place.</p> |
292 | 292 | <ul> |
293 | | -<li>There's some downtime while upgrading.</li> |
| 293 | +<li>There's potentially some downtime while upgrading.</li> |
| 294 | +<li>Once an app is upgraded, you can't rollback.</li> |
294 | 295 | <li>You can't test one app while another is live (blue/green)</li> |
295 | | -<li>Once an app is upgrade, you can't rollback.</li> |
296 | 296 | </ul> |
297 | | -<p>Once your app is ready for production, consider adding a traffic-switcher in |
| 297 | +<p>When your app is ready for production, consider adding a traffic-switcher in |
298 | 298 | front of your app.</p> |
299 | 299 | <p>Here's how it works:</p> |
300 | 300 | <ul> |
301 | 301 | <li>We stop exposing ports in the <code>app</code> project.</li> |
302 | | -<li>A new <code>proxy</code> service is added, with ports open.</li> |
| 302 | +<li>A new <code>proxy</code> service is added with ports open.</li> |
303 | 303 | <li>It's purpose is to direct traffic to the right application. (it also takes |
304 | | - over TLS termination from the app layer).</li> |
305 | | -<li>Rather than upgrading the one app, apps are deployed separate to the live |
306 | | - one. A fresh app every time.</li> |
| 304 | + over TLS termination)</li> |
| 305 | +<li>Rather than upgrading the single app, new apps containers are brought up, |
| 306 | + separate to the live one, and they connect to the proxy's network.</li> |
| 307 | +<li>Test the new app before it goes live.</li> |
| 308 | +<li>Finally traffic is flipped to the new app.</li> |
307 | 309 | </ul> |
308 | 310 | <p>This way, environments are <em>ephemeral, immutable and idempotent</em>.</p> |
309 | 311 | <pre class="mermaid"><code>flowchart TD |
|
0 commit comments