Eine Cloud-Anwendung bauen: So gelingt Ihnen der Start.

Profilfoto Manuel Reinfurt
Chief Technical Officer

16.02.2021
img

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.

Welche Vorteile bringt Ihnen eine cloud-native Architektur?

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).

Beispiel: Skalierbarkeit als Vorteil der Cloud

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.

So starten Sie mit Ihrer cloud-nativen Architektur

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:

1. Konzeption der Gesamtarchitektur

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:

  1. Kommunikation & Schnittstellen: Jede Anwendung benötigt andere Systeme, um Ihren Job zu erfüllen. Mit der richtigen Kommunikation und den richtigen Schnittstellen stellen Sie sicher, dass sich Ausfälle nicht gegenseitig bedingen und Ihre gesamte Anwendung lahmlegen.
  2. Containerisation & Orchestration: Mit Containern trennen Sie die Anwendung von der Infrastruktur wie beispielsweise Betriebssysteme oder Abhängigkeiten. Das ermöglicht, dass Ihre Anwendung in jeder Cloud funktioniert. Mehr erfahren Sie in unserem Beitrag zu Kubernetes. Eine Alternative hierzu wären Serverless-Dienste.
  3. Datenbanken: Der Kern Ihrer Anwendung liegt oft in den Daten. Mit den richtigen verteilten Datenbanken (beispielsweise Azure SQL Database) sichern Sie Ihre Daten vor Ausfallen, erhöhen die Erreichbarkeit und skalieren.
  4. Infrastructure as Code: Mit IaS definieren Sie Ihre Infrastruktur als Code. Sie können Ihre Infrastruktur mit einem Klick erstellen, eine zweite Testing-Umgebung bereitstellen und auch alle Änderungen nachvollziehen. Dies kann mit Terraform umgesetzt werden.
  5. Continuous Integration & Deployment: Mit CI/CD kontrollieren Sie die Änderungen an Ihrer Anwendung und stellen sicher, dass diese professionell gebaut und getestet wurde und in Ihrer Produktivumgebung funktioniert. GitLab CI oder Azure DevOps eignen sich hierfür hervorragend.
  6. Monitoring & Reporting: Damit stellen Sie sicher, dass Ihre Anwendung optimal läuft. Sie kennen jederzeit den aktuellsten Status und werden über Probleme informiert, um schnell reagieren zu können. Cloud-Services wie Azure Monitor, der Elastic Stack oder beispielsweise Prometheus und Grafana eignen sich hier.
  7. Networking & Policies: Durch Networking & Policies schützen Sie Ihre Anwendungen vor Angriffen. Die Kommunikation untereinander wird abgestimmt, so dass nur berechtigte Systeme zugreifen können. Diese Bestandteile ermöglichen Ihrer Anwendung, wirklich cloud-native zu sein und von den Vorteilen der Cloud maximal zu profitieren.
Cloud-Architektur
Beispiel für die Architektur einer Anwendung im Azure-Umfeld.


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:

  • Operational Excellence: Ausführung & Überwachung der Systeme
  • Sicherheit: Schutz von Informationen und Systemen
  • Zuverlässigkeit: Ausfallsichere Systeme, welche sich auch nach Fehlern wieder erholen
  • Leistung und Effizienz: Effiziente Nutzung der Ressourcen - auch bei variabler Last
  • Kostenoptimierung: Reduktion und Vermeidung unnötiger Kosten

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.

2. Konzeption der einzelnen Cloud-Komponenten

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:


Unsere Cloud-Appetizer: die INCLOUD Workshops

Ist Ihre Cloud-Landschaft bereit für eine Anwendung?

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.

Ganz konkret: Das nehmen Sie mit

  • Eine Auflistung der für Ihre Anwendung notwendigen und geeigneten Cloud Dienste
  • Individuelle Vorschläge für die ideale Cloud Infrastruktur und für die Integration in vorhandene Systeme
  • Ihren individuellen Leitfaden für die nächsten Schritte

Schnell und bequem

  • Ein Tag à 8 Stunden
  • Der Audit findet online statt

Kosten Clean-up Cloud

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.

Ganz konkret: Das nehmen Sie mit

  • Eine Auflistung aller Hyperscaler und deren Dienste, die in Ihrer Cloud Architektur eingesetzt werden, sowie die zugehörigen Kosten
  • Eine Übersicht der Services, die nicht genutzt werden und optimiert oder ausrangiert werden sollten
  • Eine Kalkulation der möglichen Kostenersparnisse.
  • Alternative Vorschläge für eine neue Struktur Ihrer Dienste, begleitet von Ihrem individuellen Leitfaden für die nächsten Schritte

Schnell und bequem

  • Ein Tag à 8 Stunden
  • Der Audit findet online statt

Cloud Security Check-up

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.

In 2 Schritten zur sicheren Cloud

  • Wir überprüfen alle relevanten Sicherheitsaspekte Ihrer Cloud-Struktur. Auf Wunsch legen wir hier größeres Augenmerk auf spezielle Bereiche.
  • Wir liefern eine Dokumentation zu den entdeckten Schwachstellen und wie diese zu beheben sind

Umfang

  • Ein Tag à 8 Stunden
  • Der Audit findet online statt

Wissen rund um...

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:

Unser Workshop-Angebot

  • Cloud-native in one day
  • Ready for Serverless
  • Ready for Kubernetes
  • Ready for IoT
  • Einführung in DevOps und CI/CD DevOps

Ganz konkret: Das nehmen Sie mit

  • Umfassende Einblicke in die Welt der Cloud für Infrastruktur und Softwareprojekte
  • Einsatzpotenziale der jeweiligen Technologie in Ihrem Unternehmen
  • Konkrete nächste Schritte

Schnell und bequem

  • Ein Tag à 8 Stunden
  • Der Audit findet online statt
  • Um ausführlich auf Fragen einzugehen, empfehlen wir eine maximale Teilnehmerzahl von 7 Personen. Natürlich steht es Ihnen frei, weitere Teilnehmer anzumelden.
Titelbild: Gabriel Crismariu auf Unsplash
Weiterempfehlen: