Sitecore deployments Understanding and minimizing the risks

Sitecore Deployment Best Practices and Risk Management

Deployments are one of the most critical phases of any project. A poorly executed deployment can cause downtime, introduce defects into production, impact business operations, and potentially damage a company’s reputation. This article explores common deployment scenarios in Sitecore environments and provides recommendations to help minimize risk and improve deployment reliability.

Manual Deployments

In many organizations, deployments are still performed manually. While manual deployments can be effective, they require discipline, preparation, and clear processes.

Document Every Deployment Step

Before beginning a deployment, create a deployment checklist that contains all required actions. This document should include:

  • Sitecore items that need to be published
  • Whether sub-items must also be published
  • Package installation instructions
  • File deployment details
  • Target environments
  • Rollback procedures

Having a documented deployment process significantly reduces the risk of human error.

Organize Deployment Packages

Deployment packages should be stored using a consistent naming convention that makes them easy to identify and track.

Examples:

  • JIRA-55_ProductPageFix
  • MODULE-PRODUCT
  • 2017-06-Deployment-Release

If your team uses a ticketing system such as JIRA, including the ticket number in the package name can greatly improve traceability.

Server Deployment Structure

When connecting to a server for deployment, consider maintaining two dedicated directories:

Backup Folder

Store backups of files before deploying changes. Depending on your deployment strategy, this may include:

  • The entire website directory
  • Only the files being modified

Having backups readily available allows for a fast rollback if necessary.

Deployment Package Folder

Maintain a separate folder containing every deployment package that has been released to the environment. This provides a historical record of deployments and helps simplify troubleshooting.

Selective vs. Full Deployments

Selective Deployment

A selective deployment updates only the files that have changed.

For example, if only mysite.css was modified:

  1. Backup the existing file.
  2. Copy the new version to the server.
  3. Verify functionality.

This approach minimizes risk and reduces deployment time.

Full Deployment

A full deployment replaces the entire website package. While this ensures consistency across environments, it requires a complete backup strategy and may involve greater deployment risk.

Database Backups

Sitecore deployments often include changes to content, templates, renderings, or other items stored in Sitecore databases.

Before deployment, create backups of all Sitecore databases, including:

  • Core
  • Master
  • Web

Additionally, verify whether the solution includes custom Sitecore databases that should also be backed up.

Automated database backups should be considered a mandatory component of any production environment.

Versioning Assemblies

Maintaining assembly version numbers helps identify deployed releases and simplifies troubleshooting.

Developers can update assembly versions in AssemblyInfo.cs:

[assembly: AssemblyVersion("1.0.0.0")]

After a release:

[assembly: AssemblyVersion("2.0.0.0")]

Consistent versioning makes it easier to determine exactly which build is running in each environment.

Standalone Sitecore Deployments

A standalone deployment occurs when Content Management (CM) and Content Delivery (CD) run on the same Sitecore instance.

This configuration presents significant risk because:

  • Content authors lose access during deployment.
  • Website visitors may experience downtime.
  • IIS resets affect both authoring and delivery environments simultaneously.

Any deployment issue must be resolved quickly to minimize business impact. Stakeholders should always be informed in advance of planned downtime.

Content Management Server Deployment

Before deploying to the CM environment:

  1. Ask content authors to log out.
  2. Deploy files and Sitecore items.
  3. Verify functionality.
  4. Conduct validation testing.

Whenever possible, involve QA teams or client representatives to validate the deployment before proceeding to production delivery servers.

If a Preview database exists, publish content there and perform testing before publishing to Web.

Content Delivery Server Deployment

Once validation is complete:

  1. Deploy files to the CD server.
  2. Publish Sitecore items to the Web database.
  3. Verify functionality.

Organizations operating with a single CD server should recognize that this approach still carries deployment risk because production traffic may be affected during the process.

Deployments with Multiple Content Delivery Servers

A load-balanced environment with two or more CD servers significantly reduces deployment risk and can enable near-zero downtime deployments.

Recommended Approach

Phase 1: Prepare CD2

  1. Remove CD2 from the load balancer.
  2. Restore the latest Web database backup as web_temporary.
  3. Update ConnectionStrings.config to point CD2 to web_temporary.
  4. Validate functionality internally.
  5. Add CD2 back to the load balancer.

Phase 2: Deploy CD1

  1. Remove CD1 from the load balancer.
  2. Deploy updated files.
  3. Publish Sitecore items to the Web database.
  4. Perform validation testing.
  5. Return CD1 to the load balancer.

Phase 3: Update CD2

  1. Remove CD2 from the load balancer.
  2. Reconfigure CD2 to use the production Web database.
  3. Deploy updated files.
  4. Validate functionality.
  5. Return CD2 to the load balancer.

This approach minimizes downtime, reduces deployment risk, and allows validation of production changes before all servers are updated.

Sitecore Update Installation Wizard

The Sitecore Update Installation Wizard (Update Packages) is a powerful deployment mechanism available through:

http://[site_name]/sitecore/admin/updateinstallationwizard.aspx

The tool can package and deploy:

  • Sitecore items
  • Templates
  • Files
  • Configuration changes

Packages can also be generated from solutions using Team Development for Sitecore (TDS), making deployments more repeatable and manageable.

Automated Deployments

Automated deployments have become the industry standard due to their reliability, consistency, and speed.

Tools such as TeamCity, Azure DevOps, Jenkins, and similar CI/CD platforms provide capabilities including:

  • Automated builds
  • Automated deployments
  • Automated backups
  • Environment-specific configurations
  • Integration with Sitecore deployment tools
  • Release approval workflows

Automation significantly reduces human error and improves deployment consistency across environments.

Risk Classification

Different deployment architectures carry different levels of risk:

Scenario Risk Level
Standalone CM/CD Instance High
Separate CM and CD Servers Medium
CM with Multiple CD Servers Low
Automated CI/CD Deployments Low

Conclusion

There is no single deployment strategy that fits every organization. The best approach depends on infrastructure, business requirements, available tools, and operational maturity.

Regardless of the deployment model, successful releases rely on careful planning, comprehensive backups, validation testing, rollback procedures, and clear communication with stakeholders. By following established deployment practices and embracing automation where possible, organizations can significantly reduce risk and improve deployment reliability.