• ADACOR
  • FILOO
Adacor - Cloud

5 Schritte zur cloudfähigen Anwendungsarchitektur

Vor der Entwicklung einer Anwendung steht für Unternehmen die Frage im Fokus, auf welchen Plattformen die Applikation laufen soll. Die Beantwortung dieser Frage ist wichtig, weil speziell auf die Leistungsmerkmale der jeweiligen Plattform abgestimmte Anwendungen leistungsstärker, widerstandsfähiger und einfacher zu administrieren sind als „Lösungen von der Stange“. Das gilt für die klassische Softwareentwicklung genauso wie für Public und Private Clouds. Wie aber gelingt es Unternehmen, eine zuverlässige und nutzerfreundliche Anwendungsarchitektur für die Public oder Private Cloud zu entwickeln und zu implementieren? Und wie müssen die technischen Konzepte gestaltet sein, damit die IT-Projekte anschließend erfolgreich laufen?

Die Anwendung als Konstrukt einzelner (Micro-)Services gestalten

Die beste Lösung für die Bereitstellung von Cloud-Anwendungen, ist sie als Architektur von einzelnen Cloud-Diensten, Microservices und APIs zu implementieren. Auf diese Weise entsteht eine servicebasierte und -orientierte Architektur. Ein solches Konzept entkoppelt unter anderem die Daten und Backend-Anwendungen von der Benutzeroberfläche. Der Fokus liegt dann auf den zugrunde liegenden Funktionen, die als Dienste bereitgestellt und somit unabhängig voneinander genutzt werden können.

Entwickler von Anwendungsarchitekturen für die Cloud müssen sich daher mit komplexen verteilten Systemen auseinandersetzen. Diese profitieren besonders von lose gekoppelten Anwendungen. Diese Anwendungen basieren auf Diensten, die zusätzlich von den Daten entkoppelt werden können. Die Dienste können physisch getrennt und auf den passenden Serverinstanzen ausgeführt werden. Mithilfe von Service- und API-Managern sowie Governance-Technologien, welche die Dienstverzeichnisse bereitstellen, lassen sich alle Services einer Anwendung verwalten und überwachen.

Ebenfalls sinnvoll sind die Wiederverwendung von Diensten aus anderen Applikationen sowie granulare Services. Dadurch lässt sich die Software in hunderte Microservices teilen, die anschließend für weitere Applikationen genutzt werden können. Bei der Entwicklung neuer Software kann man immer wieder auf diese Dienste zurückgreifen.

Daten entkoppeln

Die Datenspeicherung in einer Cloud eignet sich nicht, wenn Daten eng mit einer Anwendung gekoppelt werden sollen. Wie oben erläutert, sind sowohl die Private Cloud als auch die Public Cloud komplexe verteilte Systeme. Deshalb funktionieren sie am besten mit Anwendungsarchitekturen, bei denen Informationsverarbeitung und Datenspeicherung in separaten Komponenten stattfinden. Die Entkopplung der Daten bietet ähnliche Vorteile, wie das Design einer Anwendung in Form einer Kombination verschiedener Dienste. Nach dem Entkoppeln können Daten entweder in einer öffentlichen oder einer privaten Cloud-Instanz gespeichert und verarbeitet werden. So halten viele Unternehmen sensible Daten auf lokalen Servern (Private Cloud) vor. Die allgemeinen Instanzen der virtuellen Maschinen werden hingegen in die Public Cloud ausgelagert.

Die Performance ist ein weiteres wichtiges und nicht zu unterschätzendes Thema bei der Entwicklung von cloudbasierten Anwendungsarchitekturen. Zum Beispiel führen internetbasierte Lese- und Schreibvorgänge in Datenbanken zeitweilig zu Wartezeiten. Durch den Einsatz von Cache-Systemen kann die Performance gesteigert werden. Denn die Cache-Systeme erhöhen die Datenbankleistung durch die lokale Speicherung von Daten, auf die häufig zugegriffen wird.

Darüber hinaus muss dem Datenkonzept besonders beim Einsatz von Containern eine hohe Aufmerksamkeit gewidmet werden, da Container per Definition keine persistenten Daten vorhalten sollten.

Auf die Kommunikation zwischen den Anwendungskomponenten achten

Sind Daten und Dienste beziehungsweise Anwendungen entkoppelt, bedeutet dies noch nicht, dass eine Software speziell für eine Cloudplattform entwickelt wurde. Auch die Kommunikation zwischen den verschiedenen Services muss betrachtet werden. Komponenten von API-basierten Anwendungen, die permanent miteinander kommunizieren, reduzieren die Performance der Gesamtanwendung. Diese werden normalerweise über ein Netzwerk oder das Internet verteilt, wo die Toleranz für hohe Latenz gewünscht ist. Es lohnt sich deshalb, den Fokus auf die Entwicklung von Anwendungen zu legen, welche die Kommunikation zwischen den einzelnen Komponenten optimiert. Beispielsweise indem die Kommunikation in einem einzigen Datenstrom oder einer Message Queue kanalisiert wird.

Cloud optimal nutzen

Unsere verschiedenen Managed-Cloud-Produkte bieten Ihnen die passende Lösung für Ihr Hosting.

Erfahren Sie mehr bei einer individuellen Beratung per Chat, E-Mail oder Telefon.

Wir machen Managed Cloud Hosting

Erfolgreiche Konzeption für mehr Leistung und Skalierung

