Wie Devops kontinuierliche Architektur unterstützen kann

Eine kontinuierliche Architektur bietet Flexibilität zur Anpassung an neue Geschäftsanforderungen und Benutzerbedürfnisse. [...]

Foto: pixabay.com

Langwierige Entwurfsphasen für Softwarearchitekturen und -systeme waren früher ein notwendiger Schritt und manchmal eine Unternehmensvoraussetzung, bevor Ingenieurteams mit der Entwicklung von Anwendungen und Systemen begannen. Die Architekten prüften die Anforderungen auf hoher Ebene, berücksichtigten die Unternehmensstandards und entwarfen eine Architektur für die Plattformen, Entwurfsmuster und Komponenten, die im Softwareentwicklungsprozess verwendet werden sollten.

Einige Unternehmen gehen bei der Architekturplanung noch einen Schritt weiter, wenn neue Technologien oder Softwarekomponenten erforderlich sind. Sie haben Architekturprüfungsausschüsse eingerichtet, um Transparenz bei der Entscheidungsfindung zu schaffen, Risiken der Architektur aufzuzeigen, Budgets abzustimmen und andere Überlegungen zu prüfen, die sich auf nachhaltige Entwicklungspraktiken auswirken.

Andere stellen die Wirksamkeit von Architekturprüfungsausschüssen in Frage, weil sie die Autonomie behindern, den Entwicklungsfluss stören und zu übermäßiger Dokumentation führen können.

Agile Entwicklungsteams streben nach Autonomie und Eigenverantwortung, um auf Veränderungen reagieren zu können, anstatt einem vorgeschriebenen Plan zu folgen; dies ist einer der wichtigsten Werte im Manifest für agile Softwareentwicklung [weiterführende Artikel in Englisch]. Technologieführer hingegen streben nach wieder verwendbaren Plattformen, Entwicklungsstandards und nachhaltigen Betriebsmodellen für Effizienz, Qualität und Zuverlässigkeit bei gleichzeitiger Reduzierung der technischen Schulden.

Dieses Gleichgewicht kann durch die Prinzipien der kontinuierlichen Architektur erreicht werden. Das Continuous Architecture Manifesto unterstützt den Übergang von einem früheren Wasserfall-Ansatz, bei dem die Architektur hauptsächlich vor der Implementierung von Funktionen erstellt wurde, zu einem kontinuierlichen Ablauf“. Zu den Grundsätzen gehören die Architektur von „langfristigen Produkten, nicht nur Projektlösungen“ und die „Validierung der Architektur durch Implementierung“. Die Prinzipien eignen sich für Teams, die Cloud-Architekturen entwickeln, Devops Best Practices nutzen und Proofs of Concept und agile Spikes zur Validierung ihrer Lösungen einsetzen.

Ich habe mich an Pierre Pureur, Softwarearchitekt bei Continuous Architecture, gewandt, um seine Meinung zum Manifest und den Praktiken zu erfahren. Er sagte: „Der Continuous Architecture-Ansatz bietet einen bewährten Weg zur Erstellung und Pflege nachhaltiger Softwarearchitekturen im Zeitalter von Agile, Devops und Cloud. Er betont die Bedeutung grundlegender Aktivitäten, darunter die Konzentration auf Qualitätsattribute, die Steuerung von Architekturentscheidungen, die Kenntnis der technischen Schulden und die Implementierung von Feedbackschleifen.“

Automatisierte Erstellung von Entwicklungs- und Testumgebungen

Ein erster Ansatzpunkt für eine kontinuierliche Architektur kann in grundlegenden Devops-Praktiken wie der Automatisierung von Infrastructure as Code (IaC) liegen, um Entwicklungs- und Testumgebungen aufzusetzen. Die Automatisierung trägt dazu bei, die von Architekten gewünschten Standardkonfigurationen und -muster festzulegen, und sorgt für die von Entwicklungsteams geforderte Agilität.

