Initial commit: IHK Ausbildung materials

This commit is contained in:
2026-03-13 11:46:08 +01:00
commit eb4a13ef7c
67 changed files with 11361 additions and 0 deletions

View File

@@ -0,0 +1,181 @@
# LF 6: Serviceanfragen bearbeiten
> **2. Ausbildungsjahr** | Zeitrichtwert: **40 Stunden**
## Kernkompetenz
Die Schülerinnen und Schüler verfügen über die Kompetenz, Serviceanfragen einzuordnen, Fehlerursachen zu ermitteln und zu beheben.
---
## Lernziele
Nach diesem Lernfeld kannst du:
- [ ] Serviceanfragen analysieren und einordnen
- [ ] Service-Level-Agreements (SLA) prüfen
- [ ] Ticket-Systeme bedienen
- [ ] Fehlerursachen systematisch ermitteln
- [ ] Lösungen im Rahmen des Support-Levels erarbeiten
- [ ] Mit Kunden situationsgerecht kommunizieren
- [ ] Den Bearbeitungsprozess reflektieren
---
## ITIL-Grundlagen
### Service-Struktur
```
ITIL-Prozesse
├── Service Strategy
├── Service Design
├── Service Transition
├── Service Operation
│ ├── Incident Management
│ ├── Problem Management
│ └── Request Fulfillment
└── Continual Service Improvement
```
### Support-Level
| Level | Beschreibung | Beispiel |
|-------|--------------|----------|
| **1st Level** | Erste Ebene, einfache Probleme | Passwort zurücksetzen |
| **2nd Level** | Technischer Support | Hard- und Softwareprobleme |
| **3rd Level** | Entwicklung/Hersteller | Komplexe Fehler |
---
## Ticket-Systeme
### Ticket-Lebenszyklus
```
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ New │───>│ Open │───>│ Pending │───>│ Closed │
└─────────┘ └─────────┘ └─────────┘ └─────────┘
│ │
v v
┌─────────┐ ┌─────────┐
│ In │ │ Resolved│
│ Progress │ └─────────┘
└─────────┘
```
### Prioritäten
| Priorität | Beschreibung | Reaktionszeit |
|-----------|--------------|---------------|
| **P1 - Kritisch** | Geschäftskritisch | < 1 Stunde |
| **P2 - Hoch** | Große Auswirkung | < 4 Stunden |
| **P3 - Mittel** | Begrenzte Auswirkung | < 1 Arbeitstag |
| **P4 - Niedrig** | Minimaler Impact | < 1 Woche |
---
## SLA (Service Level Agreement)
### Bestandteile
```
SLA-Inhalte
├── Verfügbarkeit (z.B. 99,9%)
├── Reaktionszeiten
├── Wiederherstellungszeiten
├── Support-Zeiten (24/7, 9-17 Uhr)
├── Eskalationsprozeduren
├── Reporting
└── Kosten
```
### Berechnung Verfügbarkeit
```
Beispiel: 99,9% Verfügbarkeit
Jährlich: 365 Tage × 24h = 8760h
Erlaubte Ausfallzeit: 8760 × 0,001 = 8,76h
Monatlich: 720h × 0,001 = 0,72h
```
---
## Fehleranalyse
### Methoden
| Methode | Beschreibung |
|---------|--------------|
| **5 Whys** | Warum-Fragen stellen (Root Cause) |
| **Ishikawa** | Fischgräten-Diagramm |
| **Kepner-Tregoe** | Situationsanalyse |
### 5-Why-Beispiel
```
Problem: Drucker druckt nicht
1. Warum? → Kein Toner
2. Warum? → Toner wurde nie gewechselt
3. Warum? → Keine Warnung bei niedrigem Tonerstand
4. Warum? → Einstellungen nicht konfiguriert
5. Warum? → Schulung nicht erfolgt
→ Lösung: Schulung durchführen
```
---
## Kommunikation
### Vier-Seiten-Modell (Schulz von Thun)
```
Nachricht hat 4 Seiten:
┌─────────────────────────────────────┐
│ Sachinhalt │ ← Was wurde mitgeteilt?
├─────────────────────────────────────┤
│ Selbstoffenbarung │ ← Was sagt das über mich aus?
├─────────────────────────────────────┤
│ Beziehung │ ← Wie stehe ich zum Empfänger?
├─────────────────────────────────────┤
│ Appelle │ ← Was will ich erreichen?
└─────────────────────────────────────┘
```
### Deeskalation
- **Aktives Zuhören**
- **Empathie zeigen**
- **Sachlich bleiben**
- **Lösungen anbieten**
- **Rückmeldung geben**
---
## Handlungsphasen
1. **Aufnehmen**: Ticket erstellen, Kunden kontaktieren
2. **Analysieren**: SLA prüfen, Fehler eingrenzen
3. **Lösen**: Lösung erarbeiten, umsetzen
4. **Dokumentieren**: Ticket aktualisieren, dokumentieren
5. **Abschließen**: Kunden informieren, Feedback einholen
---
## Prüfungsrelevanz
- Wichtig für Support-Tätigkeiten
- Kommunikationskompetenz wird geprüft
---
## Querverweise
- [[1-Ausbildungsjahr/LF5-Datenbanken-anpassen|Vorher: LF 5]]
- [[2-Ausbildungsjahr/LF7-Cyber-physische-Systeme|Nachher: LF 7]]
---
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*

View File

