Perhaps there are several different ways of naming this, I am referring to the process you have for deploying your upgrades/updates to your clients’ Sitecore Production environments.
For the different projects I have worked on so far:
- we create very detailed instructions for a technical person (the client) to deploy this to their environment
- we create detailed instructions for a Sitecore developer to deploy this to the clients environment
There may several ways people do this, I am interested to know what could be best practices in doing so.
I have worked on a project where we have written the instructions (release notes) and have deployed this to our clients environment ourselves. This allows us to know exactly what is going on during the deployment.
I am also interested in the particular time of day a deployment is to be carried out. Is it best to perform this during or after business hours? Is there a difference? If a Sitecore upgrade or update were to be performed outside of business hours, the effects will not be apparent until the next day and users begin working with Sitecore.
On the other hand, if this were to be carried out during business hours, potential problems can result in an outage immediately after the upgrade is deployed resulting to a un-usable Sitecore client. A roll-back or disaster recovery plan may be performed however this may result in developers trying to resolve the problem right throughout the day and even stretch out to after business hours - this is an exact experience I have gone through.
The above may be the case for major Sitecore upgrades, what about small fixes and changes? From my experience we have managed to deploy fixes and changes during the day with no major problems.
If there are any experiences you may have or ideas that may reduce the risk of major outages or recommendations to mitigate risks for deploying fixes to Production environments I am interested to hear them :)