Sitecore - On-Premises to Azure PaaS (ASE) Cloud Migration - Part 1
Sitecore - On-Premises to Azure PaaS(ASE) Cloud Migration - Part 1
Introduction
In this blog series, I’ll attempt to explain in the detail the
architecture, design and approach for migrating (or should I say Re-hosting) a
Sitecore website from an on-premises environment to Azure PaaS ASE environment.
Background
The current Sitecore website hosted on on-premises had scalability
issues. The website performance was impacted during the spikes in demand.
The Traffic volumes coming into the website was expected the
double due to a merger.
The desired objective was to scale website to enough level
to cater for increased volumes and Improve the existing resilience levels of
the website.
On-premises Architecture
Highlights of the current on premises architecture
- Sitecore version 8.2, Mongo DB for Analytics and Backend systems were Oracle and .NET based
- There were 6 Sitecore Content Delivery servers split across 2 Data centers
- Three in each of Data Center (Windows 2012 Standard R2)
- There was only one Sitecore content authoring server, xdb processing and reporting nodes were all part of this server itself.
- MSSQL 2012 Enterprise was used for Sitecore database
New Azure PaaS Architecture
Highlights of the new Azure PaaS architecture
- The new architecture follows hub (central hub subscription) and spoke model (subscription 1).
- The applications were designed to be hosted inside an App service environment (ASE) to provide a fully isolated, dedicated and a secure environment. If security is not a primary concern the hosting on just App Service plan without the ASE should also suffice.
- No need to separate CM and CD into Separate App service environment
- From a uniformity standpoint and to avoid the maintenance overhead, Mongo Atlas (PaaS option) was opted for Mongo DB.
- We decided to design the new Azure PaaS environment with Zone redundancy and Geo Replication hence there No design for a separate DR environment.
- Single instance for Web database and elastic pool for all other Sitecore databases. As per best practice of Sitecore
- Change to Azure Redis for session management is desirable however since this was a time-consuming activity it was not included in the scope.
- The Backend / API internal systems could not be moved to cloud, so they were connected to Azure PaaS through Express Route.
- Azure private DNS zone can be created and can be made accessible only within the VNET
Components of the New Azure PaaS Architecture
# |
Resource |
Description |
1 |
App service environment |
Provides a fully isolated and dedicated
environment for securely running App Service apps at high scale. Content Authoring, Delivery Apps container |
2 |
App Service plan |
Defines a set of compute resources for a web
app to run Isolated Service Plan. Separate App service
plan one each for Content Authoring and Content Delivery Apps |
3 |
Azure SQL Databases |
Scalable, cloud database service – single
instance – Web database |
4 |
Azure SQL Databases |
Elastic database – all other Sitecore
databases |
5 |
Azure Storage Account |
Storage location for importing bacpac from on-premises
to Azure SQL and for storing logs |
6 |
Application Gateway |
Content authoring and content delivery app
would be exposed as public endpoint through this gateway |
7 |
Azure Key vault |
Enables Azure subscribers to safeguard and
control cryptographic keys and other secrets used by cloud
apps and services |
8 |
Mongo Atlas DB |
For xDB |
9 |
Azure Monitor |
This will have App Insights, Log Analytics,
Metrics, Dashboards & Alerts |
Thank you Alfie Solomons.
ReplyDelete