Change datacenter for DXP
Did you know it is actually possible to switch DXP datacenter to a new one? I didn't. But a customer of mine really needed to switch to a data center in Sweden from a North Europe one to avoid some geofencing issues as well as speed up response times for end customer and this is actually possible using the migration tool from Optimizely. If you didn't know already, using an Azure data center in Sweden has been possible only for a year or two so older customers in Sweden has been forced to use the North Europe one instead.
The main intent of the migration tool is to be able to migrate a site from CMS 11 => 12 but it can also be used to only switch data centers if you really need to.
As a tech lead for this project I had a few concerns about this.
- How long downtime would it be?
- How well can content be synched and tested? Can it be done multiple times?
- How are certificates and custom domain handled? Do we have to redo those for new environments from scratch?
- Is it as easy as it seems with the migration tool or does it have a million hidden bugs that I will step on when actually doing it?
- What about build pipelines? Will they need to be redone?
The short answer, it worked great!
The process on a high level is:
- Let Optimizely set up a new DXP instance and prepare the migration tool.
- Click the start button on migration tool
- Rebuild deploy pipeline and deploy code to new site environments (integration, preprod, production) using new access tokens
- Sync content and files to new site. Integration => new integration. Preproduction => new preproduction and finally for production.
- Test. At this time you still have temporary hostnames on new site.
- Go live! Move hostnames for integration => new integration, continue with the other environments. Sync content again if needed.
- Be happy!
You can read more in detail about each single step in the link above about the migration tool.
The old environments will still be there if you need to rollback for any reasons. We didn't so I haven't tried that part of the process.
Downtime was short. A handful of minutes for production environment in total. It will need to be in maintainance mode for last step when moving hostnames.
During the testing phase it was easy to move content and files multiple times between the old DXP to the new DXP instance. It took approximately 20 minutes for a large site to synch both db and blobs. Certificates and custom hostnames were moved by the tool and I didn't have to do any actions for that. Custom X509 client certificates used to identify the servers need to be reinstalled in new environment. We had one of those which support helped us to move. Make sure to get a pfx file that includes private key in that case. A cer file won't cut it.
The tool to migrate between new and old solution worked flawlessly in our case. I was definitely impressed.
Build pipeline from Azure devops => integration had to be redone. You need to generate some new access token for the new DXP instance and use those to deploy instead. This was done before lunch one day and no major hazzle. You can clone the existing pipeline and do a few variable changes and that is it.
So there you have it! If you need to switch datacenter to get close to your end users when Microsoft decides to open a new one closer to your location; Do it! Overall it was actually a surprisingly smooth experience.
Optimizely has you covered for this scenario.