Vor nunmehr über einem Jahrzehnt hat „DevOps“ das Licht der Welt erblickt und sich inzwischen in vielen Bereichen etabliert. Die Entwicklung ist nach wie vor dynamisch und es stellt sich die Frage, wie sich DevOps in den nächsten Jahren weiterentwickeln wird.

In loser Folge geben wir an dieser Stelle einen Einblick in DevOps-Trends, denen wir zunehmend häufig begegnen.

DevSecOps und Cloud Native Development

Lernen Sie heute die Bedeutung von Low-Code, Serverless Computing und FaaS kennen.

Low-Code

Wie der Name bereits zum Ausdruck bringt, wird bei der Low-Code Entwicklung weniger traditioneller Programmcode erstellt. Stattdessen werden visuelle Tools genutzt, um Datenmodelle und Prozessabläufe zu beschreiben und eine ausführbare Anwendung zu erstellen. Typische Kontrollstrukturen wie Bedingungen, Verzweigungen und Schleifen sowie vorgefertigte Funktionen (z.B. Konnektoren zu externen Diensten / Schnittstellen) werden per Drag & Drop verbunden.

Durch den Low-Code Ansatz kann eine kontinuierliche Zusammenarbeit zwischen den Anforderern und den Entwicklern gefördert werden. Die Anforderer erfassen die Zusammenhänge der Anwendung besser, ohne dabei deren Quelltext nachvollziehen zu müssen. Die Programmierer können sich auf die Entwicklung von spezialisierten Funktionen konzentrieren, für die der „Baukasten“ keine vorgefertigten Elemente bietet.

Neben kommerziellen Low-Code Umgebungen, wie z.B. Microsoft Power Platform, gibt es eine Vielzahl von Open Source Plattformen mit spezialisiertem Fokus. Unter anderem für mobile Apps, Automatisierung, Websites, Internet of Things oder maschinelles Lernen.

Serverless Computing / Function as a Service (FaaS)

Beim Serverless Computing, handelt es sich um eine Variante, wie Anwendungen in der Cloud ausgeführt werden können. Dabei erfolgt eine Abstraktion der zugrundeliegenden Plattform.

Der Entwickler stellt nur seine Anwendung bzw. seinen Service bereit, muss sich aber um die Konfiguration der Laufzeitumgebung keine Gedanken machen. Die Umgebung ist für ihn unsichtbar. Den Kapazitätsbedarf an Ressourcen, wie z.B. VMs und Netzwerk, muss er nicht berechnen. Eine vorherige Reservierung von Ressourcen ist nicht erforderlich. Er kann sich auf das Wesentliche, die Entwicklung einer fachlichen Anwendung, konzentrieren.

Die Verantwortung für die Verwaltung, Sicherheit und Skalierung der Infrastruktur und der Plattform liegt beim Cloud Provider. Er stellt die Ressourcen bereit und sorgt dafür, dass die erforderlichen Kapazitäten immer in der vereinbarten Güte verfügbar sind, um den Workload aller Anwendungen auf seiner Plattform zu bewältigen. So kann er seine Ressourcen bestmöglich auslasten und Leerlauf vermeiden.

Anders als der Name somit vermuten lässt, werden auch beim Serverless Computing die Anwendungen letzten Endes auf physischen Servern ausgeführt, die aber über den Cloud Provider effizient verwaltet werden können.

Function as a Service (FaaS) ist ein Synonym für Serverless Computing.

Alle großen Public Cloud Provider bieten mittlerweile Plattformen für Serverless Computing an, beispielsweise AWS Lambda von Amazon oder Azure Functions von Microsoft.

Fazit

Wie auch bei anderen Technologien sollte die Entscheidung, Low-Code und/oder Serverless Computing im eigenen Produkt zu nutzen, gut durchdacht sein. Neben den erwähnten Vorteilen bringt die Technik auch Nachteile mit sich, die verstanden werden müssen. Zu nennen sind u.a. Einschränkungen beim Monitoring sowie mögliche Abhängigkeiten aufgrund proprietärer Produkte (Vendor lock-in).

Weitere Devops-Trends

In den vergangenen Wochen haben wir bereits vorgestellt: