Hi, I would like to get some advice around deployment strategy in situation when a solution gets very large and takes long time to deploy.
We have an ALM process where many developers send their customizations to a "build" environment. We gather all the customizations in one "main" solution, export it as managed and import to staging and production at the end of the sprint. Some of the problems:
- Solution takes a long time to deploy (we use Upgrade method)
- We have some out of the box entities there which we don't customize often. Multiple times we experienced issues when Microsoft installs an update in our dev or build environment BEFORE they do it in staging and production (we have asked multiple times if it is possible to control which environments get updates first, but we get response that it is totally random).
We are considering the following:
- Use "Update" instead of "Upgrade" method when importing. This way we should be able to always send "minimalistic" solution from our "Build" environment. I am not sure how easy it would be to handle deletion of components in this way. Some other disadvantages?
- Begin with a new solution and continue using "Upgrade" method. In this way our new solution would work as it works today, we would only have an extra layer on top of the solution we have now. It would also be tricky to delete stuff that is referenced in both layers, but I am not sure if we would have that need so often.
Thanks in advance