Einen Schritt voraus – Was Entwickler über die Technologie von morgen wissen sollten
Das Gefühl, moderne Technologien wie 5G und Edge Computing seien schon seit Langem im Gespräch, kommt nicht von ungefähr. Doch sie werden zunehmend Realität, weshalb auch Entwickler diese Technologien als wichtige Takt- und Impulsgeber für ihre Arbeit im Blick haben sollten. DevOps-Praktiker, Analysten und Entwicklungsexperten sehen drei zentrale Technologien, die in den kommenden drei bis fünf Jahren einen deutlichen Einfluss auf die Softwareentwicklung haben werden.
1. Edge-Computing wird erwachsen
Der Markt für IoT-Anwendungen wächst rasant: Laut Marktforschungsunternehmen Statista hatte er 2019 bereits einen Wert von 212 Milliarden US-Dollar und wird 2025 voraussichtlich ein Volumen von 1,6 Billionen US-Dollar umfassen [1]. Mit dieser Entwicklung geht auch der Einsatz von Edge Computing einher und könnte bei DevOps-Teams früher Einzug halten, als gedacht. Warum? Weil diese Technologie die Entwickler dazu auffordert, die Rechenleistung buchstäblich innerhalb der Anwendung zu platzieren, mit anderen Worten am "Rand", anstatt für Berechnungen in die Cloud zu gehen.
Heute ist Edge Computing größtenteils noch auf Telekommunikationsunternehmen beschränkt, in drei bis fünf Jahren jedoch werden Front-End-Entwickler dies im Griff haben müssen. Jeder Kubernetes-Entwickler sollte sich heute schon damit beschäftigen und über Netzwerke, neue Router-Typen und Hardware-Architekturen nachdenken, um diese Entwicklung zu unterstützen.
Viele Organisationen entdecken derzeit die Vorteile der edge-basierten Datenverarbeitung mit niedrigsten Latenzzeiten: Echtzeitergebnisse lassen sich mit lokalen IT-Ressourcen viel schneller zur Verfügung stellen. Darüber hinaus ist es angesichts des enormen Datenwachstums unwirtschaftlich, jedes am Netzwerkrand erzeugte Byte in die Cloud und wieder zurück zu transportieren.
Mit der schnellen Entwicklung und Bereitstellung containerisierter Anwendungen sind Unternehmen in der Lage, kurzfristig auf neue Herausforderungen zu reagieren. Die Agilität moderner DevOps-Verfahren wird daher zur Standardmethodik in allen Aspekten des digitalen Transformationsprozesses und macht die IT zum wichtigen Enabler.
2. 5G wird Realität
Der Ausbau von 5G ist weltweit im Gange [2]. Seit 2019, als hierzulande die Bundesnetzagentur die Lizenzen für den Echtzeitmobilfunk 5G-Ausbau versteigerte, hat sich einiges getan. Statista prognostiziert weltweit zwischen 20 und 50 Millionen 5G-Verbindungen bis zum Ende des nächsten Jahres [3], gleichzeitig rechnet der Ericsson Mobility Report damit, dass 56 Prozent des gesamten mobilen Datenverkehrs bis 2026 über 5G abgewickelt wird [4]. Und auch hierzulande kommt Schwung in die 5G-Entwicklung, dabei denkt man sogar einen Schritt weiter. Die geschäftsführende Bundesforschungsministerin Anja Karliczek (CDU) brachte eine Forschungsinitiative für ein 6G-Netz auf den Weg und stellt dafür bis 2025 rund 700 Millionen Euro bereit [5]. Zu Beginn des Jahres hatte bereits die EU eine große 6G-Initiative gestartet: 25 Akteure schlossen sich zum Projekt Hexa-X zusammen, um die Entwicklung von 6G voranzutreiben [6].
5G wird in Kürze die mobile Anwendungsnutzung, wie wir sie kennen, umkrempeln und damit auch die Entwicklung mobiler Anwendungen verändern. Mit erheblich schnelleren Download- und Upload-Zeiten werden Entwickler Anwendungen mit umfangreichen Funktionen und einer deutlich verbesserten Benutzererfahrungen erstellen können – einschließlich vielversprechender Augmented- und Virtual-Reality-Anwendungen.
3. Künstliche Intelligenz
Künstliche Intelligenz wurde oft als vielversprechender technologischer Durchbruch gesehen. Bisher bleibt dieses Versprechen noch hinter den Erwartungen zurück, vor allem dann, wenn es um die Softwareentwicklung geht. Die Rolle der KI in diesem Bereich wird seit Jahren aus diversen Blickwinkeln diskutiert – bislang ohne befriedigendes Ergebnis.
Eventuell erweist sich die aktuelle Entwicklung jedoch als günstig. Entwickler sind zunehmend fasziniert von den neuen Möglichkeiten, die diese Technologie bietet. Laut der Global-DevsecOps-Umfrage von GitLab geben 75 Prozent der Befragten an, dass ihre DevOps-Teams KI bzw. ML für das Testen bzw. die Codeüberprüfung einsetzen – ein Anstieg von 41 Prozent gegenüber dem letzten Jahr [7]. Dass sich Entwickler zunehmend mit den Chancen auseinandersetzen, spiegelt sich auch in der Beliebtheit der Programmiersprache Python wider. Die jährliche Umfrage von Stack Overflow zeigt das gesteigerte Interesse an Python, einer eigentlich rund 30 Jahre alten Programmiersprache [8] . Die Umfrageergebnisse basieren auf der Anzahl der Fragen, die die Mitglieder von Stack Overflow zu dieser Sprache gestellt haben. Ein Grund für diesen Trend ist sicher die Tatsache, dass Python die To-Go-Programmiersprache zum Schreiben von Algorithmen für Künstliche Intelligenzen ist. Außerdem ist sie die bevorzugte Sprache für ML-gesteuerte Chatbots.
Ein schrittweiser Prozess
Wahrscheinlich wird jede Software der Zukunft eine Kombination aus prozeduralem Code und (KI-)Modellen sein und diese Modelle werden mit der Zeit immer mehr vom Code verschlingen. KI wird weniger im Sinne einer eigenständigen Aktivität verstanden, sondern vielmehr die Rolle eines integrierten Aufrufs aus einer Bibliothek oder aus einem Modell heraus übernehmen.
Anders ausgedrückt: Es wäre ungewöhnlich, wenn KI in zehn Jahren nicht einen viel bedeutenderen und hilfreicheren Part bei der Code-Entwicklung übernehmen würde als heute. Das wird den Menschen jedoch nicht ersetzen. Vielmehr wird dessen Rolle noch essenzieller werden, wenn es darum geht, zu verstehen, was wirklich wichtig ist. Es verhält sich damit wie mit einem detailorientierten zweiten Augenpaar, das alle Daten schnell sortiert, damit Codierer sich auf jene Bereiche fokussieren können, die es tatsächlich nötig haben. Die computergestützte Erkennung ist z. B. in der Mammographie sehr wertvoll, weil es für das menschliche Auge schwierig ist, nach 1 mm großen weißen Flecken zu suchen. KI zeigt jene Bereiche auf, die näher untersucht werden müssen – alles weitere erledigt der Arzt. Solche Modelle sind in etwa das, was zu erwarten ist, wenn es um KI und Softwareentwicklung geht.
In der Softwareentwicklung können auch Bots nützlich sein, wenn sie zukünftig nicht nur Probleme erkennen, sondern auch Lösungen vorschlagen: Als Entwickler steckt man nicht mehr fest, weil der Bot den Test durchführt und das Problem behebt.
Turing-Bots
KI in der Softwareentwicklung kann also eindeutig eine Rolle rund um Backstop, Code-Testing und QA einnehmen. Forrester geht noch einen Schritt weiter und sagt, dass sogenannte "Turing Bots" in ca. zehn Jahren Code aus Software-Artefakten generieren werden. Zu den Technologien, die Bots antreiben, gehören autonomes Testen, Auto-ML (für Vorhersagen), Reinforcement Learning und maschinelle Codierung.
Dies ist zweifelsohne eine kühne Vorhersage. Sollte sich das so oder so ähnlich bewahrheiten, dann ist es eine Menge, was die heutigen DevOps-Teams in den nächsten Jahren zu bewältigen haben. Sicherlich wird es zu einem Prozess- und Kulturwandel kommen, gleichzeitig erfordert dies auch weitreichende Veränderungen im Denkprozess der Entwickler. Sie sollten jetzt schon damit beginnen, präzisere Artefakte und Muster zu definieren, einschließlich App-Anforderungen, UX-Design und Lösungsarchitekturen.
Dass KI ist nur so gut ist wie die Daten, mit denen sie von Menschen gefüttert wird, ist bekannt. Und sie ist keinesfalls ein Ersatz für Menschen. Entwickler werden weiterhin gebraucht, denn KI ist nicht im eigentlichen Sinne intelligent.
Wie lassen sich die losen Fäden dieser drei zukunftsprägenden Technologien sinnvoll zusammenführen?
Worum es wirklich geht, ist Vernetzung
Die große Herausforderung für Entwicklung wird sein, diese Technologien zu verstehen und sie nahtlos miteinander zu verbinden. Zukünftig wird es keine Rolle mehr spielen, ob ein Entwickler gut bei der Frontend-Entwicklung ist oder ob er Sprachen wie Go oder Java beherrscht. Entscheidend wird sein, ob er alles rund um die Vernetzung versteht.
Hardware wird ein wichtiges Puzzleteil
Softwareentwickler neigen dazu, Hardware als selbstverständlich anzusehen. Heute gleicht ein Telefon oder Laptop dem anderen, aber in ein paar Jahren wird dies nicht mehr der Fall sein. Wenn sich die Geschwindigkeit der Konnektivität so rasant weiterentwickelt und bestimmte Schwellenwerte erreicht werden, dann muss auch darüber nachgedacht werden, wie Lösungen aussehen, die diese Vorteile maximal nutzen. Als Speicherplatz billig wurde, veränderte sich auch die Art und Weise, wie Hardware entwickelt wurde. Mit den neuen Möglichkeiten für Konnektivität und Breitband spielt die Größe der Hardware erneut keine Rolle. Größe kann also ein Kriterium sein, es gibt jedoch noch eine Reihe anderer Punkte. Wird die Denkweise "was auf einem Laptop funktioniert, das funktioniert überall" weiterhin Bestand haben? Eher nicht. Produktionscluster und verteilte Systeme werden ganz andere Anforderungen stellen – vom Design bis hin zur Sicherheit. Softwareentwickler müssen sich vom Gedanken verabschieden, dass der Laptop das zentrale Instrument ist, mit dem sie ihre Arbeit erbringen.
Code kann sich selbst heilen
Die Idee, dass sich Codes in gewisser Weise selbst reparieren können, kann durchaus jedes DevOps-Team verinnerlichen und es gilt bei Software-Experten als realisierbare Möglichkeit. Ein Beispiel ist die sogenannte Custom Resource Definition (CRD) von Kubernetes, da diese automatisch den Status kennt. Aus einem anderen Blickwinkel betrachtet verhält es sich ähnlich wie z. B. bei HashiCorp Vault: Anstelle von Geheimnissen in einem System, die Monate oder gar Jahre Bestand haben, treten dynamische Geheimnisse, die sich ständig aktualisieren – eine Art Selbstheilungsprozess für Geheimnisse.
Microservices werden zum Mainstream
Nicht jedes DevOps-Team ist bisher auf den Microservices-Zug aufgesprungen, es werden aber zunehmend mehr. Laut einer aktuellen Umfrage nutzen 34 Prozent der Teilnehmer Microservices durchgängig, im vergangenen Jahr waren es nur 26 Prozent der Befragten [7]. Dass Microservices ein wichtiger Baustein für zukünftige Softwareentwicklung sind, ist unbestritten. Deshalb wird das Wissen, wie man sie verwaltet, auch zunehmend wichtiger werden. Zudem spielt die Interaktion zwischen den Diensten eine wichtige Rolle, insbesondere dann, wenn es um verteilte Systeme geht. Deshalb werden in Zukunft Technologien für die Nachverfolgung und Fehlersuche bei Diensten benötigt.
Um all diese innovativen Ansätze so zusammenzuführen, dass sie eine echte digitale Transformation in den Unternehmen bewirken und damit branchenübergreifend mehr Effektivität erzielt wird, bedarf es einer effektiveren Softwareentwicklung. Sie ist die Klammer und ein entscheidender Katalysator, wenn es darum geht, digitale Anwendung zu Spitzenprodukten zu machen. Sie ist die zukünftige reale Intellectual Property der Unternehmen. Doch die Hürden im Alltag der Entwickler sind groß: Viele einzelne Tools, die nicht gut integrieren, schwierige Zusammenarbeit in größeren Teams, keine Transparenz, keine Steuerung sowie kein Überblick über den Gesamtprozess – höchste Zeit also für die industrielle Erstellung von Software.
GitLab ist eine komplette DevOps-Plattform in Form einer einzelnen Anwendung, die genau diese Stolpersteine aus dem Weg räumt [9]. Mit GitLab können Unternehmen Software über alle Phasen des DevOps-Lebenszyklus schneller und kostengünstiger entwickeln. Gleichzeitig wird die Sicherheit und Compliance verbessert. Jedes Team eines Unternehmens kann gemeinsam Software planen, erstellen, sichern und bereitstellen, um Geschäftsergebnisse schneller und mit vollständiger Transparenz, Konsistenz und Nachvollziehbarkeit zu erzielen.
- Statista: Link
- OOKLA 5G Map
- Top 10 Software Development Trends for 2021 You Need to Know
- Ericsson Mobility Report
- Handelsblatt: Bund investiert 700 Millionen Euro in 6G-Netz
- Hexa-X
- GitLab: 2021 Global DevSecOps Survey
- Stack Overflow: Developer Survey Results 2019
- GitLab