At Dell, we have worked with hundreds of SharePoint migration projects of various size and scale where customers used our migration tools to migrate sites and content either to a new version of SharePoint hosted in an internal datacenter or Office 365. The recommendations you'll find in this post reflect this experience we gained helping Dell (and Quest) customers over time. Feel free to suggest your best practices in the comments.
Set realistic expectations
SharePoint is a massively complex enterprise-grade application. If you are currently using it as an Out-of-the-Box system with no custom configuration your migration should be straight-forward; but if you took advantage of the many extended capabilities and added significant customizations, you may encounter problems when these capabilities and customizations are no longer supported on your target system.
Dell Migration Suite for SharePoint is a fully compliant SharePoint migration tool that leverages native SharePoint remote APIs (Web Services, Client Site Object Model) to perform migrations. This protects customers from making inadvertent modifications to their SharePoint installation that void Microsoft warranty (e.g. when using tools that write to the SharePoint content database). It also eliminates the risk of deploying server-side agents on production servers that can compromise security and stability.
However there are certain limitation when using remote APIs. For example, if you have significantly customized the look and feel of your source environment, you may need to repeat the effort in your target environment. If you have developed and deployed customized or 3rd party features, you may find that these are no longer compatible in the new environment. Some other notable limitaions that include Workflow Status and History and Check-Out Status.
A later serction discusses the benefits of performing adequeate testing prior to embarking on your migration project . This will go a long way to identify any limitations and establish an acceptance criteria. You can then communicatie these to your stakeholders and set reasonable expectations.
Understand existing SharePoint data and configuration
You need to have a complete understanding of what kind of content you have in your source SharePoint farm, how it is used and what you will be bringing over to the new SharePoint installation. No matter if the destination is an on-premises deployment or Office 365, you need to know:
- Overall size of the existing data, broken down by content types
- Number of site collections and sites
- Sites being used heavily
- Sites with infrequent access (consider archiving)
- Site collections that are too large, etc.
There are native assessment tools, but third-party reporting tools such as Dell Site Administrator for SharePoint give you significantly more information in aggregated and easily consumable way on your current environment.
Another key piece of information you need to collect is the configuration of your current SharePoint farm in terms of services and features. You need to understand which ones are deployed and, more importantly, used by SharePoint site collections and sites.
Customizations typically present the biggest migration problem especially if you are moving to the cloud. You need to understand all of the custom site definitions (like Fab 40), solutions, web parts and other custom SharePoint extensions that your existing sites rely on. Native assessment tools (e.g. pre-upgrade checker) exist, but may not be available for your specific SharePoint version/patch level. Dell Migration Suite for SharePoint includes a pre-migration analysis report that can be used to compare any source site(s) against the intended target to see discrepancies in:
- Site and list templates
- Site features
- Web parts
Incompatible templates can be re-mapped to out-of-the-box templates in the migration tool. List/library level migration to a pre-created standard site is another option.
Fully deploy target SharePoint environment
Migration of the farm-level configuration, services and customizations identified in the assessment phase is beyond the scope of content migration tools, so these will need to be deployed prior to commencing content migration. Making configuration changes when content migration is in progress can lead to failed migration and rework. What needs to be deployed depends on whether the destination is a hosted SharePoint service or on-premises installation, but the following list includes the most typical items:
- SharePoint CUs/updates
- Language packs
- Users (e.g. sync/federation)
- Custom solutions, templates, web parts, etc.
- Term store - Migration Suite supports migration of managed metadata columns, but you need to make sure the term groups and terms are migrated to the target term store using the application or by importing managed terms using a .CSV file.
- BLOB offloading – consider externalizing binary data using Dell Storage Maximizer for SharePoint to save expensive SQL storage. This also offers performance benefits for the content migration.
- Product specific (web app policy, extension web service)
Break down large migrations
Migration Suite supports migration of entire site collections, but in some situations it will be advisable to use a more gradual approach to increase the success rate (longer migration jobs can be susceptible to environmental effects) and simplify troubleshooting and validation. E.g. you may choose to copy the root site first and then perform gradual migration of sub-sites either sequentially or in parallel.
Deliberately choose migration options
Migration Suite provides a lot of migration options to control what and how is migrated for SharePoint sites, lists and libraries. Migration options differ significantly in terms of impact on the success rates and migration throughput. Use caution when enabling the following options:
- Defer required (impact on performance)
- Copy SharePoint Designer Objects
- Copy Master Page Settings
It is recommended to use the default options whenever possible and only enable those that are mandatory to meet the requirements. Once you determine the most appropriate sets of options for your migration, create option presets (profiles) in Migration Suite to simplify migration job configuration and avoid errors.
Perform adequate testing
The importance of adequate testing grows with the size of the project. Dell Migration Suite for SharePoint Make allows for non-destructive data migrations and you should use subsets of the live data for dry-run testing. Use test migrations to:
- Identify missing configuration and data issues
- Establish performance baseline
- Validate migration settings and mappings
- User acceptance
Optimize & automate
- Use optimal hardware to run Migration Suite (64-bit, plenty of RAM)
- Scale your migration using multiple instances of the application and multiple parallel migration jobs for higher throughput.
- 5 concurrent migration jobs can be a good starting point
- Care must be taken not to overload the target SharePoint with too much migration traffic
- Deploy Migration Suite on a front-end server in the target SharePoint farm to exclude an extra network hop
- Use PowerShell scripts to run repetitive migration jobs. Migration Suite generates command line scripts that can be either used as is or modified for more automation.