Our company has developed a PHP(CakePHP) "Cloud" application that is running on our servers, now we have some customers that would like to use our service and make integrations to their local systems. The local systems are behind a firewall that won't be opened for us to access them from the "Cloud", therefore we need to deploy our system on their servers.
How to do this in a way that makes us able to:
- Make it independent of existing software versions on the server(might be an old PHP version installed or something similar that we are not allowed to upgrade).
- Update the system.
- Track usage of the system(we charge based on features that the user can activate, no problem on Cloud were we have access to the database)
I think that we can assume that the server will have internet access. The initial installation will be done by us via VPN or on site, alternatively we can let the customer install it if the procedur is easy enought.
We think that we can solve 2 and 3 by letting the system make requests to some kind of "licensing server" that we need to build. Is there a best practice here or maby some ready to use software?
The biggest issue for us is 1., we are looking at setting up a virtual machine(the clients will not have vmware so were talking about something like virtualbox that can be running on an exsisting OS) that the entire system with all of it dependencies will run on, here we are also looking for any best practice advice. Maby a virtual envirorment isn't a good way to go?
Any help or thoughts is appriciated!