Cum am construit o platformă SaaS multi-tenant pe infrastructură open-source self-hosted
Acest articol descrie un proiect real, aflat în desfășurare, realizat pentru proprietarul unei platforme SaaS B2B de email deliverability din Moldova și România. Clientul este anonimizat. Echipa include ingineri backend, frontend și DevOps, cu acoperire full-stack. Platforma a pornit de la zero (greenfield) și continuă să crească.
Obiectivele proiectului
- Proiectarea și construirea unei platforme SaaS multi-tenant de la zero: arhitectură, backend și frontend, într-un singur angajament continuu.
- Rularea integrală pe infrastructură open-source, self-hosted, fără dependență de furnizor și cu control deplin asupra costurilor și datelor.
- Practici SRE de la prima zi: observabilitate, alertare pe SLO și runbook-uri pentru incidente, nu adăugate ulterior.
- Documentație tehnică completă (diagrame C4 și ADR-uri), pentru întreținere pe termen lung, nu doar cod funcțional.
Arhitectura aplicației
Platforma are o arhitectură de microservicii, cu trei servicii backend scrise în Go: motorul de livrare, billing/CRM și gestionarea campaniilor. Frontend-ul este un dashboard Next.js/React, plus o pagină publică, ambele bilingve (EN/RO).
Un CRM nativ este integrat direct în billing, fără dependență de un CRM terț.
Izolarea între clienți
Izolarea strictă a datelor între clienți este verificată cu teste dedicate, scrise pentru fiecare rută (teste cross-tenant). În toate serviciile backend există peste 600 de teste automate, confirmate independent la fiecare modificare.
Infrastructura
Platforma rulează cu Docker Compose și pe un cluster Kubernetes HA, cu control plane pe 3 noduri, pregătit pentru CloudNativePG. Componentele includ PostgreSQL ×3, RabbitMQ și Keycloak, toate self-hosted.
Gestionarea DNS este automatizată: înregistrările SPF, DKIM și DMARC se actualizează dinamic, prin actualizări semnate TSIG.
SRE și observabilitate
- Alertare bazată pe SLO, pe burn-rate al bugetului de erori.
- Un runbook de incidente, construit din incidente reale.
- Un pachet de metrici compatibil Prometheus, construit intern, plus Loki pentru loguri și clasificare automată a erorilor din loguri.
AI self-hosted
Un LLM self-hosted (Ollama) rulează un chat AI de vânzări și clasifică răspunsurile primite, fără cost de API extern. Echipa a explorat și apelarea de unelte în stil MCP, pentru acces securizat la date, limitat la fiecare client (tenant-scoped), din chat.
Stack-ul pe scurt
| Strat | Tehnologii |
|---|---|
| Backend | Go (3 servicii) |
| Frontend | Next.js, React |
| Date și mesagerie | PostgreSQL, RabbitMQ |
| Identitate | Keycloak |
| Orchestrare | Kubernetes HA, Docker Compose |
| Observabilitate | metrici compatibile Prometheus, Loki |
| AI | Ollama |
Modelul de lucru
Lista de funcționalități continuă să crească: echipa construiește activ funcții noi pe această platformă, nu închide o livrare și trece mai departe. Modelul este o singură echipă, integrată pe termen lung, care dezvoltă produsul pe măsură ce nevoile clientului cresc.
Vrei o infrastructură ca aceasta?
Spune-ne ce rulezi acum și primești o ofertă la preț fix în 24 de ore lucrătoare.
Cere ofertă în 24 de ore