Die Betrachtung der Performance der Gesamtanwendung ist ein weiterer wichtiger Punkt bei der Applikationsentwicklung. Dazu gehört auch, ein Verständnis dafür zu entwickeln, wie sich eine Anwendung bei zunehmender Last skalieren lässt. Das Konzept für die Entwicklung einer Anwendung sollte das Verhalten der Anwendung bei steigender Last ebenfalls berücksichtigen.

Angenommen, es melden sich 1.000 oder mehr Nutzer gleichzeitig an. Wie reagiert dann die Anwendung auf den höheren Datenverkehr im Netzwerk, auf die stärkere Auslastung der Server und der Datenbanken? Diese Fragen gilt es zu beantworten, um ein aussagekräftiges Ergebnis im Hinblick auf die gewünschte Leistung zu erzielen.

In unserem Beispiel erhöht sich die Auslastung der Anwendungsserver möglicherweise um 80 Prozent, die des Netzwerks um zehn Prozent und die der Datenbank um 40 Prozent. Kommen 1.000 weitere Nutzer hinzu, werden die verfügbaren Anwendungsserver vermutlich ausgelastet sein. Die Folge: Weitere Serverinstanzen müssen hochgefahren werden. Vielleicht bleibt die Netzwerkkapazität gleich, aber die Anzahl der Datenbankinstanzen muss trotzdem erhöht werden, um die zusätzliche Belastung zu bewältigen.

Wie eine Anwendung skaliert werden muss, damit die benötigten Ressourcen automatisch hochgefahren werden können, beschreibt das technische Konzept. Cloud-Dienstleister wie AWS, Azure oder Google Platform bieten solche Funktionen zur automatischen Skalierung an. Der effizienteste Lösungsansatz besteht jedoch darin, ein Verständnis für das Workload-Profil der Anwendung zu entwickeln, den Skalierungspfad zu definieren sowie Mechanismen zu implementieren, die sicherstellen, dass die Software tatsächlich skaliert wird.

Die Sicherheit innerhalb der Anwendung systematisieren

Unabhängig von der Art der Applikation steht beim Hosting einer Anwendung in der Cloud das Thema Sicherheit an erster Stelle. Das bedeutet auch, die Sicherheits-Features für eine Anwendung werden in einer cloudbasierten Architektur systemisch direkt mit entwickelt und fest in die Architektur integriert.

Der für den jeweiligen Anwendungstyp geeigneten Sicherheitsansatz wird am besten schon vor dem Entwicklungsstart gewählt. In diesen Schritt fällt auch die Evaluation der passenden Technologie. Zusätzlich fließen die jeweiligen Compliance- sowie weitere Sicherheitsanforderungen in das Konzept ein. Unternehmen, die personenbezogene Daten erheben, verarbeiten und/oder speichern, müssen beispielsweise die EU-DSGVO beachten. Je nach Branche (Gesundheitswesen, Bank, Versicherung) schreiben weitere spezielle Richtlinien vor, wie und wo die Daten gelagert werden dürfen – und wo nicht. Außerdem muss die Anwendung vertrauliche Daten mit den erforderlichen Sicherheitsstufen (zum Beispiel Verschlüsselungsmechanismen) auf bestimmte Art und Weise verarbeiten.

Für cloudbasierte Anwendungen empfiehlt sich der Einsatz eines Identitäts- und Zugriffsmanagement (IAM = Identity and Access Management). Damit werden sicherheitsbezogene Konfigurationen von Anwendungen flexibel gestaltet. Die Anwendungen erreichen einen hohen Sicherheitsstandard, da die nativen Funktionen der Cloud und des eingesetzten IAM-Systems genutzt werden.

5 Schritte beim Aufbau einer cloud-fähigen Anwendungsarchitektur:

  1. Die Anwendung als Auswahl von Services gestalten
  2. Daten entkoppeln
  3. Auf die Kommunikation zwischen den Anwendungskomponenten achten
  4. Erfolgreiche Konzeption für mehr Leistung und Skalierung
  5. Die Sicherheit innerhalb der Anwendung systematisieren

Fazit: Geduld zahlt sich aus

Der Aufbau einer cloudfähigen Anwendungsarchitektur bedeutet für Unternehmen, sich auf neue Prozesse einzulassen, ohne traditionelle Verfahren komplett über Bord zu werfen. Testphasen und ein kontinuierliches Lernen aus Fehlern, die während des Entwicklungsprozesses gemacht werden, sind wichtige Bestandteile des Cloud-Anwendungsdesigns. Früh erkannt und rechtzeitig korrigiert, sind Entwicklungsfehler in der Regel nicht schädlich, sondern helfen vielmehr, Anwendungen für die Cloud erfolgreich zu realisieren und zu implementieren.

Die Orientierung am konkreten Bedarf eines Unternehmens hat bei der Anwendungsentwicklung Vorrang – selbst wenn dies anfänglich zu längeren Entwicklungszyklen und höheren Kosten führt. Auch wenn die Anwendungsentwicklung in der Cloud am Anfang höhere Kosten verursacht als ein herkömmliches Development, die Investition in eine moderne Anwendungsarchitektur zahlt sich später Jahr für Jahr in Form schneller Entwicklungszyklen und einer wartbaren modularen Architektur aus.

Schließen Sie sich über 1.300 IT-Experten an.
Alle 14 Tage Top-Infos zu Cloud, Hosting und Management erhalten.

Tags: , , , , , , ,

Verwandte Artikel