Erkunden der DevOps-Architektur
Eine sorgfältig gestaltete Architektur liefert dem Endbenutzer schnell geschäftlichen Nutzen und ist mit einer Autobahn vergleichbar. Wenn sie nicht gut konzipiert ist, ist sie wie eine marode Brücke, die Sie daran hindert, Ihr Ziel zu erreichen.
Einführung in die Softwarearchitektur
Für die langfristige Funktionsfähigkeit einer Architektur müssen die Faktoren Design, Implementierung, Upgrade und unvermeidbare Änderungen erfolgreich umgesetzt werden.
Architektur ist solange abstrakt, bis sie operationalisiert und aktiv verwendet wird.
William LeMessurier, einer der bedeutendsten Hochbauarchitekten in den USA, war Berater bei der Planung und dem Bau des innovativen Hauptquartierturms der Citigroup-Bank in New York. Der Bau des Turm wurde 1977 fertiggestellt. Ein Jahr später rief ihn ein Student der Princeton University an, um ihn auf einen möglichen Mangel am Entwurf des Turms hinzuweisen, den dieser beim Studieren des Designs entdeckte. LeMessurier stellte fest, dass das Gebäude in der Tat statische Mängel aufwies.
Das Gebäude würde nicht in der Lage sein, Windböen von 70 Meilen pro Stunde, was 113 km/h entspricht, standzuhalten – eine Situation, die laut Wettertabellen mindestens einmal alle 55 Jahre in New York City auftreten würde. In diesem Fall würden die Fugen des Gebäudes nachgeben, und das Gebäude würde ab dem 13. Stockwerk einstürzen. Der Turm wurde zu diesem Zeitpunkt vollständig genutzt. LeMessurier musste die Eigentümer und die Verantwortlichen der Stadt informieren.
Er stand vor einer komplexen und schwierigen beruflichen Herausforderung. Er musste einige Personen auf den strukturellen Mangel aufmerksam machen und sie für die Kooperation bei der Behebung des Mangels gewinnen, bevor ein Hurrikan das Gebäude zum Einsturz brachte.
In jenem Sommer steuerte Hurrikan Ella auf die Stadt zu. Das Gebäude war noch rechtzeitig gesichert worden. Seitdem steht der Citicorp-Turm fest und sicher.
Wichtig
Bei der Softwarearchitektur geht es darum, grundlegende strukturelle Entscheidungen zu treffen, die, einmal implementiert, nur mit hohem Aufwand geändert werden können.
Zu ihren Merkmalen gehören:
- Stakeholder: Stakeholder können Projektbeteiligte, Anwendungsteams, QA-Teams, Personen aus dem operativen Bereich, Sicherheitsverantwortliche und Benutzer sein.
- Trennung der Belange: Zur Reduzierung der Komplexität werden die Aspekte, die das Design bestimmen, voneinander getrennt.
- Qualitätsbezogene Attribute: Zu diesen Attributen gehören Skalierbarkeit, Erweiterbarkeit, Zuverlässigkeit, Wartbarkeit und Sicherheit.
- Konzeptionelle Integrität: Die Softwarearchitektur stellt eine Gesamtvision dessen dar, was sie tun soll und wie sie es tun soll, um die Integrität der Architektur, der Daten und der Prozesse zu wahren.
- Kognitive Einschränkungen: Organisationen sind beim Erstellen des Designs insofern eingeschränkt, da das Design die Kommunikationsstrukturen abbilden muss.
- Wiederkehrende Stile: Die Disziplin der Softwarearchitektur erfordert die Entwicklung von Standardmethoden zur Behebung wiederkehrender Probleme.
Jede Architektur berücksichtigt Qualitätsattribute:
- Überprüfbarkeit
- availability
- Kompatibilität
- Kombinierbarkeit
- Konfigurierbarkeit
- Barrierefreiheit
- Anpassungsfähigkeit
- Erschwinglichkeit
- Anpassbarkeit
- Nachweisbarkeit
- Bereitstellbarkeit
- durability
- usability
- Erweiterbarkeit
- Flexibilität
- Interoperabilität
- Verwaltbarkeit
- Portabilität
- Vorhersagbarkeit
- Wiederherstellbarkeit
- Zuverlässigkeit
- Wiederholbarkeit
- Wiederverwendbarkeit
- Skalierbarkeit
- Wartbarkeit
- Soziabilität
- Einfachheit
- Prüfbarkeit
- Nachhaltigkeit
- Nachverfolgbarkeit
- Reproduzierbarkeit
Beim Erstellen von Software müssen Softwarearchitekten die wichtigsten dieser Fähigkeiten bestimmen. Viele dieser Faktoren stehen jedoch im Widerspruch zueinander.
Zum Beispiel kann es schwierig sein, sowohl eine hohe Leistung als auch eine hohe Skalierbarkeit zu erreichen. Dies erfordert eine sorgfältige Abstimmung von Architektur, Betrieb und vielen anderen Faktoren.
Dieser Entscheidungsprozess ist ein Balanceakt; das Abwägen der Vor- und Nachteile jeder architektonischen Entscheidung führt zu den von Architekten so häufig beklagten Kompromissen.
In den letzten Jahren haben inkrementelle Entwicklungen in den grundlegenden Engineeringmethoden für Softwareentwicklung den Anstoß zu einem Umdenken gegeben, wie sich Architektur im Laufe der Zeit verändert, und wie bei dieser Entwicklung wichtige Architekturmerkmale geschützt werden können.
DevOps-Architektur
Gene Kim ist ein renommierter Forscher, Autor und Visionär im Bereich DevOps. Er identifiziert drei Faktoren, die für die Umsetzung von DevOps erforderlich sind:
„Erstens die kulturelle Komponente. Zweitens natürlich Tools und Technologie. Drittens die Architektur. Sie benötigen optimierte technologische Prozesse, wozu auch die Automatisierung gehört. Eine weitere Voraussetzung ist eine hohe Vertrauenskultur. Mithilfe der entsprechenden Architektur können Sie dieses Ziel erreichen.“
Die im Buch Accelerate beschriebenen Forschungsergebnisse belegen keinen signifikanten Zusammenhang zwischen Systemtyp und Bereitstellungsleistung für viele Arten von Systemen, einschließlich neuer Systeme, Datensatzsysteme, kommerzieller Softwarepakete, Mainframesoftware und eingebetteter Software. Wichtige Aspekte sind Bereitstellbarkeit und Prüfbarkeit.
Tipp
Eine gute Architektur führt zu einer besseren Bereitstellbarkeit und Prüfbarkeit.
Architektur und Organisation
Das Gesetz von Conway ist ein nach dem Informatiker Melvin Conway benanntes Konzept, der die Idee 1967 einführte. Es besagt, dass ein Systemdesign von den Kommunikationsstrukturen der Organisationen, die dieses entwerfen, beeinflusst wird:
Wichtig
Gesetz von Conway: Jede Organisation, die ein System (im weitesten Sinne) entwirft, erstellt ein Design, dessen Struktur ein Abbild der Kommunikationsstruktur der Organisation ist.
Das Gesetz basiert auf der Annahme, dass für das Funktionieren eines Softwaremoduls mehrere Autoren häufig miteinander kommunizieren müssen.
Deshalb spiegelt die Schnittstellenstruktur der Software eines Systems die sozialen Grenzen der jeweiligen Organisation wider, über die hinaus sich die Kommunikation schwieriger gestaltet.
DevOps in Unternehmen – Kompetenzen des Architekten
Architekten entwickeln und optimieren unterschiedliche Kompetenzen, wie z. B:
- In größeren Zusammenhängen denken
- Systemdenken
- Unternehmenswissen
- Soziale Kompetenz
- Kommunikations- und Führungsqualitäten
- Kenntnisse der technischen Architektur
- Kenntnisse im Bereich IT-Finanzmanagement
- Zeitmanagement
- Grundkenntnisse über die Verwendung von EA-Frameworks (Enterprise Architecture)
- Fähigkeit, Führungskräften IT zu erklären
- Präsentationsfähigkeiten
- Coachingfähigkeiten
- Kenntnisse der Datenarchitektur und des IT-Betriebs
Wichtig
Aber welche ist die wichtigste Fähigkeit für den Unternehmenserfolg im 21. Jahrhundert?
Die Bereitschaft und Fähigkeit zu lernen.