6:00 Min. LesezeitApplication ServicesDigital Workplace

Technologische transformation: Ihr tahrplan für die applikationsentwicklung und -modernisierung

SoftwareOne blog editorial team
SoftwareOne RedaktionsteamTrend Scouts
The road is curvy.

Jedes Unternehmen, das erfolgreich am Markt ist, hat ein persönliches Alleinstellungsmerkmal. Damit unterscheidet es sich von den Wettbewerbern. Die Unterscheidung endet aber nicht dort, sondern setzt sich auch intern fort: in den Prozessen und der internen Zusammenarbeit. Das Ganze wird durch eigene Anwendungen unterstützt, die die Prozesse so effizient wie möglich gestalten und auch ihren Mitarbeitern bestmögliche Unterstützung geben sollen.

In diesem Beitrag gehen wir auf die Rolle dieser zentralen und einzigartigen Applikationen ein, die allzu oft aus dem Fokus geraten und jenseits jedes Software-Lebenszyklus langfristig im Einsatz sind.

Rolle von Legacy-Applikationen

Anforderungen ändern sich, Prozesse ändern sich. Aus dieser Perspektive empfehlen wir, auch die Anwendungen zu betrachten: sie zu aktualisieren und anzupassen. Am Anfang funktioniert das einwandfrei, aber über die Zeit häufen sich immer mehr und mehr Probleme auf. Denn etwas ändert sich über die Zeit nicht: die Anwendungsarchitektur und die eingesetzte Technologie.

Und dieser Umstand führt dann zu verschiedenen Problemen. Wenn zum Beispiel das Datenvolumen steigt oder sich die Anzahl der Anfragen auf der Webseite erhöht. Dann kann es passieren, dass die Anwendung diese ganze Last nicht so gut verkraften kann wie Sie es eigentlich bräuchten. Diese begrenzte Skalierung macht Prozesse langsam, frustiert Anwender und Kunden.

 

Anbau, Umbau, Überbau: Ohne Application Modernization geraten die Anpassungen in eine Sackgasse

Um möglichst schnell auf Anforderungen zu reagieren, werden die Änderungen nicht immer bestmöglich realisiert, sondern so schnell wie möglich ein- und (bildlich gesprochen) angebaut. Das funktioniert aber nur eine Zeit lang gut. Die Anwendung wird immer komplexer. Anpassungen und Betrieb benötigen sukzessive mehr zeitlichen Invest und werden am Ende des Tages auch teurer.

Diese technischen Schulden werden über die Zeit immer höher und werden auch die eingesetzten Technologien nicht aktuell gehalten werden, kann das auch ein ernstes Sicherheitsproblem darstellen. Ausserdem entwickelt sich der Markt über die Zeit eher gegen alte Technologien, denn am Markt finden sich immer Experten für die aktuellen Technologien, die alten laufen über die Zeit aus und wer dann an der Stelle nicht mitgeht muss auf das eigene Personal setzen und gegeben falls teuer das alte Wissen noch aufbauen und vorhalten.

Moderne Technologie als Business Enabler

Technologie ist aber an der Stelle kein Selbstzweck, sondern moderne Technologien erlauben es auch moderne und neue Geschäftsstellen zu erschliessen. Damit starte ich mit der Cloud.

Cloud wie Microsoft Azure oder Amazon AWS offerieren einen riesigen Fundus an Diensten und Technologien, die jetzt rein über Infrastruktur- und Plattform-Dienste wie Hosting und Datenbanken hinausgehen. Gerade Künstliche Intelligenz oder Machine Learning ermöglichen komplett neue Anwendungsfälle wie Bots und können damit Kunden noch individueller und schneller einbinden und abholen und eine bestmögliche Nutzererfahrung bieten. Das Ganze ist sehr flexibel und skalierbar in der Cloud, so dass Kosten minimal gehalten werden können und Lastspitzen sehr gut abgefangen werden.

Es war noch nie so einfach, eine Anwendung in mehrere geografischen Regionen zu deployen und trotz geringer Fehlertoleranz eine hohe Verfügbarkeit sicherzustellen. Das Ganze passiert mit geringeren Kosten, denn im Gegensatz zur eigenen Infrastruktur sind keine riesigen Investitionen in eigene Hardware notwendig. Die IT-Verantwortlichkeit teilen Sie sich mit dem Cloud-Anbieter: die Infrastruktur und die Netzwerktechnik übernimmt der Vertragspartner. So können Sie Ihre eigene IT-Abteilung entlasten und sich auf Ihre Anwendung und deren Mehrwert konzentrieren.

Applikationsmodernisierung mit Containern und Micro Services

Wenn am Ende des Tages Ihre Anwendung eher auf die Cloud ausgelegt ist, ist das Einzige, was Sie dann noch benötigen, eine Internetverbindung. Wer sich heute mit Softwareentwicklung beschäftigt, kommt um die Schlagwörter Microservices und Container gar nicht mehr drum herum. Container erlauben es Anwendungen zu verpacken, inklusive ihrer Laufzeitabhängigkeiten – ähnlich einer virtuellen Maschine sind diese unabhängig voneinander zur Verfügung gestellt und können isoliert betrieben werden. Das Besondere an containeriserten Applikationen ist, dass das darunterliegende Betriebssystem geteilt wird, was viel Speicherplatz spart: Container sind nur mehrere MB gross und nicht mehrere GB wie eine virtuelle Maschine. Durch diese hohe Portabilität sind Sie äußerst flexibel darin, wo Sie die Container ausführen. Das kann auf Dauer auf dem eigenen Windows Rechner, einem eigenen Server oder auch die Infrastruktur eines Cloud Providers sein. Mit dieser Flexibilität, wo Sie Ihre Anwendung ausführen und können an dieser Stelle frei entscheiden, ohne sich an einen einzelnen Anbieter binden zu müssen.

Die Anwendungen werden zu Microservices geclustert und lösen den «monolithischen» Ansatz der letzten 15 bis 20 Jahre immer mehr ab. Kleinere Einheiten, welche das Gesamtsystem bilden, sind gegenüber einem monolithischen Blog immer einfacher verständlich, pflegbar und testbar. Diese einzelnen isolierten Funktionseinheiten, die miteinander lose gekoppelt werden, haben noch einen anderen Vorteil. Denn jede einzelne Einheit wird nur da skaliert, wo sie benötigt wird. Sie kann ihre Arbeitslast maximal ausführen, ohne Ressourcen zu verschwenden, wie es bei monolithischen Systemen häufig der Fall ist. So fallen keine unnötigen Kosten an.

Das Besondere bei Microservices ist die Art und Weise wie diese Unterteilung gefunden wird. Denn dies erfolgt nicht nach einer technischen Betrachtung, wie es gerne in der monolithischen, drei-schichten Architektur sich wiederfindet: Nutzeroberfläche, «Verbindungslogik» und Daten. Die Einheit wird anhand der fachlichen Domäne gebildet. Und alles, was fachlich zusammengehört, wird in einem Service gebündelt und umfasst alle technischen Belange. Wenn so eine Einheit von einem einzelnen Team betreut und gewartet wird, kann sehr schnell auf Funktionsänderungen reagiert werden ohne sich mit anderen Teams abzustimmen.

Wichtigkeit von Daten: für Applikationen und Unternehmen

Ein Beispiel: LinkedIn hatte viele Datenbanken, verschiedene Logs und Metriken aus dem Betrieb, aber auch sehr viele Tracking-Informationen von den Anwenderinteraktionen auf der Plattform. All diese Daten wurden von verschiedenen Systemen verwendet: für die Suche, Empfehlungen für neue Kontakte oder lesenswerte Artikel, für Dataware-Hostzwecke oder einfach auch für den operativen Betrieb oder das Monitoring.

LinkedIn hatte allerdings ein Problem: wie ließen sich diese zahlreichen Systeme integrieren und die gesammelten Daten dann zur Verfügung stellen? Wenn jedes System interagierensoll, wird es sehr unübersichtlich und schwer zu pflegen. Von daher bestand der Wunsch, eine zentrale Datenpipeline aufzubauen, die flexibel skalierbar ist, die Daten dauerhaft speichern kann, einen hohen Durchsatz generiert sowie einfach integrierbar ist.

Es wurden verschiedene Lösungen am Markt angeschaut und evaluiert, die Erfolgsrate war jedoch eher auf niedrigem Niveau. Von daher wurde sehr schnell der Entschluss gefasst, dass eine Eigenentwicklung notwendig sei. Von Anfang an war klar, dass diese Lösung auch veröffentlicht und unter Open Source gestellt wird. Diese Lösung kennen wir heute unter dem Namen «Apache Kafka».

Apache Kafka von LinkedIn

Mit dieser Entwicklung konnte LinkedIn sein Problem lösen, die verschiedenen Daten integrieren und für jedes System entscheiden, welche Daten benötigt werden, in welcher Art und Weise weiterverarbeitet und zu welcher Zeit. Falls neue Systeme entwickelt werden, können diese auf den kompletten Datenfundus zugreifen. Soweit bekannt, betreibt LinkedIn die grösste Kafka-Installation weltweit, wo täglich 2.1 Billionen Nachrichten verarbeitet werden und Petabyte an Daten gespeichert sind.

Und diese Infrastruktur wird von sieben Vollzeit-Mitarbeitern betrieben und gepflegt. Das ist eine gute Skalierung, die in kleinerem Rahmen funktioniert. Und es ist eine der interessantesten Optionen im Bereich Datenstreaming, um nahezu in Echtzeit riesige Datenmengen verarbeiten zu können.

Entwicklerplattformen für Low-Code- und No-Code-Applikationen

Es haben sich in letzter Zeit sehr interessante No-Code- und Low-Code-Plattformen entwickelt, wie Power Apps / Power Platform von Microsoft oder Google AppSheet, um auch Fachanwendern zu ermöglichen, eigene Anwendungen für interne Prozesse entwickeln zu können. Das kann in bestimmten Fällen sogar ganze ohne Entwickler oder mit sehr begrenztem Zeitbudget erfolgen. Der grosse Vorteil dieser Plattformen besteht darin, dass eine riesige Bibliothek an Komponenten und Funktionalitäten zur Verfügung gestellt wird. Mit einfachem Drag & Drop kann man in wenigen Stunden grosse Fortschritte machen. Klassische Entwicklungsprojekte können da länger dauern. Durch diese schnelle Realisierung von Ergebnissen fallen nur geringe Kosten an.

Diese Vorteile haben auch eine Kehrseite. Die hohe Produktivität, die wahnsinnig schnellen Ergebnisse mit geringeren Kosten werden mit Einschränkungen erkauft. Die zur Verfügung gestellte Komponentenbibliothek gibt vor, was die Plattform ermöglicht und was nicht. Eine grosse Anpassungsfähigkeit wie bei einem klassischen Entwicklungsprojekt gibt es hier nicht. Ausserdem bindet man sich an eine gewählte Plattform, die Migration von einer Plattform zu einer anderen ist oft mit einem Neubau der Applikation verbunden. Bei einer eigenen Entwicklung kann man das Hosting und den operativen Betrieb selber gestalten und ist nicht auf eine einzige Option festgelegt.

Von daher empfehlen wir diese Plattformen für zwei Kategorien von Applikationen:

  • Zum Prototyping: Wenn die Anforderungen noch sehr vage sind und gerade diese schnelle Generierung von Ergebnissen optimal ist. Wenn die finalen Anforderungen später bekannt sind, kann evaluiert werden, ob so eine No-Code-/Low-Code-Plattform weiterhin einen ausreichenden Funktionsumfang bietet.
  • Um Lösungen mit wenig Anpassungsbedarf zu bauen: Dazu gehören sehr oft Workflows, aber auch kleine Hilfsanwendungen, wie z.B. um neue Mitarbeiter einarbeiten zu können.

In solchen Anwendungsfällen bieten No-Code-/Low-Code-Plattformen große Vorteile gegenüber einer klassischen Entwicklung, vor allem wegen des geringen Zeitaufwands und des Kostenrahmens.

Herausforderungen bei der Applikationsmodernisierung

Was gibt es für Herausforderungen im Bereich Application Modernization? Wir sehen bei unseren Kunden regelmässig fünf problematische Themenfelder:

  • Das Unternehmen möchte agiler werden: z.B. bei E-Commerce, wenn das Kundeninteresse nicht groß genug ist und das volle Potenzial nicht ausgeschöpft werden kann. Der Grund kann sein, dass sich die Lösung gar nicht richtig skalieren lässt und Kunden entsprechend lange warten müssen. Das wiederrum bedeutet, dass die Kunden sich entscheiden irgendwo anders zu kaufen.
  • Das Unternehmen will neue Funktionen schnell realisieren: Hier kommen die Probleme der gealterten Lösung zum Tragen – weshalb solche Änderungen nicht schnell zum Einsatz gebracht werden können.
  • Die passende Expertise: Eine ältere Software mit allen Komponenten zu überblicken und auch auf einen neuen technologischen Stack zu heben, ist auch eine Herausforderung. Denn der Markt an Entwicklern ist angespannt, jeder sucht händeringend nach Fachleuten. Zum anderen wird das eigene Personal auch dafür benötigt, um die Anwendungen nach wie vor zu betreuen und operativ zu halten. Das Ganze mit Weiterbildung zu kombinieren ist sehr anspruchsvoll für die Mitarbeiter.
  • Gewünschte Interoperabilität: In der Regel finden wir auch mehrere Anwendungen vor, die  miteinander agieren und zusammen betrachtet werden müssen, um eine Modernisierungsroadmap zu generien. Da stellt sich häufig die Frage der finanziellen Sinnhaftigkeit. Lohnt der Invest oder nicht?
  • Auch die Mitarbeiter sind ein wichtiger Faktor, diese wollen mitgenommen werden damit auch die neue Lösung angenommen wird und sie bestmöglich unterstütz werden.

