Manuel Reinfurt
Chief Technical Officer
Software-Anwendungen sind vielfältig – genauso die Cloud-Strukturen, die dafür sorgen, dass Ihre Anwendung überhaupt funktioniert. Mit unserem Architektur-Ratgeber finden Sie die passende Cloud-Architektur für Ihr Projekt und wissen, wo Sie am besten anfangen.
Es steht fest: Eine Cloud-Anwendung soll es werden. Doch bei welchem Hyperscaler? Welche Services werden genutzt und wie sieht die Cloud-Architektur aus? Kann ich meine bestehende Anwendung einfach in die Cloud packen? Es stellen sich viele Fragen, sobald Sie den Weg in die Cloud gehen möchten. Um die Vorteile einer Cloud wirklich auszuschöpfen, ist eine cloud-native Architektur gefragt – also eine Architektur, welche explizit für den Einsatz in der Cloud konzipiert ist.
Die Cloud bietet schier endlose Ressourcen auf unterschiedlichen Ebenen. Basierend auf der Auslastung Ihrer Anwendung und der Konfiguration entscheidet sie, wie und wann diese Ressourcen genutzt werden. Dabei ist wichtig, dass Ihre Anwendung so gestaltet wurde, dass sie die Ressourcen optimal nutzen kann. Stellen Sie sich ein Fabrik vor, in der Kugelschreiber produziert werden – diese durchlaufen mehrere Prozesse. In jedem Prozess sind bestimmte Komponenten gefragt, ohne die nicht weitergearbeitet werden kann. Für den ersten Prozess wird Eisen benötigt, welches aus einer Lagerhalle transportiert wird. Dazu fährt der:die Lieferant:in zwischen Lagerhalle und Produktion hin- und her und liefert 20 Tonnen Eisen alle 30 Minuten. Der erste Prozess verarbeitet eben so 20 Tonnen Eisen alle 30 Minuten und liefert damit 10.000 Kugelschreiber pro Minute – ein perfect Match. Der zweite Prozess verpackt die Kugelschreiber, ebenso 10.000 Kugelschreiber pro Minute, und präsentiert diese im Vorhaus der Fabrik. Kund:innen können vorbei schauen und sich einen Kugelschreiber schnappen. Das System ist vollständig ausgelastet und arbeitet hocheffizient.
Dies ist vergleichbar mit einer Anwendung, welche Informationen aus einer Datenbank liest (Lieferant:in), diese Informationen analysiert und in Reports umwandelt (die Kugelschreiber herstellt), einer mobilen App (Kugelschreiber verpacken und präsentieren) und den App-Nutzer:innen (Kund:innen).
Steigt nun das Kund:innenenaufkommen, so müssen die Reports schneller generiert werden. Das funktioniert natürlich nur, wenn die Informationen auch schneller aus der Datenbank gelesen werden. Hier können schnell die Probleme von klassischen Systemen auftreten. Sie müssen dann nämlich beauftragen, dass Ihre Kapazitäten erhöht werden und die Datenbank beispielsweise auf einen schnelleren Server migriert werden. Das dauert eine Weile. Danach können Sie auch mehr Kund:innen betreuen. Doch was, wenn das Kund:innenaufkommen danach wieder absinkt? Sie zahlen den schnelleren Server, ohne ihn wirklich zu nutzen. Ein Downgrade lohnt sich möglicherweise nicht, da hierdurch zunächst Kosten entstehen.
Mit einer cloud-native Architektur können alle Komponenten Ihrer Anwendung dynamisch skaliert und an Ihre Anforderungen angepasst werden. Ihre Anwendung hat täglich um 12:00 Uhr eine Lastspitze, weil es sich um eine Mensa-App handelt? Kein Problem: Zu diesem Zeitpunkt werden die genutzten Ressourcen automatisch hochskaliert. Im Anschluss – und gerade nachts – kommt Ihre Anwendung mit wenig Ressourcen zurecht und läuft im kostensparenden Modus. Ausfälle von Servern werden auf dem gleichen Weg kaschiert und so minimiert. Dabei kann Ihre Infrastruktur vollständig automatisiert zur Verfügung gestellt werden.
Doch was benötigen Sie nun für eine cloud-native Architektur? Wie schaffen Sie es, eine Cloud-Anwendung zu konzipieren, umzusetzen und schlussendlich zu nutzen? Es gibt viele Bestandteile, die bedacht und eingeplant werden müssen. Wir empfehlen die folgenden beiden Schritte:
Um einen klaren Blick auf Ihre Anwendung zu haben, sollten Sie zunächst eine Gesamtarchitektur konzipieren. Diese enthält alle verwendeten Drittsysteme, alle Komponenten Ihrer Anwendung, alle Datenbanken und auch alle verwendeten Cloud-Services. Danach wird analysiert, ob diese Gesamtarchitektur den gängigen Prinzipien einer cloud-nativen Architektur standhält.
Folgende Bestandteile sollten enthalten sein:
Weiterhin bieten die Hyperscaler eigene Programme und Richtlinien an, um eine cloud-native Architektur im jeweiligen Hyperscaler zu gewährleisten. Sollten Sie auf AWS setzen, so eignet sich das AWS Well-Architected Programm. In diesem werden 5 Säulen geprüft:
Ein sehr ähnliches Programm stellt Microsoft mit dem Azure Well-Architected Framework zur Verfügung. Die Prüfung dieser Faktoren stellt sicher, dass Ihre Anwendung optimal für die Cloud gestaltet wird.
Ist Ihre Gesamtarchitektur cloud-native, so sollten Sie auf die jeweiligen Services – die Bausteine Ihrer Architektur – eingehen. Durch die Verwendung verschiedener Cloud Services wird bereits sicher gestellt, dass diese den Anforderungen genügen. Dabei werden Cloud Services – wie Azure Kubernetes Service – benutzt, um die individuell entwickelte Anwendung zu betreiben. Damit diese Services ihre volle Leistung erbringen können, muss der Code dieser individuellen Anwendung gewisse Anforderungen erfüllen.
Ein Beispiel ist die Container-Orchestration mittels Kubernetes. Damit ist es möglich, dass die gleiche Anwendung, der gleiche Service, parallel und mehrfach nebeneinander laufen. Durch die mehrfache Ausführung des gleichen Services kann die Last aufgeteilt werden und das System so weiter skalieren. Das funktioniert jedoch nur, wenn diese Services auch nach den richtigen Prinzipien gebaut werden. Speichert ein Service beispielsweise den aktuellen Status in seinem eigenen Container, so können weitere Container nicht darauf zugreifen und keine Arbeit abnehmen. Wird dieser Status aber vom Container entkoppelt, können weitere Container dazugeschaltet werden.
Durch die Konzeption der Gesamtarchitektur und der einzelnen Komponenten stellen Sie sicher, dass Ihre Anwendung im Großen und im Kleinen cloud-native und somit skalierbar und ausfallsicher ist.
Sie wollen noch mehr zu cloud-nativen Anwendungen wissen? Werfen Sie doch einen Blick auf unsere Empfehlungen:
Ihre Software Anwendung mit der Cloud zu betreiben, bringt Ihnen viele Vorteile: maximal skalierbare
Kapazitäten, geringere Kosten, erhöhte Sicherheit. Doch bietet Ihre Cloud-Architektur schon die nötigen
Voraussetzungen?
In diesem Audit prüfen wir Ihre aktuelle Cloud Infrastruktur und erklären, wie Sie die Cloud optimal für
Ihr App- oder IoT-Projekt nutzen.
Kennen Sie die großen Kostentreiber in Ihrer Cloud Architektur? Nutzen Sie wirklich, wofür Sie bezahlen?
Unser Kosten Check-up verschafft den Überblick über Ihre Ausgaben, deckt ungenutzte Potenziale auf und
unterstützt Sie dabei, Kosten zu reduzieren.
Oft sind Cloud Architekturen historisch gewachsen. Hier und da wurde eine Service hinzugefügt. Häufig sind
sogar Dienste mehrerer Cloud-Anbieter im Einsatz.
Innerhalb eines Tages erfahren Sie, wie sich die Abrechnung Ihres Cloud Anbieters zusammensetzt und wie sie
auch in umfangreichen Projekten kosteneffizient unterwegs sind. Die Incloud Experten ermitteln die offenen
Kapazitäten in Ihrem Account und zeigen, wie Sie mehr aus Ihrer Cloud herausholen und Kosten senken können.
Sicherheit steht in der Cloud-Welt an oberster Stelle. Die größten Hyperscaler bieten Ihnen alles, was Sie
zur konsequenten Absicherung Ihrer Anwendung und der Nutzerdaten benötigen.
Dennoch: Auch die Security-Struktur muss gepflegt und in regelmäßigen Abständen überprüft werden. In unserem
Cloud Security Check-up überprüfen wir die Sicherheit Ihrer Cloud und geben Ihnen eine individuelle
Einschätzung zu Ihrer Security Situation.
Der INCLOUD Grundlagen Kurs zu zwei Themen Ihrer Wahl: Warum braucht es die Cloud und wann ist eine Anwendung "Cloud-Native"? Warum setzen alle auf Kubernetes und ist Serverless wirklich sinnvoll? Wir liefern Ihnen die Antworten und Tipps für Ihre Projekte. Wählen Sie einfach aus, in welchen zwei Bereichen Sie dazulernen möchten: