Zum Inhalt springen

Server Cloud und zuverlässiger IT-Betrieb – Einen Dienst betriebsbereit dokumentieren

Aus MOOCsWiki Staging
aiMOOC-Siegel aiMOOC

Server Cloud und zuverlässiger IT-Betrieb – Einen Dienst betriebsbereit dokumentieren

QR-Code


Server Cloud und zuverlässiger IT-Betrieb – Einen Dienst betriebsbereit dokumentieren


Einleitung

Ausbildung: Fachinformatik – Systemintegration, Anwendungsentwicklung und IT-Systemmanagement.

Ziel: Du dokumentierst Konfiguration, Zuständigkeiten und Betriebsnachweise eines fiktiven Dienstes. Sechs kurze Einheiten verbinden Bilder, Code und interaktive Aufgaben. Dauer: ca. 100 Minuten.

Schutzregeln: Arbeite nur auf Deinem eigenen Rechner oder in einer ausdrücklich genehmigten isolierten Testumgebung. Nutze ausschließlich fiktive Daten. Keine fremden Netze, Produktionssysteme, Kundeninformationen oder Zugangsdaten verwenden oder übertragen. Externe Videos sind freiwillige Lernmedien, keine Testendpunkte.

Rechenzentrumsinfrastruktur, Wikimedia Commons. Lizenzbedingungen auf der verlinkten Dateiseite.

Lernschritt Produkt
Dienst verstehen Dienstkarte
Konfiguration dokumentieren Baseline
Rollen zuordnen RACI-Tabelle
Lokal prüfen Testprotokoll
Kennzahlen bewerten Betriebsdashboard
Entscheidung begründen Freigabevermerk


Ausbildungsfall: Ticketblick

Du übernimmst den ausschließlich fiktiven Übungsdienst Ticketblick der Lernwerkstatt Nord. Er liefert ein Demoticket und Statusinformationen. Dein Auftrag ist die nachvollziehbare Übergabe an ein anderes Ausbildungsteam.

Feld Sollzustand
Name Ticketblick
Version 0.1
Technologie Python 3 und Standardbibliothek
Rechner Eigener Ausbildungsrechner
Bindung 127.0.0.1
Port 8765
Status /health
Fachfunktion /ticket?id=DEMO-001
Übungsmetriken /metrics
Persistenz Keine
Echte Benutzerdaten Keine
Produktionsbetrieb Ausgeschlossen


Lerneinheit 1: Vom Server zum Dienst

Ein Server stellt Ressourcen bereit; ein IT-Dienst erfüllt einen fachlichen Zweck. Cloud Computing stellt IT-Ressourcen bedarfsgerecht über Netzwerke zur Verfügung. Ein gestarteter Prozess belegt noch keine funktionierende Dienstleistung.

Cloud-Betriebsmodelle, Wikimedia Commons; Lizenzbedingungen auf der Dateiseite.

Client-Server-Prinzip, Wikimedia Commons; Lizenzbedingungen auf der Dateiseite.

Prüfung Frage Nachweis
Erreichbarkeit Antwortet der Dienst? Statusabruf
Fachfunktion Wird DEMO-001 geliefert? JSON-Abgleich
Qualität Werden Grenzwerte eingehalten? Kennzahlenvergleich

Basisaufgabe: Zeichne die Verbindung Browser → 127.0.0.1:8765 → JSON-Antwort. Benenne die Systemgrenzen.

Feedback: Eine gute Skizze trennt Client, Schnittstelle und Dienst. Sonst ist nicht erkennbar, welche Komponente geprüft wird.


Lerneinheit 2: Konfigurationsbaseline

Eine Baseline beschreibt den bekannten Sollzustand. Nach NIST SP 800-128 ist kontrolliertes Konfigurationsmanagement für die Informationssicherheit wichtig.[1]

Element Sollwert Kontrolle
Laufzeit Python 3.10 oder neuer python --version
Bind-Adresse 127.0.0.1 Quellcode
Dienstport 8765 Lokaler Aufruf
Statuspfad /health Statuscode
Fachpfad /ticket DEMO-001
Kennzahlenpfad /metrics JSON

Änderungsweg: Antrag → Prüfung → Genehmigung → lokaler Test → Nachweis → Dokumentation. Ein Rückfallplan gehört dazu. Grundlage ist das IT-Grundschutz-Prinzip geregelter Administration und Änderungen.[2]

Anwendungsaufgabe: Entwirf eine Portänderung von 8765 auf 8766. Dokumentiere Ausgangszustand, Risiko, neue Prüfadresse, verantwortliche Rolle und Rückfall.

Feedback: Ein neuer Wert allein genügt nicht; eine kontrollierte Änderung muss überprüfbar und rückgängig zu machen sein.


Lerneinheit 3: Zuständigkeiten

Bei RACI steht R für ausführend, A für ergebnisverantwortlich, C für zu beteiligen und I für zu informieren. Jede Aufgabe benötigt eine klare Ergebnisverantwortung.

Aufgabe Lab-Betrieb Dienstleitung IT-Sicherheit Lernteam
Dienstprüfung R A C I
Konfiguration freigeben R A C I
Störung bearbeiten R A C I
Übergabe entscheiden C A C I

Transferfrage: Warum darf die Person, die einen Test ausführt, nicht automatisch als alleinige Freigabeinstanz gelten?

Feedback: Durchführung und Ergebnisverantwortung sind verschiedene Rollen. Diese Trennung verbessert Nachvollziehbarkeit und Entscheidungsqualität.


Lerneinheit 4: Isoliertes Python-Labor

Benötigt werden Python 3.10 oder neuer und zwei Dateien im selben lokalen Ordner. Es gibt weder eine Cloud-Anmeldung noch externe Pakete oder Netzwerkanfragen an fremde Ziele. Python http.server ist ein Lernwerkzeug und nicht für den Produktivbetrieb empfohlen.[3]


Lokalen Dienst aufsetzen

Speichere die Datei als dienst.py:

from http.server import HTTPServer, BaseHTTPRequestHandler
from urllib.parse import urlsplit, parse_qs
import json

class Handler(BaseHTTPRequestHandler):
    def do_GET(self):
        url = urlsplit(self.path)
        query = parse_qs(url.query)
        if url.path == '/health':
            status = 503 if query.get('test') == ['fail'] else 200
            daten = {'dienst': 'Ticketblick', 'bereit': status == 200}
        elif url.path == '/ticket':
            if query.get('id') == ['DEMO-001']:
                status, daten = 200, {'ticket': 'DEMO-001', 'zustand': 'offen'}
            else:
                status, daten = 404, {'hinweis': 'Nur DEMO-001 vorhanden'}
        elif url.path == '/metrics':
            status, daten = 200, {'fiktiv': True, 'anfragen': 200,
                                  'nicht_erfolgreich': 4, 'p95_ms': 180,
                                  'auslastung_prozent': 70}
        else:
            status, daten = 404, {'hinweis': 'Pfad nicht vorhanden'}
        body = json.dumps(daten).encode('utf-8')
        self.send_response(status)
        self.send_header('Content-Type', 'application/json')
        self.send_header('Content-Length', str(len(body)))
        self.send_header('Cache-Control', 'no-store')
        self.end_headers()
        self.wfile.write(body)

if __name__ == '__main__':
    server = HTTPServer(('127.0.0.1', 8765), Handler)
    print('Nur lokal: http://127.0.0.1:8765/health')
    try:
        server.serve_forever()
    except KeyboardInterrupt:
        pass
    finally:
        server.server_close()

Starte lokal mit python dienst.py und rufe am eigenen Rechner http://127.0.0.1:8765/health sowie http://127.0.0.1:8765/ticket?id=DEMO-001 auf. Beende danach mit Strg+C.


Automatisierte Testumgebung

Speichere im selben Ordner test_dienst.py. Der Test bindet nur an 127.0.0.1 und nutzt einen automatisch vergebenen freien Port.

import json
import threading
import unittest
from http.server import HTTPServer
from urllib.request import build_opener, ProxyHandler
from urllib.error import HTTPError
from dienst import Handler

class LaborTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.server = HTTPServer(('127.0.0.1', 0), Handler)
        cls.worker = threading.Thread(
            target=cls.server.serve_forever, daemon=True)
        cls.worker.start()
        cls.base = 'http://127.0.0.1:' + str(cls.server.server_port)
        cls.client = build_opener(ProxyHandler({}))

    @classmethod
    def tearDownClass(cls):
        cls.server.shutdown()
        cls.server.server_close()
        cls.worker.join(timeout=2)

    def abruf(self, pfad):
        try:
            with self.client.open(self.base + pfad, timeout=2) as r:
                return r.status, json.load(r)
        except HTTPError as r:
            return r.code, json.load(r)

    def test_status(self):
        code, data = self.abruf('/health')
        self.assertEqual((code, data['bereit']), (200, True))

    def test_simulierte_stoerung(self):
        code, data = self.abruf('/health?test=fail')
        self.assertEqual((code, data['bereit']), (503, False))

    def test_ticket(self):
        code, data = self.abruf('/ticket?id=DEMO-001')
        self.assertEqual((code, data['ticket']), (200, 'DEMO-001'))

    def test_kennzahlen(self):
        code, data = self.abruf('/metrics')
        self.assertEqual(code, 200)
        self.assertTrue(data['fiktiv'])
        self.assertEqual(data['anfragen'] - data['nicht_erfolgreich'], 196)

if __name__ == '__main__':
    unittest.main()

Ausführen: python -m unittest -v test_dienst.py. Erwartung: vier bestandene Tests. Speichere Deine wirkliche lokale Ausgabe mit python -m unittest -v test_dienst.py > testprotokoll.txt 2>&1.

Der bewusst simulierte Status 503 ist ein erwarteter Negativtest. Nicht behaupten, dass Tests durchgeführt wurden, bevor das Protokoll tatsächlich vorliegt.


Gestufte Hilfen

Hilfe 1: Orientierung
Beide Dateien müssen im selben Ordner liegen. Prüfe mit python --version die Laufzeit.
Hilfe 2: Diagnose
Das Testprogramm importiert Handler aus dienst.py. Der Testserver wird automatisch gestartet.
Hilfe 3: Lösungspfad
Starte im Ordner mit beiden Dateien python -m unittest -v test_dienst.py. Für den automatischen Test ist kein zusätzlicher manuell gestarteter Server nötig.

Feedback: Vier bestandene lokale Testfälle belegen nur die geprüften Funktionen, nicht Produktionshärtung, Kapazität oder vereinbarte Cloud-Verfügbarkeit.


Lerneinheit 5: Betriebsdaten visualisieren

Monitoring beantwortet, ob ein Dienst seine festgelegten Qualitätsziele erreicht. Google SRE unterscheidet die vier grundlegenden Größen Latenz, Verkehr, Fehler und Sättigung.[4]

Fiktive Übungsmetrik Wert Ziel Einordnung
Anfragen 200 Dokumentiert Ja
Erfolgreiche Anfragen 196 Mindestens 99,5 % Ziel verfehlt
Nicht erfolgreiche Anfragen 4 Höchstens 1 % Ziel verfehlt
95. Perzentil 180 ms Unter 250 ms Ziel erreicht
Auslastung 70 % Unter 80 % Ziel erreicht
Fiktive Anfragen: 200
Erfolgreich: 196 = 98 %

Erfolg     |█████████████████████████████████████████████████·| 98 %
Abweichung |█·················································|  2 %

Ein Zeichen entspricht 2 Prozentpunkten.

196200⋅100=98%

Diese Daten sind fest im lokalen Beispielcode hinterlegt und keine Live-Messungen. Die Zielwerte sind nur für die Ausbildung definiert. Eine echte SLO- oder SLA-Bewertung erfordert geeignete reale Messdaten, vereinbarte Zählweisen und festgelegte Zeitfenster.

Google Cloud Tech: Grundlagen zur Cloud-Überwachung, englischsprachige Vertiefung.

Anwendungsaufgabe: Berechne die nicht erfolgreiche Quote und entscheide anhand des fiktiven Ziels über die Qualitätsfreigabe.

Hilfe 1
Teile die Anzahl nicht erfolgreicher Anfragen durch die Gesamtzahl.
Hilfe 2
4 geteilt durch 200 ergibt 0,02.
Musterentscheidung
Die simulierte Qualitätsfreigabe wird zurückgestellt. 2 Prozent liegen über dem Übungsgrenzwert von 1 Prozent. Eine weitere Ursachenanalyse und erneute Prüfung sind notwendig.


Lerneinheit 6: Betriebsübergabe und Wiederanlauf

Ein Runbook beschreibt Vorgehensweisen für normale Arbeiten und Störungen. Ein Rollback ermöglicht die Rückkehr zu einem bekannten Zustand. Für reale Dienste mit persistenten Daten sind überprüfte Backups sowie definierte Wiederanlauf- und Datenverlustziele erforderlich.

Phase Handlung Nachweis
Erkennen Status und Fachfunktion prüfen Lokaler Test
Einordnen Auswirkung beschreiben Störungseintrag
Zuordnen Zuständige Rolle bestimmen RACI
Beheben Autorisierte lokale Maßnahme Änderungsvermerk
Nachprüfen Tests wiederholen Neues Protokoll
Abschließen Entscheidung festhalten Freigabevermerk

RTO: Angestrebte Wiederherstellungszeit. RPO: Maximal tolerierter Zeitraum möglichen Datenverlusts. Ticketblick verwendet keine dauerhafte Datenspeicherung; deshalb gibt es im konkreten Labordienst keinen Datenbank-Restore.

Transferaufgabe: Entwirf für einen hypothetischen Dienst mit Datenbank einen Ablauf für Wiederherstellung, Tests, Kommunikation und Freigabe. Nutze dabei keine wirklichen Kundendaten.

Feedback: Ein Wiederanlauf gilt erst als belastbar, wenn die nötigen Schritte und Prüfkriterien dokumentiert sind. Eine vorhandene Datensicherung ohne erprobte Wiederherstellung ist kein hinreichender Nachweis.


Interaktive Aufgaben


Quiz: Teste Dein Wissen

Was gehört zu einer betriebsbereiten Dokumentation? (Konfiguration Zuständigkeiten und Betriebsnachweise) (!Nur ein Bild der Benutzeroberfläche) (!Nur die Lieferantenadresse) (!Nur die Kostenübersicht)




Wohin verweist 127.0.0.1? (Auf den eigenen Rechner) (!Auf ein beliebiges Kundennetz) (!Auf einen externen DNS Server) (!Auf alle Geräte im Internet)




Was ist eine Baseline? (Ein dokumentierter Sollzustand) (!Ein beliebiger Alarmton) (!Ein Benutzerpasswort) (!Eine offene Rechnung)




Wer trägt in RACI die Ergebnisverantwortung? (Accountable) (!Consulted) (!Informed) (!Responsible ohne Festlegung)




Welche Prüfung zeigt die erwartete Fachfunktion? (Abruf des Demotickets) (!Nur das Öffnen des Editors) (!Nur die Anzeige der Uhrzeit) (!Nur die Kontrolle des Monitors)




Welche Größen sind die vier Golden Signals? (Latenz Verkehr Fehler Sättigung) (!Preis Farbe Standort Marke) (!Tastatur Drucker Maus Bildschirm) (!Alter Name Speicherort Lizenz)




Wie hoch ist die Erfolgsquote bei 196 von 200 Anfragen? (98 Prozent) (!90 Prozent) (!95 Prozent) (!99 Prozent)




Was bedeutet ein bestandener Negativtest? (Die erwartete Störungsreaktion wurde korrekt geprüft) (!Jeder Test muss abstürzen) (!Jede Beobachtung wird gelöscht) (!Die Produktion wird automatisch freigegeben)




Wofür wird ein Rollback eingesetzt? (Für die Rückkehr zum bekannten Zustand) (!Für das Löschen aller Nachweise) (!Für das Ersetzen der Zuständigkeit) (!Für das Abschalten aller Tests)




Welche Aussage ist richtig? (Ein erfolgreicher Healthcheck allein belegt keine Produktionsreife) (!Jeder erreichbare Dienst ist produktionssicher) (!Fiktive Daten belegen die reale Verfügbarkeit) (!Eine Freigabe benötigt keine Prüfkriterien)





Memory

Baseline Dokumentierter Sollzustand
Runbook Betriebliche Handlungsanleitung
Incident Ungeplante Störung
Monitoring Laufende Zustandsbeobachtung
Rollback Rückkehr zur Vorversion
SLI Messbarer Qualitätsindikator
SLO Definiertes Qualitätsziel





Drag and Drop

Ordne die richtigen Begriffe zu. Beschreibung
Konfiguration Technischer Sollzustand
Incident Management Bearbeitung ungeplanter Störungen
Monitoring Beobachtung von Kennzahlen
Change Management Geplante und genehmigte Änderung
Service Level Management Festlegung und Prüfung der Dienstqualität





Kreuzworträtsel

Baseline Wie heißt der dokumentierte Sollzustand?
Runbook Wie nennt man eine betriebliche Schrittanleitung?
Monitoring Wie heißt die Überwachung betrieblicher Kennzahlen?
Rollback Wie heißt die Rückkehr zur früheren Version?
Incident Wie heißt eine ungeplante Betriebsstörung auf Englisch?
Freigabe Wie heißt die genehmigte Betriebsentscheidung?





LearningApps

Externe Materialsuche; keine echten Betriebsinformationen eingeben.

Lückentext

Vervollständige den Text.
Ein bekannter Sollzustand heißt

.
Die lokale IP-Adresse gehört zum

.
Ein technischer Statusaufruf ist ein

.
Die laufende Beobachtung von Kennzahlen heißt

.
Eine ungeplante Betriebsstörung nennt man

.
Die Ergebnisverantwortung heißt im RACI-Modell

.
Die Rückkehr zu einer Vorversion heißt

.
Ein definiertes Qualitätsziel nennt man

.
Ein messbarer Qualitätsindikator heißt

.
Eine Handlungsanleitung für den Betrieb heißt

.



Offene Aufgaben


Leicht

  1. Dienstbeschreibung: Erstelle eine Dienstkarte mit Version, Zweck und Systemgrenzen.
  2. Client-Server-Modell: Zeichne den lokalen Anfrageweg und beschrifte ihn.
  3. Konfigurationsmanagement: Erkläre fünf Sollwerte der Baseline.
  4. Betriebscheckliste: Erstelle eine nachvollziehbare lokale Prüfcheckliste.


Standard

  1. Softwaretest: Führe die vier lokalen Tests aus und dokumentiere Datum und Resultate.
  2. Monitoring: Erstelle aus fiktiven Kennzahlen ein Diagramm mit Zielvergleich.
  3. RACI-Matrix: Weise einem Versionswechsel vier betriebliche Rollen zu.
  4. Runbook: Beschreibe und prüfe die bewusst simulierte Statusreaktion 503.


Schwer

  1. Cloud Computing: Vergleiche das isolierte Labor mit einem hypothetischen Cloudbetrieb.
  2. Change Management: Entwickle einen Änderungsantrag mit Rückfallplan und Freigabe.
  3. Business Continuity Management: Plane RTO und RPO für einen gedachten Dienst mit persistenter Speicherung.
  4. IT-Service-Management: Verteidige Deine Betriebsentscheidung anhand des Übergabepakets.


Feedback zu den Niveaus

Basis: Klare Sollwerte machen Prüfkriterien verständlich. Anwendung: Tatsächliche Testresultate sind belastbarer als bloße Erwartungen. Transfer: Erst die Verbindung von Prüfnachweisen, Verantwortlichkeit und Rückfallmaßnahmen macht Betriebsentscheidungen nachvollziehbar.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

  1. Funktionstest: Ein Dienst ist erreichbar, aber liefert kein erwartetes Ticket. Welche zusätzliche Prüfung ist sinnvoll und warum?
  2. Konfigurationsmanagement: Ein Port wurde ohne Aktualisierung der Dokumentation geändert. Welche Auswirkungen sind zu erwarten?
  3. Monitoring: Die Antwortzeit ist gut, die Erfolgsquote schlecht. Begründe eine Entscheidung.
  4. RACI-Matrix: Zwei Personen führen widersprüchliche Maßnahmen aus. Wie verbesserst Du Zuständigkeiten?
  5. Betriebsfreigabe: Vier Tests bestehen, ein Rückfallplan fehlt. Welche weitere Maßnahme ist erforderlich?
  6. Datensicherung: Übertrage den Laborfall auf einen Dienst mit Datenbank und definiere zusätzliche Prüfungen.


Lernnachweis

Arbeitsprodukt Nachweiskriterium
Dienstkarte Zweck und Grenzen erkennbar
Baseline Werte und Prüfwege dokumentiert
RACI Klare Ergebnisverantwortung
Lokale Tests Tatsächlich erstelltes datiertes Testprotokoll
Kennzahlenbericht Korrekte Berechnung und Visualisierung
Runbook Zuständigkeit und Wiederanlauf erklärt
Freigabevermerk Entscheidung anhand von Kriterien begründet
Sicherheitsnachweis Nur eigene oder autorisierte isolierte Umgebung, fiktive Daten

Die Übungsfreigabe und eine reale Produktionsfreigabe sind nicht gleichzusetzen. Für den vorgegebenen Datensatz wird das simulierte Qualitätsziel nicht erreicht.

OERs zum Thema

Fachliche Quellen:

  1. BSI IT-Grundschutz
  2. NIST: Konfigurationsmanagement
  3. Google SRE: Monitoring
  4. Prometheus: Instrumentierung
  5. Python: Lokaler HTTP-Server
  6. Python: Automatisierte Tests

Medien und Rechte: Die eingebundenen Wikimedia-Commons-Dateien werden über ihre Dateiseiten identifiziert. Prüfe dort vor Wiederverwendung Urheber, Lizenz, Namensnennung und etwaige Share-Alike-Bedingungen: Serverracks, Cloud-Modelle, Client-Server-Modell. Externe YouTube-Einbettungen sind keine frei nachnutzbaren Dateien. Ihr Aufruf kann Verbindungsdaten an Dritte übertragen.


Verknüpfte Lernbereiche


aiMOOC-Projekte



Schulfach+




aiMOOCs



aiMOOC Projekte









MOOCwiki · Deutsch

Nach dem Lernen ist vor dem Lernen

Entdecke direkt den nächsten Lernkurs. Weitere Inhalte erscheinen, wenn Du weiter nach unten scrollst.

Zur MOOCwiki-Hauptseite

Mediathek

Inhalte werden geladen ...

Mediathek wird aus dem Wiki geladen ...