OPS Ecosystem — MQA Governance Portal
Services & Kosten — Anbieter- und Preisübersicht · Executive Overview — Zusammenfassungen für Entscheider
Stand: August 2026 · Typ: SMG (Kundenprojekt MQA Group)
Architektur-Übersicht
┌─────────────────────────────────┐
│ Cloudflare (DNS + R2) │
│ mqa.group │
│ ⚠️ DNS → MQA-Org pending │
└──────────┬──────────────────────┘
│
portal.mqa.group │ api.mqa.group
┌────────────────┴────────────────┐
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ mqa-frontend │ HTTPS │ mqa-backend │
│ Render (Node) │─────────────▶│ Render (Docker) │
│ Frankfurt │ │ Frankfurt │
└──────────────────┘ └────────┬─────────┘
│
▼
┌──────────────────┐
│ mqa-postgres │
│ Render Pro PG18 │
│ Frankfurt │
└──────────────────┘Plattform-Accounts (Soll-Zustand)
| Plattform | Org-Account | Status | Verantwortlich |
|---|---|---|---|
| GitHub | MQA-Group | ✅ Privates Repo | MQA Dev |
| Render | MQA Group Team | ✅ Production live, Projekt „MQA Governance Portal“ | MQA Dev |
| Cloudflare | MQA Organisation | ⚠️ R2 ✅ · DNS-Zone noch privat | Migration DNS offen |
| Azure AD | MQA Tenant | ✅ OAuth Microsoft 365 | MQA IT |
| Resend / E-Mail | MQA | ✅ | MQA Dev |
Production-Domains
| Rolle | URL |
|---|---|
| Frontend | https://portal.mqa.group |
| Backend API | https://api.mqa.group/api |
| Legacy Frontend | https://governance.mqa.group (CORS legacy) |
Render-Projektstruktur
| Projekt | Environments | Services |
|---|---|---|
MQA Governance Portal (prj-d9ofcgjncjis73bu7960) | Production, Staging | 4 Web-Services (2× Prod, 2× Staging) |
Postgres-Instanzen (mqa-postgres, mqa-postgres-staging) liegen aktuell außerhalb des Projekts — Render API erlaubt kein nachträgliches Verschieben; ggf. manuell im Dashboard zuordnen.
Staging (live)
| Rolle | URL |
|---|---|
| Frontend | https://staging.portal.mqa.group |
| Backend | https://staging.api.mqa.group/api |
Blueprint: render-staging.yaml — siehe STAGING-SETUP
CI/CD
| Schritt | Tool |
|---|---|
| Source | GitHub MQA-Group/MQA-Governance-Portal |
| CI | GitHub Actions (.github/workflows/ci.yml) |
| CD | Render Auto-Deploy bei Push auf main |
Datenflüsse
- Auth: Microsoft OAuth → JWT (Bearer, Frontend sessionStorage)
- Media Hub: Browser → Presigned URL → Cloudflare R2 (EU)
- Legacy Uploads:
/uploads/*auf Backend-Disk (auth-geschützt; Migration zu R2 empfohlen) - E-Mail: Resend / Microsoft Graph (serverseitig)
Single Points of Failure (Stand Aug 2026)
| Risiko | Status | Anmerkung |
|---|---|---|
| Cloudflare auf persönlichem Account | Teilweise behoben | R2 mqa-media → MQA-Org ✅ · DNS-Zone mqa.group noch privat ⚠️ → CLOUDFLARE-MIGRATION |
| Kein Staging | Behoben ✅ | develop → Staging-Services live · staging.portal / staging.api DNS live → STAGING-STATUS |
| Kein externes Monitoring/Alerting | Offen | Render-Benachrichtigungen nur · Better Stack / Sentry noch TODO → MONITORING |
| Uploads auf ephemeral Render-FS | Teilweise behoben | Media Hub → R2 ✅ · Legacy /uploads/* auf Backend-Disk noch vorhanden |
Siehe OPS-ROADMAP für offene Punkte.