Quantcast
Channel: Alan Ashton's Blog » Microsoft CRM
Viewing all articles
Browse latest Browse all 5

Dynamics CRM Custom Upgrade Path

0
0

Introduction

So your customer wants to upgrade Microsoft Dynamics CRM. I guess that’s how you got here. More interestingly that customers CRM system does not fit into one of the standard upgrade paths. This is a scenario that I often find and guess what, the world is a little more complex than Microsoft may have us believe.

Upgrade Path

In Place Upgrade

Used For: Simple one hop, CRM 4 – CRM 2011, CRM 2011 – CRM 2013 Here you will run the upgrade on the Production CRM server. The upgrade will do its thing and once complete, the system will hopefully be available again to users.

 

Pros

The easiest to achieve and will cause the least amount of work. You will not have to migrate any data. Also the users will be using the same URL after the event so really you would only be worrying about any pesky Outlook Clients and not worrying if the URL is available as it’s the same URL.

  • Easy
  • Little Administration (if any)

Cons

This is not really a great solution in any scenario in my experience. This means that the whole system gets upgraded in place, which leaves you no room for error and if the application has issues post upgrade then you will have to deal with them whilst the users are using the system.

  • Recommended only for systems with a small number of users.
  • High Risk (Can you afford that)
  • Many unsupported customizations will need to be re-developed, in the meantime those users cannot use that functionality.

Upgrade Database

Used For: Simple one hop, CRM 4 – CRM 2011, CRM 2011 – CRM 2013. Quite often this is linked to a CRM 4.0 to CRM 2011 upgrade where the SQL Server environment will stay the same. You will be installing CRM 2011,Crm 2013 onto a new 64 bit server and so there is less risk as if all goes wrong then you can restore your original Database and the previous version CRM server will still be available to switch back in.

Pros

  • Easy
  • Less Risk than an In Place Upgrade
  • Little Administration (if any)

Cons

Whilst some of the risk of things going wrong during the upgrade is removed, we are still going to have potential issues with the functionality. You will especially have issues with the functionality for CRM 2013 as all of the main entity forms get replaced and many of your original customized forms will not work.

  • Functionality Risk
  • Many unsupported customizations will need to be re-developed, in the meantime those users cannot use that functionality.

New Environment Build – Upgrade via Import

Used for: Simple one hop, CRM 4 – CRM 2011, CRM 2011 – CRM 2013 .

This is similar to the Upgrade Database option except now you will replace all the servers. You will create a brand new SQL Environment and brand new CRM 2011, CRM 2013 server/s. This does take much of the risk away

Pros

  • Not extremely difficult
  • Less Risk than both In Place Upgrade and Upgrade Database options
  • Little Administration

Cons

Whilst much of the risk of things going wrong during the upgrade is removed, we are still going to have potential issues with the functionality. You will especially have issues with the functionality for CRM 2013 as all of the main entity forms get replaced and many of your original customized forms will not work.

  • More Infrastructure setup
  • Functionality Risk
  • Many unsupported customizations will need to be re-developed, in the meantime those users cannot use that functionality.
  • You can try out this approach prior to go live in the new Environment and therefore know and prepare for any issues. This helps to eliminate any unknowns and will also give you rough timings for all the tasks involved.

Is That It?

Well those are all of the Microsoft Upgrade paths. So what do you do when your upgrade will not fit into any of those boxes These may be one or more of the following; Complex Upgrades

  • Complete Risk Elimination
  • Two hop upgrade, CRM 3.0 to CRM 2011, CRM 4 to CRM 2013 etc.
  • Restructuring
  • CRM Online to CRM On-Premise

Methodology

All of the above are more complex than the previous examples. However I have been using a similar methodology for all of these for some time now and I have not had any issues as of yet so I though I would share. This is not rocket science though and so many out there will already be using this type of approach. The approach is simple really. I have an environment where I can build a complete Production system that structurally is an exact copy of the real Production System. This is gained by backing up the database in Production and importing this into the new environment and then that is the start point for future work. The new environment is  built for house the Upgraded system. The database from the original Production system is imported and upgraded. You now have time to resolve the issues. When complete you will chose to either Upgrade In Place on Production or build a new Production Environment and upgrade via Import.

So what’s the difference?

The difference here is that now in the newly upgraded Production system I can import my solution created from the Production Candidate and resolve all those issues that would otherwise really annoy your users. I have used this same approach now for all of those Complex type Upgrades listed above and it works and works well in each scenario. Lets then have a look at each of the scenarios and see how this approach would work for each. It is slightly different for each but then in my experience there are no two upgrades ever the same.

Scenario 1: Complete Risk Elimination

This is basically as described above.

  1. New Development Environment build in the version of CRM that you are upgrading to.
  2. New CRM organization in this environment (Production Candidate for the purposes of this article)
  3. Freeze Production Development (Important this one)
  4. Backup Production CRM and import into your new environment*
  5. Test and check for unsupported code and layouts (especially CRM 2013). You have as long as you need for this or even better give yourself a couple of weeks prior to go-live.
  6. On Go-Live either upgrade in place or have the new Production environment available. My choice is to always build a new environment. This is complete risk elimination.
  7. Import Production Candidate Solution including your fixes to the new Production system.
  8. Communicate Urls, Update Outlook Clients etc., etc.
  9. Go-Live

Have run this scenario recently. There really is no risk associated to this. I like my world calm and ordered and this is the way to get there. * If you are upgrading two hops then you can insert the intermediary environment here that will allow you to jump two versions.

Scenario 2: Two hop upgrade CRM 3 – CRM 2011, CRM 4 to CRM 2013

See Scenario 1, however you will need an intermediary environment to do the double hop. The process is the same though and you would not work (resolve any issues) in the intermediary environment. You will only use this environment as a vehicle to get where you want to go. The key thing to remember here is that you will also need this intermediary environment in Production and you have now ruled out an in-place upgrade so you are going to a brand new Production Environment by default.

Scenario 3: CRM Online to CRM On-Premise

So last time I did this you can only request the database from Microsoft twice. After that you may be hooped. However its the same scenario as Scenario 1.

  1. New Development Environment build in the version of CRM that you are upgrading to.
  2. New CRM organization in this environment (Production Candidate for the purposes of this article)
  3. Freeze Production Development (Important this one)
  4. Request Backup of CRM Online from your friendly local Microsoft guys
  5. Import Into your Production Candidate
  6. Test and check for unsupported code and layouts (especially CRM 2013). You have as long as you need for this or even better give yourself a couple of weeks prior to go-live.
  7. On Go-Live T -1 request the Production Database for CRM Online
  8. On Go-Live have the pre built Production environment available.
  9. Import Production database copy from Microsoft
  10. Import Production Candidate Solution including your fixes to the new Production system.
  11. Communicate Urls, Update Outlook Clients etc., etc.
  12. Go-Live

Scenario 4: Restructuring or Building a new System with Data

I will have a go at this one here but its complex in that this is any upgrade that is essentially not an upgrade but a rebuild. Used in the following circumstances;

  • You are restructuring large parts of the original system and so need to rebuild from the ground up and Migrate the existing data.
  • You decided that the upgrade was an opportunity to Archive off some data
  • You are building a new system with a complex Migration

The steps here are not vastly different but it will depend on your scenario.

  1. New Development Environment build in the version of CRM that you are upgrading/Building to.
  2. New CRM organizations in this environment (Development and Production Candidate for the purposes of this article).
  3. Prepare a Production Environment in the version of CRM that you are upgrading to.
  4. Freeze Production Development (Important this one)
  5. Import Into your Production Candidate from your current Production System or start a new Organization if you are rebuilding.
  6. Rebuild the new  application in the version of CRM that you are moving to.
  7. Migrate data to the Production candidate and treat this as Production. Any configuration data should be correct and perfect in this environment. Data should be run into this environment with plenty of time prior to go-live for the complete migration.
  8. Prior to Go-Live update the data with data deltas. i.e. ensure that all records are now in the Production Candidate that are in the existing Production System. This would essentially be any records where modifiedon >= the last time the data was pulled.
  9. On Go-Live have the pre built Production environment available.
  10. Import Production database copy from the Production Candidate into the new Production Environment
  11. Communicate Urls, Update Outlook Clients etc., etc.
  12. Go-Live

Of course some of these steps require more information and for the last scenario at least then that if for certain. This kind of rebuild will require a lot of background information that is not covered here. This article is essentially here to point out the options.

Reducing Risk

One of the primary aims of any Upgrade strategy must be to reduce or eliminate risk as much as possible and that is what I have been trying to do with the various solutions outlined above. I hope that you guys out there find this information useful and I would like to think that there will be some for whom this article may prove to be the start of a very successful upgrade strategy.

 



Viewing all articles
Browse latest Browse all 5

Latest Images

Trending Articles





Latest Images