Successful Dynamics 365 CE (CRM) Upgrade: Key Steps and Considerations

Learn the essential steps for a seamless Dynamics 365 CE upgrade. Optimize POA tables, improve performance, and ensure scalability with this expert guide

I’ve always found upgrade projects exciting, especially when I think back to my first big upgrade from CRM 2011 to CRM 2013 in year 2014. I’ll share that story here, but if you’d rather skip it, feel free to jump straight to the “Key Considerations” section of this blog.

The story delves into the challenges we encountered and the innovative approach we adopted to ensure a successful upgrade, taking into account the key stakeholders’ concerns.

The Tricky Situation: Upgrading from CRM 2011 to CRM 2013 was considered a major version upgrade, although it might not hold the same weight in today’s rapidly evolving landscape.

The key stakeholders were reluctant to remove their existing infrastructure and cautious about investing more in new servers. Microsoft discouraged an in-place upgrade (upgrading on the existing instance) due to potential risks and the lack of rollback options in case of issues.

The Innovative Approach: As the Tech-Lead armed with infrastructure knowledge, our team devised a creative solution to tackle this dilemma and implement the upgrade while accommodating all stakeholder viewpoints. Instead of opting for an in-place upgrade or costly new infrastructure, we decided to perform a side-by-side upgrade on existing servers. The crux of this approach is outlined below..

The Implementation: The crucial aspect of our approach was the step-by-step withdrawal of Network Load Balancer (NLB) servers, of which there were multiple. We began by pulling out one NLB server, cleaning it thoroughly, and conducting the fresh installation of Dynamics CRM 2013 and then we did import Org. This approach allowed us to minimize risks and maintain a fallback option if required.

The Success: The side-by-side upgrade on the isolated server proved successful. We repeated the process, pulling out each NLB server one by one, and executing the upgrade on each server individually. This method ensured a gradual, controlled transition without disrupting the overall system and optimizing the infrastructure cost.

Key Considerations –

This section delves into the intricacies of transitioning from an on-premise instance to an online environment through a meticulously outlined 15-step process.

1. Upgrade vs Rebuild? Determining whether to upgrade or rebuild involves recognizing both the source and destination versions. Additionally, assessing factors below helps arrive at a conclusion:

  • Conduct a comprehensive analysis of the current implementation, focusing on the following areas:
    • Level of Customizations
    • Number of custom components like (Plugins, Workflows , JavaScript’s, etc.)
    • Identified un-supported code (both server side code and client side code), there are tools available to point out un-supported code.
    • Integrations points need to be re-pointed to the new Instance.
  • Functional upgrade: Refers to leveraging the latest version’s new features by incorporating new out-of-the-box functionalities, thus reducing the reliance on custom code. However, it’s essential to note that a functional upgrade may require additional time and effort to implement effectively. Few examples to called out are like Implement Business Rules in place of JavaScript’s, covert Workflows in Power Automate, use Business Process Flow.
  • Technical Upgrade: No functional enhancements, you need to make sure that entire code base is working in the new version along with the solution and data. If you have time constraint you can choose for Technical Upgrade.
  • Complexity of the existing Implementation: Complexity of existing CRM implementation will give you clues for upgrade plan. You can prepare Inventory of existing instance to track number of components for the traceability matrix.

Conclusion: If you find that your existing Dynamics CRM version has extensive customizations and lacks precise design, considering a re-build might be more efficient in terms of time and effort compared to upgrading. At the same time, if your current version lags three versions or more behind, a recommended approach would be a re-build, with careful consideration of functional upgrades.

Once you’ve decided on the preferred approach, you can then explore a set of supplementary questions provided below.

2. Environments : The number of environments required depends on your transition path. If not following the Microsoft Fast Track Upgrade, plan for a gradual upgrade across higher versions. Establish multiple environments according to your upgrade sequence.