@@ -0,0 +1,225 @@
# LF 7: Cyber-physische Systeme ergänzen
> **2. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
## Kernkompetenz
Die Schülerinnen und Schüler verfügen über die Kompetenz, die physische Welt und IT-Systeme funktional zu einem cyber-physischen System zusammenzuführen.
---
## Lernziele
Nach diesem Lernfeld kannst du:
- [ ] Ein CPS analysieren und dessen Komponenten beschreiben
- [ ] Datenfluss an Schnittstellen verstehen
- [ ] Sensoren und Aktoren auswählen und integrieren
- [ ] IoT-Kommunikationsprotokolle anwenden
- [ ] Energiebedarf berechnen
- [ ] System testen und dokumentieren
- [ ] Sicherheitsaspekte berücksichtigen
---
## Was ist ein CPS?
```
Cyber-Physical System (CPS)
├── PHYSISCHE WELT
│ ├── Sensoren (Messdaten erfassen)
│ └── Aktoren (physikalische Aktionen)
├── IT-SYSTEM
│ ├── Steuerung/Regelung
│ ├── Datenverarbeitung
│ └── Speicherung
└── KOMMUNIKATION
├── Netzwerkverbindung
└── Protokolle (MQTT, REST, etc.)
```
### CPS vs. IoT
| Merkmal | CPS | IoT |
|---------|-----|-----|
| Fokus | Steuerung + Regelung | Vernetzung + Daten |
| Bereich | Produktion, Auto | Consumer, Gebäude |
| Echtzeit | Oft kritisch | Meist weniger |
---
## Sensoren
### Typen
| Sensortyp | Messgröße | Anwendung |
|-----------|-----------|------------|
| Temperatursensor | °C/°F | Klimaanlage |
| Feuchtigkeitssensor | %rH | Gewächshaus |
| Drucksensor | bar/Pa | Hydraulik |
| Lichtsensor | Lux | Beleuchtung |
| Abstandssensor | cm/mm | Automatisierung |
| Füllstandssensor | % | Tank |
| Bewegungssensor | bool | Sicherheit |
### Schnittstellen
```
Sensor-Schnittstellen
├── Analog
│ ├── 0-10V
│ └── 4-20mA (Stromschleife)
├── Digital
│ ├── I2C (Two-Wire)
│ ├── SPI
│ ├── 1-Wire
│ └── UART
└── Funk
├── Zigbee
├── Bluetooth LE
└── LoRa
```
---
## Aktoren
### Typen
| Aktortyp | Funktion | Beispiel |
|---------|---------|---------|
| Relais | Schalten | Licht, Motor |
| Motor | Drehung | Roboterarm |
| Ventil | Durchfluss | Hydraulik |
| Heizelement | Wärme | 3D-Drucker |
| LED | Lichtsignal | Statusanzeige |
| Piezo | Tonalarm | Signalton |
---
## Mikrocontroller & Einplatinencomputer
### Vergleich
| Plattform | Prozessor | RAM | GPIO | OS |
|-----------|-----------|-----|------|-----|
| **Arduino Uno** | ATmega328P | 2KB | 14 | Nein |
| **Raspberry Pi 4** | ARM Cortex-A72 | 8GB | 40 | Linux |
| **ESP32** | Xtensa | 520KB | 34 | FreeRTOS |
| **BBC micro:bit** | ARM Cortex-M4 | 256KB | 19 | Keins |
### Programmierung
```python
# Raspberry Pi / Python Beispiel
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
try:
while True:
GPIO.output(18, True) # LED an
time.sleep(1)
GPIO.output(18, False) # LED aus
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
```
---
## IoT-Kommunikationsprotokolle
### MQTT
**Publish/Subscribe-Prinzip:**
```
Publisher Broker Subscriber
│ │ │
│──Topic: temp───>│ │
│ │──temp───> │
│ │ │
│──Topic: temp───>│ │
│ │ │
```
**Beispiel (Python):**
```python
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
client.subscribe("sensor/temperature")
def on_message(client, userdata, msg):
print(f"Temperatur: {msg.payload.decode()}")
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("broker.example.com", 1883)
client.loop_forever()
```
### REST API
```
HTTP-Methoden:
GET → Daten abrufen
POST → Daten erstellen
PUT → Daten vollständig ersetzen
PATCH → Daten teilweise ändern
DELETE → Daten löschen
```
---
## Energiebedarf
### Berechnung
```
P = U × I (Leistung = Spannung × Strom)
Beispiel:
Mikrocontroller: 5V × 0,5A = 2,5W
Stunden pro Tag: 24h
Verbrauch/Tag: 2,5W × 24h = 60Wh = 0,06kWh
Jahr: 0,06kWh × 365 = 21,9kWh
```
---
## Handlungsphasen
1. **Analysieren**: Bestehendes System verstehen
2. **Informieren**: Technische Dokumentation studieren
3. **Planen**: Komponentenauswahl, Konzept erstellen
4. **Implementieren**: Software, Hardware integrieren
5. **Testen**: Funktion prüfen, dokumentieren
6. **Reflektieren**: Optimierungsmöglichkeiten finden
---
## Prüfungsrelevanz
- Wichtig für Anwendungsentwicklung
- Projektion in LF 10a-12a
- Praxisbezug für Abschlussprojekt
---
## Querverweise
- [[2-Ausbildungsjahr/LF6-Serviceanfragen|Vorher: LF 6]]
- [[2-Ausbildungsjahr/LF8-Daten-bereitstellen|Nachher: LF 8]]
- [[IoT-Programmierung|IoT-Programmierung Vertiefung]]
---
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*

View File

@@ -0,0 +1,32 @@
# Lernfeld 7: Service und Support
## Übersicht
Dieses Lernfeld behandelt die Bearbeitung von Serviceanfragen und den IT-Support.
## Themen
| Nr. | Thema | Beschreibung |
| --- | --- | --- |
| 7.1 | [[LF7-01-ITIL-Grundlagen]] | IT Service Management |
| 7.2 | [[LF7-02-Ticketmanagement]] | Ticketsysteme, Prozesse |
| 7.3 | [[LF7-03-Support-Stufen]] | 1st/2nd/3rd Level |
| 7.4 | [[LF7-04-Kommunikation]] | Kundenkommunikation |
## Lernziele
- Serviceanfragen professionell bearbeiten
- ITIL-Prozesse anwenden
- Support-Stufen unterscheiden
- Kundenorientiert kommunizieren
---
## Querverweise
- [[LF6-04-Sicherheit-Web|Zurück: Web-Sicherheit]]
- [[LF8-Datenintegration|Nächstes Lernfeld: Datenintegration]]
---
*Stand: 2024*

View File

@@ -0,0 +1,150 @@
# 7.1 ITIL-Grundlagen
## Was ist ITIL?
**ITIL** (Information Technology Infrastructure Library) ist ein Framework für **IT Service Management (ITSM)**.
### Geschichte
```
ITIL-Versionen
├── ITIL v1 (1989) → 1990er
├── ITIL v2 (2001) → Best Practices
├── ITIL v3 (2007) → Service Lifecycle
└── ITIL 4 (2019) → Aktuell, flexibler
```
---
## ITIL Service Value System (SVS)
```
ITIL 4 - Überblick
┌────────────────────────────────────────┐
│ Organisation │
├────────────────────────────────────────┤
│ Service Value Chain │
│ Plan → Improve → Engage → Design → │
│ Transition → Operation │
├────────────────────────────────────────
│ ITIL Practices │
└────────────────────────────────────────┘
```
---
## ITIL Service Value Chain
```
Value Chain - Aktivitäten
├── Plan (Planen)
│ └── Strategie festlegen
├── Improve (Verbessern)
│ └── Kontinuierliche Verbesserung
├── Engage (Einbeziehen)
│ └── Kommunikation mit Stakeholdern
├── Design & Transition (Gestalten)
│ └── Services entwickeln
├── Obtain/Build (Beschaffen)
│ └── Komponenten bereitstellen
└── Deliver & Operate (Liefern/Betreiben)
└── Services bereitstellen
```
---
## ITIL Practices
### Service Practices
| Practice | Beschreibung |
|----------|-------------|
| Service Desk | Single Point of Contact |
| Incident Management | Störungsbearbeitung |
| Problem Management | Grundursachenanalyse |
| Change Management | Änderungsprozess |
| Release Management | Bereitstellung |
### Technical Practices
| Practice | Beschreibung |
|----------|-------------|
| Monitoring | Systemüberwachung |
| Event Management | Ereignisverarbeitung |
| Incident Response | Reaktionsfähigkeit |
|Continual Improvement | KVP |
---
## Kernkonzepte
### Service
```
Service - Definition
Ein Service ermöglicht es Kunden,
Wert zu erreichen, ohne spezifische
Kosten und Risiken zu tragen.
```
### Value
```
Wert - Komponenten
├── Nutzen (Utility)
│ └── Funktionen, die Kunde braucht
└── Ertrag (Warranty)
└── Qualität, Verfügbarkeit
```
### Customer Experience
```
Service Relationship
┌─────────┐ Service ┌─────────┐
│ Service │◄───────────────►│ Kunde │
│ Provider│ │ │
└─────────┘ └─────────┘
```
---
## ITIL-Prozesse im Detail
### Incident Management
```
Incident Lifecycle
1. Detect → Erkennen
2. Record → Erfassen
3. Categorize → Kategorisieren
4. Prioritize → Priorisieren
5. Diagnose → Diagnostizieren
6. Resolve → Beheben
7. Close → Abschließen
```
### Problem Management
```
Problem - Ablauf
Problem erkannt
Analyse der Grundursache
Lösung entwickeln
Change Request erstellen
Problem gelöst
```
---
## Querverweise
- [[LF7-02-Ticketmanagement|Nächstes Thema: Ticketmanagement]]
---
*Stand: 2024*

View File

