Erkunden der DevOps-Architektur
Eine gut gestaltete Architektur ist wie eine Autobahn, die dem Endbenutzer schnell einen geschäftlichen Wert liefern kann. 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
Die langfristige Rentabilität jeder Architektur erfordert, dass der Entwurf, die Implementierung, das Upgrade und die unvermeidliche Veränderung erfolgreich sind.
Architektur ist solange abstrakt, bis sie operationalisiert und aktiv verwendet wird.
William LeMessurier, einer der bekanntesten Bauarchitekten der Vereinigten Staaten, diente als Design- und Bauberater auf dem innovativen Citicorp Hauptsitz Tower 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
Softwarearchitektur befasst sich mit der Entscheidung grundsätzlicher Strukturprinzipien, die nach der Implementierung kostspielig zu ändern sind.
Zu ihren Merkmalen gehören:
- Projektbeteiligte, die Geschäftsbeteiligte, Anwendungsteams, QA-Teams, Vorgänge, Sicherheit und Benutzer umfassen können.
- Trennung von Bedenken: Um komplexität zu reduzieren, trennen Sie die Bedenken, die das Design fördern.
- Qualitätsgesteuerte Attribute: einschließlich Skalierbarkeit, Erweiterbarkeit, Zuverlässigkeit, Wartung und Sicherheit.
- Konzeptionelle Integrität: Die Softwarearchitektur stellt eine allgemeine Vision dessen dar, was sie tun sollte und wie sie es tun sollte, um Architektur, Daten und Prozessintegrität aufrechtzuerhalten.
- Kognitive Einschränkungen: Organisationen sind darauf beschränkt, Designs zu produzieren, die Kopien ihrer Kommunikationsstrukturen sind.
- Wiederkehrende Stile: Die Disziplin der Softwarearchitektur erfordert, dass wir Standardmethoden entwickeln, um wiederkehrende Bedenken zu beheben.
Jede Architektur befasst sich mit "-ilities":
- Überprüfbarkeit
- Verfügbarkeit
- Kompatibilität
- Kombinierbarkeit
- Konfigurierbarkeit
- Barrierefreiheit
- Anpassungsfähigkeit
- Erschwinglichkeit
- Anpassbarkeit
- Nachweisbarkeit
- Bereitstellbarkeit
- Haltbarkeit
- Brauchbarkeit
- 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; Der Ausgleich der Vor- und Nachteile jeder architekturlichen Entscheidung führt zu den Nachteilen, die von Architekten häufig beklagt werden.
In den letzten Jahren haben inkrementelle Entwicklungen in kerntechnischen Verfahren für die Softwareentwicklung die Grundlage dafür gelegt, wie sich die Architektur im Laufe der Zeit ändert und wie wichtige architekturbezogene Merkmale geschützt werden, während diese Entwicklung eintritt.
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:
"Eine ist die kulturelle Komponente. Sicher ist der andere Teil Werkzeuge und Technologie. Der dritte Teil ist Architektur. Sie benötigen optimierte technologische Prozesse, wozu auch die Automatisierung gehört. Eine weitere Voraussetzung ist eine hohe Vertrauenskultur. Und es ist Architektur , die es Ihnen ermöglicht, dorthin zu gelangen."
Im Buch Accelerate vorgestellte Forschung zeigt keine signifikante Korrelation zwischen Systemtyp und Lieferleistung für viele Arten von Systemen, einschließlich neuer Systeme, Systeme für Datensätze, Standardsoftware, Mainframesoftware und eingebetteter Software. Wichtig ist die Bereitstellungsfähigkeit und Testbarkeit.
Tipp
Eine gute Architektur führt zu einer besseren Bereitstellbarkeit und Prüfbarkeit.
Architektur und Organisation
Conways Gesetz ist nach Computerprogrammierer Melvin Conway benannt, der die Idee 1967 eingeführt hat. Es besagt, dass ein Systemdesign von den Kommunikationsstrukturen der Organisationen, die dieses entwerfen, beeinflusst wird:
Wichtig
Conway-Gesetz: Jede Organisation, die ein System entwickelt (allgemein definiert), erzeugt einen Entwurf, dessen Struktur eine Kopie 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?
Bereitschaft und Fähigkeit, zu lernen.