101 lines
3.0 KiB
Bash
101 lines
3.0 KiB
Bash
#!/bin/bash
|
|
# Early Hardware Validation für 25% Entwicklungsstand
|
|
# Ziel: Architektur-Probleme früh erkennen, nicht Volltest
|
|
|
|
echo "🧪 Infoscreen Early Hardware Validation"
|
|
echo "======================================"
|
|
echo "Entwicklungsstand: ~25-30%"
|
|
echo "Ziel: Basis-Deployment + Performance-Baseline"
|
|
echo ""
|
|
|
|
# Phase 1: Quick-Setup (30 Min)
|
|
echo "📦 Phase 1: Container-Setup-Test"
|
|
echo "- Docker-Compose startet alle Services?"
|
|
echo "- Health-Checks werden grün?"
|
|
echo "- Ports sind erreichbar?"
|
|
echo ""
|
|
|
|
# Phase 2: Connectivity-Test (1 Stunde)
|
|
echo "🌐 Phase 2: Service-Kommunikation"
|
|
echo "- Database-Connection vom Server?"
|
|
echo "- MQTT-Broker empfängt Messages?"
|
|
echo "- Nginx routet zu Services?"
|
|
echo "- API-Grundendpoints antworten?"
|
|
echo ""
|
|
|
|
# Phase 3: Performance-Baseline (2 Stunden)
|
|
echo "📊 Phase 3: Performance-Snapshot"
|
|
echo "- Memory-Verbrauch pro Container"
|
|
echo "- CPU-Usage im Idle"
|
|
echo "- Startup-Zeiten messen"
|
|
echo "- Network-Latency zwischen Services"
|
|
echo ""
|
|
|
|
# Phase 4: Basic Load-Test (4 Stunden)
|
|
echo "🔥 Phase 4: Basis-Belastungstest"
|
|
echo "- 10 parallele API-Requests"
|
|
echo "- 1000 MQTT-Messages senden"
|
|
echo "- Database-Insert-Performance"
|
|
echo "- Memory-Leak-Check (1h Laufzeit)"
|
|
echo ""
|
|
|
|
# Test-Checklist erstellen
|
|
cat > early-validation-checklist.md << 'EOF'
|
|
# Early Hardware Validation Checklist
|
|
|
|
## ✅ Container-Setup
|
|
- [ ] `docker compose up -d` erfolgreich
|
|
- [ ] Alle Services zeigen "healthy" Status
|
|
- [ ] Keine Error-Logs in den ersten 5 Minuten
|
|
- [ ] Ports 80, 8000, 3306, 1883 erreichbar
|
|
|
|
## ✅ Service-Kommunikation
|
|
- [ ] Server kann zu Database verbinden
|
|
- [ ] MQTT-Test-Message wird empfangen
|
|
- [ ] Nginx zeigt Service-Status-Page
|
|
- [ ] API-Health-Endpoint antwortet (200 OK)
|
|
|
|
## ✅ Performance-Baseline
|
|
- [ ] Total Memory < 4GB bei Idle
|
|
- [ ] CPU-Usage < 10% bei Idle
|
|
- [ ] Container-Startup < 60s
|
|
- [ ] API-Response-Time < 500ms
|
|
|
|
## ✅ Basic-Load-Test
|
|
- [ ] 10 parallele Requests ohne Errors
|
|
- [ ] 1000 MQTT-Messages ohne Message-Loss
|
|
- [ ] Memory-Usage stabil über 1h
|
|
- [ ] Keine Container-Restarts
|
|
|
|
## 📊 Baseline-Metriken (dokumentieren)
|
|
- Memory pro Container: ___MB
|
|
- CPU-Usage bei Load: ___%
|
|
- API-Response-Time: ___ms
|
|
- Database-Query-Time: ___ms
|
|
- Container-Startup-Zeit: ___s
|
|
|
|
## 🚨 Gefundene Probleme
|
|
- [ ] Performance-Bottlenecks: ____________
|
|
- [ ] Memory-Issues: ____________________
|
|
- [ ] Network-Probleme: _________________
|
|
- [ ] Container-Probleme: _______________
|
|
|
|
## ✅ Architektur-Validierung
|
|
- [ ] Container-Orchestrierung funktioniert
|
|
- [ ] Service-Discovery läuft
|
|
- [ ] Volume-Mounting korrekt
|
|
- [ ] Environment-Variables werden geladen
|
|
- [ ] Health-Checks sind aussagekräftig
|
|
EOF
|
|
|
|
echo "✅ Early Validation Checklist erstellt: early-validation-checklist.md"
|
|
echo ""
|
|
echo "🎯 Erwartetes Ergebnis:"
|
|
echo "- Architektur-Probleme identifiziert"
|
|
echo "- Performance-Baseline dokumentiert"
|
|
echo "- Deployment-Prozess validiert"
|
|
echo "- Basis für spätere Tests gelegt"
|
|
echo ""
|
|
echo "⏰ Geschätzter Aufwand: 8-12 Stunden über 2-3 Tage"
|
|
echo "💰 ROI: Verhindert teure Architektur-Änderungen später"
|