For instance, if your current version is CRM 2011, your upgrade path might resemble the sequence below: CRM 2011 –> 2013 –> 2015 –> 2016 –> 365 CE online. Consequently, you’ll need to establish these multiple environments. You can read on-premise Infra set up guidelines here

If you need to know more about Fast Track Upgrade you can refer Dynamics 365 Fast Track.

3. SQL Server & Reporting Server Upgrade: Synchronize SQL Server & reporting server and Dynamics versions for a smooth transition. Consult Microsoft’s Recommended System Requirements

A key point to keep in mind is that if your end goal is transitioning to the Online version of Dynamics 365, you can set up your environment within the minimum recommendations.

4. Migrate the Existing Data: Do I need to data migration on new Instance? If you opt out of the Microsoft Fast Track Upgrade and intend to transition to an online platform, it is essential to develop a strategy for transferring your data from the current environment to the new online environment. This process will require a significant amount of time, so careful planning is advised. Additionally, as part of the upgrade, it is crucial to include a cleanup phase in your plan. For further insights on this topic, you can refer to my blog post available here data-cleanup. You can also check for Data Migration design & planning on my blog here in details.

Trick: When transitioning versions, you have the option to sidestep immediate data migration by utilizing the “Import Organization” feature within the Deployment Manager. This streamlined process seamlessly transfers both data and customizations to the new environment. Rather than an upfront data migration, this approach allows you to defer data migration until you’ve reached the desired destination version.

5. How to upgrade Existing Customizations: You need to construct the subsequent version, import the solution into the new environment, and iterate through this procedure until you attain a version that is compatible for online migration. It is advisable that you perform a good amount of testing on each of the version.

6. Existing Code: What will happen with my existing code, below are the common components and consideration for each of them.

Plugins and Custom workflowsWill my existing Plugin and Custom work will work after upgrade? You just to update the Plugin code with the latest DLLs and remove any un-supported code. Build the DLLs and test the key functionality of the code
JavaScript’s If your existing instance does not have un-supported code, the Java-script should work as it it, you just need to make sure that document.getElementById() code is not there and use Form Context in the code as per Microsoft guidelines.
Out of the box workflows Out of the box workflows should work as it is, fix the missing lookup/GUID references if there are on the new environment.
Workflows and Power AutomateDo I need to covert: If you don’t have time and budget constraints it can be considered as “nice to have” feature.
Custom code like Console UtilityYou must fix the connection code for CRM online instance, supported code should work fine without any issues. Also see any reference to the older service reference.

Explore coding best practices here to ensure that your code is not only up-to-date for the upgrade but also adheres to industry standards.

7. User Migration : You need plan for your user migration to Azure Active directory for on-premise to online Upgrade. Microsoft offers support if you are in Fast-Track plan to move user to Azure AD. Set up Azure AD Connect , Install and configure Azure AD Connect to establish synchronization between your on-premises AD and Azure AD and plan for User Synchronization and Password Synchronization. Read out Microsoft documentation around this for detail.

8. Reports Migration: You must covert the SQL based reports into fetch XML reports as SQL based reports are not supported for on-line CRM. If some of the reports are not feasible to covert into fetch based, highlight this to stakeholders in the the beginning and plan accordingly, you can think of de-scoping such reports as those were un-supported reports.

9. Document Migration: You must plan for document migration during upgrade as this wont be automatically migrated to the new environment, you can engage Document Management SME or Data Migration SME to plan for migration. Be cautious around the document movement to cloud as it comes up with the cost, so determine, which documents are really required for cloud movements.

10. Audit Data: When upgrading Dynamics 365 CE without Fast-Track support, be aware that migrating Audit data has size and nature limitations. Plan thoughtfully and consult stakeholders if they wish to move Audit data. If it’s essential, engage with Microsoft, they offer supported migration paths and tools, like data migration wizards, to move Audit data and other information from the old to the new environment.

