Ich habe eine allgemeine Frage zur Softwarebereitstellung. Bei der Arbeit entwerfen wir ein CRM, das über Webbrowser verwendet wird. Mir wurde kürzlich mitgeteilt, dass jeder bestimmte Client einen eigenen Server hat (obwohl die Server meinem Unternehmen gehören, gehören sie weder ihnen noch befinden sie sich in ihren Büros).
Das stört mich ein wenig. Meiner Ansicht nach muss er beim Entwerfen einer Webanwendung berücksichtigen, dass er in der Lage sein wird, eine "weiche" Ausführung für alle seine Clients aufrechtzuerhalten (ohne über Replikation oder Lastausgleich zu sprechen), möglicherweise mit unterschiedlichen Datenbanken für jede, aber eine Anwendung ... Dies hilft insbesondere dabei, alle mit Patches und Upgrades auf dem Laufenden zu halten. Liege ich falsch ?? Mögen Sie mir helfen, diese Frage mit Ressourcen besser zu verstehen (mir müssen die richtigen Schlüsselwörter fehlen, um sie selbst zu finden). Ich verstehe eigentlich nicht, warum sie "den dritten Weg" zwischen "einer zentralen Webanwendung für alle" und "einer verteilten Desktopanwendung für jeden" gegangen sind.
Vielen Dank !
quelle
Wenn Sie für jeden Kunden getrennte Server haben, profitieren Sie von der Isolierung der Kundendaten und haben mehrere Anwendungsversionen. Es gibt jedoch einige Nachteile. Sie werden mehr Geld für Server ausgeben (da Sie Ressourcen nicht einfach zwischen Kunden teilen können) und die Bereitstellung ziemlich gut verwalten müssen. Wenn Sie nur eine Datenbank für alle Clients haben, müssen Sie sicherstellen, dass sich die Datenstruktur oder die Anforderungen der Bibliotheken nicht grundlegend ändern. Sie benötigen eine Map Client - App - Version, um sie auch verwalten zu können.
Ich habe für jeden Client in meiner Umgebung dieselbe Softwareversion, mit deren Hilfe wir Server warten und skalieren können (ich kann einfach einen neuen Server bereitstellen, der mit anderen identisch ist, und ihn einfach zum Loadbalancer hinzufügen). Außerdem muss ich nicht für jeden Kunden mit unterschiedlichen Endpunkten arbeiten.
quelle
Ich denke, dies ist eine recht frühe Einrichtung, und hier sind einige Gründe, warum ich es für eine schlechte Idee halte, separate Server über dem Ressourcen-Overhead zu halten:
Es besteht ein erhebliches Risiko, dass Erweiterungen für den einen oder anderen Kunden entwickelt werden, was später zu Konflikten führt. Aus kurzfristigen geschäftlichen Gründen kann dies zu technischen Schulden führen, die Sie niemals abschütteln können. Es kann in Zukunft einfach zu schwierig werden, diese widersprüchlichen Funktionen zusammenzuführen, und Sie haben möglicherweise die Wahl, diese Anpassungsclients auf einer alten Version aufzugeben oder bei ihnen zu bleiben, wenn Sie dies nicht möchten.
Ein multinationaler oder multistaatlicher Kunde oder sogar eine Reihe von Akquisitionen in einer Branche kann ein System erfordern, bei dem Daten getrennt sind, das jedoch gegenüber der Zentrale gemeldet werden kann. Dies würde Sie in jedem Fall zu einer Version mit mehreren Mandanten zwingen, was die Vorteile der Trennung von Datenbanken zunichte macht.
Alle erfolgreichen Saas-Unternehmen verwenden die aggregierten Daten letztendlich für kombinierte anonyme Funktionen wie Branchenstatistiken, Lernmöglichkeiten usw. Ich habe gesehen, dass diese von Xero und Mailchimp erfolgreich verwendet werden, und ich stelle mir vor, dass diese Daten sehr, sehr wertvoll sind.
quelle