@@ -0,0 +1,178 @@
# 7.2 Ticketmanagement
## Ticketsysteme
### Was ist ein Ticket?
```
Ticket = Strukturierten Erfassung
einer Serviceanfrage oder Störung
```
### Lebenszyklus
```
Ticket-Lebenszyklus
┌──────────┐
│ Neu │ ← Created
└────┬─────┘
┌──────────┐
│ In Bearb.│ ← Assigned
└────┬─────┘
┌──────────┐
│ Gelöst │ ← Resolved
└────┬─────┘
┌──────────┐
│ Geschlos.│ ← Closed
└──────────┘
```
---
## Ticket-Kategorien
### Kategorisierung
| Kategorie | Beschreibung |
|-----------|-------------|
| Incident | Störung, Serviceausfall |
| Request | Anfrage, Wunsch |
| Change | Änderungsanfrage |
| Problem | Wiederkehrendes Problem |
### Prioritäten
| Priorität | Beschreibung | Reaktionszeit |
|-----------|-------------|---------------|
| **P1 - Kritisch** | Geschäftskritisch | < 1 Stunde |
| **P2 - Hoch** | Wichtige Funktion | < 4 Stunden |
| **P3 - Mittel** | Normale Priorität | < 1 Arbeitstag |
| **P4 - Niedrig** | Kleinere Probleme | < 1 Woche |
### Auswirkung (Impact)
| Level | Beschreibung |
|-------|-------------|
| 1 - Global | Alle Benutzer betroffen |
| 2 - Abteilung | Mehrere Abteilungen |
| 3 - Einzelner | Ein Benutzer |
---
## Ticketfelder
### Standardfelder
```
Ticket-Daten
├── ID (eindeutig)
├── Titel/Zusammenfassung
├── Beschreibung
├── Kategorie
├── Priorität
├── Status
├── Bearbeiter
├── Lösung
├── Erstellungsdatum
├── Fälligkeitsdatum
└── Anhang/Bilder
```
### Beispiel-Ticket
```markdown
# Ticket #12345
Titel: Drucker druckt nicht
Kategorie: Hardware
Priorität: P3
Status: In Bearbeitung
Beschreibung:
Der Drucker im 2. OG zeigt Fehlermeldung
"Papierstau" obwohl kein Papier vorhanden.
Lösung:
Wartung durchgeführt, Walzen gereinigt.
```
---
## Ticketwerkzeuge
### Tools
| Tool | Typ | Eigenschaften |
|------|-----|---------------|
| Jira Service Management | Cloud | Umfangreich |
| OTRS | Open Source | Deutsch |
| GLPI | Open Source | Asset-Management |
| Zendesk | Cloud | Support-fokussiert |
| Freshservice | Cloud | Einfach |
---
## SLA (Service Level Agreement)
### SLA-Komponenten
```
SLA - Inhalt
├── Reaktionszeiten
├── Lösungszeiten
├── Verfügbarkeit
├── Support-Zeiten (Business Hours)
├── Eskalationsprozeduren
└── Kommunikationswege
```
### Eskalation
```
Eskalation - Stufen
├── 1. Stufe: Bearbeiter
├── 2. Stufe: Teamleiter
├── 3. Stufe: Manager
└── 4. Stufe: Geschäftsführung
```
---
## Kennzahlen (KPIs)
### Wichtige Metriken
| KPI | Beschreibung | Zielwert |
|-----|-------------|----------|
| MTTR | Mean Time To Resolve | < 8h |
| MTTF | Mean Time To Failure | > 720h |
| FCR | First Contact Resolution | > 70% |
| CSAT | Customer Satisfaction | > 4.5/5 |
### Reporting
```
Ticket-Report
├── Anzahl offener Tickets
├── Durchschnittliche Lösungszeit
├── Tickets pro Kategorie
├── SLA-Einhaltung
└── Kundenfeedback
```
---
## Querverweise
- [[LF7-01-ITIL-Grundlagen|Zurück: ITIL-Grundlagen]]
- [[LF7-03-Support-Stufen|Nächstes Thema: Support-Stufen]]
---
*Stand: 2024*

View File

@@ -0,0 +1,194 @@
# 7.3 Support-Stufen
## Support-Struktur
### Eskalationsmodell
```
Support-Level
┌─────────────────────────────────┐
│ Service Desk │ ← 1st Level
│ (First Line / Front Office) │
└───────────────┬─────────────────┘
┌─────────────────────────────────┐
│ Technical Support │ ← 2nd Level
│ (2nd Line / Backend) │
└───────────────┬─────────────────┘
┌─────────────────────────────────┐
│ Expert Support │ ← 3rd Level
│ (3rd Line / Specialists) │
└───────────────┬─────────────────┘
┌─────────────────────────────────┐
│ External Vendors/Developers │ ← 4th Level
└─────────────────────────────────┘
```
---
## Level 1 - First Level Support
### Aufgaben
| Aufgabe | Beschreibung |
|---------|-------------|
| Annahme | Tickets entgegennehmen |
| Kategorisierung | Richtige Kategorie zuweisen |
| Grunddiagnose | Einfache Probleme lösen |
| Lösungswissen | Bekannte Lösungen anwenden |
| Eskalation | Komplexe Fälle weitergeben |
### Fähigkeiten
```
First Level - Anforderungen
├── Produktwissen
├── Kommunikationsfähigkeit
├── Grundlegende Technik
├── Dokumentation
└── Zeitmanagement
```
### Typische Lösungsquote
```
First Contact Resolution (FCR)
Ziel: 60-70% direkt gelöst
```
---
## Level 2 - Second Level Support
### Aufgaben
| Aufgabe | Beschreibung |
|---------|-------------|
| Tiefendiagnose | Komplexe Probleme analysieren |
| Technische Lösung | Fachliche Probleme beheben |
| Workarounds | Temporäre Lösungen finden |
| Dokumentation | Wissensdatenbank pflegen |
| Schulung | Level 1 unterstützen |
### Fähigkeiten
```
Second Level - Anforderungen
├── Vertieftes Technikwissen
├── Erfahrung mit Systemen
├── Analysefähigkeit
├── Eigenständigkeit
└── Mentoring
```
---
## Level 3 - Third Level Support
### Aufgaben
| Aufgabe | Beschreibung |
|---------|-------------|
| Expertenwissen | Spezialisten-Know-how |
| Grundursachenanalyse | Komplexe Fehler finden |
| Entwicklung | Fixes entwickeln |
| Architektur | Systemänderungen planen |
|Vendor-Kontakt | Hersteller einbinden |
### Fähigkeiten
```
Third Level - Anforderungen
├── Sehr tiefes Fachwissen
├── Programmierkenntnisse
├── Architekturverständnis
├── Innovationskraft
└── Dokumentation
```
---
## Eskalation
### Wann eskalieren?
```
Eskalations-Kriterien
├── Zeitüberschreitung
├── Fehlende Kompetenz
├── Benutzer-Escalation
├── Qualitätsprobleme
└── Neue Sachverhalte
```
### Vertikale vs. Horizontale Eskalation
| Typ | Beschreibung |
|-----|-------------|
| **Vertikal** | An Vorgesetzte/ höhere Level |
| **Horizontal** | An anderes Team/ Thema |
---
## Remote Support
### Tools
| Tool | Beschreibung |
|------|-------------|
| AnyDesk | Fernwartung |
| TeamViewer | Universell |
| Windows Remote Desktop | Windows |
| VNC | Plattformübergreifend |
### Best Practices
```
Fernwartung - Regeln
├── Genehmigung einholen
├── Bildschirm freigeben lassen
├── Nur auf Abfrage handeln
├── Keine privaten Daten ansehen
└── Session dokumentieren
```
---
## Wissensdatenbank
### Knowledge Base (KB)
```
KB - Inhalte
├── Lösungsschritte (How-To)
├── FAQ
├── Bekannte Probleme (Known Errors)
├── Produktdokumentation
└── Anleitungen
```
### Ticket-to-Knowledge
```
Aus Ticket wird Artikel
1. Problem reproduziert
2. Lösung gefunden
3. KB-Artikel erstellen
4. Auf Kunden-Ticket verlinken
```
---
## Querverweise
- [[LF7-02-Ticketmanagement|Zurück: Ticketmanagement]]
- [[LF7-04-Kommunikation|Nächstes Thema: Kommunikation]]
---
*Stand: 2024*

View File

@@ -0,0 +1,161 @@
# 7.4 Kundenkommunikation
## Kommunikationsgrundlagen
### Grundsätze
```
Gute Kommunikation
├── Zuhören
├── Verständlich erklären
├── Geduldig sein
├── Freundlich bleiben
└── Nicht überfordern
```
### Aktives Zuhören
```
Aktives Zuhören - Techniken
├── Augenkontakt
├── Nicken
├── Nachfragen
├── Zusammenfassen
└── Nicht unterbrechen
```
---
## Gesprächsführung
### Am Telefon
```
Telefon - Checkliste
├── Begrüßung (Name, Firma)
├── Problem aufnehmen
├── Fragen stellen
├── Lösung anbieten
├── Zusammenfassung
├── Verabschiedung
```
### Gesprächsphasen
| Phase | Inhalt |
|-------|--------|
| Eröffnung | Begrüßung, Vorstellung |
| Ermittlung | Problem verstehen |
| Lösung | Lösung anbieten |
| Abschluss | Zusammenfassung, Nächste Schritte |
---
## Technische Erklärungen
### Kunden verständlich
```
Komplexität reduzieren
├── Fachbegriffe vermeiden oder erklären
├── Analogien verwenden
├── Visuelle Hilfen einsetzen
├── Schritt für Schritt arbeiten
└── Nachfragen ob verstanden
```
### Analogien
```
Beispiele für Erklärungen
Netzwerk → Straßennetz
Server → Bibliothek
Firewall → Sicherheitskontrolle
Backup → Sicherheitskopie
```
---
## schwierige Situationen
### Umgang mit Ärger
```
Ärgerlicher Kunde - Verhalten
├── Ruhig bleiben
├── Nicht persönlich nehmen
├── Verständnis zeigen
├── Nicht unterbrechen
└── Lösung anbieten
```
### Formulierungen
| Vermeiden | Besser |
|-----------|--------|
| Das ist unmöglich | Ich schaue mir das an |
| Das ist nicht mein Problem | Ich verbinde Sie mit... |
| Das müssen Sie | Hier ist die Lösung |
| Keine Ahnung | Das finde ich für Sie heraus |
---
## Dokumentation
### Ticket-Kommunikation
```
Dokumentation - Tipps
├── Wichtige Punkte notieren
├── Vereinbarungen festhalten
├── Nächste Schritte klären
├── Zeit notieren
└── Professionell bleiben
```
### E-Mail-Kommunikation
```
E-Mail - Struktur
├── Aussagekräftiger Betreff
├── Höfliche Anrede
├── Klare Beschreibung
├── Erwartete Antwort
├── Signatur
```
---
## Feedback und Zufriedenheit
### Kundenzufriedenheit messen
```
CSAT - Customer Satisfaction
└── Nach Ticket-Abschluss:
"Wie zufrieden sind Sie?"
(Skala 1-5)
```
### NPS - Net Promoter Score
```
Frage: "Wie wahrscheinlich empfehlen Sie uns?"
(0-10)
Berechnung:
Promoters (9-10) - Detractors (0-6)
= NPS (-100 bis +100)
```
---
## Querverweise
- [[LF7-03-Support-Stufen|Zurück: Support-Stufen]]
- [[LF1-06-Eigene-Rolle|Eigene Rolle im Betrieb]]
---
*Stand: 2024*

View File

@@ -0,0 +1,182 @@
# LF 8: Daten systemübergreifend bereitstellen
> **2. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
## Kernkompetenz
Die Schülerinnen und Schüler besitzen die Kompetenz, Daten aus dezentralen Quellen zusammenzuführen, aufzubereiten und zur weiteren Nutzung zur Verfügung zu stellen.
---
## Lernziele
Nach diesem Lernfeld kannst du:
- [ ] Datenquellen analysieren und bewerten
- [ ] Heterogene Datenquellen integrieren
- [ ] Daten für die Weiterverarbeitung aufbereiten
- [ ] APIs und Schnittstellen nutzen
- [ ] Datenbanksysteme anbinden
- [ ] Dokumentation erstellen
---
## Datenquellen
### Typen
```
DATENQUELLEN
├── Relationale Datenbanken
│ ├── MySQL/MariaDB
│ ├── PostgreSQL
│ └── MS SQL Server
├── NoSQL-Datenbanken
│ ├── MongoDB (Dokument)
│ ├── Redis (Key-Value)
│ └── Cassandra (Spaltenorientiert)
├── Dateien
│ ├── CSV, JSON, XML
│ └── Excel, PDF
├── Web-Services
│ ├── REST-APIs
│ └── SOAP
└── Cloud-Dienste
└── AWS S3, Azure Blob, etc.
```
---
## Datenintegration
### ETL-Prozess
```
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ Extract │ → │ Transform│ → │ Load │ → │ Target │
└─────────┘ └─────────┘ └─────────┘ └─────────┘
│ │
│ Bereinigung │
│ Konvertierung │
│ Aggregation │
```
### Herausforderungen
- **Datenqualität**: Vollständigkeit, Konsistenz
- **Formate**: Unterschiedliche Strukturen
- **Latenz**: Echtzeit vs. Batch
- **Security**: Authentifizierung, Autorisierung
---
## APIs (Application Programming Interface)
### REST-Prinzipien
```
REST-Konventionen:
├── Ressourcenorientiert (Nomen)
├── HTTP-Methoden nutzen
│ ├── GET → Lesen
│ ├── POST → Erstellen
│ ├── PUT → Ersetzen
│ ├── PATCH → Teilaktualisierung
│ └── DELETE → Löschen
├── Statuscodes
│ ├── 200 OK
│ ├── 201 Created
│ ├── 400 Bad Request
│ ├── 401 Unauthorized
│ └── 404 Not Found
└── Stateless (zustandslos)
```
### API-Beispiel
```python
# Python REST-API mit Flask
from flask import Flask, jsonify, request
app = Flask(__name__)
# GET - Daten abrufen
@app.route('/api/kunden', methods=['GET'])
def get_kunden():
return jsonify(kunden_liste)
# POST - Daten erstellen
@app.route('/api/kunden', methods=['POST'])
def create_kunde():
daten = request.json
kunden_liste.append(daten)
return jsonify(daten), 201
# PUT - Daten aktualisieren
@app.route('/api/kunden/<int:id>', methods=['PUT'])
def update_kunde(id):
daten = request.json
for i, k in enumerate(kunden_liste):
if k['id'] == id:
kunden_liste[i] = daten
return jsonify(daten)
return jsonify({'error': 'Not found'}), 404
```
---
## Datenbank-Anbindung
### Python mit SQLAlchemy
```python
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Kunde(Base):
__tablename__ = 'kunden'
id = Column(Integer, primary_key=True)
name = Column(String(100))
email = Column(String(255))
# Verbindung herstellen
engine = create_engine('sqlite:///kunden.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
# Daten abfragen
for kunde in session.query(Kunde).all():
print(f"{kunde.id}: {kunde.name}")
```
---
## Handlungsphasen
1. **Analysieren**: Datenquellen identifizieren, Strukturen verstehen
2. **Planen**: Integrationskonzept erstellen
3. **Entwickeln**: Schnittstellen implementieren
4. **Testen**: Datenfluss prüfen
5. **Dokumentieren**: Handhabung beschreiben
---
## Prüfungsrelevanz
- Wichtig für LF 12a (Abschlussprojekt)
- Datenintegration in Projekten
---
## Querverweise
- [[2-Ausbildungsjahr/LF7-Cyber-physische-Systeme|Vorher: LF 7]]
- [[2-Ausbildungsjahr/LF9-Netzwerke-Dienste|Nachher: LF 9]]
- [[Programmiersprachen/Python|Python Vertiefung]]
---
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*

View File

@@ -0,0 +1,32 @@
# Lernfeld 8: Daten systemübergreifend bereitstellen
## Übersicht
Dieses Lernfeld behandelt die Integration von Daten aus verschiedenen Quellen.
## Themen
| Nr. | Thema | Beschreibung |
|-----|-------|-------------|
| 8.1 | [[LF8-01-Datenquellen|Datenquellen]] | Datenbanken, APIs, Dateien |
| 8.2 | [[LF8-02-Schnittstellen|Schnittstellen]] | REST, SOAP, GraphQL |
| 8.3 | [[LF8-03-Datenformate|Datenformate]] | JSON, XML, CSV |
| 8.4 | [[LF8-04-ETL-Prozesse|ETL-Prozesse]] | Extrahieren, Transformieren, Laden |
## Lernziele
- Daten aus verschiedenen Quellen integrieren
- Schnittstellen entwickeln und nutzen
- Datenformate konvertieren
- ETL-Prozesse implementieren
---
## Querverweise
- [[LF7-04-Kommunikation|Zurück: Kommunikation]]
- [[LF9-Netzwerke-Dienste|Nächstes Lernfeld: Netzwerke und Dienste]]
---
*Stand: 2024*

