p.blog
Unternehmenskultur, Softwareentwicklung und Architektur

19. Januar 2021

Software Development Trends 2021

7 Minuten Lesedauer

2020 war ein verrücktes Jahr. COVID-19 und unser Umgang mit der Pandemie haben dafür gesorgt, dass sämtliche Bereiche des Wirtschafts-, Verwaltungs-, Privat- und öffentlichen Lebens komplett auf den Kopf gestellt wurden. Wir müssen in keine Glaskugel schauen, um zu begreifen, dass die Pandemie viele Dinge nachhaltig verändern wird – auch in der IT.

Nun, bei pentacor kennen wir uns mit Glaskugeln nicht aus. Aber mit IT im Allgemeinen und Softwareentwicklung im Speziellen. Für 2021 erwarten wir viele Veränderungen – einige davon sind seit Langem im Gange, andere sind, wie bereits umrissen, eine direkte Folge von COVID-19. Aus unserer Erfahrung ergeben sich für 2021 folgende Software Development Trends.

Photo by Joshua Woroniecki on Unsplash

 

Steigerungsform von Cloud? Multi-Cloud.

Viele Cloud-Angebote der großen Provider Amazon Webservices, Google Cloud Platform und Microsoft Azure im Hinblick auf IaaS, PaaS und SaaS sind sich ähnlich, was Unternehmen heute dabei hilft, zwischen den Angeboten der einzelnen Provider zu wechseln. So werden langfristig die Risiken von Vendor Lock-in und potenziell überteuerten Betriebskosten minimiert.

Das Konzept hinter Multi Cloud zielt darauf ab, die Angebote mehrerer Cloud-Anbieter parallel zu nutzen. Das hat in der Vergangenheit leider zu einem höheren Aufwand für das Management der Cloud-Lösungen, z.B. mit Blick auf Security, geführt. Mit meshcloud und vmware stehen jetzt allerdings die ersten Anbieter bereit, die helfen können, die Verwaltung von Multi-Cloud-Lösungen zu erleichtern.

Hail Kubernetes, bye Docker!

Das kommt jetzt nicht wirklich überraschend. Erst geriet Docker Inc. 2019 in Zahlungsschwierigkeiten, dann beendete Kubernetes langsam aber sicher den Support von Docker. Seit dem Kubernetes Release 1.20 (Dezember 2020) gilt Docker als deprecated. Wir können damit rechnen, dass der Docker-Support bis Ende 2021 komplett aus Kubernetes verschwinden wird.

Alternativen zu Docker stehen mit Container Runtime Interface und der Open Container Initiative schon längst in den Startlöchern. Container-Orchestrierung wird künftig wohl ohne Docker stattfinden müssen.

Inzwischen bieten alle großen Cloud Provider Kubernetes-as-a-Service an. Da wären Amazon’s EKS, Azure’s Kubernetes Service und natürlich Googles Kubernetes Engine. Dass Google – als “Erfinder“ von Kubernetes – Kubernetes-Dienste anbietet, ist weder überraschend noch neu. Dass Microsoft Kubernetes inzwischen auch für Azure anbietet, schon.

SQL + NoSQL → NewSQL

Der Begriff NewSQL-Datenbank ist eine Marketing-Erfindung. Das merkt man schon daran, wie schwierig es ist, eine allgemeingültige Definition für NewSQL zu finden. Hoch-Verfügbarkeit durch Replikation und Sharding, einfaches Management und flexible Datentypen – z.B. auf Basis von JSON – müssen schon dazugehören. Und bitte nicht die Einschränkungen von SQL im Hinblick auf Skalierung und Performance. Dafür nehmen wir gern die Vorteile von SQL, z.B. verteilte Transaktionen und SQL als Abfragesprache.

Gibt’s nicht? Gibt’s schon! Alle großen Cloud-Provider haben heute mindestens eine NewSQL-Datenbank im Portfolio, die die oben beschriebenen Eigenschaften mitbringt. Da wären Amazon’s Aurora und DynamoDB, Google Cloud Spanner und Azure’s Cosmos DB. Und der Bedarf von Unternehmen und Organisationen für NewSQL ist in jedem Fall spürbar.

Was für eine breitere Akzeptanz 2021 noch fehlt, ist eventuell ein Preissturz. Heute kann eine Google-Cloud-Spanner-Instanz mit einer Verfügbarkeit von 99.999 Prozent je nach Ausstattung und Regionalität pro Tag mehrere hundert Dollar kosten. Pro Jahr sind das dann schnell 100.000 Euro. Bei Cockroach Labs, einem alternativen NewSQL-Anbieter jenseits der großen Provider, aber mit z.B. RedHat und IBM als Partner, kostet das Hosting auf Enterprise-Ebene unter Umständen ein Zehntel davon.

Weniger Server. Mehr Serverless.

Auch bei diesem Trend starten wir mit den großen Cloud-Providern – alle drei bieten im Rahmen ihres Cloud-Portfolios Serverless Functions an. Da wären AWS Lambda, Azure Serverless Functions und Google Serverless Computing.

Im Kern geht es darum, Services oder einfach Funktionen (Function-as-a-Service) ohne Beteiligung eines klassischen (Application) Servers – und vor allem ohne die Notwendigkeit einen solchen Server zu verwalten – ablaufen zu lassen.

Warum sollte Serverless gerade 2021 einen Schub erhalten? Ein wesentlicher Indikator ist der State of the Cloud Report 2020. Danach soll der Serverless-Markt 2020 um 12 Prozent wachsen. An anderer Stelle im Report heißt es, dass 48 Prozent der befragten Unternehmen Serverless bereits nutzen, 26 Prozent damit experimentieren und 9 weitere Prozent die Nutzung planen. Das ergibt eine Durchdringung von 83 Prozent.

Was spricht noch für eine stärkere Adoption von Serverless im Jahr 2021? Nun, wenn viele Unternehmen (26 Prozent) in der Vergangenheit erste Erfahrungen gesammelt haben, erscheint es sinnvoll, diese Erfahrungen im nächsten Schritt in echte IT-Lösungen fließen zu lassen. Dieser nächste Schritt findet – jetzt – statt.

Ein weiterer Fakt für den Schub von Serverless ist: Es entstehen vom Cloudanbieter unabhängige Serverless-Lösungen. Allen voran knative.

Monolith, SOA, Microservice, Serverless?

Monolith, SOA, Microservice oder Serverless? In großen Organisationen ist das keine Frage nach entweder oder, sondern lediglich, wie bestehende Anforderungen unter den gegebenen Rahmenbedingungen erfüllt werden.

Serverless Function

Microservice

löst ein eher kleinteiliges Problem

löst ein fachliches Problem

ist darauf ausgerichtet bei Eintritt eines Triggers abzulaufen und sonst nichts zu tun

ist ständig verfügbar und bereit

verursacht im Idealfall während ihrer Inaktivität keine Kosten

verursacht potenziell Kosten, auch wenn er gerade nicht verwendet wird

Serverless und Microservices schließen sich gegenseitig nicht aus. Beide Ansätze ergänzen sich je nach Kontext prächtig. Hier erwarten wir 2021 eine stärkere Verzahnung.

Keine Organisation wird sich heute willentlich für die Neuentwicklung eines Monolithen entscheiden oder eine rein SOA-basierte IT-Landschaft aufbauen. Vielmehr wird es darauf hinauslaufen 2021 weiter moderne Lösungsansätze in die bestehende IT-Landschaft zu integrieren, um die beste Lösung für den jeweiligen Kontext zu finden. Serverless Functions und Microservices werden dabei eine zentrale Rolle spielen.

Die Implementierung einer Fachlichkeit inklusive aller Cross-Cutting Concerns wird mit Serverless und Microservices noch verteilter werden. Das generiert einen höheren Speed während der Entwicklung, allerdings auch eine höhere Maintenance-Komplexität (Betrieb, Portierbarkeit, …).

Java lernen? Nö: Lieber JavaScript und Python.

