A deployment event
A deployment is the act of putting a specific version of code onto a running environment, where it can execute. The interesting part is what it does not include: deploying code is not the same as letting users touch it. That gap, between code arriving on a server and a featureFeatureProduct SpecificationA product capability or featureView reference → reaching the person it was built for, is where most of the modern discipline of safe delivery lives.
The word travelled into software from operations, where deploying meant moving a built thing into position. For years deployment and releaseReleaseProduct SpecificationA shipped version of the productView reference → were treated as one motion, because they happened together: you copied the new binary onto the box, restarted the process, and users immediately got the new behaviour. The two ideas separated as teams started shipping more often and wanted to stop coupling the technical event to the user-facing one.
Jez Humble and David Farley made the separation rigorous in *Continuous Delivery* (2010), which introduced the deployment pipeline as an automated path from check-in to a release-ready build. Their distinction is precise. Deployment installs a version into an environment. Release exposes that version, or some feature inside it, to users. Once those are different events, you can deploy on Tuesday and release on Thursday, or deploy to all servers and release to two percent of traffic.
That decoupling produced the techniques teams now reach for by name. Blue-green keeps two identical production environments and switches traffic between them, so a bad version can be abandoned by flipping back. Canary releases the new version to a small slice of users first, watches the metricsMetricStrategyA unified metric that measures progress, health, or behaviour across the productView reference →, then widens the rollout. Rolling deployment replaces instances in batches so the service never fully stops. Feature flagsFeature FlagEngineeringA feature toggle for controlled rolloutView reference → push the release decisionDecisionStrategyA recorded decision with context, rationale, and consequencesView reference → into runtime configuration, letting code sit deployed and dark until someone turns it on. Google's DORA research programme later made deployment frequency one of its four key delivery metrics, evidenceEvidenceValidationData supporting or refuting a hypothesisView reference → that how often you deploy correlates with how well a team performs, because frequent deploys force the small batch sizes that make each change cheap to verify and easy to reverse.
A payments team has a new fraud-scoring service ready. The pipeline deploys it to all eight production nodes at 09:00 behind a feature flag set to zero percent. Nothing changes for customers; the code is live but dark. At 09:30 they flag it on for internal staff accounts, then for one percent of real traffic. DashboardsDashboardData & AnalyticsAn analytics dashboardView reference → show latency holding at 40ms and the fraud catch rate ticking up, so over two hours they widen to five, twenty-five, and a hundred percent. A spike in false declines at twenty-five percent would have meant flipping the flag back to zero in seconds, with no rollback, no redeploy, and no incidentIncidentDevOps & PlatformA production incidentView reference →. The deployment happened once at 09:00. The release happened gradually across the morning, each widening governed by what the dashboards showed.
In the Unified Product Graph, deployment sits in the engineering region as the bridge between built software and the user-facing release. A ServiceEngineeringA deployable service or microserviceView reference → connects through serviceServicedeployed asDeploymenthierarchy, recording that a deployment is one materialisation of a service in an environment. The release decoupling shows up as service_deployed_as_deploymentRelease Strategyused byDeploymentcross-domain, which names the technique (blue-green, canary, rolling) governing how exposure happens. release_strategy_used_by_deploymentTest EnvironmentmirrorsDeploymentcross-domain captures the discipline of staging that resembles production closely enough to trust. Modelling deployment as its own node, distinct from the release it may or may not trigger, keeps the technical event and the user event queryable on their own terms, which is exactly the separation the practice depends on.test_environment_mirrors_deployment
Type-specific fields on BaseNode
environmentstringTarget environment
timestampstringISO timestamp
deploy_statusstringCurrent status
shastringGit SHA of the deployed commit
duration_secondsnumberWall-clock duration in seconds. Tracks deployment speed trends.
deployerstringTriggering person or system.
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
3 phases — initial: rolling
4 edge types connected to this entity.
service_deployed_as_deploymentdeployment_triggers_incidenttest_environment_mirrors_deploymentrelease_strategy_used_by_deployment