İçeriğe atla
004
yayında

AI PORT BackOffice

Şirketin tüm servislerini tek panelden izleyen iç sistem — ödeme akışları, sunucu sağlığı, AI kullanımı, uyarılar ve yedekler.

Sahiplik
Şirket · tek geliştirici · AI PORT
Rol
Tek geliştirici — tasarım, backend, izleme, entegrasyonlar, operasyon
Dönem
Mar 2025
Bağlantıyı aç
Canlı
https://backoffice.aiport.tr№ 004
AI PORT BackOffice — web

Bağlam

Birden fazla ürün yayınlayan küçük bir şirkette "arka planda çalışan her şey" hızla dağılır: ödeme sağlayıcı panelleri, sunucu izleme, AI sağlayıcı faturaları, yedekler, müşteri bildirimleri. BackOffice bunların hepsini tek bir iç panelde toplar: FLY AI ve Export AI başta olmak üzere tüm servislerin ödeme akışları, sunucu durumları, AI kullanım/maliyeti, uyarı sistemi ve yedekleme işleri.

Projeyi baştan sona tek başıma yazdım: veri modeli, entegrasyonlar, zamanlanmış işler ve arayüz.

Kısıtlar

  • Yanlış pozitif uyarı, uyarı sisteminin ölümüdür; eşikler ve ciddiyet seviyeleri ayarlanabilir olmalı.
  • Ödeme ve müşteri verisine erişim rol bazlı ve iz bırakır olmalı.
  • Yeni bir servis eklemek kod değişikliği değil, konfigürasyon olmalı.

Mimari

Toplayıcılar ve Prometheus → kural motoru → kanal; panel canlı durumu WebSocket/SSE ile alır.Servisler (FLY AI, Export AI…)Toplayıcılar (ödeme, AI, yedek)Prometheus (sunucu metrikleri)PostgreSQL · PrismaKural / eşik motoruTelegram · WhatsApp · E-postaPanel (WebSocket / SSE)Zamanlanmış işler + yedek
Toplayıcılar ve Prometheus → kural motoru → kanal; panel canlı durumu WebSocket/SSE ile alır.

Backend Node.js + PostgreSQL (Prisma); sunucu metrikleri Prometheus'tan, canlı durum panele WebSocket/SSE ile akar. Uyarılar Telegram, WhatsApp ve e-postaya ciddiyet seviyesine göre dağılır.

TODO: Kaynak koddan çıkarılacak: toplayıcıların nasıl çalıştığı (polling / webhook), kuyruk, yedeklerin nereye gittiği.

§ Karar günlüğü

KararAlternatifNeden
01Tek panel; her servis aynı sağlık · para · kullanım · uyarı şablonuylaHer ürün için ayrı yönetim ekranıŞirkette aynı anda birkaç ürün yaşıyor; ortak şablon yeni bir servisi bir günde panele almayı mümkün kılıyor.
02Uyarıların insanlara ulaştığı kanal, insanların zaten baktığı kanal (Telegram / WhatsApp / e-posta)Yalnızca panel içi bildirimGece 03:00'te ödeme webhook'u düşerse kimse paneli açmıyor; uyarı telefona düşmeli, ciddiyet seviyesine göre kanal seçilmeli.
03Metrikler Prometheus'ta, karar ve uyarı katmanı paneldeTüm metrikleri kendi tablolarımda toplamakZaman serisi toplamak çözülmüş bir problem; Prometheus toplar, panel yalnızca "ne zaman kime haber verilir" kuralını ve iş akışlarını sahiplenir. Canlı durum WebSocket/SSE ile ekrana akar.
04Yedekleme ve zamanlanmış işler panelin kendi parçasıSunucu üzerinde ayrı cron script'leriYedeğin alındığını değil, alınmadığını görmek önemli; iş panelde görünür olunca "son başarılı yedek" bir bakışta okunuyor.

§ Sonuç

TODO
İzlenen servis
3
Uyarı kanalı
Prometheus
Canlı metrik kaynağı
1
Geliştirici

§ Geriye bakış

Bugün farklı ne yapardım

TODO: Bugün farklı ne yapardın? (ör. uyarı kurallarını da Alertmanager'a taşıyıp panelde yalnızca iş akışlarını tutmak, olay geçmişini ayrı bir depoya almak…)