Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| fiberops-platform [07:35 27/01/2026] – angelegt 10.8.0.4 | fiberops-platform [04:33 06/02/2026] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 6: | Zeile 6: | ||
| Die Dokumentation richtet sich bewusst sowohl an **technische Entscheider** | Die Dokumentation richtet sich bewusst sowohl an **technische Entscheider** | ||
| - | als auch an **nicht-technische Leser im Bewerbungsprozess**. | + | als auch an **nicht-technische Leser**. |
| Zeile 182: | Zeile 182: | ||
| - | ===== Fazit ===== | ||
| - | Dieses Projekt zeigt keinen theoretischen Aufbau, | + | ====== |
| - | sondern eine realistische DevOps-Arbeitsweise: | + | |
| - | | + | ====== FiberOps Platform – Showcase & Demo-Anleitung ====== |
| - | * Betrieb ist automatisiert | + | |
| - | * Entscheidungen | + | seed: internal/ |
| + | |||
| + | ** | ||
| + | Das System zeigt den Zustand eines Glasfaser-/ | ||
| + | |||
| + | |||
| + | ==== 1) Live-Service prüfen (sofort sichtbarer Nutzen) ==== | ||
| + | |||
| + | <code bash> | ||
| + | curl http:// | ||
| + | curl http:// | ||
| + | curl http:// | ||
| + | curl http:// | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | * Health-Endpunkt | ||
| + | * /segments zeigt den fachlichen Use Case (Glasfaserbetrieb) | ||
| + | * /metrics zeigt Betriebs- und Monitoring-Fähigkeit | ||
| + | |||
| + | |||
| + | |||
| + | ==== 2) Kubernetes-Betrieb zeigen ==== | ||
| + | |||
| + | <code bash> | ||
| + | export KUBECONFIG=/ | ||
| + | |||
| + | kubectl get nodes -o wide | ||
| + | kubectl get ns | ||
| + | kubectl get pods -n fiberops -o wide | ||
| + | kubectl get deploy,svc,ingress -n fiberops -o wide | ||
| + | kubectl -n fiberops rollout status deploy/ | ||
| + | kubectl -n fiberops logs deploy/ | ||
| + | </ | ||
| + | |||
| + | |||
| + | * get nodes → Cluster-Gesundheit | ||
| + | * get pods → Laufzeitstatus der Anwendung | ||
| + | * deploy/ | ||
| + | * rollout status → kontrollierte Updates (kein Blindflug) | ||
| + | * logs → Fehlersuche ohne SSH in Container | ||
| + | |||
| + | → Zeigt operativen Kubernetes-Betrieb, nicht nur Deployment. | ||
| + | |||
| + | |||
| + | ==== 3) CI/CD auslösen (Automatisierung demonstrieren) ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | |||
| + | gh auth status | ||
| + | gh workflow run ci-cd.yaml --ref main -f deploy=true | ||
| + | gh run list --workflow ci-cd.yaml --limit 5 | ||
| + | gh run watch | ||
| + | </ | ||
| + | |||
| + | **GitHub Actions + gh CLI** | ||
| + | |||
| + | * CI/CD ist reproduzierbar | ||
| + | * kein manuelles Deployment auf dem Server | ||
| + | * gh CLI vermeidet UI-Klicken und ist skriptfähig | ||
| + | |||
| + | → Änderungen werden über Git gesteuert, nicht per Handarbeit. | ||
| + | |||
| + | |||
| + | ==== 4) Deployment verifizieren ==== | ||
| + | |||
| + | <code bash> | ||
| + | kubectl -n fiberops get pods -o wide | ||
| + | kubectl -n fiberops rollout status deploy/ | ||
| + | curl http:// | ||
| + | </ | ||
| + | |||
| + | |||
| + | * stellt sicher, dass das Deployment erfolgreich war | ||
| + | * zeigt, dass neue Versionen tatsächlich aktiv sind | ||
| + | * Verbindung zwischen CI/CD und laufender Anwendung | ||
| + | |||
| + | → Vertrauen in den automatisierten Prozess. | ||
| + | |||
| + | |||
| + | ==== 5) Change → Deploy → Verify (DevOps-Kern) ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | |||
| + | apply_patch <<' | ||
| + | *** Begin Patch | ||
| + | *** Update File: internal/ | ||
| + | @@ | ||
| + | - Version: | ||
| + | + Version: | ||
| + | *** End Patch | ||
| + | PATCH | ||
| + | |||
| + | git add internal/ | ||
| + | git commit -m "demo: change default version" | ||
| + | git push | ||
| + | |||
| + | gh workflow run ci-cd.yaml --ref main -f deploy=true | ||
| + | gh run watch | ||
| + | |||
| + | curl http:// | ||
| + | </ | ||
| + | |||
| + | **Warum dieser Ablauf wichtig ist** | ||
| + | |||
| + | * Änderung erfolgt ausschließlich über Git | ||
| + | * kein direkter Eingriff auf dem Server | ||
| + | * CI/CD baut, verteilt und deployed automatisch | ||
| + | * Ergebnis ist sofort überprüfbar | ||
| + | |||
| + | → Genau dieser Zyklus beschreibt moderne DevOps-Arbeit. | ||
| + | |||
| + | |||
| + | ==== 6) Repository & Dokumentation ==== | ||
| + | |||
| + | * Repository: https:// | ||
| + | * Einstieg: README.md | ||
| + | * Architektur: | ||
| + | * Runbooks: runbooks/ | ||
| + | |||
| + | **Warum Dokumentation? | ||
| + | |||
| + | * ermöglicht Übergabe an andere Teams | ||
| + | * reduziert Bus-Faktor | ||
| + | * zeigt strukturierte Arbeitsweise | ||
| + | |||
| + | |||
| + | ==== Wichtige Design-Entscheidungen ==== | ||
| + | |||
| + | * Kubernetes (k3s) statt Docker-only: | ||
| + | → deklarativer Betrieb, Self-Healing, | ||
| + | |||
| + | * k3s statt volles k8s: | ||
| + | → gleiche API, geringerer Ressourcenbedarf, | ||
| + | |||
| + | * NodePort für Demo: | ||
| + | → schnell sichtbar | ||
| + | → in Produktion: Ingress + TLS | ||
| + | |||
| + | * Trennung Code / CI / Infrastruktur: | ||
| + | → klare Verantwortlichkeiten | ||
| + | → wartbar | ||
| - | Es dient als technisches Showcase für DevOps-Rollen | ||
| - | mit Fokus auf Kubernetes, Virtualisierung und Betrieb. | ||