Die fortlaufende Modernisierung von Anwendungen ist heute ein notwendiger Schritt für Unternehmen, um wettbewerbsfähig zu bleiben – sei es durch Refactoring, neue Plattformen oder neue Architekturen.
In der heutigen Cloud-Ära haben Entwickler mehr Möglichkeiten denn je und viele Unternehmen stehen vor der Herausforderung, den für sie am besten geeigneten Weg zu finden. Denn die Möglichkeiten der App-Modernisierung gehen weit über den simplen Austausch veralteter Hardware hinaus. Welche Vorteile sich durch die Modernisierung von Anwendungen konkret ergeben und welcher strategische Ansatz die App-Modernisierung zum Erfolg führen kann, erklärt Chief Strategy Officer Ori Pekelman von Platform.sh.
Betrachten wir zunächst kurz die wichtigsten Gründe, die die Anwendungsmodernisierung zu einem wichtigen Hebel für die Wettbewerbsfähigkeit für Unternehmen machen:
- Zeitgemäße IT: Nur durch regemäßige Updates veralteter Hardware und Software wird die technische Unterstützung von Organisationen gewährleistet und die zugrunde liegende Infrastruktur verbessert. Unternehmen profitieren u.a. von erhöhten Sicherheitsstandards, effizienteren Betriebsabläufen, gesteigerter Zuverlässigkeit und Skalierbarkeit.
- Kostenersparnis: Die Gesamtbetriebskosten von technischen Abläufen reduzieren sich – einerseits durch die Senkung der Ausgaben für teure Hardware und Software, andererseits durch eine verbesserte Ressourcenauslastung.
- Schnellere Markteinführung: Mithilfe modernisierter Apps können Unternehmen ihre Planungsphasen für die Entwicklung und Einführung neuer Produkte und Dienstleistungen beschleunigen und somit neue Funktionen und Updates schneller auf den Markt bringen. Dies ist besonders in schnelllebigen Branchen wichtig, in denen Wettbewerbsvorteile oft von schnellen Innovationszyklen abhängen.
- Höhere Agilität und Skalierbarkeit: Eine moderne Anwendungslandschaft ermöglicht es Unternehmen, schnell auf veränderte Marktanforderungen sowie auf Kundenbedürfnisse zu reagieren. Geschäftsprozesse können dadurch optimiert und beschleunigt werden, was die Wettbewerbsfähigkeit steigert.
Die Notwendigkeit einer fortlaufenden Modernisierung wird auch von den wenigsten Entscheidern in Frage gestellt. Die Herausforderungen liegen vielmehr in der Umsetzung, für die im Arbeitsalltag häufig die Zeit oder der Fokus fehlen. Daher ist es besonders wichtig, einen passenden strategischen Ansatz zu finden, um dieses wichtige Thema umsetzen zu können.
Abwägungen für die Modernisierungsstrategie: In-House versus Outsourcing
Die Transformation zu einer modernisierten Anwendungslandschaft ist vielschichtig, und die optimale Vorgehensweise ist nicht immer eindeutig. Viele Unternehmen stehen zunächst vor der Herausforderung zu entscheiden, ob sie vollständig auf eigene Entwicklungen oder den Einsatz von Platform as a Service (PaaS) setzen und ob das interne Management aller Anwendungen besser ist als eine ausgelagerte Lösung.
In der Praxis hat sich ein hybrider Ansatz als besonders vorteilhaft erwiesen. Dabei setzen Unternehmen auf eine Kombination aus eigenen Entwicklungen und der Nutzung von PaaS-Lösungen sowie eine ausgewogene Balance zwischen interner Verwaltung und Outsourcing.
Ein Nachteil einer rein internen Verwaltung des Prozesses besteht oft ein einem mangelnden technischen Verständnis für die spezifischen Anforderungen einer bestimmten Cloud-Umgebung. Infolgedessen wird häufig der vermeintlich einfache Weg des “Lift-and-Shift” gewählt, bei dem Anwendungen einfach in die Cloud verschoben werden, ohne dabei die vielfältigen Vorteile der Cloud-Plattformen zu nutzen. Dies kann langfristig zu ineffizienter Nutzung und höheren Kosten führen.
Auf der anderen Seite kann ein übermäßiges Outsourcing zu einer starken Abhängigkeit von einem bestimmten Cloud-Anbieter führen. Einmal festgelegt, kann es schwierig sein, zu einem anderen Anbieter zu wechseln. Außerdem können Abkürzungen, die während des ursprünglichen Projekts zur Beschleunigung genutzt wurden, langfristig zu höheren Kosten führen. Entwickler streben in der Regel zumindest ein gewisses Maß an Abstraktion an, um Flexibilität und Portabilität zu gewährleisten und nicht zu stark an einen einzelnen Anbieter gebunden zu sein.
Eine Kombination aus eigenen Entwicklungen und der Nutzung von PaaS-Lösungen sowie eine ausgewogene Balance zwischen interner Verwaltung und Outsourcing vereint das Beste aus beiden Welten. Durch diese ganzheitliche Herangehensweise erhalten Unternehmen “kostenfrei” ein beträchtliches Maß an Abstraktion und können bei richtiger Handhabung das volle Potenzial der Cloud-Plattform ausschöpfen und wichtige Vorteile wie horizontale Skalierbarkeit und Ausfallsicherheit optimal nutzen.
Erkennen und Vermeiden von Anti-Pattern
Eine einfache Konfiguration in einem Docker-Container oder einem Virtual Machine-Image zu verpacken und auf einer Infrastructure as a Service (IaaS)-Plattform bereitzustellen, wird allein nicht den gewünschten Nutzen für die App-Modernisierung bringen. Um eine erfolgreiche App-Modernisierung zu erreichen, ist es entscheidend, mögliche Anti-Patterns in der Organisation zu erkennen. Diese Muster sind häufig auftretende Reaktionen auf wiederkehrende Probleme, die zunächst scheinbar effektiv erscheinen, jedoch langfristig mehr negative als positive Auswirkungen haben. Hier sind drei Beispiele, die sich kontraproduktiv auswirken können:
Schwache Trennung von Code und Konfiguration: Entwickler sollten in der Lage sein, viele parallele Instanzen jeder Anwendung als separate Umgebungen auszuführen. Ein Hinweis auf eine fehlende Trennung von Code und Konfiguration sind fest codierte URLs und Service-Anmeldeinformationen. Erst wenn kurzlebige Vorschauumgebungen ausgeführt werden, die schnell gestartet und schnell wieder gelöscht werden können, ist eine Umgebung wirklich cloudfähig oder „Cloud Ready“.
Schwache Trennung von Lese-/Schreibzugriff: Eine Cloud-Bereitstellung sollte einen Schritt (Build Step) beinhalten, der nicht veränderbare Objekte (Artefacts) erstellt, die nicht überschrieben werden können. Eine klare Trennung ist wichtig, um die Integrität der Daten zu gewährleisten.
Manuelle Konfiguration von Diensten: Manuelle Konfigurationen können zu Problemen führen, da sie oft fehleranfällig sind. Entwickler sollten in der Lage sein, “Standard”-Dienste ohne manuelle Konfiguration auszuführen.
Anti-Patterns treten in Anwendungen auf, unabhängig davon, ob sie in der Cloud, auf einem verwalteten Hosting-System oder vor Ort betrieben werden. Das Erkennen dieser Muster ermöglicht den Entwicklern, eine technische Modernisierung durchzuführen, unabhängig davon, ob der geplante Umzug in die Cloud stattfindet oder nicht. Eine zentrale Richtlinie, besteht in der Möglichkeit, eine beliebige Anzahl von Instanzen für jedes Element auszuführen. Sobald dies erreicht ist, lassen sich die meisten anderen Aufgaben erledigen, ohne dass Crons (Command run on notice) in eigenständigen Workern ausgelagert werden, oder eine Aufteilung des monolithischen Applikation in Microservices erforderlich ist. Eine skalierbarer, gut verwaltete Gesamtstruktur kann auch einen erheblichen Wert darstellen.
Fallstricke und Kosten
Wenn Entwickler bestimmte technische Grenzen nicht beachten und die notwendige Vorbereitung außer Acht lassen, können die Kosten schnell aus dem Ruder laufen. Eine kontinuierliche Nutzung großer Hardware-Ressourcen anstelle einer gezielten Verwendung kleiner, vorübergehender Ressourcen führt in der Regel im Laufe der Zeit zu erheblich höheren Ausgaben. Komplett neu geschriebene Applikationen misslingen oft, wenn man sofort alle Vorteile erzielen möchte. Daher ist es ratsam, den Modernisierungsprozess schrittweise anzugehen und mit einer leicht skalierbaren und robusten Version des Originals zu starten. Ein solcher Ansatz ermöglicht meist ein effizienteres Vorgehen.
„Die Modernisierung einer App beginnt damit, die Beziehung zwischen der Anwendung und ihrer Infrastruktur anzupassen und Annahmen zu überprüfen. Indem Hindernisse in der aktuellen Umsetzung der Organisation identifiziert und behoben werden, wird die Umstellung weniger kompliziert und das Endresultat wird einen Mehrwert bieten“, fasst Ori Pekelman, Chief Strategy Officer und Mitbegründer von Platform.sh, zusammen. „Es ist wichtig, den passenden Ausgangspunkt festzulegen, sodass zukünftige Entscheidungen auf einer Kosten-Nutzen-Analyse basieren können. Eine horizontale Skalierbarkeit und eine robuste Backup-Strategie sind entscheidend, um variable Daten effektiv verwalten zu können und einen reibungslosen Ablauf zu gewährleisten.“
www.platform.sh/regions/german