Contact Us

Website deployment to Production was a time-consuming, manual task in the past. Fortunately, a release to production servers can be handled in a partially / fully automated manner today, allowing more time for development & verification and enabling smaller releases & shorter release cycles.

In this blog, we will discuss a number of steps to implement a best practice strategy for Website Deployment on Sitecore:

Step 1 – Prepare the release plan

Start checking off your final to-do list several weeks before your planned launch date. The checklist should be as comprehensive as possible and should cover all aspects required on the day of the launch. It should include team details, hour and minute-level plan, clearly identified owners and backup ownership, dependencies and appropriate mitigation, and so on.

The communication plan is the most important and should be clearly defined. While preparing release notes, special attention must be paid to the release of content and the change above the previous version of the website.

Step 2 - Understand and verify the environment.

The deployment team should have a clear understanding of the environment. A day before the launch, it is necessary to verify access to all environments. The code base must be versioned and all configurations in the repository should be completed. Major and minor build revisions should be defined, and the release notes should be well-updated.

Sitecore website deployment 1 

Sitecore CMS access for content delivery – the production environment – should always be disabled. It should be managed using the CMS credentials of the content author.

Step 3 - Data backup

Taking backups of the production environment (both content authoring and content delivery servers) and all databases (core, master, web and CDWeb) are extremely important. If there is an error in the deployment process, regular backup allows us to roll back to a previous setting.

Step 4 – Fall back website on backup (Disaster Recovery) environment

Implement the mirroring strategy and backup SQL Server database to increase the availability of your Sitecore databases. In case of a disaster on your website, the successful failover can promptly recall a copy of your database in standby and get it on the live environment.

In order to execute the website search results, web indexes (either Lucene or Solr) should also be automatically copied to DR servers, so that the failover servers show the latest snapshot of data on the websites.

 

     

Need Help?

Step 5 – Build and deploy the solution

It would be ideal to use an auto-build process to create the build and deployment strategy. Sitecore packages can be combined with auto deployment. This can, however, create a discrepancy between content delivery and content management environments. Therefore, smaller footprints on the production environment is always better; remember to deploy packages one by one.

Of course, the current build can always be verified by accessing the Source Control version number and sending it to the project's assembly information. However, when deploying the configuration files (such as web.config), remember to be very careful. Settings for configuration in different environments may vary.

Sitecore website deployment 2 

It is good enough to publish the sub-layout before the code is deployed to avoid the yellow screen. This can be caused due to rebuilding indexes, which can stall the search and listing functions of pages until the process is complete.

In addition to the above, during deployment, standard folders such as Temp and App data folders must be excluded. Cleaning these folders takes time and would unnecessarily burden Sitecore to reconstruct the media file cache every single time.

We sometimes use third-party components such as ABC.pdf, where deployments may be required. Therefore, the deployment of these products may be dependent and there could also be cases (locked file) where it may not be possible to deploy them without shutting down the App Pool. It is therefore suggested that after each deployment, an App Pool recycle is attempted.

Step 6 – Verify the changes

Carry out a proper verification of your website, before it is launched. This will help validate all the features of your website. Depending on the size of your website, pool all your team members to properly check every form, link, redirect, landing page and social integration. To make your website flawless, look out for 404s and double - check your content. It will all be worth the effort to spend time on your website before its launch. 

Step 7 – Emergency Fixes

Do not subvert your build and deploy process under any circumstance. This can lead to regression issues. Make sure the emergency patch is well-tested and approved.

Step 8 – Changes in content and sign-off from stakeholders

It is ideal to make all necessary changes and preview it after deployment on the content management system. The final draft should then be published on the content delivery target along with the changes and verified promptly. In order to complete the cycle, all stakeholders should verify and sign off the release by conducting a round of verification on each content delivery server before the load balancers are reverted to the delivery servers.

Step 9 – Revert  to production environments

Support Zero downtime release by using a Disaster recovery server to get the main site running. Once this is done, take a final call. If a major release is available, the main site can be switched to the Disaster Recovery server, which has the latest data and the last stable code. It helps to free the main server for any deployment without impacting front-end users. It should be noted that the content freeze will be in action in this case and no new content will be visible in the front-end.

 

Sitecore website deployment 3

 

Step 10 – Monitor the environments

Keep a close eye on the production servers when the site/project is live mainly on worker process and CPU usage.

Step 11 – Upgrade backup (Disaster Recovery) environment

You should always have a plan-B. Don't forget to get the latest code and DB synchronized with the Disaster Recovery server. You never know when you may need it again, even if it means requiring it once your phase of support is over. So, it's always safe to stay prepared.

Step 12 – Update the Staging server

Always update the content from the production to the staging environment so that you have the latest content available, in case you need to verify something on the staging with a new fix. Before this step, make sure to take a backup of Staging. This should be a regular activity after each production deployment. It is important to get the latest database from the live environment and restore it on the Staging serve, so that the code implementation can be properly tested with the latest content. There may be cases in which a complete database restore is not necessary; in such a case, a package can be created from the Sitecore live environment and deployed on to the staging environment.

Conclusion:  Ultimately, Website Deployment on Production in Sitecore must ensure that the step - by - step approach is properly followed using the full potential of development, quality assurance, staging and production. To complete the cycle, always verify the release before switching from disaster recovery to live.

Altudo is a Sitecore Platinum Implementation Partner and we've completed 2000+ projects for 45+ Fortune 500 companies. We deliver a Sitecore project almost every 2 weeks and with a run rate of more than 15 every year.

If you are planning to implement Sitecore as your Web CMS, drop us a line at marketing@altudo.co