Following a series of recent articles I have posted about solutions, I wanted to share some information about how you can set up an efficient development environment for your CRM 2011 project. Managing the solution synchronization among multiple environments (dev, test, prod, et.) is not always straight forward and it depends on multiple factors such as the scope of your project and the size of your team. In general, I have found an environment topology that facilitates an efficient development team and applies to most CRM projects:
Note that in the table above, each of the “environments” are not necessarily separate servers. If you have a multi-tenant CRM server you could host one or more of these environments in the same box. the only caveat is that you need to make sure that an activity happening in one environment will not interfere with an activity in another environment. For example, all environments in which the developers need to debug on the server side should be separate box since you don’t want to block testers and Business Analysts due to the debugging session in one of the CRM organizations. Thus, as a minimum, the “Individual Development Boxes” should be separate CRM servers.
Remember this is not applicable 100% all of the time exactly as shown, but it is a good start to define your development environment strategy.
Hi - really useful post. Just wondering if you had an advice for how to go about organising the "temporary transport solutions" between the developer boxes and the configuration box ? Cheers, Chris.
ReplyDeleteHi Chris. For the temporary solutions it should not matter what solution name/version you use since you will delete them anyway. Not sure what you mean by "organising"
ReplyDeleteIs there a potential issue where two developers have been working on the same entities/forms, and one overwrites the other's changes when they import their personal transport solution into the configuration server ?
ReplyDeleteThis is always possible and there is no "magic" to prevent it, that's why I would suggest having all the schema/configuration changes done directly in the Master Configuration environment (not in the individual dev boxes). The transport solutions should only contain components such as plugins for which you can minimize the risk of multiple developers working on the same at the same time in different environments. Hope that helps!
ReplyDeleteThat Crm Is really cool and fantastic.I am impress in your article very good.
ReplyDeleteHi Gonzalo, I have the following question concerning your suggested environment topology: In which order would you install CRM Update Rollups on your different CRM Servers since you need to ensure on the one side that everything works fine after installing an UR and on the other side not to endanger an important environment by installing an UR for the first time. Or would you recommend another separate CRM Server just for UR testing and afterwards you install "from left to right"?
ReplyDeleteHi Andre, yes I would start installing URs from left to right (in diagram above). Certain URs cannot be uninstalled (e.g. UR5), so I would perhaps do a full regression testing in a separate environment before installing those special URs.
ReplyDeleteHi Gonzalo,
ReplyDeleteI have posted a question on the CRM forums regarding how our environment is set up. Could you please comment and provide some insights?
http://social.microsoft.com/Forums/uk/crmdevelopment/thread/4c6eba1c-4bd6-417e-a4d8-64c81d7dae1b
Hi Gonzalo,
ReplyDeleteI like your approach but I have a question concerning the licenses needed for this szenario. Do I need an own license for the production and the development server if they are separated? I could find conflicting information about this but no clear answer till now.
Thomas
Hi Thomas,
ReplyDeleteThe MS licensing world is a complex one, and I don't think you need any licenses for development environments, but I would still suggest you check with Microsoft directly to be sure.
Hey Gonzalo,
ReplyDeleteThanks for the straight forward explanation. How do you keep your data current on the non-Production boxes? We are a labor union with over 48,000 active members. Our xRM solution is highly customized with dues and billing entities, employment history, etc. Is it possible to use a one-way SQL replication solution to push data from Production downstream?
Doug, New York City
This comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by the author.
ReplyDelete