Freitag, 19. Mai 2023
SRE - Postmortems
Donnerstag, 18. Mai 2023
SRE - Reaktion auf Vorfälle (Incident Response)
Was ist ein Vorfall?
Ein Zwischenfall liegt vor, wenn etwas Bedeutendes passiert, das Sie dazu zwingt, Ihren Weg und ihre normalen Handlungen zu ändern.
In der Softwarebranche können Zwischenfälle ähnlich verlaufen. In der Regel handelt es sich um einen Fehler, der auf eine Änderung im System (entweder im System selbst oder in den Eingaben, die das System erhält) oder auf eine Änderung in der Umgebung, in der das System läuft, zurückzuführen ist. Das System selbst ändert sich in der Regel durch die Bereitstellung von Code oder durch eine Änderung des Umgangs, in dem das System arbeitet.
Die Tatsache dass die Welt aus ständigem Chaos besteht, bedeutet, dass der Wandel aus jeder Richtung kommen kann. Zwischenfälle sind oft der Beweis dafür, dass wir Menschen nicht allmächtig sind. Wir schreiben die Software und wissen nicht alles, so dass Ereignisse eintreten, die wir nicht eingeplant haben, was oft dazu führen kann, dass die Software auf eine Art und Weise agiert, die uns nicht zusagt.
Was ist die Reaktion auf Vorfälle?
Die Reaktion auf einen Vorfall besteht in der Regel aus einer Reihe von Maßnahmen:
=> Bemerken, dass etwas nicht in Ordnung ist.
=> Kommunizieren, dass etwas nicht in Ordnung ist
=> Etwas tun, um die Dinge in Ordnung zu bringen
Alarmierung
Wann sollten Sie sich melden?
Wie schlagen Sie Alarm?
Was gehört in eine Warnmeldung?
Wen alarmieren Sie?
Dienstag, 16. Mai 2023
SRE - Monitoring
Monitoring wird im Wörterbuch definiert als „den Fortschritt oder die Qualität (von etwas) über einen bestimmten Zeitraum beobachten und überprüfen; systematisch überprüfen“.
Warum Monitoring?
Polling-Anwednungen
Push-Anwendungen:
Anzeige von Überwachungsinformationen
Verwaltung und Pflege von Überwachungsdaten
SRE - die nächste Stufe von DevOps Teil III
Ist SRE (Site Reliability Engineering) die nächste Stufe von DevOps?
Die Antwort auf diese Frage lautet: SRE bildet eine Brücke zwischen DEV und OPs.
Eine logische nächste Frage wäre in diesem Fall: Ist eine Brücke notwendig?
Wir werden feststellen das es nicht ausreich, Entwickler und Betrieb in ein Team zu stecken. Es gibt einen natürlichen Interessenskonflikt. Ein Unternehmen muss also mehr tun, um die Vorteile der Arbeit im DevOps-Modus wirklich zu nutzen. Genau das tut SRE.
Die Schlüsselthemen von SRE sind Zuverlässigkeit, Skalierbarkeit, Verfügbarkeit, Leistung, Effizienz und Reaktion.
Diese sind in sieben architekturrelevant Grundsätze integriert , die dem SRE Workbook entnommen sind:
—————————————————————————————————————————
=> Der Betrieb ist ein Softwareproblem: Dies ist der Ausgagnspunkt von SRE.
Software wird sich ändern, aber der Betreib muss stabil bleiben, damit die Dienste nicht unterbrochen werden. Das bedeutet, dass die Software belastbar sein und intensiv getestet werden muss.
=> Arbeiten Sie nach Service-Level Objectives (SLOs): Setzen Sie klare Ziele für den Dienst. Wie hoch sollte die Verfügbarkeit einer Anwendung wirklich sein? Dies sind nicht nur IT-bezogene Ziele . In erster Linie geben die Geschäftsanforderungen die Parameter vor. Das bedeutet , dass die Projekte eng mit den Geschäftsinteressenten zusammenarbeiten müssen, um die Ziele zu definieren.
=> Arbeiten, um die Arbeitsbelastung zu minimieren: Wir werden noch weiter über Arbeit sprechen, aber im Prinzip bedeutet Arbeit nur Arbeit. Außerdem ist Arbeit manuelle Arbeit, die durch Automatisierung vermieden werden kann. Im Grunde besteht das Ziel von SRE darin, Computer die Arbeit so weit wie möglich für Sie erledigen zu lassen.
=> Automatisieren: Nach Grundsatz drei ist dieser logisch. Wenn Sie es automatisieren können , tun Sie es.
=> Schnell scheitern: Fehlschläge sind in Ordnung, solange sie in einem sehr frühen Stadium entdeckt werden. Die Behebung des Problems in diesem frühen Stadium entdeckt werden. Die Behebung des Problems in diesem frühen Stadium hat weitaus geringere Auswirkungen, als wenn es zu einem späteren Zeitpunkt im Entwicklungs- und Bereitstellungszyklus entdeckt und behoben wird. Außerdem führt das frühzeitige Erkennen und Beheben von Problemen zu geringeren Kosten.
=> Jedes Teammitglied ist ein Eigentümer: Dieser Punkt erfordert etwas mehr Erklärung, insbesondere in großen Unternehmen, in denen wir in der Regel eine Matrixorganisation haben. Denken Sie daran, dass viele Unternehmen mit Sourcing-Modellen arbeiten, bei denen bestimmte Lieferanten für die Infrastruktur (die Plattform) und andere Lieferanten und das Unternehmen selbst für die Anwendung (die Produkte) verantwortlich sind. Bei SRE gibt es diese Grenzen nicht. Sowohl die Produkt- als auch die Plattformteams teilen sich die Verantwortung für das Endprodukt. Daher müssen die Produkt- und Plattformteams die gleiche Sicht auf jede Komponente haben:
Anwendungsmöglichkeit, Frontend-Systeme, Backend-Infrastruktur und Sicherheitsregeln. Sie sind alle gleichberechtigte Eigentümer des Projekts.
=> Verwenden Sie einen Werkzeugsatz: Alle Teams verwenden die gleichen Tools. Sie können mehrere SRE-Teams haben, aber sie arbeiten alle mit denselben Tools. Der Grund dafür ist, dass ein Unternehmen zu viel Zeit mit der Verwaltung der verschiedenen Toolsets verbringen muss, anstatt sich auf die Projektergebnisse zu konzentrieren. Und bei SRE geht es vor allem um Konzentration.
—————————————————————————————————————————-
SRE-Architektur mit KPI‘s
Implementierung von SRE
In-Memory Data Management Teil I
Die Zukunft von Enterprise Computing
Verarbeitung von Ereignisdaten
Sensordaten
Tracking von Arzneimitteln
Formel-1-Rennwagen
Analyse von Spiel-Ereignissen
Merkmale von Unternehmensanwendungen
OLTP versus OLAP
Ein Enterprise-Datenbank-Management-System sollte in der Lage sein, transaktionale und analytische Abfragetypen, die sich in mehreren Dimensionen unterscheiden , zu verarbeiten.
Die Erstellung von Kundenaufträgen , von Rechnungen, von Abbrechnungsdaten, die Anzeige eines Kundenauftrags für einen einzelnen Kunden oder die Anzeige von Kundenstammdaten stellen typische Abfragen im Online Transaction Processing (OLTP) dar. Das Online Analytical Processing (OLAP) besteht hingegen aus analytischen Abfragen. Typische OLAP-Produkte oder Dienstleistungen an einen Kunden), operatives Reporting oder die Analyse von Trends , die auf früheren Absatzdaten basieren.
Nachteile der Trennung von OLAP und OLTP
Obwohl die Trennung der Datenbank in zwei Systeme Workload-spezifische Optimierungen in beiden Systemen ermöglicht, hat sie auch eine Reihe von Nachteilen:
=> Das OLAP-System verfügt nicht über die aktuellsten Daten, weil die Latenz zwischen den Systemen von Minuten bis zu Stunden oder sogar Tagen reichen kann. Folglich werden viele Entscheidungen auf veraltenden Daten getroffen, weil die aktuellsten Informationen zum Abfragezeitpunkt zur Verfügung stehen.
=> Im eine akzeptable Leistung zu erreichen , arbeiten OLAP-Systeme mit vordefinierten materialisierten Aggregaten, die jedoch die Flexibilität der Abfragen des Anwenders verringern.
=> Die Redundanz der Daten ist hoch. In beiden Systemen werden gleiche , nur unterschiedlich optimierte Informationen gespeichert.
=>Die Schemata der OLTP- und OLAP-Systeme sind unterschiedlich. Das führt einerseits zu einer erhöhten Komplexität von Anwendungen, die beide Systemtypen nutzen, und anderseits zu einer hohen Komplexität des ETL-Prozess , der die daten zwischen den Systemen synchronisiert.
Kombinieren von OLTP- und OLAP-Daten
Folgende Teile werden folgen:
Teil II: in-Memory Datenbank Theorie und Algorithmen
Teil III: SAP HANA Datenbank
Teil IV: SQL Script für SAP HANA
Sonntag, 14. Mai 2023
SAP Data Intelligence .- Connection Management
Eine der grundlegendsten Funktionen einer IT-Unternehmensarchitektur ist die Fähigkeit, die Daten aller relevanten Systeme und die Informationen aus den verschiedensten Bereichen des Unternehmens zusammen zu bringen. Im Idealfall können diese Systeme direkt miteinander kommunizieren. Man spricht hier von einer unternehmensweiten Datenintegration. Über entsprechende Schnittstellen ließe sich das bekannte und in der Vergangenheit viel zu oft praktizierte Verfahren des Exports und Imports von Daten aus den und in die verschiedenen Systeme vermeiden. Die Einführung einer übergreifender Integrationsplattform ist lange überfällig, da die Export- und Importverfahren nur allzu oft mit Problement zu kämpfen haben, wie beispielsweise abweichenden Formatierungen, zeitlichem Verzug oder einfach auch nur beschädigten oder unvollständigen Datenbeständen bzw. Nichtverfügbarkeit eines Speichermediums.
SAP Data Intelligence bietet die geforderte Möglichkeit, die Systeme direkt anzubinden und miteinander kommunizieren zu lassen. Um zu verstehen, welchen Funktionsumfang SAP Data Intelligence bietet und welche Szenarien damit möglich sind, ist es essenziell, zu wissen welche Arten von Quellsystemen innerhalb des Systems verarbeitet werden können und vor allem auch, wie diese Datan in das System gelangen. Um Daten grundsätzlich strukturiert und ohne Umwege in das System zu integrieren, sind Schnittstellen mit standardisierter Funktionalität nötig. Diese sollen es auf einfachste Weise ermöglichen, Datenquellsysteme anzubinden, deren Informationen auszulesen, zu verstehen und so letztendlich auch zu verarbeiten.
Funktionen auf Basis der Verbindungstypen
Bevor ich auf die einzelnen Verbindungstypen eingehe , will ich in diesem Abschnitt einen grundsätzlichen Blick auf die über die Verbindungen bereitgestellten Funktionen werfen. Diese können in den weiteren Applikationen von SAP Data Intelligence, wie beispielsweise dem Metadata Explorer oder dem Modeler, genutzt werden.
Eine der einfachsten Funktionen im Connection Management ist die Anzeige der Verbindungsstatus , um einen Überblick über die noch aktiven und laufenden Verbindungen zu erhalten. Im Zweifelsfall können Sie so korrigierend eingreifen, damit die laufenden Prozesse ungefährdet ausgeführt werden können.
Über die Verbindungen besteht im Modeler und im Metadata Explorer die Möglichkeit , Ordner , Dateien, Bereiche, Objekte, Schemas und Datensätze auf den jeweiligen Zielsystemen zu durchsuchen oder Daten in Dateien, Tabellen und Views zu lesen und zu schreiben. Darüber hinaus können Inhalte wie Dateien kopiert , aber auch gelöscht werden.
Durch die im Connection Management angelegten Verbindungen können vordefinierte und standardisierte Integrationsflüsse, sogenannte iFlows, ausgeführt werden. Solche iFlows können etwa aus über SAP Cloud Platform Integration angebundenen Systemen über eine obligatorische , gesicherte HTTPS-Verbindung ausgeführt werden, um beispielsweise eine Serviceanfrageformular im Zielsystem SAP Service Cloud oder SAP SAles Cloud (vormals SAP Cloud for Customer) anzulegen.
—————————————————————————————————————————-
SAP Cloud Platform Integration
SAP Cloud Platform Integration ist eine Entwicklungs- und Integrationsplattform, die auf der SAP Cloud Platform angeboten wird. Sie ermöglicht den Austausch von Daten zwischen Cloud- und On-Premise-Systemen, wozu iFlows modelliert werden. Daneben bietet SAP Cloud Platform Integration vorgefertigte Adapter und Integrationsszenarien an.
—————————————————————————————————————————-
Verbindungen bilden darüber hinaus die Grundlage für die Ausführung von Ablaufdiagrammen oder Ablaufdiagrammaufgaben, ABAP-Operatoren, Jobs, Prozessketten oder SQL-Anweisungen, um damit die Prozesse der angeschlossenen Systeme zentral steuern und orchestrieren zu können. Neben den Ablaufdiagrammen können auch Jobs aus SAP Data Services, einer Software zur Datenbewirtschaftung von Data-Warehouse-Lösungen durchsucht und in der SAP-Data-Intelligence-Umgebung dargestellt werden.
In Machine-Learning-Szenarien können die im Connection Management definierten Verbindungen im Rahmen des Trainings von maschinell lernenden Modellen verwendet werden. Sie ermöglichen so das Experimentieren mit Daten unter Verwendung von Jupyter-Lab. JupyterLab ist eine interaktive Entwicklungsumgebung , die Coding , die grafische Darstellung sowie die Dokumentation der Programmierung mithilfe von sogenannten Notebooks unterstützt. Die Bezeichnung Jupyter leitet sich von den drei im Wesentlichen verwendeten Programmiersprachen Julia, Python und R ab.
Verbindungen zu SAP-Systemen
Als SAP-Tool ermöglicht SAP Data Intelligence die typischen Systemverbindungen zu SAP-Lösungen. Für diese Verbindungstypen sind unterschiedliche Funktionalitäten in SAP Data Intelligence verfügbar.
Der Verbindungstyp ABAP ermöglicht den Zugriff auf die klassischen ABAP-basierten SAP-Systeme wie beispielsweise SAP R/3, SAP ERP oder SAP S/4HANA. Verbindungen dieses Typs werden über die Protokolle Remote Function Call (RFC), HTTPS oder WebSocket RFC hergestellt. Es kann auf Tabellen, ABAP-Dictionary-Objekte und CDS-Views zugegriffen werden.
Änderungen an Verbindungen dieses Typs werden nicht immer gleich erkannt, da die Verbindungsdetails im Cache des Browsers abgelegt werden und daher immer leicht verzögert greifen. Bei der Nutzung eines HTTPS- oder WebSocket-RFC-Verbindung ist darauf zu achten, dass ein entsprechendes Zertifikat zur Verfügung steht.
Der Verbindungstyp BW ermöglicht den Aufbau von Verbindungen zu SAP-BW-Systemen, SAP BW-Systemen auf SAP HANA oder SAP BW/4HANA-Systemen. Es werden allerdings nur Systeme ab Version 7.4 unterstützt.
—————————————————————————————————————————
Cloud Connector
Der Cloud Connector von SAP verbindet Cloudanwendungen mit On-Premise-Systemen. Er wird über die SAP Cloud Platform bereitgestellt. Mit dem Cloud Connector können Sie beliebig viele Backend-Systeme mit der SAP Cloud Platform verbinden.
—————————————————————————————————————————
Über den Verbindungstyp CLOUD_DATA_INTEGRATION können diverse SAP-Cloudlösungen mithilfe von OData-basierten APIs angebunden werden. Zu nennen wären hier etwa die Lösungen SAP Fieldglass, SAP Sales Cloud, SAP Service Cloud oder SAP S/4HANA Cloud.
Der Verbindungstyp CPI nutzt HTTPS als obligatorisches Verbindungsprotokollen und stellt eine Verbindung zur Middleware SAP Cloud Platform Integration her. Diese Middleware unterstützt Daten- und Prozessintegrationsszenarien und stellt hierzu verschiedene vorgefertigte Integrationspakete zur Verfügung. Darüber hinaus verfügt SAP Cloud Platform Integration über eine Entwicklungsplattform, eine Laufzeitumgebung sowie vorgefertigte Funktionsbausteine . Aus SAP Data Intelligence heraus können Sie die Integrationsflüsse (iFlows), die in SAP Cloud Platform Integration modelliert werden, auf der SAP Cloud Platform steuern. Deren Rückmeldungen können Sie wiederum innerhalb von SAP Data Intelligence verarbeiten.
Über den Verbindungstyp HANA_DB kann der Zugriff auf eine klassische SAP-HANA-Datenbank erfolgen, sodass die SAP-HANA-Objekte durchsucht. Metadaten ausgelesen , ein Data Profiling erstellt und eine Datenvorschau innerhalb von SAP Data Intelligence angezeigt werden können. Zur Einschränkung auf nur notwendige Schemas stellt dieser Verbindungstyp eine Blacklistfunktion zur Verfügung, die nicht benötigte Schemas der Datenbank ausblendet. Diese Einschränkung stellt aber keine direkte Berechtigungseinschränkung dar, da sie mit dem Zugriff auf die Verbindungen aufgehoben werden kann.
Weitere Verbindungen sind:
Verbindungen zu Datenbanken
Verbindungen zu cloudbasierten Systemen
Erster Artikel zur SAP Data Intelligence:
https://einsiedlerkreps.blogspot.com/2023/04/sap-data-intelligence-ein-moglicher.html
Freitag, 12. Mai 2023
DevOps nähere Erläuterung Teil II
DevOps
Die Prinzipien hinter DevOps sind die gleichen die die Herstellung revolutioniert haben. Statt in einer Fabrikhalle die Verwandlung von Rohmaterialien in fertige Produkte zu optimieren, zeigt DevOps, wie wir die Wertschöpfungskette in IT verbessern und Kundenanforderungen in Features und Services umwandeln, die den Anwendern etwas bringen.
DevOps beginnt mit dem Unternehmen. Durch die Zusammenführung von Teams in einer Entwicklungs- und Betriebsumgebung, die traditionell in Silos arbeiten, kann ein Unternehmen die Entwicklung beschleunigen und neue Produkte und Dienstleistungne veröffentlichen. Dahinter steht die Überlegung, dass weniger Zeit für die Übergabe zwischen Entwicklung und Betrieb verbessert sich auch die Qualität der Produkte , da DevOps auch Qualitätssicherung Tests und Sicherheit umfasst. Das Kundenfeedback wird kontinuierlich ausgewertet und in neue Iterationen des Produkts einbezogen.
Die Vorteile von DevOps sind wie folgt:
- Es bringt Geschäft, Entwicklung und Betrieb zusammen, ohne Silos.
- Unternehmen können schneller auf die Anforderungen des Marktes reagieren , da sie kontinuierlich Feedback erhalten.
- Die Produkte werden laufend verbessert und mit neuem Funktionen ausgestattet , anstatt die nächsten großen Versionen zu planen.
- Durch die Automatisierung in DevOps-Pipelines können Unternehmen die Kosten für Entwicklung und Betrieb senken und gleichzeitig die Qualität ihrer Produkte verbessern.
Die wichtigsten Prozesse der IT-Bereitstellung sind:
- Geschäftsanforderungen: Ein Unternehmen muss wissen, welche Anforderungen es an ein von ihm geliefertes Produkt stellt. Diese Anforderungen werden von den Personen gestellt, die das Produkt verwenden werden. Die Kunden verlangen ein Produkt, das eine bestimmte Funktionalität und Qualität erfüllt. Die Architektur muss sich darauf konzentrieren, eine Endprodukt zu liefern, das die Anforderungen der Kunden eines Unternehemens erfüllt. Die IT-Bereitstellung ist ein wesentlicher Bestandteil der Bereitstellung eines Endprodukts. Bei DevOps sorgt ein zugewiesener Product Owner dafür, dass das Produkt den Anforderungen entspricht. Der Product Owner muss eng mit dem Enterprise Architekt zusammenarbeiten. Im Abschnitt „Erstellen einer ReferenzArchitektur“ erfahren wir, dass die Unternehmensarchitektur und DevOps sich gegenseitig ergänzen.
- Geschäftsplanung: Sobald der Bedarf klar ist, muss das Produkt geplant werden. Bei DevOps beginnen die Produktteams in der Regel mit einem Minimum Viable Produkt (MVP), einer ersten Iteration des Produkts, das die Anforderungen des Kunden erfüllt. Beim Entwurf des MVP müssen die Prozesse die Entwicklung und den Betrieb dieses Produkts unterstützen können. Daher umfasst die Geschäftsplanung auch Qualitätsmanagement und Testen, zwei wichtige Komponenten der IT-Bereitstellung. Dies muss sich auch in der Architektur widerspiegeln.
- Entwicklung: Bei DevOps arbeitet das Produktteam mit UserStories. Ein Team muss das Produkt in Komponenten zerlegen, die als Deliverables definiert werden können. Dazu brauchen wir eine klare Definition der User Story. Eine Benutzergeschichte hat immer das gleiche Format: Als [Funktion des Benutzers] möchte ich [Wunsch des Benutzers], damit ich [Beschreibung des Nutzens, den ein Benutzer erhält, wenn die Funktion erfüllt und das Ziel erreicht ist]. Der Schlüssel zu jeder UserStory sind die Akzeptanzkriterien , oder die Definition of Done (DoD).
Wir können den gesamten DevOps-Zyklus wie folgt in zwei Hauptphasen unterteilen:
Bereitstellung und Betrieb:
- Bereitstellung: In dieser Phase wird der Code getestet und validiert, so dass er mit der User Story übereinstimmt. Es wird nun in den Produktionszustand überführt. Das Testen und Freigeben für die Produktion ist ein Prozess, der idealerweise in der Pipeline automatisiert ist, ebenso wie die Integration. Bevor der Code in die Produktion geht, muss er auch mit der Konfiguration zusammengeführt werden. Denken Sie an Sicherheitspakete, die auf Komponenten angewendet werden müssen, die in der Produktion laufen. Im Test- und Qualitätsprozess muss das gesamte Paket- Anwendungscode und Infrastrukturkomponenten - als „produktionsreif“ validiert werden. Das Ergebnis sollte ein „lebendes“ Produkt sein. Werden bei den Tests und der Validierung Fehler, Schwachstellen oder Verstöße gegen die Sicherheitsvorschriften entdeckt, wird das Produkt in eine frühere Phase des Entwicklungsprozesses zurückgeschickt.
- Betrieb: Nach der Bereitstellung muss das Live-Produkt in Betrieb genommen werden. Zu diesem Zweck arbeiten Unternehmen nach den Grundsätzen des IT-Service-Managements (ITSM). Die Tatsache, dass die Betreiber im selben Team wie die Entwickler arbeiten, bedeutet nicht, dass die ITSM-Prozesse nicht mehr gültig sind. Ein Beispiel ist das Auftreten von Vorfällen, bei denen der Vorfallsmanagementprozess ausgelöst werden muss. Im Betrieb unterscheiden wir zwischen den folgenden Hauptprozessen: a) Anfrageerfüllung b)Störungsmanagement c) Problemmanagement (postmortem) d) Konfigurationsmanagemente) Änderungsmanagement
DevOps fügt dem noch etwas hinzu, nämlich kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD)
- Kontinuierliche Integration (CI): CI basiert auf dem Prinzip eines gemeinsam genutzten Repository’s, in dem der Code häufig aktualisiert und von Teams, die in Cloud-Umgebungen arbeiten, gemeinsam genutzt wird. CI ermöglicht es den Entwicklern , gemeinsam und gleichzeitig an demselben Code zu arbeiten.
Die Änderungen am Code werden direkt integriert und können in verschiedenen Testumgebungen vollständig getestet werden.
- Kontinuierliche Bereitstellung (CD): Dies ist die automatisierte Übertragung von Software in Testumgebungen. Das ultimative Ziel von CD ist es , Software vollautomatisch in die Produktion zu bringen. Verschiedene Tests werden automatisch durchgeführt. Nach der Bereitstellung erhalten die Entwickler sofort eine Rückmeldung über die Funktionalität ihres Codes.
CI/CD erfordert eine Feedback-Schleife , um es kontinuierlich zu gestalten. Sie benötigt Rückmeldungen über die gelieferten Produkte und Dienstleistungen. Dieses wird dann an die Entwickler zurückgespielt, und von dort aus werden neue Iterationen geplant, um das Produkt oder die Dienstleistung zu verbessern.
Folgende Architekturaussagen, bilden den Kern von DevOps
- Automatisierung: Nach dem Prinzip „alles ist Code“ lautet der nächste Schritt „alles automatisieren“. Durch die Automatisierung wird die Zeitspanne zwischen Tests und Bereitstellung erheblich verkürzt, was einen schnelleren Freigabeprozess ermöglicht. Die Automatisierung führt aber auch zu weniger manuellen Eingriffen und damit zu weniger Fehlern.
- Zusammenarbeit: Zwei der sechs Grundsätze sind funktionsübergreifende, autonome Teams und End-to-End-Verantwortung. Dies kann nur durch Zusammenarbeit erreicht werden. Entwicklung und Betrieb werden sehr eng zusammenarbeiten müssen, um die Bereitstellung von Releases zu beschleunigen. Obwohl es sich hierbei auch um einen kulturellen Wandel handelt, erfordert die Zusammenarbeit ein gemeinsames Toolset, das die Zusammenarbeit unterstützt.
- Integration: Entwicklung und Betrieb kommen zusammen, aber auch Unternehmen und IT. Bei DevOps integrieren wir die Geschäftsanforderungen mit der IT-Bereitstellung mithilfe von User Stories. Der Code wird mit neuen Funktionen integriert, die sich aus den Geschäftsanforderungen ergeben. Dieser Bedarf ändert sich heutzutage schneller, so dass die Entwicklung mit Hilfe von CI schritt halten muss. Dies wird auch zu Veränderungen im Betrieb führen - sie müssen diese neuen Entwicklungen mit der gleichen Geschwindigkeit übernehmen. Damit ist die Integration der Kern von DevOps.
- Portfolio- und Konfigurationsmanagement: Automatisierung und Integration erfordern ein klares Portfolio, das die Bausteien enthält, die leicht automatisiert werden können. Diese Bausteine sind Artefakte im ADM-Zyklus und stellen Funktionspakete dar, die zur Erfüllung einer Anforderung verwendet werden können. Ein Baustein ist wiederverwendbar und austauschbar; daher muss er klar und spezifisch definiert sein. Besser gesagt, die Konfiguration der Bausteine muss gut dokumentiert werden und unter die Kontrolle des Konfiguraitonsmanagements gestellt werden. Wenn dies gut gemacht ist, werden diese Bausteine auch klare Schnittstellen haben, so dass sie vollständig automatisiert werden können.
Jede DevOps-Architektur muss Planung, Entwicklung , Integration, Bereitstellung und Betrieb abdecken. Wir müssen uns jedoch vor Augen halten, warum wir DevOps einsetzen, nämlich um Geschäftsziele schneller und flexibler zu erreichen und Produkte kontinuierlich zu verbessern. Die DevOps-Architektur steht nicht für sich allein; sie muss mit der Unternehmensarchitektur verknüpft werden.
Ein Unternehmensarchitekt wird höchstwahrscheinlich mit dem The Open Group Architecture Framework (TOGAF) beginnen. TOGAF ist weltweit als Standard für die Unternehmens- und Geschäftsarchitektur anerkannt. Es verwendet die Architekturentwicklungsmethode (ADM), um die Architektur zu entwerfen.
Die goldene Regel bei DevOps lautet: „You build it, you run it“, oft gefolgt von der Aussage „You break it, you fix it“. Oder es könnte auch heißen: Du zerstörst es, du baust es besser wieder auf. Wenn etwas kaputt geht, muss das Team herausfinden, was genau passiert ist. In diesem Abschnitt werden wir über die Ursachenanalyse (RCA) als eines der wichtigsten Instrumente zur Ermittlung der Ursache eines Problems sprechen.
Jetzt soll hier noch aufgeführt werden wie DevOps für unternehmenskritische Umgebungen und warum es für die Verwaltung von Kernanwendung geeignet ist. Hier muss definiert sein was geschäftskritischer ist.
Eine sehr einfache Definition wäre: jede Software , die ein Unternehmen benötigt, um im Geschäft zu bleiben . Wenn ein geschäftskritischer System ausfällt , würde das Unternehmen möglicherweise viel Geld verlieren, entweder durch direkte entgangene Transaktionen oder durch weniger greifbare Dinge , wie z.B. einen Rufschaden. Diese Systeme werden durch den Prozess der Business Impact Analysis (BIA) identifiziert.
Wen wir mit DevOps-Projekten beginnen, sammelt ein Architekt als erstes die geschäftlichen und technischen Anforderungen. Dazu gehören auch Ergebnisse des BIA-Prozesses, der in der Regel in Zusammenarbeit mit internen Prüfern und Unternehmensbeteiligten durgeführt wird. Anhand der BIA werden kritische Systeme oder Systemkomponenten ermittelt, die im Falle eines Ausfalls sehr schnell wiederhergestellt werden müssen. Dies ist ein sehr mühsamer Prozess.
Der Unternehmensarchitekt muss sich darüber im Klaren sein, dass die Beteiligten unterschiedliche Ansichten darüber haben , was kritische Systeme sind. Finanzsysteme in Banken sind geschäftskritischer, aber eine Autofabrik verliert nicht sofort ihr Geschäft , wenn der Cief Financial Officer (CFO) für - sagen wir mal - eine Stunde keinen Zugriff auf die Finanzberichte hat. Die Produktion in dieser Fabrik wird jedoch sofort eingestellt, wenn die Montageroboter ausfallen.
Wo kommt DevOps ins Spiel? Bei der Erstellung des Geschäftskontinuitätsplans (BCP), in den die BIA einfließt. Es gibt keinen wirklichen technischen Grund, warum unternehmenskritische Systeme nicht in der Cloud gehostet und mit DevOps entwickelt und verwaltet werden können, aber angesichts der Tatsache, dass diese Systeme hochgradig widerstandsfähig sein müssen, gibt es einige Dinge zu beachten - zum Beispiel bei der Planung und Anwendung von Änderungen.
—————————————————————————————————————————
Hinweis:
Die Aussage, dass es keinen wirklichen technischen Grund gibt, warum unternehmenskritische Systeme nicht in der Cloud gehostet werden können, ist nicht ganz richtig. Die Latenzzeit kann ein Problem sein: die Zeit , die Informationen zwischen den Systemen benötigen. Ein weiterer Grund kann die Einhaltung von Gesetzen und Vorschriften sein. Manche Organisationen dürfen einfach keine Systeme in einem Cloud-Rechenzentrum hosten, das nicht in dem Land oder der Region liegt, in dem/der die Organisation selbst ansässig ist. Dies sind Aspekte , die ebenfalls im Rahmen der BIA berücksichtigt werden müssen.
—————————————————————————————————————————
Hier die Erklärung der drei Wege :
Der erste Weg beschäftigt sich mit dem Arbeitsfluss von der Entwicklung über IT-Operations hin zum Kunden. Um diesen Fluss zu maximieren, brauchen wir kleine Losgrössen und Arbeitsintervalle, wir dürfen keine fehlerhafte Produkte weiterreichen und müssen uns fortlaufend auf die globalen Ziele hin optimieren (im Gegensatz zu lokalen Zielen wie zum Beispiel der Fertigungsstellungsrate von Entwicklungsfeatures, dem Verhältnis von gefundenen zu behobenen Fehlern oder der Verfügbarkeit im OPs-Bereich.
Zu den notwendigen Praktiken gehören ein kontinuierlichen Build , Integration und Deployment, das Erstellen von Umgebungen auf Anforderung, das Beschränken der Work in Process und den Aufbau von sicheren Systemen sowie Organisationen, die sich sicher ändern lassen.
Beim zweiten Weg geht es um ein konstantes, schnelles Feedback zurück zu den Quellen der Wertschöpfungskette. Dadurch wird sichergestellt, dass Probleme schneller erkannt und behoben werden und nicht wieder vorkommen. So entstehen schon an der Quelle Qualität und Wissen - dort , wo wir es brauchen.
Zu den notwendigen Praktiken gehören:
- Das Stoppen des Fließbands, wenn die Builds oder Tests in der Deployment-Pipeline fehlgeschlagen,
- das Hervorheben der Verbesserung täglicher Arbeit gegenüber der eigentlichen täglichen Arbeit.
- das erstellen schneller , automatisierter Test-Suites , um sicherzustellen , dass sich der Code immer in einem potenziell auslieferbaren Zustand befindet,
- das erstellen gemeinsamer Ziele und das vereinte Durchleben von Schmerzen und Entwicklung und IT Operations
- sowie das erstellen allgegenwärtiger Messpunkte in der Produktivumgebung, damit jeder sehen kann, ob Code und Umgebung wie gewünscht funktionieren und Kundenziele erfüllt werden.
Der dritte Weg dreht sich um das Aufbauen einer Kultur , die zwei Dinge fördert:
Andauerndes Experimentieren, bei dem man Risiken ermöglichen es uns, unser Arbeitssystem immer weiter zu verbessern. Dabei müssen wir häufig Dinge ganz anders tun, als wir es schon immer getan haben. Und wenn etwas schiefgeht, ermöglichen uns unsere fortlaufende Wiederholungen und Übungen, mit den dadurch gewonnenen Fähigkeiten schnell wieder einen sicheren und normalen Zustand zu erreichen.
Zu den notwendigen Praktiken gehört das Aufbauen einer Kultur der Innovationen und des Eingehens von Risiken (im - Gegensatz zum ängstlichen Agieren oder gedankenlosen Empfangen von Befehlen), das Freihalten von wenigsten 20 Prozent der Entwicklung und IT Operations-Zeit für nicht funktionale Anforderungen und die ständige Versicherung, dass Verbesserung unterstützt und gefördert werden.
Auf diesen drei Wegen baut das Theoretische Fundament von DevOps auf , gut nachzulesen im Buch Projekt Phoenix.
Erster Teil:
https://einsiedlerkreps.blogspot.com/2023/05/devops-noops-devsecops-sre-aus-der.html




