The landscape of system upgrades has changed a lot for Dynamics products over time. Previously most of the Dynamics ERP & CRM systems were only on-premises and followed a certain upgrade cycle. As a Microsoft partner we went through the usual upgrade planning.
Now with the cloud in the mix, the upgrade process for any ERP or CRM system has changed quite a bit. In some cases, where all your system is provided as SaaS, then the upgrade is simple enough as you don’t have to worry about the underlying hardware and network considerations. In some cases, if it’s a hybrid setup, then you must plan for the compatibility of the on-prem and cloud services.
As a Microsoft partner, KTL Solutions has experienced a lot of different upgrades for Dynamics CRM, whether it be a simple upgrade for Dynamics 365 CE online and complex upgrades for on-premises systems where we are moving from CRM 4 to CRM 2015. In some cases, we are not performing all the upgrade cycle and just migrating data from the older version of CRM to the most recent one.
Upgrading from v8.1 to v9.0
A Dynamics 365 online upgrade from v8.1 to v9.0 was simple enough. We were able to schedule the upgrade using the online scheduler provided by Microsoft and just wait for that to complete.
We would follow the following steps for the upgrade:
- Copy production instance to sandbox
- Schedule upgrade of sandbox instance
- Upon upgrade completion, schedule the testing in the sandbox
- Test the forms, business processes and automations (workflows, javascripts, business rules)
- Test specific changes as introduced with v9, like the mobile app, outlook app and the sales, customer service apps introduced by MS
- If any integrations exist plan to test any ETL tools used
- Upon User testing finalization, we can then schedule for the production instance upgrade
- Schedule training for users for the changes affecting their business process
A lot of other considerations also needed to be taken depending on other systems like email. If its an Exchange online, then that set up and testing can be managed easily with testing for certain mailboxes. Otherwise, the integration to other systems can be challenging in that it would require a similar sandbox for those systems and separate integration testing based on the ETL tool used. But overall the upgrade planning and the actual upgrade are manageable in a scheduled timeline with less surprises.
Performing an On-Premises Upgrade
An on-premises upgrade usually has various options for the upgrade procedure. For example, we were performing a simple upgrade from CRM 2015 to CRM 2016 (D365 v8.2). But we didn’t have all new servers and were only getting a new CRM web server and ADFS server. We had to spin up a temporary SQL server which was decommissioned upon user testing. The actual upgrade was performed using the existing SQL server. This infrastructure presents a challenge.
On top of that, we had to set up new configurations and utilize server-side sync using Exchange Online and CRM on-prem. The approach we took here was that we would perform the test upgrade using 3 new servers (SQL server, web servers, ADFS server) and during production upgrade the 2 test servers and then perform an in-place upgrade using the existing SQL server.
In brief, we followed the following steps for the upgrade:
- Create test environment using 3 servers (CRM web servers, ADFS servers, SQL server (temporary)
- Copy the databases over to the test environment, perform the upgrade (since this is just a one version jump then there are less complications with code)
- Set up SSL, ADFS and integrations, Server-side sync
- User Acceptance Testing
- Production upgrade: back up the CRM Db & MSCRM_CONFIG Db, restore the MSCRM_CONFIG Db from test to production SQL and repoint test CRM web server to production SQL
- Perform in-place upgrade
The above process also had its challenges with the re-pointing of the test CRM web server to the existing production SQL server. In case of any failures, the rollback of the upgrade also becomes challenging and time consuming. Nonetheless with the planning and testing in place, the upgrade went smoothly.
Upgrading from CRM 2011 to CRM 2016
The last scenario is simple enough for the upgrade process but brings its own challenges with data migration. The client wanted to upgrade from CRM 2011 to CRM 2016 but without going through the normal upgrade path of CRM 2011-> CRM 2013-> CRM 2015 -> CRM 2016.
So, we have separate environments for CRM 2011 and CRM 2016 and the task is mostly all about data migration and porting over the customizations. The service module in CRM is the primary use case for this customer so other considerations like email/queue sync for production upgrade was also important. The steps followed for this upgrade were as follows:
- Set up new CRM 2016 environment
- Use ETL tool like Scribe to perform data migration, important to migrate the GUID Ids for most entities as those will be used to maintain the relationship data
- System user Ids change in the new environment
- Use ETL tool and multiple passes of integration to address activity migration
- Perform data migration for all closed records to CRM 2016 environment so that during production upgrade the data to be migrated is more manageable
- Set up the new code/plugins, workflows, forms and service management features in the new environment
- Training & production upgrade
In this case the focus was more on data migration and user training with the new features/UI from CRM 2011 to CRM 2016.
Each of the above cases present its own challenges but with the right partner those challenges can be mitigated and successful upgrade can be performed. As a Microsoft Certified Partner, KTL Solutions is here to guide you through any challenging upgrades processes. If you need help with your upgrades, contact us today.