Inhaltsverzeichnis:
- Was ist SaaS?
- Virtualisierung und Softwarebereitstellung
- Virtualisierung und SaaS
- Zunehmende Komplexität
Die Virtualisierung umfasst verschiedene Computertechnologien und kann sowohl auf Hardware- als auch auf Softwareebene erfolgen. In einem Unternehmen kann die Virtualisierung die Funktionalität von Softwarediensten verbessern, insbesondere von SaaS-Anwendungen. Dies ist auch die effektivste Möglichkeit für Unternehmen, ihre IT-Kosten zu senken. Wenn Sie jedoch Virtualisierung und SaaS zusammenfassen, haben Sie möglicherweise eine Gewinnkombination.
Was ist SaaS?
Software as a Service (SaaS) ist ein Softwarelizenzierungsmodell, bei dem die Software auf Abonnementbasis lizenziert und zentral von einem Anbieter oder Dienstanbieter gehostet wird. Diese verteilten Softwareanwendungen werden Kunden über das Internet zur Verfügung gestellt.
SaaS wird immer beliebter bei Technologien, die serviceorientierte Architekturen (SOA) oder Webdienste unterstützen. SaaS bietet eine Reihe von Vorteilen. Die häufigsten sind:
- Einfache Administration
- Einfache Updates und Patch-Verwaltung
- Kompatibilität (alle Benutzer haben die gleiche Version der Software)
- Globale Erreichbarkeit
- IT-Management als Dienstleistung (ITMaaS)
Virtualisierung und Softwarebereitstellung
Das Konzept der Virtualisierung wurde zu Recht von der Softwareentwickler-Community übernommen und akzeptiert. Es ist in der Lage, schnellere Entwicklungs- und Testmechanismen bereitzustellen, indem schnell Entwicklungs- und Testumgebungen erstellt werden.
VMware und VBox sind die am häufigsten verwendete Technologie und ermöglichen es mehreren Benutzern, auf verschiedenen Betriebssystemen, Versionen und Instanzen zu arbeiten. Die meisten Softwareentwicklungsunternehmen wenden die Virtualisierungstechnik an, indem sie zuerst den Softwarevirtualisierungsmechanismus anwenden und sich dann schrittweise der Hardwarevirtualisierung zuwenden.
Virtualisierung und SaaS
Trotz der vielen Vorteile hat SaaS noch nicht die gebührende Anerkennung erhalten. Dafür sind viele Faktoren verantwortlich. Diese beinhalten:- Riesige Startkosten: Die Einnahmen, die in die Einrichtung investiert wurden, werden über einen Zeitraum von Jahren wieder eingenommen.
- Es könnte gegen die Prinzipien freier Software verstoßen: Der Aktivist für Softwarefreiheit Richard Stallman bezeichnet SaaS als "Service als Softwareersatz (SaaSS)" und betrachtet es als Verstoß gegen die Prinzipien freier Software.
"Mit SaaS haben die Benutzer keine Kopie der ausführbaren Datei: Sie befindet sich auf dem Server, auf dem die Benutzer sie nicht sehen oder berühren können. Sie können daher nicht feststellen, was sie wirklich tun, und sie können keine Änderungen vornehmen SaaS gibt dem Server-Betreiber von Natur aus die Möglichkeit, die verwendete Software oder die Daten der Benutzer, mit denen gearbeitet wird, zu ändern ", schrieb Stallman auf der GNU-Website.
Wenn wir uns nach der Bereitstellung auf die Infrastruktur und die Startkosten konzentrieren, sollte sich eine SaaS-Anwendungsplattform nur mit der Reproduzierbarkeit befassen. Jede Instanz der SaaS-basierten Anwendung sollte identisch sein. Es sollten minimale Unterschiede bestehen, um das konsistente Verhalten jeder Anwendungsinstanz für jeden Kunden und für das Support-Team aufrechtzuerhalten. Dies geschieht so, dass sie eine einheitliche Basis haben, um bei Bedarf Probleme zu beheben. Der Support-Techniker möchte kein Problem feststellen, das durch ein fehlendes Bibliotheksmodul für eine einzelne Kundeninstanz verursacht wird. Ebenso möchte ein Kunde auch nicht wissen, dass bei jeder bestellten Anwendung ein Problem vorliegen könnte, da das SaaS-Unternehmen das Problem nicht mit denselben Schritten für jede Bestellung reproduzieren kann. Der gesamte Prozess sollte aus Gründen der Konsistenz und der Kostenvorteile automatisiert werden.
Zunehmende Komplexität
Es wird wichtig, die Komplexität der Bereitstellung für heutige Anwendungen zu verstehen - sei es das SaaS-Modell oder das traditionelle Modell. Selbst die einfachste Webanwendung ist nicht mehr für die Verwaltung der zugrunde liegenden Datenspeicherschicht verantwortlich. Standardmäßig wird eine Datenbank verwendet, z. B. MySQL, Oracle, DB2 oder SQL Server. Die Kombination mit typischen Web-Stacks wie Java, Ninja, Grails, Rails usw. führt zu einer mehrschichtigen Architektur, die eine skalierbare Bereitstellung erfordert. Beispielsweise haben wir beim Einrichten einer Rails-Umgebung MySQL verwendet.
Die Agilität der Anwendungen, die ein einfaches Upgrade der Software über Plugins, Patches, Makros und Mashups ermöglicht, kann problemlos in das SaaS-Modell integriert werden. Eine Erweiterung oder ein Patch wurde für ein kleineres Problem entwickelt, meistens eine Fehlerbehebung, die als Patch für die vorhandene Software bereitgestellt werden muss. Normalerweise möchte ein Kunde nicht hören, dass ein Problem aufgrund einer Ressourcenbeschränkung oder anderer Umstände aufgetreten ist oder von einem anderen Kunden verursacht wurde.
Laut Wikipedia ist die Trennung von Bedenken die Voraussetzung, um eine Anwendung in verschiedene Funktionen zu unterteilen, wodurch Überlappungen von Funktionen minimiert werden. Mit der vorhandenen Virtualisierung kann dieses Konzept auf die Infrastruktur angewendet werden. Die Trennung kann auf die Basis pro Anwendung, pro Kunde und / oder pro Cluster angewendet werden. Obwohl die Hardware immer noch maximal ausgelastet ist, können Sie horizontal und vertikal skalieren. Dies ist vorteilhaft für Einzelmandantenanwendungen, die in den SaaS-Markt eintreten möchten. Eine sofortige Mandantenfähigkeit auf der zugrunde liegenden Hardware mit einer Codeänderung nahe Null kann auf einfache Weise erreicht werden.
Es gibt zwei Bereitstellungsmodelle, die auf der SaaS-Plattform von Contegix bereitgestellt werden. Der Unterscheidungsfaktor hängt von der Entwicklung der Anwendung ab:
- Zur Unterstützung eines einzelnen Kunden pro Bereitstellung oder
- Unterstützung mehrerer Kunden bei einer einzelnen Bereitstellung
Unabhängig vom Bereitstellungsmodell ist es sehr wichtig, das Betriebssystem und die Anwendungsinstallation von den Anwendungsdaten zu trennen. Dies führt zu Diskussionen darüber, wie Upgrades verarbeitet und gehandhabt werden. Bei der Installation des Betriebssystems und der Anwendung sollte die Menge der flüchtigen Daten berücksichtigt werden, die jederzeit durch eine aktualisierte Kopie oder eine neue Version ersetzt werden können sollten.