iToverDose/Yazılım· 30 HAZIRAN 2026 · 00:01

Sifresiz ve Sıfır Yığın Üzerine Kurulu Gemiyi Rehberlik Eden Gösterge Paneli

Sıfır sunucu yönetimiyle çalışan, yapay zeka destekli bir gösterge paneli nasıl inşa edilir? İşte AWS ve Vercel’in 'Sıfır Yığın' yarışması için geliştirilen yenilikçi yaklaşım.

DEV Community4 dk okuma0 Yorumlar

Günümüzde birçok e-ticaret aracı satıcıların ürün listesini oluşturmasına yardımcı oluyor. Ancak en kritik soru genellikle göz ardı ediliyor: Bu hafta hangi ürünleri stoklamalıyım?

Bu boşluğu doldurmak için geliştirilen Kajota Pulse, yapay zeka destekli bir gösterge paneli olarak karşımıza çıkıyor. Özellikle Afrika’nın mikro ticaret ekosistemindeki "ortak satıcılar" için tasarlanan bu araç, pazardaki eğilimleri analiz ederek satıcıların kâr marjını doğrudan etkileyen stok kararlarını veriyor. Peki, bu yenilikçi yapıyı sıfır sunucu yönetimi ve sifresiz veri tabanı bağlantıları ile nasıl hayata geçirdik?

Sıfır Yığın Üzerine Kurulan Mimari

Kajota Pulse, Vercel üzerinde çalışan Next.js 16 (App Router) tabanlı bir uygulama olarak geliştirildi. Veri depolama katmanı olarak AWS Aurora Serverless v2 (PostgreSQL) kullanıldı. Bu mimari, sunucu yönetimi gerektirmeden otomatik olarak ölçeklenebilir bir altyapı sunuyor. Yapay zeka önerileri içinse Gemini 2.5 Flash modelinden faydalanıldı. Verilerin gerçek zamanlı olarak senkronize edilmesi içinse MongoDB Atlas Database Triggers kullanıldı. Toplamda beş PostgreSQL tablosu, iki SQL görünümü, iki Gemini uç noktası ve bir veri alma uç noktasıyla çalışan bu sistemde herhangi bir VPC, bağlantı havuzu veya sunucu bulunmuyor.

Mühendislikteki Üç Kritik Detay

Bu sistemin sunduğu en büyük avantajlardan biri, sunucu yönetimi gerektirmemesi. Ancak bu basitlik arkasında üç önemli mühendislik zorluğu yatıyor:

1. Sunucusuz Ortamda Veritabanı Kimlik Doğrulaması

AWS Aurora Serverless v2’nin yeni internet erişim ağ geçidi modeli, Vercel’in doğrudan veritabanına bağlanmasına olanak tanıyor. Ancak bu model, parola tabanlı kimlik doğrulamasını desteklemiyor. Bunun yerine, IAM veritabanı kimlik doğrulaması zorunlu hale geliyor. Bu da her bağlantı için 15 dakikalık geçici bir kimlik doğrulama token’ının oluşturulmasını gerektiriyor:

const signer = new Signer({
  hostname,
  port,
  username,
  region,
  credentials
});

pool = new Pool({
  host,
  port,
  user,
  database,
  password: () => signer.getAuthToken(), // Her bağlantıda yeni token
  ssl: { rejectUnauthorized: false }
});

Bu yaklaşımın en büyük avantajı, uzun ömürlü bir veritabanı parolasına gerek olmaması. Ne Vercel ortamında ne de kod deposunda herhangi bir parola saklanmıyor.

2. Vercel’in Lambda Koşucusunun AWS Kimlikleriyle Çakışması

IAM token oluşturmak için AWS kimlik bilgilerine ihtiyaç var. Vercel’e AWS_ACCESS_KEY_ID ve AWS_SECRET_ACCESS_KEY ortam değişkenleri olarak ayarlandığında bile sistem çalışmayı reddetti. Bunun nedeni, Vercel’in Lambda koşucusunun kendi çalışma rolüne ait kimlik bilgilerini enjekte etmesiydi. Bu da token oluşturma işleminin yanlış kimlikle yapılmasına yol açıyordu.

Çözüm, özelleştirilmiş ortam değişkenleri kullanmak oldu:

function signerCredentials() {
  const accessKeyId = process.env.PULSE_AWS_ACCESS_KEY_ID;
  const secretAccessKey = process.env.PULSE_AWS_SECRET_ACCESS_KEY;
  return accessKeyId && secretAccessKey ? { accessKeyId, secretAccessKey } : undefined;
}

Bu şekilde, sadece rds-db:connect yetkisine sahip özel bir IAM kullanıcısı tanımlanarak sorun çözüldü.

3. Gerçek Değişiklik Akışlarının Zorlukları

