28 puan yazan xguru 2024-02-01 | 1 yorum | WhatsApp'ta paylaş
  • Serverless, aslında sunucu olmadığı anlamına gelmez; yalnızca başkasının sunucusunu kullandığınız anlamına gelir
  • ServerFree mimarisi, arka uç sunucusu, container veya sanal makine olmadan kod çalıştırabilen bir kavram öneriyor
  • Bu mimaride kod tarayıcı içinde çalışır ve yalnızca statik dosyaları sunan bir sunucu gerekir
  • Web uygulamasını tarayıcıda çalışacak şekilde paketleme yöntemi gösteriliyor
  • Frontend kodu her zamanki gibi build edilir; backend paketlenip web worker içinde çalıştırılır ve veritabanı olarak WebAssembly'ye derlenmiş SQLite kullanılır

Fikir

  • İçerik pazarlaması kapsamında bir demo proje yapmaya karar veriliyor ve Hacker News'ten ilhamla, gizlilik yönüyle dikkat çeken bir iş başvurusu takip aracı geliştiriliyor
  • Bu proje, web worker, belge uyumsuzlukları ve eksik belgeler gibi sorunları çözerken yeni bir mimari geliştirme sürecine dönüşüyor

Klasik mimariyle ilk deneme (kolay kısım)

  • Uygulama, veritabanı şemasını değiştirmek ve izinleri ayarlamak için SubZero CLI kullanılarak geliştiriliyor
  • CRUD ve filtreleme özellikleri sunuluyor, ancak demodan çok ürüne yakın bir arayüz özelleştirmesi yapılıyor
  • Soldaki boşa giden alanı azaltmak için kenar çubuğu üste taşınıyor
  • "Opportunities" sayfasına Show, Create, Edit ve List bileşenleri ekleniyor
  • Arka uç koduna dokunmadan karmaşık filtreleme akışları uygulanıyor
  • Dashboard iyileştirilerek "açık fırsatlar", "başvuru başına ortalama ilerleme" ve "başvurudan sonra geçen ortalama gün" gibi veriler gösteriliyor
  • Production dağıtımı için Docker image oluşturuluyor, veritabanına seed verisi ekleniyor ve container çalıştırılıyor
  • Verilerin kalıcı olması için SQLite veritabanı dosyası container dışında tutuluyor
  • SQLite veritabanının kalıcılık ve yedekleme sorunlarını çözmek için Turso DB kullanılıyor

ServerFree mimarisine geçiş (eğlenceli kısım)

  • SQLite, veritabanı olarak kullanılmak üzere WebAssembly'ye derleniyor
  • Verileri depolamak için OPFS (Origin-Private FileSystem) kullanılıyor
  • Arka uç kodu, UI thread'ini bloklamamak için web worker içinde çalıştırılıyor
  • Tarayıcı uyumluluğu sağlamak için Express, itty-router ile değiştiriliyor
  • UI ile backend arasındaki istekleri yakalayıp işlemek için service worker kullanılıyor
  • Service worker ile web worker arasında güvenilir iletişim, ana thread üzerinden kuruluyor
  • Kimlik doğrulamayla ilgili kod ana thread'den (UI) kaldırılıyor
  • Veriler kullanıcının bilgisayarında saklanıyor ve sunucuya gönderilmiyor

Sonuç

  • Bu mimari özellikle müşteri verilerinin bağımsız olduğu ve kullanıcılar arasında paylaşılmasının gerekmediği durumlarda faydalı
  • Arka uç sunucusu olmadığı için barındırma maliyetleri düşüyor, veri gizliliği güçleniyor ve güvenlik artıyor
  • Electric gibi araçlar kullanılarak veritabanının bir kısmı istemciyle senkronize edilebilir ve bazı istekler/sorgular tarayıcıda işlenebilir

1 yorum

 
[Bu yorum gizlendi.]