Upgrade

Overview

The upgrade process is an important component of any complex system. That is why one of the goals in Sitefinity Cloud is to make the upgrade process as seamless as possible, without compromising on customization. 

You can upgrade the project in two ways:

  • Automated upgrade
    Use the automated upgrades that are provided with Sitefinity Cloud out-of-the-box and are executed with each new Sitefinity release.
  • Manual upgrade
    Upgrade the project whenever required, manually following the upgrade steps.

Automated upgrades

With every Sitefinity Cloud setup there is an automated process that upgrades the website for free. This process is executed every time there is a new Sitefinity version released. Following are the steps of the automated upgrade process:

  1. The Sitefinity NuGet packages for all projects in the website solution are upgraded to the latest version in a dedicated upgrade branch.
  2. (Optional) Sitefinity .NET Core Renderer NuGet packages are upgraded to the latest corresponding version of Sitefinity in a dedicated upgrade branch.
  3. (Optional) A build operation is executed after the .NET Core Renderer upgrade and a pull request is created to the main branch.
  4. A build operation for the Sitefinity application is executed after the upgrade.
  5. The upgraded project is deployed to a temporary upgrade environment and a runtime upgrade is executed using a copy of the Staging database (the database of which environment is used can be customized upon request).
  6. The upgrade changes are pushed in an upgrade branch and a pull request is created to the main branch.
  7. An email is sent to notify you that the website has been upgraded in a separate branch and you can review the changes in a pull request.
    It is up to your decision to accept and merge the changes.

    IMPORTANT: If you have made any customization in Sitefinity application that requires fixing API breaking changes in your code, this is not handled by the automated upgrade. You can fix any breaking changes in the upgrade branch and then proceed with the runtime upgrade - start the application and wait for the Sitefinity upgrade to pass - on your local development environment. This way the configuration files are also updated and afterwards, you can merge the pull request to the main branch. 

  8. Review the changes for Sitefinity application and merge the upgrade branch to the main branch.
  9. (Optional) Review the changes for the .NET Core Renderer application and merge the upgrade branch to the main branch.
  10. After deployment to the non-production environment(s), test the website to make sure it functions as expected.
  11. Promote to Production.
    For more information, see the Promote your code to the production environment section in the Deploy code changes to the Cloud article.

Premium automated upgrades

The Premium offering adds on top of the free automated upgrades. This option is best suited for customers who want to entirely offload Sitefinity upgrades to Progress. This option includes:

  • Additional Upgrade environment where the customer can test the upgraded project without interfering with the existing CD process. This allows for development to continue on the application with the old version of Sitefinity, while the upgraded version is still tested in a separate environment.
  • Progress Professional Services fixing custom code breaking changes after each upgrade.

Manual upgrade

Follow the steps outlined below to perform the upgrade operation:

  1. (Optional) Upgrade the .NET Core Renderer application NuGet packages on a dedicated upgrade branch.
  2. (Optional) Build the .NET Core Renderer solution and resolve any breaking changes.
  3. Restore the production DB on your local machine.
    For more information, see Import a database from a BACPAC file in your local development environment section in the Backup and restore the project database article.
  4. Upgrade Sitefinity application NuGet packages on a dedicated upgrade branch.
  5. Build the solution and resolve any breaking changes.
    For more information, see API Changes in Sitefinity CMS.
  6. Change the connection string in the web.config to point to your local SQL server and DB.
  7. Run the application and wait for the Sitefinity runtime upgrade to pass.
  8. Commit changes and push the upgrade branch of the Sitefinity application.
    For more information, see Commit your changes and sync them to Sitefinity Cloud section in the Deploy code changes to the Cloud article.
  9. Merge the upgrade branch to the main branch of the Sitefinity application.
    For more information, see the Create a pull request to push your code to the main branch section in the Deploy code changes to the Cloud article.
  10. (Optional) Commit changes and push the upgrade branch of the .NET Core Renderer application.
  11. (Optional) Merge the upgrade branch to the main branch of the .NET Core Renderer application.
  12. After deployment to the non-production environment(s), test the website to make sure it functions as expected.
  13. Promote to Production.
    For more information, see the Promote your code to the production environment section in the Deploy code changes to the Cloud article.

IMPORTANT: If you are using the .NET Core Renderer add-on, you have to deploy the changes to the Sitefinity application first for each environment, before you deploy the .NET Core Renderer application on that same environment. 

Sitefinity Cloud has been designed to ensure high availability and maximum uptime of your website. During the upgrade process, the production website will remain functional and accessible to visitors. Content editing also remains uninterrupted.

NOTE: In case the website does not start after the upgrade on Production, an automated rollback process will be triggered.

Was this article helpful?