- docs/projektplan.md neu gegliedert: Arbeitsweise mit Freigaben, Zuständigkeiten, Meilensteine mit Abnahmekriterien, Arbeitspakete mit Status, Zeitplan, Entscheidungen - docs/plaene/: Teilplan je Arbeitspaket (detailliert für AP0, AP1, AP2, AP3, AP5, AP11, AP13; grob für AP4, AP6–AP10, AP12, Optionen) und Vorlage - docs/fragen.md: alle offenen Fragen mit Status, Empfänger und betroffenem Teilplan - CLAUDE.md: Umsetzung nur nach freigegebenem Teilplan Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
75 lines
2.7 KiB
Markdown
75 lines
2.7 KiB
Markdown
# AP11 – Betrieb
|
||
|
||
| | |
|
||
|---|---|
|
||
| Status | in Arbeit (11a.1 erledigt); Schritte ab 11a.2 detailliert, warten auf Freigabe |
|
||
| Aufwand | 0,5 PW (wir) + 1–1,5 PW (ITM-Entwickler) |
|
||
| Zeitraum | KW 41–44 (Staging), KW 50–51 (Produktion), KW 3/2027 (Restore-Test) |
|
||
| Meilenstein | M2 (Staging), M3 (Produktion), M4 (abgesichert) |
|
||
| Freigabe | offen |
|
||
|
||
## Ziel
|
||
|
||
Staging und Produktion laufen auf den Servern von ITM, werden reproduzierbar bereitgestellt,
|
||
gesichert und überwacht. Ein Ausfall fällt auf, bevor BauIn ihn bemerkt.
|
||
|
||
## Umfang
|
||
|
||
**Enthalten:**
|
||
- **11a, wir:**
|
||
- Server-Anforderungen
|
||
- Vorlagen für Nginx, systemd und Cron
|
||
- Deploy-Skript
|
||
- Lebenszeichen- und Prüfbefehle
|
||
- Backup-Skript
|
||
- Betriebsdoku
|
||
- **11b, ITM-Entwickler:**
|
||
- Server aufsetzen, Domain und Zertifikat
|
||
- Backup-Ziel, Überwachung
|
||
- Restore-Test gemeinsam mit uns
|
||
|
||
**Nicht enthalten:** Hochverfügbarkeit, mehrere Server.
|
||
|
||
## Voraussetzungen
|
||
|
||
C10 (Ausstattung, Root-Zugang), B2 (Zugriff Internet/VPN), B3 (Domain, Mail), B5 und C10 (Backups),
|
||
C12 (wer deployt).
|
||
|
||
## Entscheidungen
|
||
|
||
| Nr. | Frage | Vorschlag | Entschieden |
|
||
|---|---|---|---|
|
||
| E11.1 | Deployment | Skript auf dem Server mit Versionsverzeichnissen (`releases/`, `current`), ausgelöst per SSH | offen |
|
||
| E11.2 | Backup-Werkzeug | restic, verschlüsselt, Ziel von ITM | offen (B5) |
|
||
| E11.3 | Alarmierung | E-Mail an dich und den ITM-Entwickler | offen |
|
||
|
||
## Schritte
|
||
|
||
- [x] **11a.1** Server-Anforderungen `docs/server-anforderungen.md`
|
||
- [ ] **11a.2** Vorlagen in `deploy/`:
|
||
- Nginx-Server-Block, systemd-Units (Worker, Meilisearch), Cron-Zeile
|
||
- Beispiel für `.env` ohne Werte
|
||
- [ ] **11a.3** Deploy-Skript nach E11.1 mit Prüfungen (Migration, Caches, Neustart der Worker),
|
||
zuerst gegen eine lokale Test-VM oder direkt auf Staging
|
||
- [ ] **11a.4** Betriebsbefehle:
|
||
- Lebenszeichen für Worker und Scheduler
|
||
- Zählung fehlgeschlagener Jobs
|
||
- Statusprüfung der KI-API (aus AP3)
|
||
- Mail bei Problemen (E11.3)
|
||
- [ ] **11b.1** Staging aufsetzen (ITM-Entwickler, KW 42–44), erstes Deployment gemeinsam
|
||
- [ ] **11a.5** Backup-Skript nach E11.2 und Betriebsdoku `docs/betrieb.md`:
|
||
- Deployment, Wiederherstellung, `APP_KEY` sicher aufbewahren
|
||
- [ ] **11b.2** Produktion aufsetzen (KW 50–51)
|
||
- [ ] **11a.6 / 11b.3** Restore-Test auf einem Ersatzsystem (KW 3), Protokoll in `docs/betrieb.md`
|
||
|
||
## Abnahmekriterien
|
||
|
||
- Ein Deployment aus dem Gitea auf Staging klappt mit einem Befehl.
|
||
- Ein absichtlich gestoppter Worker löst innerhalb von 10 Minuten eine Mail aus.
|
||
- Der Restore-Test war erfolgreich und ist dokumentiert.
|
||
|
||
## Risiken
|
||
|
||
- Antworten von ITM zu Zugang und Ausstattung kommen spät. Dann Staging per Bildschirmfreigabe
|
||
gemeinsam aufsetzen.
|