Prepare for Go-Live

Overview

You can use the guidance provided in this article to prepare for Go-Live of your Sitefinity Cloud application.

Planning and coordination

Make sure that you contact your Customer Success Manager, onboarding facilitator, or Progress Support in order for the Go-Live date to be registered and confirmed, at least seven days before the expected launch. This guarantees that the heads-up information will reach the Sitefinity Cloud on-call team, so that the following actions can be performed by a member of the team:

  • Go over a checklist to inspect the application and flag potential risks that need to be addressed before the Go-Live.
  • Enable health monitoring after the Go-Live.

    NOTE: Before the Go-Live, health monitoring is disabled to avoid false-positive alerts during the development phase, when frequent changes and not fully-tested code can be deployed to Production.

In case you need immediate support during or after the Go-Live, contact Sitefinity Phone Assistance over the phone. The Technical Support Engineers can raise an incident and involve a member of the Sitefinity Cloud on-call team, if necessary.

Configurations

Domain Management

Make sure that your Production domains and SSL certificates are validated before the Go-Live. For more information about verifying Production domains and SSL certificates, see Domain management » Verify the domain.

In case you have an existing Cloudflare setup separate from Sitefinity Cloud, certain specifics may apply regarding the domain verification. Make sure to bring this topic up with your onboarding facilitator, Customer Success Manager, or Progress Support before verifying the domains or certificates.

Azure AD / Custom authentication providers

Ensure that any authentication mechanism your end users will use to log into the Sitefinity backend (Administration UI), is properly configured.

Web Security module

Ensure that the Web Security module is enabled and that you have all external resources used in the project correctly whitelisted. Check for client-side errors in the browser console for any violations that will result in blocked resources and correct the Web security configurations accordingly. For more information about the Web Security module, see Sitefinity CMS documentation » Web security module.

Cache settings

Review the cache settings in your project and verify that content is being updated on the Production environment as expected. When reviewing the cache settings, ensure that the default cache profile set for pages and media content has caching enabled. For more information about the cache settings, see the following articles:

Custom redirects

Review whether any custom or external redirects in the project work as intended. The custom redirects can be either part of rewrite rules configured in the web.config file, redirect pages in Sitefinity configured with external target link, or other custom implementation. When validating the external redirects, if the Web Security module is enabled, ensure that the redirects validation is properly configured.

For more information, see Sitefinity CMS documentation » Configure redirect validation.

IP whitelisting / restrict access 

Is there a need to restrict access to any of the environments? If this is necessary, contact Progress Sitefinity Support and provide details on what needs to be restricted.

Crawlers

Do you use a robots.txt file to block specific crawlers? Review it once again to ensure that it is working as intended.

  • To prevent crawlers from crawling the site on non-Production environments, add the following to the web.config file:
  • To enable crawlers to crawl the site on Production, add the following to the web.Production.config transformation file:

Content

Data import

In case you are migrating from hosted on-premise, you might need to restore a fresh copy of the Database before the Go-Live. You can do this by using the DB.Import pipeline at any point in time. For more information, see Backup and restore the database » Import a database from a BACPAC file.

If you have to restore the Database from a non-Production environment to Production prior to the Go-Live, you can use the DB.RestoreBetweenEnvironments pipeline. For more information, see Backup and restore the database » Restore the database between environments.
By default, the pipeline does not allow Production as restoration target, because the Database restore process will cause downtime, but this option can be enabled by the Sitefinity Cloud team before the Go-Live. Make sure that you request this option when informing your Customer Success Manager, onboarding facilitator, or Progress Support about the Go-Live date.

Content validation

Double check your content on the Production environment. This includes validating whether the published content is correctly displayed on pages.

File downloads

Double check whether any publicly accessible files can be downloaded from the Production environment.

Overall testing

Functional / Sanity testing

Make sure to test all core features of your project, as well as standard processes and operations utilized by backend (Administration UI) users.

API integration testing

Verify that any third-party integrations are working as expected on the Production environment.

Exceptions in error logs

Review the error logs in Application Insights for exceptions and ensure those are addressed before the Go-Live. For more information on how to review the logs, see Troubleshooting » Logs.
In addition, check the Progress Knowledge Base for details on the errors, in case they are known errors.

Check for HttpClient misuse, which causes SNAT ports exhaustion and application crashes

Check if the application code observes the best practices when using HttpClient. Make sure the HttpClient object is created once and reused (Singleton pattern). Frequently creating and destroying instances of HttpClient will result in SNAT ports exhaustion, because the application would not be reusing existing connections. SNAT ports exhaustion, in turn, will cause application crashes and downtime.
For more information, refer to the following article: SNAT ports exhaustion.

Performance

Remove Session_Start method from the Global.asax class

Even if the Session_Start method is empty, it causes session generation, which tries to set a ASP.NET_SessionId cookie. This may cause compatibility issues with CDN and may cause the output cache to be invalidated. Removing the method is also recommended as per Sitefinity documentation » Optimize output cache.
Normally, the Session_Start method is generated when creating the Global.asax class.

Adjust Long Caching profile

Make sure the output cache and CDN cache are optimally configured according to the needs of the website. Generally speaking, the greater the values, the better. By default, output cache must be at least 24 hours (86400 seconds) and CDN cache must be at least 12 hours (43200 seconds).
If the Long Caching profile is not set in the AppData/Sitefinity/Configuration/SystemConfig.config file, it will be automatically set with the default recommended values on deployment.

To configure the Long Caching profile manually, in the SystemConfig.config file, set the output cache profiles in the following way:

Check for pages with No Cache profile

Pages that have a caching profile set to No Cache, do not have output cache or CDN cache and are rendered from scratch upon each request. This can become a big performance issue depending on the traffic to those pages.
If you need a full list of pages with No Cache profile to be extracted from the Database, ask your Customer Success Manager, onboarding facilitator, or Progress Support to provide this information.

Load testing

If possible, perform load and/or performance tests on your project. You need to coordinate the testing upfront with your onboarding facilitator, Customer Success Manager, or Progress Support.

Was this article helpful?