Deployment
Deployment is the process of moving an approved website or application change into an environment where it can run.
Most importantly, a production deployment makes a change available on the live site.
What Can Be Deployed
A deployment may include:
- Code
- Theme changes
- Templates
- CSS
- JavaScript
- Configuration
- Database migrations
- Static assets
- Server configuration
Content published through a CMS may use a different publishing workflow and may not require a code deployment.
A Simple Deployment Workflow
Change code
↓
Version Control
↓
Staging
↓
Test
↓
Deploy
↓
ProductionMore automated systems may run checks and create deployments whenever approved changes are merged.
GitHub's deployment documentation describes protected branches, required status checks, reviews, and deployment environments as mechanisms for controlling how code moves toward release. GitHub Docs: Deploying code
Deployment vs. Publishing
Publishing usually refers to making content live through a Website CMS.
Deployment normally refers to releasing technical changes to the application or website environment.
The distinction depends on the platform.
A static site may rebuild and deploy whenever an editor publishes content.
Why It Matters
Deployment is a transition between states.
Before deployment:
Production works one way.
After deployment:
Production works another way.
A controlled deployment process makes that transition understandable and repeatable.
Common Problems
Common problems include:
- Uploading files manually without tracking them
- Production different from Version Control
- Deployment includes unrelated changes
- No testing
- Database changes cannot be reversed
- No Rollback plan
- Credentials embedded in deployment files
- Production only tested after customers report a problem
How to Improve
Keep deployments reproducible.
For meaningful changes:
- Record change in Version Control
- Test appropriately
- Confirm Backup & Restore requirements
- Deploy
- Verify production
- Monitor
- Roll back if necessary