View File

@@ -0,0 +1,130 @@
# 8.1 Datenquellen
## Arten von Datenquellen
### Datenbanken
```
Datenbank-Typen
├── Relational (MySQL, PostgreSQL, Oracle)
├── NoSQL (MongoDB, Cassandra)
├── Graph (Neo4j)
└── Zeitreihen (InfluxDB)
```
### Dateisysteme
| Format | Typ | Einsatz |
|--------|-----|----------|
| CSV | Text | Tabellarische Daten |
| JSON | Text | Strukturierte Daten |
| XML | Text | Konfiguration, Austausch |
| Excel | Binär | Tabellenkalkulation |
| PDF | Binär | Dokumente |
### Externe Quellen
```
Externe Datenquellen
├── APIs (REST, SOAP)
├── Webservices
├── Cloud-Speicher
├── Stream-Daten (IoT)
└── Drittanbieter
```
---
## Datenbank-Anbindung
### JDBC (Java)
```java
// Verbindung zu Datenbank
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/datenbank",
"benutzer",
"passwort"
);
// Abfrage
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM tabelle");
```
### Python (SQLAlchemy)
```python
from sqlalchemy import create_engine
engine = create_engine(
'postgresql://user:password@localhost:5432/database'
)
# Daten lesen
df = pd.read_sql("SELECT * FROM tabelle", engine)
```
---
## Dateien einlesen
### CSV
```python
import pandas as pd
# CSV einlesen
df = pd.read_csv('daten.csv')
# Mit Trennzeichen
df = pd.read_csv('daten.txt', sep='\t')
```
### JSON
```python
import json
# JSON laden
with open('daten.json') as f:
daten = json.load(f)
# Zu DataFrame
df = pd.json_normalize(daten)
```
### Excel
```python
import pandas as pd
# Excel einlesen
df = pd.read_excel('daten.xlsx')
# Bestimmtes Sheet
df = pd.read_excel('daten.xlsx', sheet_name='Tabelle1')
```
---
## Datenbanktypen im Vergleich
| Kriterium | Relational | NoSQL |
|-----------|-----------|-------|
| Schema | Fest | Flexibel |
| Skalierung | Vertikal | Horizontal |
| Transaktionen | ACID | Eventual Consistency |
| Komplexität | Mittel | Niedrig |
| Beispiele | MySQL, PostgreSQL | MongoDB, Redis |
---
## Querverweise
- [[LF8-02-Schnittstellen|Nächstes Thema: Schnittstellen]]
- [[LF3-Datenbanken|Datenbanken]]
---
*Stand: 2024*

View File

@@ -0,0 +1,185 @@
# 8.2 Schnittstellen
## API-Typen
### REST (Representational State Transfer)
```
REST-Prinzipien
├── Ressourcen-orientiert
├── Stateless
├── Einheitliche Schnittstelle
├── Client-Server
└── Cache-fähig
```
### REST-Endpunkte
```
Beispiel: Benutzer-API
GET /api/benutzer → Alle Benutzer
GET /api/benutzer/123 → Ein Benutzer
POST /api/benutzer → Erstellen
PUT /api/benutzer/123 → Aktualisieren
DELETE /api/benutzer/123 → Löschen
```
### REST-Beispiel
```javascript
// Express.js Server
const express = require('express');
const app = express();
app.get('/api/benutzer/:id', async (req, res) => {
const benutzer = await findBenutzer(req.params.id);
res.json(benutzer);
});
app.post('/api/benutzer', async (req, res) => {
const neuerBenutzer = await createBenutzer(req.body);
res.status(201).json(neuerBenutzer);
});
```
---
## SOAP (Simple Object Access Protocol)
### Unterschiede zu REST
| Kriterium | REST | SOAP |
|-----------|------|------|
| Format | JSON, XML | Nur XML |
| Transport | HTTP | HTTP, SMTP |
| Stateless | Ja | Optional |
| Größe | Klein | Groß |
### SOAP-Beispiel
```xml
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header/>
<soap:Body>
<GetUserRequest xmlns="http://beispiel.de/api">
<UserId>123</UserId>
</GetUserRequest>
</soap:Body>
</soap:Envelope>
```
---
## GraphQL
### Konzepte
```
GraphQL - Besonderheiten
├── Eine Anfrage, viele Daten
├── Client definiert benötigte Felder
├── Stark typisiert (Schema)
└── Keine Over- oder Underfetching
```
### GraphQL-Beispiel
```graphql
# Anfrage
query {
user(id: "123") {
name
email
orders {
id
total
}
}
}
# Antwort
{
"data": {
"user": {
"name": "Max",
"email": "max@example.com",
"orders": [
{ "id": "1", "total": 99.99 }
]
}
}
}
```
---
## API-Design Best Practices
### URL-Design
```
Richtlinien
├── Ressourcen plural (benutzer nicht benutzer)
├── Bindestrich für Wörter (benutzer-profil)
├── Kleinbuchstaben
├── Keine Verben im Pfad
└── Query-Parameter für Filter
```
### HTTP-Statuscodes
| Code | Bedeutung | Verwendung |
|------|-----------|------------|
| 200 | OK | Erfolgreich |
| 201 | Created | Erstellt |
| 400 | Bad Request | Ungültige Anfrage |
| 401 | Unauthorized | Nicht angemeldet |
| 404 | Not Found | Nicht gefunden |
| 500 | Server Error | Fehler |
---
## API-Dokumentation
### OpenAPI (Swagger)
```yaml
openapi: 3.0.0
info:
title: Meine API
version: 1.0.0
paths:
/benutzer:
get:
summary: Alle Benutzer
responses:
'200':
description: Erfolgreich
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Benutzer'
```
### Tools
| Tool | Beschreibung |
|------|-------------|
| Swagger UI | Interaktive Dokumentation |
| Postman | API-Testing |
| Insomnia | API-Client |
---
## Querverweise
- [[LF8-01-Datenquellen|Zurück: Datenquellen]]
- [[LF8-03-Datenformate|Nächstes Thema: Datenformate]]
---
*Stand: 2024*

View File

@@ -0,0 +1,199 @@
# 8.3 Datenformate
## JSON (JavaScript Object Notation)
### Grundstruktur
```json
{
"name": "Max Mustermann",
"alter": 25,
"adresse": {
"stadt": "Berlin",
"plz": "10115"
},
"hobbys": ["Lesen", "Programmieren"],
"aktiv": true
}
```
### Datentypen
| Typ | Beispiel |
|-----|----------|
| String | "Hallo" |
| Number | 42, 3.14 |
| Boolean | true, false |
| Array | [1, 2, 3] |
| Object | {"key": "value"} |
| Null | null |
### JSON in Python
```python
import json
# String zu Dictionary
daten = json.loads('{"name": "Max"}')
# Dictionary zu String
text = json.dumps(daten, indent=2)
# Mit Datei
with open('daten.json', 'w') as f:
json.dump(daten, f, indent=2)
```
---
## XML (eXtensible Markup Language)
### Grundstruktur
```xml
<?xml version="1.0" encoding="UTF-8"?>
<benutzer>
<name>Max Mustermann</name>
<alter>25</alter>
<adresse>
<stadt>Berlin</stadt>
</adresse>
</benutzer>
```
### XML-Attribute
```xml
<benutzer id="123" typ="admin">
<name>Max</name>
</benutzer>
```
### XML in Python
```python
import xml.etree.ElementTree as ET
# Parsen
baum = ET.parse('daten.xml')
wurzel = baum.getroot()
# Element finden
for kind in wurzel.findall('.//kind'):
print(kind.text)
# Erstellen
root = ET.Element('daten')
ET.SubElement(root, 'wert').text = 'test'
baum = ET.ElementTree(root)
baum.write('ausgabe.xml')
```
---
## CSV (Comma Separated Values)
### Grundstruktur
```csv
Name,Alter,Stadt
Max,25,Berlin
Anna,30,Hamburg
Peter,28,München
```
### Mit Python
```python
import pandas as pd
# Lesen
df = pd.read_csv('daten.csv', sep=',')
# Schreiben
df.to_csv('ausgabe.csv', index=False)
# Mit Header überspringen
df = pd.read_csv('daten.csv', skiprows=1)
```
---
## Vergleich
| Kriterium | JSON | XML | CSV |
|-----------|------|-----|-----|
| Lesbarkeit | Gut | Gut | Gut |
| Datentypen | Ja | Ja | Nein |
| Komplexität | Niedrig | Mittel | Niedrig |
| Dateigröße | Klein | Groß | Kleinest |
| Einsatz | APIs | Konfiguration | Tabellarisch |
---
## Datenkonvertierung
### CSV zu JSON
```python
import pandas as pd
import json
# CSV lesen
df = pd.read_csv('daten.csv')
# Zu JSON
json_string = df.to_json(orient='records', indent=2)
# In Datei schreiben
with open('daten.json', 'w') as f:
f.write(json_string)
```
### XML zu JSON
```python
import xmltodict
import json
# XML zu Dictionary
with open('daten.xml') as f:
daten = xmltodict.parse(f)
# Zu JSON
json_string = json.dumps(daten, indent=2)
```
---
## Datenvalidierung
### JSON Schema
```json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"alter": {
"type": "integer",
"minimum": 0
}
},
"required": ["name"]
}
```
---
## Querverweise
- [[LF8-02-Schnittstellen|Zurück: Schnittstellen]]
- [[LF8-04-ETL-Prozesse|Nächstes Thema: ETL-Prozesse]]
---
*Stand: 2024*