Amir Rozenberg, Vice President of Product Management bei Quali, stimmt dem zu und erklärt: „Unternehmen, die Anwendungen bereitstellen, sind auf zuverlässige, leicht verfügbare und konforme Umgebungen angewiesen und sollten einfachen Zugriff darauf haben, um ihre kontinuierlichen Softwarebereitstellungspipelines zu betreiben.“

Rozenberg schlägt vor, dass Architekten mit Devops-Teams zusammenarbeiten, um Blaupausen für die Cloud-Infrastruktur zu erstellen. Er sagt: „Devops-Teams sollten Umgebungs-Blueprints modellieren, um die richtige Cloud-Infrastruktur für ihre Geschäftspartner wie Entwicklungsteams, Produktmanager, Tester und Pre-Sales in einer Selbstbedienungsweise bereitzustellen, die lange Wartezeiten vermeidet.“

Tim Lucas, Gründer und Co-CEO von Buildkite, stimmt dem zu. „Eine kontinuierliche Architektur, sowohl technisch als auch kulturell, erfordert das Engagement des Entwicklungsteams und des Unternehmens„, sagt er. Ein wichtiges Prinzip, das er vorschlägt, ist die Schaffung einer speziellen Funktion, die sich auf die Bedürfnisse der Entwickler konzentriert und für diese verantwortlich ist. Sie können die Zufriedenheit der Entwickler verbessern, indem Sie es den Entwicklungsteams erleichtern, die für die Entwicklung und das Testen ihres Codes erforderlichen Umgebungen und Bereitstellungspipelines selbst zu verwalten.

Berücksichtigung der Kunden- und Nutzerbedürfnisse bei der Definition von Produktionsarchitekturen

Während Devops-Teams Produktivität durch Automatisierung anstreben, sind Unternehmensleiter, darunter Produktmanager, Datenwissenschaftler und Compliance-Beauftragte, auch an der Flexibilität der Architektur in Produktionsumgebungen interessiert. Das bedeutet oft, dass Produktionsumgebungen je nach Benutzerbedarf auf- und abgebaut werden müssen. Manchmal bedeutet dies auch, dass mehrere Umgebungen aufgrund von Compliance-Anforderungen eingerichtet werden müssen.

Lucas fügt ein wichtiges Designprinzip für Produktionsumgebungen hinzu und schlägt vor, „in die Reduzierung von Fehlern zu investieren, denn damit etwas kontinuierlich läuft, müssen Unterbrechungen reduziert werden.“

Für Datenwissenschaftler gelten bei der Integration und Bereitstellung oft andere Anforderungen als für Softwareentwicklungsteams. Michael Berthold, Mitbegründer und CEO von KNIME, sagt: „Der Produktionsprozess der Datenwissenschaftler, der während der Integration aufgebaut wird, unterscheidet sich von dem, den das Datenwissenschaftsteam erstellt hat, und die Überwachung in der Produktion kann zu automatischen Aktualisierungen und Neuimplementierungen führen.“

Die Überwachung der Nutzung und der Infrastruktur kann das Hoch- und Runterskalieren von Umgebungen auslösen, aber die Überwachung von Modelops kann auch eine Konfigurationsänderung oder eine Neuverteilung auslösen. Berthold sagt, dass für Datenwissenschaft und Pipelines für maschinelles Lernen „der Bereitstellungszyklus automatisch durch den Überwachungsprozess ausgelöst werden kann, der den Datenwissenschaftlichen Prozess in der Produktion überprüft, und nur eine schwerwiegende Änderung erzwingt einen Neustart des gesamten Prozesses.“

Architektur muss sich auf zukünftige Möglichkeiten konzentrieren

Unternehmensleiter konzentrieren sich oft auf kurzfristige Möglichkeiten, und Devops-Teams versuchen ihr Bestes, um modulare und erweiterbare Softwarekomponenten zu entwickeln. Einige Best Practices zur Unterstützung einer kontinuierlichen Architektur sind:

  • Entwicklung mit Cloud-nativen und serverlosen Architekturen
  • Standardisierung von Bereitstellungspipelines
  • Unterstützung von kontinuierlichen Testverfahren
  • Aufbau von Microservices und Unterstützung des API-Lebenszyklus
  • Nutzung von Low-Code-Lösungen, bei denen Plattformen individuelle Lösungen vereinfachen und helfen, diese zu vermeiden

