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:
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.