In Sachen Programmiersprachen meinen wir für 2021 auch einen kleinen Trend ableiten zu können. Wir beginnen mit ein wenig Statistik.

  • Der 2020 State of the Octoverse Report – eine Umfrage auf GitHub – deckt auf, dass Java Platz 2 der am meisten verwendeten Programmiersprachen an Python verloren hat. JavaScript steht auf Platz 1.

  • Die StackOverflow-Insights-Umfrage bietet eine ähnliche Statistik auf Sprachebene an. Demnach sprechen Entwickler am ehesten JavaScript, dann Python und dann Java.

Klar, JavaScript steht dank Frameworks wie Angular, React, Vue.js oder Node.js auf Platz 1. Aber warum ist Python so verbreitet? Beim Machine Learning spielen die Python-Pakete PyTorch und TensorFlow eine zentrale Rolle. Bei den KI-Frameworks spielen beide Pakete ebenfalls eine wichtige Rolle. Java ist in beiden Domänen eher Zaungast.

Weiter oben haben wir Serverless Functions als Trend beschrieben. Schauen wir mal, welche Sprachen Azure, GCP und AWS im Zusammenhang mit Serverless Functions unterstützen.

Azure

C#, JavaScript, F#, Java, PowerShell, Python, TypeScript

GCP

Java, .NET, Ruby, Node.js, Go, Python

AWS

Java, Go, PowerShell, Node.js JavaScript, C#, Python, and Ruby

Im klassischen Enterprise-Umfeld, in dem Frameworks wie Spring, Spring Boot oder Jakarta eine Rolle spielen, werden sie das auch 2021 tun. Neue Frameworks wie Quarkus, Eclipse MicroProfile oder Micronaut bieten eine Chance, Java in der Cloud nachhaltig zu etablieren. Im Kontext Serverless, bei Machine Learning oder KI wird sich Python stärker ausbreiten.

Security Automation mit DevSecOps

Risiken in Sachen Security sind nach Meinung vieler Quellen eines der größten Hindernisse für eine stärkere Nutzung der Cloud in Unternehmen. Soweit so klar.

Laut IT-Trends-Studie 2020 ist Security Automation für Unternehmen aktuell die Technologie mit der höchsten Bedeutung. Eine ähnliche Beobachtung wurde Security Automation bereits im State of DevOps Report 2019 beigemessen.

Hinter Security Automation verbirgt sich die Fähigkeit, Risiken oder Bedrohungen automatisch, z.B. durch aktives Monitoring oder KI, zu erkennen bzw. generell wiederkehrende Tätigkeiten im Kontext Security zu automatisieren.

Aus dem State of DevOps Report 2020 können wir ablesen, dass die Integration von Security in den DevOps-Prozess von Organisationen sich gegenüber 2019 stark verbessert hat. Nach unserer Meinung wird sich dieser Trend 2021 fortsetzen.

Weitere Argumente für einen stärkeren Einfluss von DevSecOps sind eine Reihe sinnvoller und inzwischen ausgereifter Angebote verschiedener Tool-Hersteller wie Continuum Security von IriusRisk für den Test und die Verwaltung von Sicherheitsrisiken, ThreatModeler für die Identifikation von Bedrohungsszenarien über die gesamte Toolkette oder Checkmarx für statische Security-Code-Analyse.

Low-No-Code Development

Low-Code- bzw. No-Code-Development-Plattformen (LCDP bzw. NCDP) sind aus unserer Sicht Trends die sich 2021 nicht in Gänze durchsetzen werden. Hinter beiden (sehr ähnlichen) Ansätzen verbirgt sich die Idee, mit graphischen Benutzeroberflächen lauffähige Webanwendungen per Klick oder Drag und Drop zusammenzustecken und zu deployen. Motivationen hinter beiden Ansätzen sind erhoffte Kosteneinsparungen und fehlendes oder knappes Entwicklungs-Know-how im Unternehmen.

Beispiele für Low-Code- bzw. No-Code-Plattformen sind Salesforce Lightning Flow, Oracle APEX (früher HTML Express), webflow oder Quick Base.

