Cloud-Anwendung
Eine Cloud-Anwendung, auch Cloud-App genannt, ist ein Softwareprogramm, bei dem Komponenten On-Premises und in der Cloud miteinander arbeiten. Dieses Modell basiert auf der Verarbeitung der Logik auf ortsfernen Servern, auf die mit Hilfe einer kontinuierlichen Verbindung zum Internet über einen Webbrowser zugegriffen wird.
Server für Cloud-Anwendungen befinden sich normalerweise in einem externen Rechenzentrum, das von einem Provider von Cloud-Services-Infrastruktur betrieben wird. Zu den Aufgaben, die Cloud-basierende Anwendungen übernehmen können, gehören etwa E-Mail, Speichern und Teilen von Dateien, Bestelleingänge, Bestandsverwaltung, Textverarbeitung, Customer Relationship Management (CRM), Datensammlungen oder Finanzbuchhaltung.
Vorteile von Cloud-Anwendungen
Schnelle Reaktionen auf wechselnde unternehmerische Ansprüche. Cloud-Anwendungen können besonders schnell aktualisiert, getestet und bereitgestellt werden. Das verschafft Konzernen eine kürzere Produkteinführungszeiten und mehr Agilität. Diese zusätzliche Geschwindigkeit kann im Unternehmen zu kulturellen Veränderungen der Geschäftstätigkeit beitragen.
Vereinfachter Betrieb. Die Verwaltung der Infrastruktur kann an die Cloud-Provider ausgelagert werden.
Sofortige Skalierbarkeit. Steigt oder sinkt der Bedarf, so kann die verfügbare Kapazität entsprechend angepasst werden.
API-Nutzung. Datenquellen von Fremdfirmen und Speicherdienste können mit einer API angesprochen werden. Cloud-Anwendungen können durch die Nutzung von APIs schlanker gehalten werden, indem die Datenvermittlung an Anwendungen oder API-basierende Back-End-Dienste für Verarbeitung und analytische Berechnungen den APIs überlassen wird, die die Ergebnisse dann an die Cloud-Anwendung zurückgeben. Überprüfte APIs bringen passive Konsistenz mit sich. Das beschleunigt die Entwicklung und lässt die Ergebnisse vorhersehbarer werden.
Gradueller Übergang. Das Refactoring von Bestandsanwendungen vor Ort in eine Cloud-Architektur kann schrittweise erfolgen, so dass Komponenten Stück für Stück in die Cloud umgezogen werden können.
Reduzierte Kosten. Die Größe und Skalierbarkeit der Rechenzentren von großen Providern für Cloud-Infrastruktur und -Dienste hat zusammen mit der Konkurrenz unter den Providern zu niedrigen Preisen geführt. Cloud-basierte Anwendungen können günstiger betrieben und gewartet werden als ihre Äquivalente On-Premises.
Besseres Teilen und Absichern von Daten. Daten in der Cloud stehen berechtigten Benutzern ohne Verzögerung zur Verfügung. Aufgrund ihrer schieren Größe können die Cloud-Provider weltweit herausragende Sicherheitsexperten beschäftigen und Sicherheitsmaßnahmen umsetzen, die normalerweise Großkonzernen vorbehalten blieben. Zentralisierte Daten können leichter auf regelmäßiger Basis gesichert und für ein eventuelles Disaster Recovery wiederhergestellt werden.
Wie Cloud-Anwendungen funktionieren
Die Datenspeicherung und Prozessoraktionen finden in einem entfernten Rechenzentrum statt, das in der Regel von einer Drittanbieter betrieben wird. Das Back-End stellt nicht nur die Uptime sicher, sondern sorgt auch für Sicherheit, Integration und die Unterstützung mehrerer Zugriffsmöglichkeiten.
Cloud-Anwendungen bieten schnelle Reaktionszeiten und müssen nicht durchgängig auf dem lokalen Gerät gespeichert sein. Sie können auch offline arbeiten, und nur zur Aktualisierung online gehen.
Obwohl sie zu jeder Zeit zugriffsbereit sind, verbrauchen Cloud-Anwendungen nicht durchgängig Speicherplatz auf einem Computer oder Kommunikationsgerät. Unter der Voraussetzung einer hinreichend schnellen Verbindung zum Internet kann eine gut geschriebene Cloud-Anwendung ohne Probleme bei der Interaktivität einer Desktop-Anwendung mithalten, bietet darüber hinaus aber die Portabilität einer Webanwendung.
Cloud-Apps vs. Web-Apps
Mit dem Fortschreiten des Remote Computings verwischen die Trennlinien zwischen Cloud- und Webanwendungen zusehends. Der Ausdruck Cloud-Anwendung hat sich ein beträchtliches Prestige erarbeitet, das Anwendungsanbieter mitunter dazu verführt, Anwendungen mit auch nur der kleinsten Online-Fähigkeit als Cloud-Anwendungen zu verkaufen.
Cloud- und Webanwendungen greifen beide auf Daten in einer entfernten Datenquelle zu. Beide nutzen die Prozessorleistung eines Servers, der sowohl On-Premises, als auch in einem entfernten Rechenzentrum stehen kann.
Ein wichtiger Unterschied zwischen Cloud- und Webanwendungen ist die Architektur. Eine Webanwendung oder webbasierte Anwendung benötigt zu ihrer Funktion zwingend eine kontinuierliche Verbindung zum Internet. Eine Cloud-Anwendung oder Cloud-basierte Anwendung hingegen bearbeitet Prozessoraufgaben auf einem lokalen Computer oder einer lokalen Workstation. Eine Verbindung zum Internet wird hier vorrangig für das Herunterladen oder Hochladen von Daten benötigt.
Ist der entfernte Server nicht verfügbar, so ist es auch eine Webanwendung nicht. Wird der entfernte Web-Server bei einer Cloud-Anwendung unverfügbar, so kann die auf dem lokalen Gerät des Anwenders installierte Software noch immer arbeiten, bis zur erneuten Verfügbarkeit des Servers aber keine Daten hoch- oder herunterladen.
Der Unterschied zwischen Cloud- und Webanwendungen lässt sich sehr gut anhand von zwei gängigen Produktivitäts-Tools veranschaulichen: E-Mail und Textverarbeitung. Gmail zum Beispiel ist eine Webanwendung, für die ein Browser und eine Verbindung zum Internet benötigt werden. Über den Browser können Nachrichten geöffnet, geschrieben und verwaltet werden, einschließlich Such- und Sortierfunktionen. Die gesamte Logik wird mit den Internetprotokollen HTTP oder HTTPS auf den Servern des Service-Providers ausgeführt (in diesem Fall Google).
Eine CRM-Anwendung, die gegen eine Gebühr als Software as a Service (SaaS) im Browser genutzt werden kann, ist eine Webanwendung. Online-Banking und Online-Kreuzworträtsel werden ebenfalls als Webanwendungen betrachtet, die keiner lokalen Software-Installation bedürfen.
Ein Beispiel für eine Textverarbeitung in der Cloud, die auf der lokalen Workstation installiert wird, ist Word in Microsofts Office 365. Die Anwendung wird lokal auf einer Maschine ohne Internetverbindung ausgeführt. Der Aspekt der Cloud kommt erst zum Tragen, wenn Anwender ihre Arbeit auf dem Office 365 Cloud-Server abspeichern wollen.
Cloud-Apps vs. Desktop-Apps
Desktop-Anwendungen sind plattformabhängig und benötigen für jedes Betriebssystem eine gesonderte Version. Das treibt die Entwicklungszeit und -kosten in die Höhe und verkompliziert das Testen, die Versionskontrolle und den Support. Cloud-Anwendungen hingegen können von verschiedensten Plattformen und Geräten aus angesprochen werden, womit in aller Regel erhebliche Kosteneinsparungen verbunden sind.
Jede Anwendung auf einem Desktop benötigt eine eigene lokale Installation. Weil es nicht möglich ist, bei Vorliegen einer neuen Version ein Update zu erzwingen, ist es mitunter mühsam zu erreichen, dass alle Anwender mit derselben Version arbeiten. Damit entsteht der IT-Fachabteilung ein zusätzlicher und durchaus ernstzunehmender Bedarf für den Support mehrerer gleichzeitig im Einsatz befindlicher Versionen. Cloud-Anwendungen kennen keine Probleme mit Versionskontrollen, denn ihre Anwender können immer nur die jeweils aktuelle, in der Cloud befindliche Version ansteuern.
Testen von Cloud-Apps
Das Testen von Cloud-Apps vor ihrer Bereitstellung ist von zentraler Bedeutung für ihre Sicherheit und Leistungsfähigkeit.
Eine Cloud-Anwendung muss über das Internet mit unterschiedlichen Clouds kommunizieren und mit simultaner Kommunikation aus unterschiedlichen Datenquellen zurechtkommen. Mit Hilfe von API-Aufrufen kann eine Cloud-Anwendung auch andere Cloud-Anwendungen mit spezifischen Aufgaben beauftragen. Automatisiertes Testen kann in solchen Ökosystemen aus Multi-Clouds, Multi-Datenquellen und Multi-Providern sehr hilfreich sein.
Container und Microservices haben zusätzliche Ebenen für Tests und potenzielle Fehlerquellen hinzugefügt. Während Container die Anwendungsentwicklung vereinfachen und Portabilität anbieten können, bedeutet das zugleich eine größere Komplexität. Container müssen verwaltet, katalogisiert und abgesichert werden. Hinzu kommen Tests für jeden Container bezüglich Leistung, Sicherheit und Genauigkeit. Weil monolithische Bestandsanwendungen mit ihren vielfältigen Aufgaben zunehmend als Microservices in viele kleine Einzelaufgaben zerlegt werden, die nahtlos und effizient miteinander interagieren müssen, werden die Testskripte und -prozesse entsprechend komplexer und zeitaufwändiger.
Sicherheitstests für Cloud-Anwendungen umfassen auch Penetrations- und Datentests. Untersucht werden müssen hier auch potenzielle Angriffsvektoren einschließlich Advanced Persistent Threats (APTs), Distributed Denial of Services (DDoS), Phishing und Social Engineering.
Cloud-Anwendungen müssen auch darauf getestet werden, ob ihre Verarbeitungslogik fehlerfrei ist. Möglicherweise werden Testprozeduren erforderlich, um Vorschriften nachzukommen, die von einem Fremdprovider vorgegeben werden.