View File

@@ -0,0 +1,217 @@
# 8.4 ETL-Prozesse
## Was ist ETL?
**ETL** = Extract, Transform, Load
```
ETL - Prozess
┌─────────┐ ┌─────────────┐ ┌─────────┐
│ Extract │ → │ Transform │ → │ Load │
│(Extrahieren)│ │(Transformieren)│ │(Laden) │
└─────────┘ └─────────────┘ └─────────┘
```
### Anwendungsfälle
| Fall | Beschreibung |
|------|-------------|
| Data Warehouse | Daten für Analysen konsolidieren |
| Migration | Daten auf neues System übertragen |
| Integration | Daten aus verschiedenen Quellen zusammenführen |
| Reporting | Daten für Reports aufbereiten |
---
## Extract (Extraktion)
### Extraktionsarten
| Typ | Beschreibung |
|-----|-------------|
| Full Load | Alle Daten laden |
| Incremental | Nur neue/geänderte Daten |
| CDC | Change Data Capture |
### Quelldaten
```
Extraktionsquellen
├── Datenbanken
├── Dateien (CSV, JSON, XML)
├── APIs
└── Streams
```
### Beispiel
```python
# Datenbank
df_quelle = pd.read_sql("SELECT * FROM tabelle", conn)
# API
response = requests.get('https://api.example.com/daten')
df_quelle = pd.DataFrame(response.json())
# Datei
df_quelle = pd.read_csv('daten.csv')
```
---
## Transform (Transformation)
### Transformationstypen
```
Transformationen - Übersicht
├── Datentyp-Konvertierung
├── Berechnungen
├── Aggregationen
├── Filterung
├── JOINs
├── Normalisierung
└── Bereinigung
```
### Bereinigung
```python
# Fehlende Werte
df['alter'].fillna(df['alter'].mean(), inplace=True)
# Duplikate entfernen
df.drop_duplicates(inplace=True)
# Groß-/Kleinschreibung
df['name'] = df['name'].str.lower()
# Trimmen
df['name'] = df['name'].str.strip()
```
### Berechnungen
```python
# Neue Spalte
df['umsatz_mit_mwst'] = df['umsatz'] * 1.19
# Bedingte Werte
df['rabatt'] = df.apply(
lambda x: x['umsatz'] * 0.1 if x['umsatz'] > 100 else 0,
axis=1
)
```
### Aggregation
```python
# Gruppieren und aggregieren
df_grouped = df.groupby('kategorie').agg({
'umsatz': 'sum',
'anzahl': 'count'
}).reset_index()
```
---
## Load (Laden)
### Ladestrategien
| Typ | Beschreibung |
|-----|-------------|
| Full Load | Tabelle komplett ersetzen |
| Incremental Load | Nur neue Daten hinzufügen |
| Upsert | Update oder Insert |
### Ziel-Systeme
```
Lade-Ziele
├── Datenbank (MySQL, PostgreSQL)
├── Data Warehouse (Snowflake, BigQuery)
├── Datei (CSV, JSON)
└── Cloud Storage
```
### Beispiel
```python
# In Datenbank laden
df.to_sql('ziel_tabelle', conn, if_exists='replace', index=False)
# In CSV schreiben
df.to_csv('ausgabe.csv', index=False)
# In Excel schreiben
df.to_excel('ausgabe.xlsx', index=False)
```
---
## Orchestrierung
### Tools
| Tool | Beschreibung |
|------|-------------|
| Apache Airflow | Workflow-Orchestrierung |
| Luigi | Python-basiert |
| dbt | Data Transformation |
| Talend | ETL-Werkzeug |
| Apache NiFi | Datenfluss |
### Airflow DAG
```python
from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime
dag = DAG('etl_pipeline', start_date=datetime(2024, 1, 1))
extract = PythonOperator(
task_id='extract',
python_callable=extract_daten,
dag=dag
)
transform = PythonOperator(
task_id='transform',
python_callable=transform_daten,
dag=dag
)
load = PythonOperator(
task_id='load',
python_callable=load_daten,
dag=dag
)
extract >> transform >> load
```
---
## Fehlerbehandlung
```
ETL - Fehlerstrategien
├── Logging
├── Benachrichtigung
├── Retry-Logik
├── Quarantäne (Problem-Daten)
└── Monitoring
```
---
## Querverweise
- [[LF8-03-Datenformate|Zurück: Datenformate]]
- [[LF9-Netzwerke-Dienste|Nächstes Lernfeld: Netzwerke und Dienste]]
---
*Stand: 2024*

View File

@@ -0,0 +1,32 @@
# Lernfeld 9: Netzwerke und Dienste bereitstellen
## Übersicht
Dieses Lernfeld behandelt die Bereitstellung von Netzwerken und Netzwerkdiensten.
## Themen
| Nr. | Thema | Beschreibung |
|-----|-------|-------------|
| 9.1 | [[LF9-01-Netzwerkdienste|Netzwerkdienste]] | DHCP, DNS, HTTP |
| 9.2 | [[LF9-02-Server|Server]] | Betrieb, Virtualisierung |
| 9.3 | [[LF9-03-Virtualisierung|Virtualisierung]] | Container, Cloud |
| 9.4 | [[LF9-04-Monitoring|Monitoring]] | Überwachung, Alerts |
## Lernziele
- Netzwerkdienste konfigurieren
- Server betreiben
- Virtualisierung verstehen
- Systeme überwachen
---
## Querverweise
- [[LF8-04-ETL-Prozesse|Zurück: ETL-Prozesse]]
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Betriebswirtschaft]]
---
*Stand: 2024*

View File

@@ -0,0 +1,157 @@
# 9.1 Netzwerkdienste
## Wichtige Netzwerkdienste
### Übersicht
```
Netzwerkdienste
├── DHCP (IP-Adressen)
├── DNS (Namen auflösen)
├── HTTP/HTTPS (Web)
├── SMTP (E-Mail)
├── FTP/SFTP (Dateien)
├── SSH (Remote-Zugriff)
└── LDAP (Verzeichnis)
```
---
## DHCP (Dynamic Host Configuration Protocol)
### Funktion
```
DHCP - Ablauf
Client → DHCP Discover (Broadcast)
Server → DHCP Offer
Client → DHCP Request
Server → DHCP Acknowledge
```
### Konfiguration
```
DHCP-Server - Einstellungen
├── IP-Bereich (Pool)
├── Subnetzmaske
├── Gateway
├── DNS-Server
├── Lease Time
└── Reservierungen
```
### Beispiel
```yaml
# DHCP-Konfiguration (ISC DHCP)
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
}
```
---
## DNS (Domain Name System)
### Aufbau
```
DNS - Hierarchie
. (Root)
├── de
│ └── example.de
├── com
│ └── example.com
└── org
└── wikipedia.org
```
### DNS-Records
| Typ | Bedeutung | Beispiel |
|-----|----------|----------|
| A | IPv4-Adresse | example.com → 93.184.216.34 |
| AAAA | IPv6-Adresse | example.com → ... |
| CNAME | Alias | www → example.com |
| MX | Mail-Server | @ → mail.example.com |
| TXT | Text | v=spf1 include:_spf.google.com ~all |
### nslookup/dig
```bash
# DNS-Abfrage
nslookup example.com
dig example.com
# Bestimmter Record-Typ
dig MX example.com
```
---
## HTTP/HTTPS
### HTTP-Request
```
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
```
### HTTPS/TLS
```
HTTPS - Ablauf
1. Client → Server: Hallo
2. Server → Client: Zertifikat + Public Key
3. Client: Zertifikat prüfen
4. Client → Server: Pre-Master-Secret (verschlüsselt)
5. Beide: Session Key generieren
6. Verschlüsselte Kommunikation
```
---
## Weitere Dienste
### SSH (Secure Shell)
```bash
# Verbinden
ssh benutzer@server.example.com
# Datei kopieren
scp datei.txt benutzer@server:/pfad/
# Schlüssel generieren
ssh-keygen -t ed25519
```
### SMTP (E-Mail-Versand)
```
SMTP - Ablauf
1. EHLO client
2. MAIL FROM: absender@example.com
3. RCPT TO: empfaenger@example.com
4. DATA
5. Nachricht
6. QUIT
```
---
## Querverweise
- [[LF9-02-Server|Nächstes Thema: Server]]
---
*Stand: 2024*

View File

@@ -0,0 +1,179 @@
# 9.2 Server
## Server-Grundlagen
### Serverarten
| Typ | Aufgabe |
|-----|----------|
| Webserver | HTTP bereitstellen |
| Datenbankserver | Daten speichern |
| Fileserver | Dateien bereitstellen |
| Mailserver | E-Mail |
| Druckserver | Drucker verwalten |
| Authentifizierungsserver | Anmeldung (AD, LDAP) |
### Betriebssysteme
```
Server-Betriebssysteme
├── Windows Server
│ ├── 2019
│ └── 2022
├── Linux
│ ├── Ubuntu Server
│ ├── CentOS/RHEL
│ └── SUSE
└── BSD
```
---
## Linux-Server
### Grundbefehle
```bash
# Paketverwaltung (Debian/Ubuntu)
apt update
apt upgrade
apt install paketname
# Systemd
systemctl start dienst
systemctl stop dienst
systemctl status dienst
systemctl enable dienst
# Prozesse
ps aux
top
htop
```
### Benutzerverwaltung
```bash
# Benutzer anlegen
sudo useradd -m benutzername
# Passwort ändern
sudo passwd benutzername
# Zur Gruppe hinzufügen
sudo usermod -aG gruppe benutzername
# Benutzer löschen
sudo userdel benutzername
```
---
## Windows Server
### Rollen
```
Windows Server Rollen
├── Active Directory (AD DS)
├── DNS-Server
├── DHCP-Server
├── IIS (Webserver)
├── Dateiserver
├── Drucker-Server
└── Hyper-V
```
### PowerShell
```powershell
# Dienst starten
Start-Service -Name "Spooler"
# Prozesse anzeigen
Get-Process
# Benutzer anlegen
New-LocalUser -Name "Benutzer" -Password (ConvertTo-SecureString "Passwort" -AsPlainText -Force)
```
---
## Webserver
### Apache
```apache
# Virtual Host
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
```
### Nginx
```nginx
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
```
---
## Server-Hardware
### Komponenten
| Komponente | Bedeutung |
|------------|----------|
| CPU | Rechenleistung |
| RAM | Arbeitsspeicher |
| Festplatte | Speicher (SSD bevorzugen) |
| Netzwerk | Bandbreite |
| USV | Ausfallschutz |
### RAID
```
RAID - Stufen
├── RAID 0: Striping (keine Redundanz)
├── RAID 1: Mirroring (Spiegelung)
├── RAID 5: Parität (min. 3 Platten)
├── RAID 6: Doppelte Parität
└── RAID 10: Spiegel + Striping
```
---
## Querverweise
- [[LF9-01-Netzwerkdienste|Zurück: Netzwerkdienste]]
- [[LF9-03-Virtualisierung|Nächstes Thema: Virtualisierung]]
---
*Stand: 2024*

View File

@@ -0,0 +1,175 @@
# 9.3 Virtualisierung
## Virtualisierung - Grundlagen
### Was ist Virtualisierung?
```
Virtualisierung
Mehrere virtuelle Maschinen auf einer
physischen Hardware betreiben
```
### Vorteile
| Vorteil | Beschreibung |
|---------|-------------|
| Kosteneinsparung | Weniger Hardware |
| Flexibilität | Schnell bereitgestellt |
| Isolation | Getrennte Umgebungen |
| Skalierung | Leicht erweiterbar |
| Testumgebung | Schnell aufgesetzt |
---
## Virtualisierungstypen
### Full Virtualization
```
Gast-OS läuft unverändert
├── VMware Workstation
├── VirtualBox
└── Hyper-V
```
### Para-Virtualization
```
Gast-OS weiß von Virtualisierung
├── Xen
└── Citrix XenServer
```
### Container-Virtualisierung
```
Leichtgewichtige Virtualisierung
├── Docker
├── Podman
└── Kubernetes
```
---
## Docker
### Grundlagen
```
Docker - Begriffe
├── Image: Vorlage (Template)
├── Container: Laufende Instanz
├── Dockerfile: Image-Beschreibung
├── Registry: Image-Speicher
└── Volume: Persistenter Speicher
```
### Docker-Befehle
```bash
# Container starten
docker run -d -p 8080:80 nginx
# Container auflisten
docker ps
docker ps -a
# Container stoppen
docker stop container_id
# Image bauen
docker build -t mein-image .
# Container entfernen
docker rm container_id
```
### Dockerfile
```dockerfile
# Basis-Image
FROM node:18-alpine
# Arbeitsverzeichnis
WORKDIR /app
# Dateien kopieren
COPY package*.json ./
COPY . .
# Abhängigkeiten installieren
RUN npm install
# Port freigeben
EXPOSE 3000
# Startbefehl
CMD ["node", "server.js"]
```
---
## Kubernetes
### Architektur
```
Kubernetes - Komponenten
├── Master Node
│ ├── API Server
│ ├── Scheduler
│ ├── Controller Manager
│ └── etcd
├── Worker Nodes
│ ├── Kubelet
│ ├── Kube Proxy
│ └── Container Runtime
└── Add-ons (DNS, Dashboard)
```
### Kubernetes-Objekte
| Objekt | Beschreibung |
|--------|-------------|
| Pod | Kleinste Einheit (1+ Container) |
| Deployment | Replikate, Updates |
| Service | Netzwerkzugriff |
| Ingress | HTTP-Routing |
| ConfigMap | Konfiguration |
| Secret | Sensitive Daten |
---
## Cloud-Computing
### Service-Modelle
```
Cloud - Modelle
├── IaaS: Infrastructure as a Service
│ └── Virtuelle Maschinen, Netzwerk
├── PaaS: Platform as a Service
│ └── Laufzeitumgebung
└── SaaS: Software as a Service
└── Fertige Anwendung
```
### Anbieter
| Anbieter | Service |
|----------|----------|
| AWS | EC2, S3, Lambda |
| Azure | VMs, Blob, Functions |
| Google Cloud | Compute Engine, Cloud Storage |
---
## Querverweise
- [[LF9-02-Server|Zurück: Server]]
- [[LF9-04-Monitoring|Nächstes Thema: Monitoring]]
---
*Stand: 2024*

View File

@@ -0,0 +1,176 @@
# 9.4 Monitoring
## Monitoring - Grundlagen
### Was wird überwacht?
```
Monitoring-Bereiche
├── Verfügbarkeit (Ist das System erreichbar?)
├── Performance (CPU, RAM, Disk)
├── Netzwerk (Traffic, Latenz)
├── Anwendungen (Logs, Fehler)
└── Sicherheit (Eindringlinge)
```
### Wichtige Metriken
| Metrik | Beschreibung | Beispiel |
|--------|-------------|----------|
| CPU | Auslastung | < 80% |
| RAM | Speicherauslastung | < 85% |
| Disk | Festplattennutzung | < 90% |
| Network | Durchsatz | 100 Mbps |
| Latency | Antwortzeit | < 200ms |
---
## Monitoring-Tools
### Nagios
```
Nagios - Features
├── Host-Überwachung
├── Service-Überwachung
├── Alerting
├── Plugins
└── Web-Interface
```
### Prometheus + Grafana
```
Stack
├── Prometheus: Metriken sammeln
├── Alertmanager: Alarme
├── Grafana: Visualisierung
└── Exporters: Datenquellen
```
### Prometheus - Beispiel
```yaml
# prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
```
### Grafana Dashboard
```
Grafana - Verwendung
1. Datenquelle hinzufügen (Prometheus)
2. Dashboard erstellen
3. Panels konfigurieren (Graph, Stat, Table)
4. Alerts einrichten
```
---
## Logging
### Log-Management
```
Log-Stufen
├── DEBUG: Detaillierte Informationen
├── INFO: Allgemeine Informationen
├── WARNING: Warnungen
├── ERROR: Fehler
└── CRITICAL: Kritische Fehler
```
### Zentrales Logging
```
ELK-Stack
├── Elasticsearch: Suchmaschine
├── Logstash: Verarbeitung
├── Kibana: Visualisierung
└── Beats: Sammlung
```
### Logging in Python
```python
import logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
logger.info("Anwendung gestartet")
logger.error("Fehler aufgetreten")
```
---
## Alerting
### Alert-Regeln
```yaml
groups:
- name: example
rules:
- alert: HighCPU
expr: cpu_usage > 80
for: 5m
labels:
severity: warning
annotations:
summary: "Hohe CPU-Auslastung auf {{ $labels.instance }}"
```
### Benachrichtigungswege
| Kanal | Einsatz |
|-------|----------|
| E-Mail | Standard |
| Slack | Team-Kommunikation |
| PagerDuty | Incident Management |
| SMS | Kritische Alarme |
---
## Verfügbarkeit
### Uptime
```
Uptime-Berechnung
99% → 7,3 Stunden/Jahr offline
99,9% → 8,7 Stunden/Jahr offline
99,99% → 52 Minuten/Jahr offline
99,999% → 5 Minuten/Jahr offline
```
### Checks
```
Verfügbarkeitsprüfung
├── Ping
├── Port-Check
├── HTTP-Response
├── Zertifikat
└── Transaktion
```
---
## Querverweise
- [[LF9-03-Virtualisierung|Zurück: Virtualisierung]]
- [[Wissen/Wirtschafts-Sozialkunde/WISO-Zusammenfassung|WISO: Betriebswirtschaft]]
---
*Stand: 2024*

View File

@@ -0,0 +1,187 @@
# LF 9: Netzwerke und Dienste bereitstellen
> **2. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
## Kernkompetenz
Die Schülerinnen und Schüler verfügen über die Kompetenz, Netzwerke und Dienste zu planen, zu konfigurieren und zu erweitern.
---
## Lernziele
Nach diesem Lernfeld kannst du:
- [ ] Anforderungen an Netzwerke und Dienste ermitteln
- [ ] Netzwerkkomponenten auswählen
- [ ] Dienste konfigurieren (DNS, DHCP, etc.)
- [ ] Netzwerksicherheit implementieren
- [ ] Funktionsprüfungen durchführen
- [ ] Dokumentation erstellen
---
## Netzwerkdienste
### DNS (Domain Name System)
**Aufgabe**: Namen zu IP-Adressen auflösen
**Zonentypen:**
- **Master**: Originaldaten, Schreibzugriff
- **Slave**: Kopie vom Master
- **Forward**: Name → IP
- **Reverse**: IP → Name
**Beispiel named.conf:**
```
zone "example.com" {
type master;
file "db.example.com";
};
```
### DHCP (Dynamic Host Configuration Protocol)
**Aufgabe**: IP-Konfiguration automatisch vergeben
**Konfigurationsbeispiel:**
```
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 86400;
}
```
### Weitere Dienste
| Dienst | Port | Beschreibung |
|--------|------|--------------|
| HTTP | 80/443 | Webserver |
| FTP | 21 | Dateiübertragung |
| SSH | 22 | Sichere Shell |
| SMTP | 25 | E-Mail-Versand |
| IMAP/POP3 | 143/110 | E-Mail-Abruf |
| LDAP | 389 | Verzeichnisdienst |
| SNMP | 161/162 | Netzwerküberwachung |
---
## Netzwerksicherheit
### Firewall
**Typen:**
- **Paketfilter**: Layer 3/4
- **Stateful Inspection**: Verbindungsverfolgung
- **Application Layer Gateway**: Layer 7
**iptables-Beispiel:**
```bash
# Eingehend blocken, ausgehend erlauben
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
# Lokale Kommunikation erlauben
iptables -A INPUT -i lo -j ACCEPT
# SSH erlauben
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Bestehende Verbindungen erlauben
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
```
### VPN (Virtual Private Network)
**Arten:**
- **Site-to-Site**: Netzwerk-zu-Netzwerk
- **Remote Access**: Einzelner Client
**Protokolle:**
- **IPsec**: Sicher, weit verbreitet
- **OpenVPN**: Open Source, flexibel
- **WireGuard**: Modern, einfach
---
## VLAN (Virtual Local Area Network)
### VLAN-Konzepte
```
┌────────────────────────────────────┐
│ Switch │
├──────┬──────┬──────┬─────────────┤
│ VLAN10│ VLAN20│ VLAN30│ Native │
│ (Mgmt)│ (Data)│ (Voice)│ │
└──────┴──────┴──────┴─────────────┘
```
**VLAN-Tagging (802.1Q):**
- Jeder Frame erhält VLAN-ID
- Tagged Frames über Trunk-Ports
### Routing zwischen VLANs
```
┌────────┐ ┌────────┐
│ VLAN10 │──────│ │
│ 192.168.10.0/24 │ Router│
├────────┤ │ │ ┌────────┐
│ VLAN20 │──────│ │──────│ VLAN30 │
│ 192.168.20.0/24 │ │ │ 192.168.30.0/24
└────────┘ └────────┘ └────────┘
```
---
## Netzwerk-Monitoring
### Tools
| Tool | Typ | Beschreibung |
|------|-----|--------------|
| Nagios | Monitoring | Verfügbarkeitsprüfung |
| Zabbix | Monitoring | Umfassend |
| Wireshark | Analyse | Paket Sniffing |
| tcpdump | Analyse | Kommandozeile |
| Cacti | Visualisierung | Graphen |
### SNMP (Simple Network Management Protocol)
**Komponenten:**
- **Manager**: Überwachungssystem
- **Agent**: Auf überwachtem Gerät
- **MIB**: Management Information Base
**SNMP-Versionen:**
- v1: Keine Sicherheit
- v2c: Performance, keine Sicherheit
- v3: Authentifizierung und Verschlüsselung
---
## Handlungsphasen
1. **Informieren**: Anforderungen erheben, recherchieren
2. **Planen**: Konzept erstellen, Komponenten wählen
3. **Konfigurieren**: Dienste einrichten, testen
4. **Dokumentieren**: Konfiguration beschreiben
5. **Reflektieren**: Optimierungsmöglichkeiten finden
---
## Prüfungsrelevanz
- Wichtig für Systemintegration
- Netzwerkkenntnisse in Teil 2
---
## Querverweise
- [[2-Ausbildungsyear/LF8-Daten-bereitstellen|Vorher: LF 8]]
- [[3-Ausbildungsyear/LF10a-Benutzeroberflächen|Nachher: LF 10a]]
---
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*