Ich denke darüber nach, mein Produkt als Service anzubieten - online zugestellt. Derzeit ist es eine in sich geschlossene Software, die Benutzer auf ihre Server herunterladen und auf ihren Servern laufen lassen - wie fogbugz.Mehrere Instanzen für Anwendungen - Eine für jeden Kunden?
In meinem neuen Geschäftsmodell werde ich zwei Business-Modus anbieten, einer ist die traditionelle eingeschweißte Software, die Benutzer auf ihren Servern installieren - und alle Wartung, Upgrade-Sachen. Ein anderer ist der SaaS-Typ (Software as a Service), bei dem das Hosting auf meinen Servern erfolgt und Benutzern eine einzige URL zur Anmeldung zugewiesen wird. Natürlich hat jedes Kundenkonto eine eindeutige URL, beispielsweise companya.mysoft.com, companyb.mysoft.com.
Die Frage ist jetzt, da ich bereits eine vorhandene Codebasis habe, möchte ich minimale Änderung an meinem Code, so dass es zwei Geschäftsmodi unterstützt. Für den SaaS-Modus möchte ich mehrere Instanzen für die Anwendung erstellen - eine für jeden Kunden. Jeder Kunde hat also eigene Datenbanken, eigene Anwendungen. Alle Kundendatenbanken und Apps befinden sich auf meinem Server. Das Gute ist, dass ich meinen Code überhaupt nicht ändern muss. Das Schlimme ist, dass es eine Menge Redundanz gibt und möglicherweise nicht skalierbar ist.
Was denken Sie über diesen Multiple-Instance-One-for-Every-Customer? Oder muss ich meinen Code ändern, damit beide Modi unterstützt werden (einfach zu warten und für Upgrades)?
Edit: Die Download-Version ist benötigt, es gibt keine Möglichkeit, dies zu vermeiden.
Edit 2: Meine App ist eine PHP-App.