Anleitung für Ihre Modernisierungs-Roadmap

Um diese Probleme zu lösen, haben wir ein eigenes Advisory-Angebot, in dessen Rahmen wir die Anwendung anschauen – nicht nur auf technischer Ebene, sondern auch im Zusammenhang mit Ihren Geschäftsanforderungen. Mit diesen Informationen kann entschieden werden, ob eine kosteneffektive, schnelle Migration in die Cloud mit Infrastrukturdiensten möglich ist oder ob es für die Anwendung deutlich effektiver wäre die Anwendung stärker und neu zu strukturieren oder komplett neu zu bauen.

Der Ablauf ist wie folgt: Als erstes nehmen wir in der Discovery Phase die technischen Informationen mit Codeanalyse-Tools auf, um den technischen Zustand und auch eine erste Indikation zur Cloud Readiness dieser Anwendungen zu erhalten. Wir erfassen auch die Geschäftsanforderungen und führen eine «Well architected Framework»-Analyse durch, wie man sie auch von AWS und Azure kennt. Wir haben diese unter den SoftwareONE «Well architected Application Review» zusammengefasst und angeglichen.

Basierend auf diesen Informationen können wir dann jede Anwendung individuell betrachten und die beste Modernisierungsvorgehensweise festlegen. Das kann an der Stelle mit Re-Host oder Re-Platform stattfinden, eventuell mit minimalen Anpassungen in die Wolke gehoben werden oder die Vorteile der Cloud genutzt und die Anwendungen stärker umgebaut werden, um sie noch besser zu skalieren und die Anforderungen zu erfüllen.

In der finalen Alignment-Phase führen wir einen kompletten Business Case aus, um auch zahlenbasiert zu verdeutlichen, ob das Investment einen Mehrwehrt in einer überschaubaren Zeit für Sie generiert. Werden Sie agiler und können Ihre Produktivität steigern?

Wir betrachten die Kosteneffizienz pro Anwendung – und nicht einen Ansatz nach ein und demselben Schema für alle Applikationen. Somit werden auch die operativen Abläufe verbessert, Ineffizienzen im Deployment werden reduziert und generell die Risiken der alten Anwendung minimiert.

Digitale Transformation und die Automatisierung von Prozessen

Um unser Portfolio gesamtheitlich darzustellen, werde ich noch kurz auf die anderen Bereiche unserer Services eingehen.

Im Bereich Digital Transformation unterstützen wir unsere Kunden dabei, auch neue Geschäftsfelder zu entwickeln, Prozesse zu automatisieren, neue Businessmodelle auszutesten. Im Bereich «Intelligent Automation» sind wir sehr stark auf den Einsatz von Low-Code- und No-Code-Plattformen fokussiert, in vielen Fällen können mit der Nutzung dieser Technologien sehr schnell Ergebnisse bei der Automatisierung von Geschäftsprozessen erzielt werden.

Im Bereich «Data Plattform und Analytics» befassen wir uns in erster Linie damit, wie man große Datenmengen speichert, verwaltet und vor allem so auswerten kann, dass unsere Kunden neue Schlussfolgerungen und Erkenntnisse daraus gewinnen können. Diese dienen dann wiederrum als die Basis für wichtige Geschäftsentscheidungen.

Wichtig sind auch unsere Managed Application Services für die durch uns entwickelten Applikationen. Wenn Sie es wünschen, betreiben wir auch die Applikationen und stellen einen Support inklusive leistungsstarker SLA’s. So können Sie sicher sein, dass die Applikationen jederzeit sicher und stabil betrieben werden.

A pink, blue, and purple abstract background.

Applications Services

Mit unseren marktführenden Lösungen zur App-Modernisierung meistern Sie auch komplexe Business-Herausforderungen

Applications Services

Mit unseren marktführenden Lösungen zur App-Modernisierung meistern Sie auch komplexe Business-Herausforderungen

Author

SoftwareOne blog editorial team

SoftwareOne Redaktionsteam
Trend Scouts

IT Trends und branchenbezogene Neuigkeiten