← Dictionary
Development

What is Deployment?

Deployment (software deployment / going live) is the process of compiling and installing a software component, which has been developed and tested in a local environment, onto target servers or cloud infrastructure, and making it available to end users.

Conceptual framework, etymology, and historical transformation

Etimologically, the term deployment is rooted in military terminology, referring to the dispatching and readiness of troops, ammunition, or naval fleets into strategic combat positions ("to deploy"). In software engineering, it began in the 1970s and 80s with loading punched cards or magnetic tapes onto mainframes, evolved into manually executed FTP/SSH file transfers in the 1990s, and has today transformed into fully declarative and automated cloud pipelines (GitOps).

In modern software engineering, deployment is no longer a one-time, painful, and high-risk midnight operation. Thanks to Continuous Integration and Continuous Delivery (CI/CD) mechanisms, it is a standard workflow where code is safely transferred to the production environment hundreds of times a day.

Analogy: It is similar to switching tracks for a high-speed train full of passengers. In the traditional method, it was necessary to stop the train at the station and weld the tracks together (downtime); modern deployment, however, is like an automatic track switch shifting to the new line within milliseconds while the train is traveling at 300 kilometers per hour, without the passengers feeling even a slight jolt.

Zero-Downtime deployment strategies

The core deployment patterns developed to ensure users experience no service interruptions while applications are being updated are:

  1. Blue-Green Deployment: Two identical server environments are maintained, one handling live traffic (Blue) and the other sitting idle (Green). New code is deployed to the green environment, smoke tests are performed, and once everything is running perfectly, the Load Balancer redirects traffic to green in milliseconds. If an issue arises, it is immediately reverted to blue (instant rollback).
  2. Canary Deployment: It takes its name from the 19th-century practice of coal miners carrying canaries in cages to detect toxic gas leaks early. The new version is first rolled out to only 1% to 5% of total user traffic. Error rates (HTTP 5xx), memory consumption, and response times are monitored; if the system is stable, the percentage is gradually increased to 25%, 50%, and 100%.
  3. Rolling Deployment: The process of updating containers in Kubernetes clusters or server fleets one by one (for example, in 20% increments). Old pods are shut down sequentially and replaced by new version pods. It does not require additional hardware costs, but it necessitates managing a transition period where two different versions run in production simultaneously.
  4. Shadow Deployment: Live user traffic is mirrored and sent to a new version running in the background. However, the responses generated by the new version are not delivered to the user; they are used solely to measure the system's performance and algorithm accuracy under real-world load.

CI/CD pipeline, GitOps, and database migrations

A successful deployment architecture is built upon three critical engineering foundations:

  • CI/CD Automation and DORA Metrics: When an engineer pushes a commit to a Git repository, the code automatically undergoes linting, runs unit and integration tests, builds a Docker container image, and deploys it to the target environment. According to DevOps Research and Assessment (DORA) metrics, high-performing teams reduce deployment frequency to an hourly basis while minimizing lead time for changes and failure rates.
  • GitOps Principle: The declaration of infrastructure and application versions directly via a Git repository using tools such as ArgoCD or Flux. The Git repository serves as the Single Source of Truth; if the actual state on the servers deviates from the state in Git, the system automatically synchronizes itself.
  • Database Schema Dilemma (Expand-Contract Pattern): Code can be updated with zero downtime, but deleting a column in database tables can cause the old version to crash. For this reason, engineers implement the "Expand-Contract" (Parallel Run) pattern: First, a new column is added and written to by both versions; once all servers have migrated to the new version, the old column is safely deleted.

Error management, observability, and rollback architecture

For production environment errors that are missed even in the most advanced test environments, there are two primary lifelines:

  • Automatic Rollback: As soon as APM tools (Datadog, Prometheus) detect anomalies in error thresholds (for example, the error rate exceeds 1%), it rolls back to the previous stable Docker image or Git tag without the need for human intervention.
  • Feature Flags: Separates the deployment and release processes. Even if the code is running on the server, the new feature can be kept disabled in the user interface; In case of a risk, it can be deactivated instantly with a single dashboard key.

Commonly confused with

  • Development vs Deployment: Development is when the chef prepares and tastes the food in the kitchen; Deployment is when the food is served to the table and presented to the customer for consumption.
  • Deployment vs Release: Deployment is a technical action; It refers to uploading the code to the server. Release means making a feature visible to users, making a marketing announcement, and officially opening it by the business unit.

Questions and answers

What does deployment mean and what is its Turkish equivalent?

It is a word of English origin meaning 'distribution' or 'going live'. It is the process of compiling a software package and making it operational on target servers or in a cloud environment.

What is the difference between Deployment and Release?

Deployment is the technical installation and execution of code on a server. Release, on the other hand, is the official opening of the feature to the end user's access via Feature Flags or marketing steps.

What is the main difference between Blue-Green and Canary deployment?

In a Blue-Green deployment, there are two identical environments, and traffic is switched 100% to the new environment instantly via a load balancer. In a Canary deployment, the new version is gradually introduced to a small slice of users, such as 1-5% first, and the ratio is increased while observing metrics.

How are database schema changes managed in a Zero-Downtime deployment?

They are managed using the Expand-Contract pattern. First, backwards-compatible new fields are added; after all the servers in the system switch to the new code and data flow is established, the old fields are cleaned up.

Related terms

Related tools

This explanation was written in plain language for TreScout with AI and machine-translated from the Turkish original · the Turkish version prevails. If something looks wrong or missing, write to hello@trescout.com. Read in Turkish →