We have an application running as a Windows service on a production server. The application is partitioned into several assemblies mostly on deployment boundaries. I would like to streamline the deployment of hot-fixes to application assemblies. Currently I do the following steps to deploy a hot fix. (we have a duplicate of the production environment for staging, so everything has to be done twice)
- Login to server
- Stop the service
- Backup currently deployed dll
- Replace with hotfix (Copy hotfix over existing dll)
- Restart service
- Roll back in case of unexpected load errors (has not happened, yet)
I think that what I would like is to upload (SFTP) a dll to a preset folder and have the application pick up the new dll.
One solution I've considered is to have a separate service running on the server. Let's call it a hotfix deployment service. It would watch the file system for new files and do steps 2-6 from the list above.
Any insight is appreciated. I'm open to other alternatives as well as long as they reduce the deployment friction.