LCDP bzw. NCDP funktioniert heute für einfache Anwendungsfälle, z.B. für die Abbildung von CRUD-Operationen. Für komplexere Anwendungsfälle erscheint uns dieser Ansatz mit Blick auf Sicherheit, Performance, Skalierbarkeit, Wartbarkeit oder selbst Logging und Monitoring noch fraglich. Offen ist beispielsweise die Frage, wie mit LCDP-/NCDP-basierten Anwendungen Fehlerfälle untersucht oder gar Debugging betrieben werden kann.

Ein recht interessanter Anwendungsfall im API-Umfeld sind iPaaS-Dienste. Diese ermöglichen die Integration verschiedener SaaS-Lösungen über APIs mit Hilfe von LCDP-/NCDP-Ansätzen. Anbieter solcher Lösungen sind z.B. Zapier oder IFTTT.

Viele neue Data-driven Anwendungsfälle

Data-driven Ansätze sind ein großer aber nicht unbedingt neuer Trend, der in diesem Jahr dennoch stark Fahrt aufnehmen wird. Das liegt unter anderem daran, dass Anwendungsfelder für datengetriebene Lösungen immer vielfältiger, ausgereifter und damit greifbarer werden. Hierfür haben wir ein paar Beispiele gesammelt:

  • Daten-driven Marketing müssen wir eigentlich gar nicht mehr erwähnen, weil dieser Anwendungsfall bereits länger etabliert ist. Die Marktdurchdringung wird in diesem Jahr trotzdem weiter steigen.

  • Ein weiterer, tatsächlich relativ neuer Anwendungsfall stellt Predictive Maintenance sowohl in der IT als auch in der Industrie dar. Dabei geht es darum, für Maschinen, Anlagen oder Systeme durch Datenanalyse Vorhersagen zu treffen, wann eine Einschränkung oder ein Ausfall droht, um rechtzeitig Kompensationsmaßnahmen planen und durchführen zu können.

  • Data-driven DevSecOps unterstützt IT-Organisationen dabei Angriffe, Bedrohungen oder auch Schwachstellen zu identifizieren und so zum frühestmöglichen Zeitpunkt agieren zu können.

  • Relativ neu ist die Entwicklung datengetriebener, lokaler Klimamodelle, mit denen die Auswirkungen der globalen Erwärmung z.B. in unseren Städten besser vorhergesagt werden sollen. Auf deren Basis lassen sich potenziell zielgerichtetere Maßnahmen zur Abschwächung der Auswirkungen der globalen Erwärmung identifizieren.

  • COVID-19 trägt dazu bei, dass datengetriebene Ansätze zu Vorhersagen zum Infektionsgeschehen immer stärker genutzt werden, um auf dieser Basis etwa die Planung von Kapazitäten im Gesundheitssystem durchzuführen.

Fazit und Ausblick

2021 hat natürlich das Zeug zu viel mehr Trends. Wir fragen uns aber schon, wie lange 5G, Künstliche Intelligenz, Internet of Things oder Machine Learning noch Trends bleiben werden. Wollten die nicht schon längst Status Quo sein und die Wirtschaft und das Privatleben vollständig durchdringen? Wir dürfen gespannt bleiben.

Viele der von uns beschriebenen Trends hängen direkt oder indirekt miteinander zusammen, z.B. die erwartete stärkere Durchdringung von Serverless Functions und die erwartete stärkere Verbreitung von JavaScript oder Python. Oder der Trend hin zur Multi-Cloud gepaart mit dem erwarteten Dahinscheiden von Docker als Integrationsebene zugunsten von Kubernetes.

Unsere Trends sind bewusst keine Top-10 oder Ähnliches, sondern reflektieren lediglich unsere Beobachtungen. Wir werden uns Ende 2021 in jedem Fall erneut mit den hier beschriebenen Trends auseinandersetzen und reflektieren, wie gut oder schlecht wir die Realität getroffen haben. Und dann wird es natürlich auch einen neuen Ausblick – diesmal auf die von uns erwarteten Trends für 2022 – geben.