Kajota Pulse’in başarısı, gerçek zamanlı verilerin doğruluğuna bağlı. Bu nedenle üç MongoDB Atlas Database Triggers kullanılarak üretim verileri doğrudan Aurora’ya aktarıldı. Ancak bu süreç, demo verilerinde görülmeyen üç kritik hatayı ortaya çıkardı:

  • Genişletilmiş JSON (EJSON) sorunları: MongoDB değişiklik akışları EJSON formatında veri gönderdiği için _id ve fiyat bilgileri doğru şekilde parse edilmiyordu. Örneğin, fiyat {"$numberInt":"9500"} olarak gelirken, doğru şekilde sayıya dönüştürülmesi gerekiyordu.
  • Koleksiyon adı uyumsuzlukları: Gerçek koleksiyon adı cosell_products olmasına rağmen, API rotası cosellproducts şeklinde tanımlanmıştı. Bu da değişiklik akışlarının sessizce kaybolmasına neden oluyordu.
  • Yabancı anahtar kısıtlamalarının sorunları: Değişiklik akışları sıralı olmadığı için bir ürün referansı henüz oluşturulmadan o ürüne ait bir kayıt eklenebiliyordu. Bu durum, yabancı anahtar kısıtlamalarının tetiklenmesine ve kayıtların düşürülmesine yol açıyordu. Çözüm olarak, yabancı anahtar kısıtlamaları kaldırılarak her tablo bağımsız bir projeksiyon olarak ele alındı.

Yapay Zeka Destekli Öneri Motoru

Bir gösterge paneli sadece verileri görüntülerken, Kajota Pulse doğrudan öneriler sunmayı hedefliyor. /api/recommend uç noktası, gerçek zamanlı verileri (trend talebi, kategori kâr marjları, rakip stok durumları, fiyat konumu) analiz ederek Gemini 2.5 Flash’a gönderiyor. Model, aşağıdaki gibi yapılandırılmış bir çıktı üretiyor:

Organik Shea YağıHafta sonundan önce 10-15 adet stoklayın. "+27 beğeni, %18 kâr marjına sahip Güzellik kategorisinde yer alıyor ve bir rakip benzer bir kremde stok sıkıntısı yaşıyor."

Bu öneri sisteminin iki kritik özelliği bulunuyor:

  • Yapılandırılmış JSON çıktısı: Modelle responseMimeType: "application/json" ve bir yanıt şeması kullanılarak temiz bir sıralı liste oluşturuluyor. Bu, metin çıktısını parse etmekten çok daha güvenilir.
  • Belirleyici yedek algoritma: Eğer Gemini kullanılamaz durumdaysa, talebi, marjı ve fırsatları temel alan basit bir sıralama algoritması devreye giriyor. Bu sayede panodaki öneriler hiçbir zaman boş kalmıyor.

Sıfır Yığın Yaklaşımının Avantajları

Sıfır sunucu yönetimiyle çalışan bu mimari, birçok avantaj sunuyor:

  • Sunucu yönetimi gerektirmiyor: Vercel fonksiyonları API’yi yönetirken, Aurora verileri saklıyor. Hiçbir yamaya veya ölçekleme işlemine gerek kalmıyor.
  • Güvenlik avantajları: Uzun ömürlü parolalar yerine geçici kimlik doğrulama token’ları kullanılıyor. Bu da veri tabanı güvenliğini önemli ölçüde artırıyor.
  • Gerçek zamanlı veri senkronizasyonu: MongoDB değişiklik akışları sayesinde üretim verileri anında Aurora’ya aktarılıyor. Bu, demo verilerindeki senaryolardan çok daha güvenilir sonuçlar elde edilmesini sağlıyor.

Gelecek İçin Öngörüler

Kajota Pulse, sıfır sunucu yönetimi ve sifresiz veri tabanı bağlantılarıyla inşa edilen yenilikçi bir proje olarak öne çıkıyor. Bu yaklaşım, gelecekteki uygulamaların altyapı yönetimini basitleştirirken güvenlik ve verimlilik açısından da önemli kazanımlar sunuyor. Yapay zeka destekli öneri motorunun daha da gelişmesiyle, küçük işletmelerin pazardaki karar alma süreçlerini tamamen dönüştürmesi mümkün olacak.

Bu proje, sadece bir yarışma projesinden çok daha fazlası. Sıfır yığın yaklaşımı, geleceğin bulut tabanlı uygulamalarına dair önemli ipuçları sunuyor.

Yapay zeka özeti

Vercel ve AWS Aurora Serverless kullanarak sunucu yönetimi gerektirmeyen, sifresiz ve yapay zeka destekli bir gösterge paneli geliştirme rehberi. Kajota Pulse projesi detayları.

Yorumlar

00
YORUM BIRAK
ID #5GRCBE

0 / 1200 KARAKTER

İnsan doğrulaması

4 + 2 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.