Estoy pensando en ofrecer mi producto como un servicio entregado en línea. Actualmente se trata de un software empaquetado que los usuarios descargan en sus servidores y ejecutan en sus servidores, como fogbugz.Varias instancias para aplicaciones-- ¿Una para cada cliente?
En mi nuevo modelo de negocio, ofreceré dos modos de negocios, uno es el tradicional software empaquetado que los usuarios instalan en sus servidores, y todo el mantenimiento y actualización. Otro es el tipo de software como servicio (SaaS), donde el alojamiento se realiza en mis servidores, y los usuarios reciben una sola URL para iniciar sesión. Por supuesto, cada cuenta de cliente tendrá una URL única, como companya.mysoft.com, companyb.mysoft.com.
La pregunta ahora es porque ya tengo una base de código existente, quiero hacer una modificación mínima de mi código para que admita dos modos de negocio. Para el modo SaaS, quiero crear varias instancias para la aplicación, una para cada cliente. Entonces, cada cliente tendrá sus propias bases de datos, sus propias aplicaciones. Todas las bases de datos y aplicaciones de los clientes se encuentran en mi servidor. Lo bueno es que no tengo que cambiar mi código en absoluto. Lo malo es que hay mucha redundancia y puede no ser escalable.
¿Qué opina de este cliente de varias instancias por cliente? ¿O debo modificar mi código para que ambos modos sean compatibles (fáciles de mantener y para actualizaciones)?
Editar: La versión de descarga es necesaria, no hay forma de evitar esto.
Editar 2: Mi aplicación es una aplicación de PHP.