11. Change Management: Integrate your end users into the upgrade process of the new application, recognizing them as the ultimate beneficiaries of the transition. Provide them with insights into the noteworthy features of the new application and elucidate how their work will be optimized through its utilization. Initiate the process by distributing a survey during the initial stages to garner their input, suggestions, and concerns.

12. Down-Time: Evaluate potential downtime in the production environment and ensure transparent communication of this downtime to stakeholders. This will enable system users to be well-informed about the anticipated interruption. Additionally, strategize to mitigate any potential impact on integrations during this production downtime.

13. Back-out Strategy: When embarking on the upgrade journey, it’s essential to incorporate a robust backup and restore strategy. This strategy serves as a contingency plan, ensuring that you have a way to revert to a known and stable state if any unexpected hiccups occur during the upgrade process. Below points are essential for the backup and restore

  • Database Backups
  • Server Image Backups
  • Solution Backups
  • Rollback Plan for Each Step
  • Testing Rollback Scenarios

14. Parallel Instances & Hot Fixes: During the implementation phase of the upgrade, it is imperative to ensure the application of any pertinent hot-fixes to the most recent versions, mitigating the potential for inconsistencies within the environments.

15. The Process: Okay!! So what will be my first implementation action if I decided to upgrade with Non Fast-Track support, I would suggest to follow below steps for Technical Upgrade (“Lift & Shift”) approach

  • Begin by creating a comprehensive server image of the development instance, encompassing all servers involved. Ensure that existing environments remain untouched at this stage, maintaining a parallel side-by-side upgrade approach.
  • Safeguard both managed and unmanaged solutions, and create database backups to ensure a fallback plan here.
  • Install the necessary updates required to facilitate a smooth transition to the next version of Dynamics CRM. Please note we are not upgrading the Dev environment here; we are preparing the existing dev with the latest server updates.
  • Test your existing Dev Instance thoroughly. If something goes wrong here, you have all the backups available for re-store.
  • Create a new environment and install the next applicable version.
  • Maintain a backup of this server image to preserve the initial state.
  • Execute the “Import Organization” process on the new version. This procedure upgrades both solutions and migrates data to the new environment. This will be your first upgraded version (side-by-side approach).
  • Thoroughly test the upgraded environment, meticulously addressing and rectifying any issues or unsupported code that may arise.
  • Iterate through this process iteratively until the targeted version for online migration is achieved. Regular testing and validation are essential at each iteration to ensure a smooth transition.
  • The “Import Org” feature is exclusive to on-premise environments. When aiming for an online migration, as detailed in point #4 of the aforementioned blog, data migration becomes necessary upon reaching the desired version for online.

To execute the aforementioned steps, I suggest involving Infrastructure Stakeholders in the planning process. Consult with them to explore strategies for minimizing the time required for the setup of new servers/VMs.

The achievement of a successful upgrade hinges upon the collaborative efforts of all essential stakeholders. Hence, it is imperative to involve key stakeholders throughout the entire process. Active engagement from these stakeholders serves as a pivotal pathway to accomplishing seamless upgrades.

Thank you for taking the time to peruse this blog. Your insights and feedback based on your experiences are most welcome.

4 responses to “Successful Dynamics 365 CE (CRM) Upgrade: Key Steps and Considerations”

  1. Apoorv Srivastava Avatar
    Apoorv Srivastava

    This article deep dives into the migration strategy, thanks Rishi.

  2. Rishi Avatar

    thanks Apoorv!!

  3. Rajesh Kumar Avatar

    Excellent Explanantion.

  4. […] can also look Upgrade guide for exploring end to end upgrade process, and […]

Leave a reply to Apoorv Srivastava Cancel reply

I’m Rishi Jha

Welcome to DecodeDynamics.in!
Dive into technical insights on Dynamics 365 CE upgrade, data migration, performance optimization, data clean-up, and more. Explore newer topics like Microsoft Copilot, Nuance Mix and beyond..

Let’s connect