Manage SaaS deployments

Use Xperience Portal (available at https://xperience-portal.com) to manage your Xperience by Kentico applications deployed in the SaaS environment.

Overview

You need to upload a deployment package to your Xperience Portal project to trigger an initial deployment to the QA environment. After a successful deployment, you can access the deployed application and manage the SaaS deployments within Xperience Portal, which enables you to:

Deployments in Xperience Portal

Access deployed applications

After successfully uploading the deployment package to the QA environment or deploying the package to another deployment environment, use the application URL displayed in the Deployments application under Latest deployments to access the deployed application.

Each project has a default system domain in format: <environment>-<project_code_name>.xperience-sites.com

The default domain can be used to access the project’s administration UI by appending the /admin path to the URL. You can view your project’s default system domains or customize your system Email sending and Email service domain in the Channels and Domains → System domains application in Xperience Portal.

Additionally, projects also have domains for individual website and email channels. You can set up custom domains for website and email channels in the PROD or STG environment. To learn more, see Website channels in the SaaS environment and Email channels in the SaaS environment.

Restart deployed applications

If you encounter any issue that requires you to restart the Xperience by Kentico application, you can restart the application in the administration interface. However, when you cannot access the administration interface, you can restart the application from Xperience Portal.

  1. Access your Xperience Portal project.
  2. Navigate to the Deployments application.
  3. Restart the desired environment.
    • For non-production environments (QA, UAT), the Restart button is available to all portal users. However, only users in Tenant Administrator or DevOps Engineer roles can restart production environments (PROD, STG).
  4. Wait until the restart is finished.

Restart button in the Xperience Portal

Channel management

Content in Xperience by Kentico is encapsulated within channels, which are bound to specific domains. To allow the content to be presented by deployments in the SaaS environment, you need to add and configure all website and email channels within Xperience Portal in the Channels and Domains application.

For detailed information, see:

Restore points

The SaaS environment uses a two-tier system consisting of restore points and exports to ensure data protection and disaster recovery. This system allows you to restore previous versions of your project for a particular environment.

Xperience Portal creates automatic restore points and exports, and you can also create manual restore points for production and non-production environments. Restore points can be viewed, managed and restored under Data Management -> Restore points.

Restore points vs. exports

Understanding the difference between restore points and exports is crucial for effective data management:

Restore points:

  • A timestamp referencing the app state at a given time
  • Restore points enable you to restore the application to a previous state
  • Created automatically before deployments, manually on demand, or on a regular schedule
  • Always contain all services (application, database, and storage)
  • Faster creation process as files aren’t physically copied
  • Most services can be downloaded directly; the database needs to be exported to access the files

Exports:

  • Physical copies of data that can be downloaded
  • Can be full (all services) or partial (selected services)
    • Full exports enable you to restore a project to a previous state in the SaaS environment, providing the same functionality as restore points
  • Can be downloaded and stored locally for long-term storage
  • Limited to 30 exports per environment per project per month (may be adjusted with custom plans)
  • The files are retained for 60 hours after the export is created and you need to download them before they are removed

Applications deployed in the SaaS environment consist of the following services:

  • Application service – application binaries and runtime files
  • Database – reflects the current state of the environment’s database
  • Storage and files – reflects the current state of files in the environment’s Azure Blob storage

Automatic restore points and exports

Kentico automatically creates the following restore points and exports:

  • For all environments:
    • Predeployment restore points which expire in 30 days
  • For the Staging or Production environment:
    • Daily restore points with a retention policy based on your service plan:
      • Level 1 – 3 days
      • Level 2 – 3 days
      • Custom – 7 days or more
    • Weekly full exports with a retention policy of 30 days (created on Sundays)

See SaaS service plans for information about service plans and Licensing Xperience by Kentico for information how to change to a different service plan.

Create a manual restore point

You can create manual restore points for both production and non-production environments. These restore points can then be exported when you need to download or inspect the data.

The retention policy for manual restore points is:

  • Restore points:
    • Level 1 service plan – 3 days
    • Level 2 service plan – 3 days
    • Custom service plan – 7 days or more

To create a manual restore point:

  1. Navigate to Data Management -> Restore points.

  2. Select Create restore point in the upper-right corner.

  3. Select the environment for which you want to create a restore point.

    Only Tenant administrator and DevOps roles can access and create restore points for Production or Staging environments. See Reference - Xperience Portal user roles.

  4. Select Create and wait for the restore point to be created.

    SaaS processes (e.g., restore points, deployments) are queued, and you can have only one process running at a time.

Your restore point is now available in the Restore points application under Data Management. To access the files or download the data, you need to create an export from this restore point.

Create a manual export

The export process creates physical copies of the data, which can then be downloaded. Exports are limited to 30 exports per environment per project per month (may be adjusted with custom plans).

To create a manual export:

  1. Navigate to Data Management -> Restore points.

  2. Select Create restore point in the upper-right corner.

  3. Select the environment for which you want to create an export.

    Only Tenant administrator and DevOps roles can access and create restore points for Production or Staging environments. See Reference - Xperience Portal user roles.

  4. Select Export in the Restore point type selector.

  5. Select what services should be included in the export. Note that only a full export (with all services included) can be used to restore a project to a previous state.

  6. Select Create and wait for the export to be created.

    SaaS processes (e.g., restore points, deployments) are queued, and you can have only one process running at a time.

Downloading exports allows you to inspect the state of the application, debug the database or check the integrity, versions, and number of files in the deployment environment.

Contained users authentication

Enable contained users authentication on your local SQL Server to be able to use the exported database backups.

Export and download from restore points

You can also download data from restore points. Application service and storage files can be downloaded directly, while the database needs to be exported to access the files. Exports are limited to 30 exports per environment per project per month (may be adjusted with custom plans).

  1. Navigate to Data Management -> Restore points.
  2. Select an environment and select Apply. A list of restore points for the environment is displayed.
  3. Select Create export next to the database of a restore point you want to download.
  4. Once the export is ready, download it by selecting Download ( ) under Actions.

Contained users authentication

Enable contained users authentication on your local SQL Server to be able to use the exported database backups.

Restore from a restore point

You can restore your application to a previous state using restore points. This is useful if you need to revert changes or recover from an issue.

  1. Navigate to Data Management -> Restore points.
  2. Select an environment and select Apply. A list of restore points for the environment is displayed.
  3. Restore from a restore point by selecting Restore () next to a restore point.
  4. On the Restore a restore point or an export page:
    • Select the exact restore point you wish to restore from.
    • Select whether to restore immediately or schedule the restore for a later date.
  5. Select Restore and wait for the restore process to complete.

Custom restore

Custom restore allows you to upload a large amount of data to the selected environment without being restricted by the 2 GB deployment package limit. This process is primarily intended for initial deployments (e.g., when upgrading to Xperience by Kentico).

Custom restore bypasses the regular deployment process and enables you to transfer the database and storage files to the selected environment. It does not provide a way to deploy application libraries and therefore is not a full replacement for deployments.

During the process, you first upload the data to automatically created containers in Azure Storage that are separate from your SaaS environments. When you apply the custom restore, all existing data in the target environment’s database and storage is overwritten with the uploaded data, and the target environment is unavailable while the restore itself runs.

The changes introduced by a custom restore are not propagated between environments with the deployment package. Transferring them to other environments requires a custom restore for each environment.

Perform a custom restore

Only Tenant administrator and DevOps roles can manage custom restore sessions (create and close sessions, revoke access) and restore to all environments. Developers can restore to non-production environments (QA, UAT) and access the restore containers.

To perform a custom restore:

  1. Back up your data.

    1. Create a restore point or an export for the target environment before starting.
  2. Create a restore session.

    1. Navigate to Data Management -> Custom restore.
    2. Select Create session.

    Create restore session

  3. Get access to restore containers.

    1. Select Get access.

    2. If you want to restrict access to the restore containers, specify an allowlist by entering an IP address or an IP address range and confirm with Get access. Otherwise, select Get access without entering any values.

    3. Copy both SAS URLs for the database and storage containers.

      SAS URLs

      You can’t retrieve the same SAS URLs again. However, you can get new SAS URLs with Get access. The previously existing SAS URLs are still valid. To revoke all current SAS URLs, select Revoke access under Current session.

      Within a session, the SAS URL pairs provide access to the same containers.
  4. Upload the database.

    • You can use Azure Storage Explorer to connect to the container:
      1. In Azure Storage Explorer, connect to the restore Azure Storage (select the type Blob container or directory).

      2. Select the connection through Shared access signature URL (SAS).

      3. Enter the SAS URL for the database container and connect to the resource. The display name does not matter.

      4. Upload the database exported as a bacpac file to the database container.

        The file must be named db.bacpac. The database to be restored must have the same version as the one currently in the environment. If these conditions are not met, the restore will not succeed.
  5. Upload storage files.

    1. Connect to the storage container using the second SAS URL (as in the previous step).
    2. Upload the files to be stored in Azure Blob Storage.
      • Organize the files according to the Azure Blob Storage configuration of your project. You can obtain this structure by downloading a Storage and files export once you have deployed with this Blob storage configuration.
      • For each container used in your Blob storage mapping, upload a folder with the same name. Within that folder, include the files arranged according to your project’s storage structure.
    The uploaded files count toward the file storage limit, which you can view on the Dashboard.
  6. Restore to an environment.

    1. Make sure you have a backup of the target environment. The custom restore process itself cannot be undone, but you can use restore points to revert the changes.
    2. Once you have uploaded both the database and the storage files to be restored, you can select Restore to environment under Current session.
    3. Select the target environment where the data should be restored. The environment will be unavailable during the restore process. The database in the target environment will be replaced with the uploaded one. All storage containers in the environment will be deleted and recreated based on the uploaded data.
    4. Select Create to start the custom restore process.
    Tenant administrator and DevOps roles can restore to any environment. Developers can restore only to non-production environments (QA, UAT).
  7. Close the session.

    1. You can see the restore in progress under Active restores. Once finished, it will appear under Last completed restores.
    2. When the restore process is complete and you no longer need to keep the data (for example, to restore it to another environment), Close the session.
    Each session expires after a week. Once a session has expired, you can no longer upload data to the containers, but you can still restore the data you uploaded previously (up to 180 days from the session creation). Only one restore session can be open at a time.

Application monitoring

The Monitoring set of applications in the Xperience Portal are designed to keep your application running smoothly and provide full visibility into your application’s performance, enabling you to quickly detect and resolve issues, optimize performance, and ensure the best possible user experience.

Uptime monitoring

Use the Outages application under Monitoring in Xperience Portal to see a list of outages for your Xperience Portal project and deployed applications. Records include the time when the outage occurred and the cause of the outage. You can filter the outages by the month when they occurred.

Go to status.xperience-portal.com to see the uptime statistics for Xperience Portal. See Xperience Portal uptime statistics.

Outages

Your Xperience Portal project occasionally undergoes scheduled maintenance, during which certain Xperience Portal features may become unavailable.

Xperience Portal uptime statistics

Go to status.xperience-portal.com to see the statistics about the availability of:

  • Xperience Portal
  • Deployment API
  • Production sites by region

You can also see the list of Past incidents below the statistics.

You can subscribe to the incident reporting to receive a message whenever Kentico creates, updates, or resolves an incident. Select Subscribe to updates at the top of the Xperience by Kentico status page.

Event log and exceptions

Xperience by Kentico integrates Application Insights for ASP.NET Core applications to enable monitoring and aggregation of metrics for your website. For detailed information about enabling the Application Insights integration for your projects, see Deploy to the SaaS environment.

To view the Application Insights logs for your deployments, use the following applications under Monitoring in Xperience Portal:

  • Event log – displays entries from the Xperience event log and any custom messages sent via the Application Insights SDK.
  • Exceptions – displays all .NET exceptions (errors) from Application Insights. Includes exceptions that can occur before the Xperience application is fully running, in addition to errors in the Xperience event log.

You can filter the logs for individual deployment environments, and based on the time when the event occurred.

Exception data from Application Insights

Log size limits

There is a daily limit on the size of the Application Insights logs. After the daily limit is reached, further logs are discarded.

The following table lists the daily limits for all deployment environment types and service plans.

Environment

Service plan

GB/Day

QA

All

1

UAT

Custom

2

PROD and STG

Level 1 & Level 2

3

PROD and STG

Custom

6

1 GB can store approximately 125 000 average-sized exceptions or event log records.

Performance metrics

Use the Project metrics application under Monitoring to see various performance metrics related to applications deployed to the SaaS environment. The available metrics include server errors, response time, CPU usage and memory usage. By tracking these metrics, potential issues can be detected and addressed before they impact users, bottlenecks and areas for optimization can be identified, resource utilization can be better understood, and insights can be gained to make data-driven decisions to improve and optimize the application.

To view performance metrics for various SaaS environments:

  1. In Xperience Portal, navigate to Monitoring → Project metrics.
  2. Select an Environment and a Time period, for which you want to display metrics.
  3. Apply the changes.

Metrics in Xperience Portal

Email metrics

Use the Email metrics application under Monitoring to see email sending statistics from the SendGrid platform. The available statistics include total numbers of delivered, bounced, and deferred emails. You can also track the number of unique clicks in emails. These metrics help identify deliverability issues, optimize campaigns, and improve user engagement to drive better marketing performance.

To view email metrics for various email channels and deployment environment:

  1. In Xperience Portal, navigate to Monitoring → Email metrics.
  2. Select a Channel, Environment and a Time period, for which you want to display metrics.
  3. Apply the changes.

Email metrics in Xperience Portal

Alerts

Alerts notify about potential problems with applications deployed to the SaaS environment. Most of the available alerts are based on performance metrics, such as application responses, server errors or CPU/memory/DTU utilization.

The system currently provides the following types of alerts:

Alert type

Severity

Alert conditions

Application response

Critical

The application was not responding to web requests for over 15 minutes.

“Not responding” means that the value of the Application response metric is 0%.

CPU utilization greater than 80%

Error

The application’s average CPU utilization over the past 30 minutes was above 80%.

Memory utilization greater than 90%

Error 

The application’s average memory utilization over the past 30 minutes was above 90%.

DTU utilization greater than 90%

Error

The application’s average Database Transaction Unit (DTU) utilization over the past 30 minutes was above 90%.

The DTU utilization metric is calculated as the ratio of used DTUs to the total DTUs available for your project’s plan.

DTU utilization greater than 70%

Warning

The application’s average memory utilization over the past 30 minutes was above 70%.

The DTU utilization metric is calculated as the ratio of used DTUs to the total DTUs available for your project’s plan.

Failed requests (Server errors)

Error

More than 5% of web requests sent to the application over a 30 minute interval resulted in a failed status, i.e. returned a 5xx HTTP status code.

Failed deployment

Error

Deployment of a package failed.

Service scaling

Warning

A production environment was scaled out to the maximum number of allowed instances over the past 360 minutes. Typically occurs due to autoscaling under heavy load.

Only applies to projects with a custom service plan, which can allow scaling to 3 or more service instances.

Cloudflare DDoS attack

Warning

An HTTP DDoS attack has been detected on one of your domains. These attacks are automatically detected and mitigated by the Cloudflare CDN.

To view alerts for your project’s deployments, navigate to Monitoring → Alerts in Xperience Portal. You can filter the alerts for individual deployment environments, based on the time when the alert was fired, and the alert severity.

Alerts are displayed with the Resolved flag if the conditions that caused the alert to fire no longer apply. For example, a CPU utilization alert will be resolved after the average utilization drops under the 80% threshold over 30 minutes. Select Show active alerts only in the filter if you wish to see only unresolved alerts.

Alerts in Xperience Portal

Alert email notifications

Whenever an alert is fired, the system sends a notification email to all Xperience Portal users assigned to the related project.

Individual users can adjust their preferences for receiving alert email notifications:

  1. In Xperience Portal, expand the top-right user menu.
  2. Select Notifications.
  3. Customize for which alert types and severities you want to receive email notifications from each deployment environment.
    • Note: The selected alert severity and alert type conditions are combined using an AND statement. If you select Critical alert severity and CPU alert type, you will not receive any alerts of alert types other than CPU. For Production and Staging environments, it is recommended to enable all alert types and at least Critical and Error alert severity.
  4. Select Save changes.

Alert notification settings in Xperience Portal