Deployment release lifecycle

States of one release object

Lifecycle11 nodes · 12 connections

diagram.html#The link keeps the view, selection, route and playback.

About this diagram

The states of one thing and the moves between them: a job, an order, a deployment.

Ask for one like it

Draw the lifecycle of an agent run: every state it can be in, and what moves it between them.

Read about lifecycle diagrams

The JSON

deployment-release/diagram.json187 lines
{  "kind": "lifecycle",  "title": "Deployment release lifecycle",  "subtitle": "States of one release object",  "lanes": [    { "id": "main", "label": "Release phases" },    { "id": "waiting", "label": "Approval and health wait" },    {      "id": "recovery",      "label": "Rollback controller",      "tone": "exception"    },    { "id": "terminal", "label": "Terminal exits" }  ],  "nodes": [    {      "id": "queued",      "type": "start",      "lane": "main",      "card": { "title": "Queued", "subtitle": "Change accepted" }    },    {      "id": "building",      "type": "active",      "lane": "main",      "card": { "title": "Building", "subtitle": "Immutable image" }    },    {      "id": "verifying",      "type": "decision",      "lane": "main",      "card": {        "title": "Verifying",        "subtitle": "Tests and policy",        "tag": "gate"      }    },    {      "id": "ready",      "type": "waiting",      "lane": "main",      "card": { "title": "Ready", "subtitle": "Promotion pending" }    },    {      "id": "live",      "type": "success",      "lane": "main",      "card": { "title": "Live", "subtitle": "Production healthy" }    },    {      "id": "approval",      "type": "waiting",      "lane": "waiting",      "card": {        "title": "Needs approval",        "subtitle": "Release owner",        "tag": "pause"      }    },    {      "id": "paused",      "type": "waiting",      "lane": "waiting",      "card": { "title": "Health paused", "subtitle": "SLO regression" }    },    {      "id": "rolling-back",      "type": "active",      "lane": "recovery",      "card": {        "title": "Rolling back",        "subtitle": "Last good image",        "tag": "automatic"      }    },    {      "id": "cancelled",      "type": "failure",      "lane": "terminal",      "card": { "title": "Cancelled", "subtitle": "Approval denied" }    },    {      "id": "failed",      "type": "failure",      "lane": "terminal",      "card": { "title": "Failed", "subtitle": "Rollback failed" }    },    {      "id": "rolled-back",      "type": "success",      "lane": "terminal",      "card": { "title": "Rolled back", "subtitle": "Service restored" }    }  ],  "edges": [    {      "id": "build",      "from": "queued",      "to": "building",      "tone": "main"    },    {      "id": "verify",      "from": "building",      "to": "verifying",      "tone": "main"    },    {      "id": "pass",      "from": "verifying",      "to": "ready",      "tone": "main"    },    { "id": "promote", "from": "ready", "to": "live", "tone": "main" },    {      "id": "sign-off",      "from": "verifying",      "to": "approval",      "label": "needs sign-off",      "tone": "security"    },    {      "id": "approved",      "from": "approval",      "to": "ready",      "label": "approved"    },    {      "id": "denied",      "from": "approval",      "to": "cancelled",      "label": "denied",      "tone": "error"    },    {      "id": "abort",      "from": "ready",      "to": "rolling-back",      "label": "abort",      "tone": "error"    },    {      "id": "rollback-failed",      "from": "rolling-back",      "to": "failed",      "tone": "error"    },    {      "id": "regress",      "from": "live",      "to": "paused",      "label": "SLO regression",      "kind": "async"    },    {      "id": "rollback",      "from": "paused",      "to": "rolling-back",      "label": "roll back"    },    {      "id": "restored",      "from": "rolling-back",      "to": "rolled-back",      "label": "restored",      "tone": "main"    }  ],  "notes": [    {      "title": "Promotion rail",      "items": [        "The release moves through five ordered phases",        "Verification and approval remain distinct states",        "Live means production health is currently proven"      ]    },    {      "title": "Explicit endings",      "items": [        "Denied approval ends as Cancelled",        "A failed rollback ends as Failed",        "A successful rollback is a terminal restored outcome"      ]    }  ]}

More lifecycle examples

All examples