Drei Laptops, die mit einander an einer Cloud verbunden sind.

Applikationen mit cloudnativen Technologien

Sie wollen die Anwendungslandschaft Ihres Unternehmens mit Hilfe von cloudnativen Technologien modernisieren? Die Skalierbarkeit Ihrer Applikationen erhöhen und gleichzeitig Kosten und Aufwände reduzieren? SPIRIT/21 unterstützt Unternehmen bei der Konzeption und Entwicklung cloudnativer Anwendungen und hilft, vielfältige Chancen zu nutzen.

In den vergangenen Jahrzehnten gab es mehrere Evolutionen im Serverbereich. Vom Betrieb der Applikationen und zugehöriger Infrastruktur direkt auf dem Server ("Bare Metal") ging man dazu über, virtualisierte Server oder Containertechnologien zu nutzen. Virtualisierte Umgebungen und Container stellen aber trotzdem im Wesentlichen nur eine Evolution aus dem ursprünglichen Bare-Metal Modell dar, bei der sämtlicher Betriebsaufwand beim Nutzer verbleibt. Zum Betriebsaufwand gehören dabei Routineaufgaben wie Updates, Performanceoptimierungen, aber auch Skalierung. Dies inkludiert gegebenenfalls die Bestellung und Neueinrichtung von neuer Hardware genauso wie das ständige Monitoring und Backup durch die IT.

Function as a Service (FaaS)

Mit der Einführung von AWS Lambda 2014 gab es einen wesentlichen Umbruch: Anwendungen konnten jetzt als Function as a Service (FaaS) betrieben werden. Bei dieser Dienstleistung kümmert sich der Cloudanbieter, also beispielsweise Amazon Web Services (AWS), Microsoft, IBM, Google oder Oracle, um die skalierbare Bereitstellung der definierten Funktionen in Form von mehreren logischen Einheiten.

Die Besonderheit dabei ist, dass im Gegensatz zu permanent laufenden Technologien wie Containern die Funktionslogik nur gestartet wird, wenn beispielsweise HTTP-Anfragen eingehen. Dabei können auch andere Ereignisquellen, wie beispielsweise MQTT-Middlewares verwendet werden. Diese Agilität erlaubt es den Cloudanbietern, dem Nutzer nur die Kosten für den Aufruf und die verbrauchten Ressourcen (Hauptspeicher und Rechenzeit) in Rechnung zu stellen.

Im Vergleich zur nutzungsbasierten Abrechnung entstehen bei Containern oder traditionellen Servern in der Nacht und in bedarfsärmeren Zeiten Kosten, weil diese kontinuierlich laufen.

Die Vorteile von Function as a Service

Vorteile der FaaS Dienstleistung ergeben sich zum einen durch die nutzungsbasierte Abrechnung. Zum anderen können sich Entwicklerteams mit dem Wegfall des operativen Aufwands zur Aktualisierung und kontinuierlichen Wartung der Systeme auch auf das Erstellen und Weiterentwickeln der notwendigen Software fokussieren und die dabei anfallende Daten wie z.B. Logs selber sichten. Dies erlaubt den Entwicklerteams auch eine wesentlich höhere Iterationsgeschwindigkeit, da Änderungen schnell ausgerollt werden können.

Ebenso ergeben sich immense Kostenvorteile, dadurch dass der Cloudanbieter die automatische Skalierung der Ressourcen komplett elastisch nach Bedarf abwickelt, ohne zusätzliche Nutzeraktion. So können Firmen die Provisionierung neuer Server an den Serviceanbieter auslagern. Die Cloudanbieter bieten auch feste Service Level Agreements an, in welchen sie die Verfügbarkeit der Dienste garantieren.

Die Besonderheiten von Function as a Service

In Kundenprojekten hat sich gezeigt, dass größere Anpassungen an der Logik sowie der Architektur notwendig werden, wenn eine Bestandsapplikation für den Betrieb bei einem FaaS Anbieter bereit gemacht werden soll. So werden beispielsweise HTTP(S) Anfragen von einem API Gateway entgegengenommen und im JSON Format an die Funktionslogik weitergeleitet. Diese muss natürlich die Fähigkeit besitzen, dieses spezielle Format weiter verarbeiten zu können.

In der Logik sind auch weitere Anpassungen erforderlich, da die beste Systemleistung dann erreicht wird, wenn die Applikationslogik in möglichst kleine Einheiten (Microservices) heruntergebrochen wird, welche fehlertolerant und unabhängig (skalierbar) mit den anderen Microservices kommunizieren können. Auch die Datenbankhandhabung muss verändert werden. Um die Verbindungen zur Datenbank effizient aufrechterhalten zu können, muss beispielsweise auf optimierte Connection Pools zurückgegriffen werden.

In Punkto Sicherheit sollten verschiedene Besonderheiten der Cloud beachtet werden. So ist beispielsweise darauf zu achten, dass die einzelnen Komponenten genau zugeschnittene Berechtigungen haben, sicher miteinander kommunizieren und die verarbeiteten und gespeicherten Daten bestmöglich geschützt werden.

Durch Migration bestehender Anwendungen oder durch Neuarchitektur können Sie erhebliche Kosteneinsparungen für Ihre Organisation nutzbar machen. Unser erfahrenes Team aus zertifizierten Cloudarchitekten und Entwicklern steht Ihnen dabei gerne zur Seite.