Nodea — logo

Deploy

Deployment (to deploy) is the process of taking a new version of an application, website or service out of the development environment and putting it onto a target server — usually production — where it begins handling real traffic. A deploy is more than copying files: it typically includes installing dependencies, running database migrations, rebuilding caches and reloading long-running processes.

How a deployment works

Modern teams automate the whole path inside a CI/CD pipeline. A typical run looks like this:

  1. Build — the pipeline checks out the code, installs dependencies, compiles frontend assets and produces an artifact such as a Docker image or a versioned archive.
  2. Automated tests — unit and integration suites act as a gate; a red build never reaches production.
  3. Ship — the artifact is delivered to the server via container registry, rsync, or a fresh release directory.
  4. Post-deploy steps — migrations, cache warm-up, worker restarts and a health check confirming the new version responds correctly.

Deployment strategies

  • Rolling — instances are replaced gradually, so the service never goes fully offline.
  • Blue-green — two identical environments; traffic flips to the new one only after verification, and rollback is an instant flip back.
  • Canary — the new build first serves a small percentage of users while metrics are watched.
  • Releases with a symlink — every deploy lands in its own timestamped directory and a symlink points to the active one, making rollback a one-second operation.

Deployment in practice

The right mechanism depends on the infrastructure. On shared hosting a deploy may be a Git pull or an SFTP upload, while a VPS or container cluster justifies fully automated pipelines with health checks and automatic rollback. Two habits pay off regardless of scale: deploy small changes often, because a small diff is far easier to debug when something breaks, and keep a staging environment that mirrors production. Every deployment should be repeatable, reversible and traceable to an exact commit in version control.

Powiązane pojęcia

Najczęstsze pytania

What is the difference between deployment and release?

Deployment is the technical act of putting new code on a server; release is making a feature visible to users. With feature flags, code can be deployed to production while remaining switched off, which lets teams deploy frequently with low risk.