I did this last year. Just figure out how much it will cost you to package things up, write out explicitly what will be your responsibility (maybe bugfixes, updates, whatever) and what will be theirs (keeping the server running, backups, etc).
Expect to spend three or four times longer than you think you should dealing with their IT department.
Make sure you charge a healthy amount for all this because it will take more resources than you think on your side.
This is solid advice. I can't emphasize how important it will be to clearly define ownership.
One of the main initiatives of my current role is to carve out responsibilities between a company and its infrastructure support partner, it tends to not be a pretty process. I recommend you land grab whats required to properly maintain the app otherwise you'll be reactively accountable for adapting to a changing environment as they update OS, antivirus, etc. The more you can black box a particular VM from the rest of their IT organization, the less headache you'll encounter.
I'd argue though that the best option is to offer them a dedicated instance of your app and secure access via VPN (as someone else already suggested). Having the app installed within their datacenter will likely require you to have two different deployment models, one for your standard usage and one for their datacenter. It may even require you to make custom code modifications to work around limitations or security settings that do on their "standard" OS images. So once you go into their datacenter, you need to provide prepackaged deployments that have a configuration tool etc. Not saying any of this is insurmountable but you have to make sure you properly charge and expect it to take far longer than you anticipate as has been said.
Comments
I did this last year. Just figure out how much it will cost you to package things up, write out explicitly what will be your responsibility (maybe bugfixes, updates, whatever) and what will be theirs (keeping the server running, backups, etc).
Expect to spend three or four times longer than you think you should dealing with their IT department.
Make sure you charge a healthy amount for all this because it will take more resources than you think on your side.
This is solid advice. I can't emphasize how important it will be to clearly define ownership.
One of the main initiatives of my current role is to carve out responsibilities between a company and its infrastructure support partner, it tends to not be a pretty process. I recommend you land grab whats required to properly maintain the app otherwise you'll be reactively accountable for adapting to a changing environment as they update OS, antivirus, etc. The more you can black box a particular VM from the rest of their IT organization, the less headache you'll encounter.
This is good advice if you are going to do it.
I'd argue though that the best option is to offer them a dedicated instance of your app and secure access via VPN (as someone else already suggested). Having the app installed within their datacenter will likely require you to have two different deployment models, one for your standard usage and one for their datacenter. It may even require you to make custom code modifications to work around limitations or security settings that do on their "standard" OS images. So once you go into their datacenter, you need to provide prepackaged deployments that have a configuration tool etc. Not saying any of this is insurmountable but you have to make sure you properly charge and expect it to take far longer than you anticipate as has been said.