Lesezeit: 2 Minuten
Architekturarbeit im Zeitalter Cloud-nativer Architekturen und DevOps-Teams - Teil 1
Im Jahr 2020 erlebten wir den Beginn einer nicht vorhergesehenen Beschleunigung der weltweiten Digitalisierungsbestrebungen. Die Digitalisierung ist auf dem Vormarsch oder sogar „per Turbo“ beschleunigt worden. Dabei ändert sich die Erwartungshaltung der Menschen an Software zunehmend. Statt Software „herunterzuladen” wird vorzugsweise eine agile Bereitstellung von (Self-) Services präferiert.Parallel zur Erwartungshaltung ist auch ein anderes Nutzungsverhalten feststellbar. Der Trend geht hin zu mobilen Endgeräten mit perfekt aufbereiteten Informationen die sich in jeder Alltagssituation schnell und unkompliziert konsumieren lassen, Informationen in reiner Textform werden zunehmend als langweilig empfunden - kurze Videoclips und interaktive Chats lösen die klassischen redaktionellen Inhalte zunehmend ab.
Um der Erwartungshaltung und dem neuen Nutzerverhalten der digitalen Konsumenten gerecht zu werden, entstehen gerade neue Softwarearchitekturen, die auf verteilten Infrastruktur-Plattformen aufbauen und mit aktuellen Software Engineering Vorgehensweisen entwickelt werden.
Die neuen Dienste sollen selbstverständlich der „Cloud-Philosophie” entsprechen und damit jederzeit erstellbar, buchbar, abonnierbar, von jedem Ort online erreichbar und immer verfügbar sein. Die globale Erreichbarkeit erfordert zusätzliche Sicherheitsmaßnahmen, so müssen beispielsweise alle verarbeiteten Daten vor unerlaubtem Zugriff geschützt werden. Die Beseitigung von Fehlern und Störsituationen findet erwartungsgemäß auch rund um die Uhr statt und darf die Verfügbarkeit der Dienste nicht einschränken.
Die Erreichbarkeit dieser Ziele ist nicht trivial. Der Impuls ging von vielen Start-Ups aus und führte dazu, dass sich auch die großen IT-Organisationen in diese Richtung bewegen.
Alle modernen Cloud-Provider sind mit relativ überschaubaren Ideen gestartet und haben ihre Plattformen anderen kleinen Anbietern geöffnet, die dazu beigetragen haben, dass wir heute so ein polyglottes Ökosystem wie die CNCF (Cloud Native Computing Foundation) haben und jeder seine Ideen schnell und unkompliziert in die digitale Welt bringen kann.
Im Grunde genommen kann man hier von einer Demokratisierung der IT durch die Cloud sprechen. Alle Protagonisten in der IT - seien es Start-Ups, kleinere mittelständische Unternehmen oder große IT-Organisationen - bekommen unkomplizierten Zugriff auf IT-Ressourcen ohne langfristige Investitionen zu tätigen. Gleichzeitig entsteht eine leistungsfähige Community, die auch das nötige Know-how für die Cloud-native Entwicklung zu den Teams in der Software- bzw. Produktentwicklung tragen.
Beschleunigte Digitalisierung erzwingt IT-Neuausrichtung
Um die oben genannten Cloud-typischen, nicht-funktionalen Anforderungen in einem IT-Service zu erfüllen, gilt es derzeit – auch aufgrund vieler Innovationen der Technologiehersteller – als alternativlos, sich der „Cloud-native-Philosophie“ hinzugeben. Dabei stellt man fest, dass der Digitalisierungserfolg stark davon abhängt, wie gut es einer Organisation gelingt, sich in den folgenden Disziplinen auszurichten:
Organisation, Prozesse und Methoden
Das Schlagwort in dieser Disziplin ist Agilität. Es gibt viele verschiedene und auch bewährte Methoden (SAFe®, Scrum, Kanban), aus denen die am besten passenden ausgewählt oder kombiniert werden können.
Organisations- und Teamkultur
Um das hohe Tempo und die Qualitätsansprüche erfüllen zu können, ist ein Kulturwandel unvermeidbar. Mit DevOps & Continuous Improvement, lebenslangem Lernen, Fehlerkultur und Lean Culture seien nur ein paar Schlagworte genannt, die es zu berücksichtigen gilt.
Architektur
Die vielen neuen Technologien, Plattformen und Kommunikationsbeziehungen gehen auch mit neuen Vorgehensweisen einher, anpassbare Softwaresysteme zu bauen und zu betreiben. Hier sollte man sich mit Domain Driven Design, evolutionären Architekturen, Microservices, Cloud-native Architekturen, Event Driven Architectures und vor allem dem Thema APIs auseinandersetzen.
Technologie
Cloud-native Technologien, Infrastructure as Code, Container-Orchestrierung (Kubernetes, etc.), neue Datenbanksysteme (NoSQL, Document Stores, Key-Value Stores, Object Stores, ...) und asynchrone Kommunikation (Messaging, Streaming, Events, ...) sind nur die wichtigsten Technologiefelder, mit denen man sich beschäftigen sollte.
Welchen Einfluss hat diese Neuausrichtung auf die Aufgabenstellung im Bereich der Softwarearchitektur? Es wirkt logisch, dass es starke Berührungspunkte mit den Disziplinen „Architektur“ und „Technologie“ gibt, aber welchen Einfluss haben Organisation, Prozesse, Methoden und Kulturaspekte auf die Architekturarbeit?
Das nächste Kapitel "Allgemeine Aufgaben eines Softwarearchitekten" liest du im nächsten Blogbeitrag am 10. November 2022.