This article describes the process for enabling Azure App Service Deployment Slots in your Sitecore Managed Cloud – PaaS 2.0 Environment.
When deploying a web app to an Azure App Service, you can use a separate deployment slot instead of the default production slot when running in the Standard, Premium, or Isolated App Service plan tier.
Deployment slots are live apps with their host names. App content and configuration elements can be swapped between two deployment slots, including the production slot.
Review the following KB article for further details on the Azure Services included within your Managed Cloud Environment. Specific emphasis is placed on the CM and CD Servers deployed with Premium App Services Plans.
Sitecore Managed Cloud Standard - PaaS 2.0. Topologies and tiers for Sitecore XP 10.3.1 and higher
The charts on the following pages use the coding system outlined below:
- R = Responsible: Those who do the work to achieve the task.
- A = Accountable: The one ultimately answerable for the correct and thorough completion of the deliverable or task and the one who delegates the work to those responsible.
- C = Consulted: Those whose opinions are sought (i.e. subject matter experts) and with whom there is two-way communication.
- I = Informed: Those kept up-to-date on progress, often only on completing the task or deliverable.
The steps below serve as a guideline for enabling App Deployments slots within your Sitecore Managed Cloud PaaS 2.0 environment.
RACI Description |
Customer/Partner |
Sitecore |
Request Azure App Service Deployment Slot |
R, A |
C, I |
Enable Azure App Service Deployment Slot |
C, I |
R, A |
Restrict Deployment Slot Network Security Access * |
C, I |
R, A |
Deploy Custom Code/application ** |
R, A |
C, I |
Deploy Additional Databases (as needed) *** |
R, A |
C, I |
Swapping App Deployment Slots |
R, A |
C, I |
Troubleshooting App Deployment Slot Deployments |
R, A |
C, I |
* Once the deployment slot has been established, we must create a "Private endpoint" to conform with our network security policies, which exclusively permits traffic via the private network and blocks access from the public internet. Once the private endpoint has been activated, our web app activates "Access restriction." It acquires a private IP address from the "pe" subnet, allowing access solely through the private network and one of the Hub's entry point solutions.
** Be aware that the newly created deployment slot is initially empty, and you will need to deploy your application once the slot has been enabled.
*** Depending on your requirement, you may choose to deploy additional databases.
- Monitoring:
- Sitecore monitors the Production URL for the CM and CD App Service Plans only.
- App Service Backups:
- The Sitecore Managed Cloud Custom backup schedule includes backups of the "Production" slot only.
- When the second deployment slot is promoted/swapped, the default backup process will apply, and the slot will be backed up.
- When the new deployment slot is created, there is an automated process to take an initial backup of the newly created slot.
- Database Backups:
- The newly created databases are automatically backed up. However, it is important to remember to select GRS as the backup type.
- Disaster Recovery:
- If a new database is created before DR is enabled, it will be included during DR protection.
- If a new database is created after DR has been enabled, it will be included in the next 6 hours by the automated mechanism.
Note that replication will be executed in the next 6 hours by the automated DR mechanism.
- App Service Plan:
- Resource Allocation: Deployment slots share resources with the main App Service, so enabling a slot can slightly increase the resource usage, potentially leading to decreased performance if the main App Service is already resource-constrained.
- Cold Start: Each deployment slot has its own isolated environment, and when swapping slots or initially deploying code to a slot, there can be a brief cold start delay as the environment warms up. This may result in a temporary performance dip during slot swaps or deployments.
- Scaling Considerations: When scaling the main App Service, all deployment slots also inherit the same scale settings. If not managed properly, this can lead to suboptimal resource allocation and potential performance bottlenecks.
- Configuration Complexity: Managing multiple deployment slots can increase complexity in terms of configuration and maintenance, potentially leading to performance issues due to misconfigurations or improper slot management.
To mitigate these performance impacts, it is essential to monitor resource usage, properly configure slot settings carefully, and plan slot deployments and swaps during periods of low traffic or acceptable downtime to minimize user impact.
- SQL vCore Elastic Pool:
- Resource Sharing: As more databases are added to the pool, the available CPU, memory, and I/O resources are shared among a larger number of databases. This can reduce performance for individual databases during peak usage times if the pool's resources are not scaled appropriately.
- Contention for Resources: Increased contention for resources within the pool can occur when multiple databases require significant CPU or I/O resources concurrently. This contention can lead to performance bottlenecks and slower query execution.
- Resource Limits: The elastic pool has certain resource limits, and adding databases can lead to reaching these limits faster. If the pool reaches its resource limits, new database requests may be rejected, affecting the availability of database resources.
- Query Performance: The performance of database queries can be affected by the additional workload generated by new databases. As the pool's resource limits are approached, queries may experience increased latency and slower response times.
To mitigate these performance implications, it's essential to regularly monitor the resource utilization within the elastic pool and adjust resource allocations as needed. Scaling the pool up (providing more resources) can help ensure that databases within the pool continue to perform well, even as more databases are added.
- App Deployment Slots: No additional cost for enabling the deployment slots.
- Private Endpoints: Additional costs apply per Private Endpoints. Work with your aligned Sitecore Account team should you require further consideration.