Vince Padua, Executive VP und Chief Innovation and Technology Officer bei Axway, konzentriert sich auf offene Architekturen und sagt: „B-to-B-Integration und -Zusammenarbeit werden die digitale Transformation auf der Grundlage von APIs und der Cloud beschleunigen. Da Cloud-native und API-first-Ansätze zu einer offenen Architektur gereift sind, haben sich die Zeit und die Kosten für Innovationen durch Partnerschaften und Zusammenarbeit deutlich verringert.“

Viele Unternehmen investieren jetzt in kundenspezifische Software für Kundenerlebnisse, Integrationen und digitalisierte Arbeitsabläufe und müssen Best Practices berücksichtigen, um ihre Investitionen zukunftssicher zu machen. Padua schlägt vor: „Da die Unternehmensoberfläche API-zentriert ist, wird mehr Innovation durch die Entflechtung und Neubündelung von Angeboten und Lieferketten über Branchen und Vertikalen hinweg freigesetzt. Es gibt beträchtliche Investitionen und Start-up-Wachstumsmöglichkeiten bei B-to-B-Angeboten für Reisen, Logistik, Lagerhaltung, Fertigung, Kreditvergabe, Versicherungen und Boutique-Einzelhandel.“

Um eine kontinuierliche Architektur zu praktizieren, muss ein Gleichgewicht zwischen den aktuellen Anforderungen des Unternehmens und den Anforderungen der Devops-Teams hergestellt werden, die produktiv sein müssen, während gleichzeitig eine Vision darüber besteht, wie das Unternehmen zukünftige Änderungen, Erweiterungen und neue Anforderungen unterstützen kann.

Ein Teil der Erkenntnis ist, dass sich das Team, das an der heutigen Implementierung arbeitet, im Laufe der Zeit wahrscheinlich verändern wird. Daher suchen Architekten nach Bausteinlösungen, die leicht zu erlernen sind, neuen Teammitgliedern die Möglichkeit geben, ohne Angst Codeänderungen vorzunehmen, und die über eine ausreichende Testabdeckung verfügen, um Änderungen zu validieren.

Kontinuierliche Architektur erkennt die Notwendigkeit an, mit wiederverwendbaren Mustern zu entwickeln, erkennt aber auch an, dass es unrealistisch ist, eine perfekte Blaupause zu erstellen, wenn man bedenkt, wie schnell sich Geschäftsanforderungen ändern und Technologien weiterentwickelt werden.

*Isaac Sacolick ist Präsident von StarCIO und der Autor des Amazon-Bestsellers Driving Digital: The Leader’s Guide to Business Transformation through Technology, der viele Praktiken wie agile Planung, Devops und Data Science behandelt, die für erfolgreiche digitale Transformationsprogramme entscheidend sind. Sacolick ist ein anerkannter Top-Social-CIO und Influencer im Bereich der digitalen Transformation. Er hat mehr als 700 Artikel auf InfoWorld.com, CIO.com, seinem Blog Social, Agile, and Transformation und anderen Websites veröffentlicht.


Mehr Artikel

News

Große Sprachmodelle und Data Security: Sicherheitsfragen rund um LLMs

Bei der Entwicklung von Strategien zur Verbesserung der Datensicherheit in KI-Workloads ist es entscheidend, die Perspektive zu ändern und KI als eine Person zu betrachten, die anfällig für Social-Engineering-Angriffe ist. Diese Analogie kann Unternehmen helfen, die Schwachstellen und Bedrohungen, denen KI-Systeme ausgesetzt sind, besser zu verstehen und robustere Sicherheitsmaßnahmen zu entwickeln. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*