İletişim

Edge Function Nedir?

Kısa tanım

Edge function, bir CDN'in dünyanın farklı noktalarına dağılmış sunucularında, kullanıcıya en yakın lokasyonda çalışan küçük ve kısa ömürlü sunucusuz koddur. İstekleri kaynak sunucuya ulaşmadan karşılayıp yönlendirme, başlık ekleme, kimlik kontrolü veya kişiselleştirme gibi işleri düşük gecikmeyle yapar. Hesaplamayı kullanıcıya yaklaştıran bu genel yaklaşıma edge computing (uç bilişim) denir.

Diğer adları: Edge Functions, Edge Computing, Uç Bilişim, Kenar Bilişim, Edge Fonksiyonu

Kullanıcıya yakın uç noktada çalışan küçük bir fonksiyonun isteği yeniden yönlendirdiğini ve gerekirse kaynağa ilettiğini gösteren şema

Hesaplamayı kullanıcıya yaklaştırmak

Klasik bir web uygulamasında İstanbul'daki bir kullanıcının isteği, sunucu hangi bölgedeyse oraya kadar gider ve geri döner. CDN'ler bu yolu statik dosyalar için çoktan kısalttı: görseller, CSS ve JavaScript kullanıcıya yakın bir veri merkezinden sunulur. Edge computing aynı fikri koda uygular. Yönlendirme kararı vermek veya bir başlık eklemek için isteğin okyanusu geçmesine gerek yoksa, bu iş CDN'in uç noktasında yapılabilir.

Edge function, bu yaklaşımın geliştiriciye sunulan biçimidir. Cloudflare Workers, Vercel ve Netlify gibi platformlar, yazdığınız fonksiyonu yüzlerce lokasyona dağıtır ve her isteği en yakın lokasyonda çalıştırır.

CDN, serverless ve edge function arasındaki fark

CDN önbelleğiBölgesel serverlessEdge function
Ne çalışır?Kod yok; kayıtlı yanıt sunulurTam çalışma zamanı (ör. Node.js)Kısıtlı, web standartlarına dayalı çalışma zamanı
Nerede?Yüzlerce lokasyonSeçilen bir veya birkaç bölgeYüzlerce lokasyon
Dinamik mi?HayırEvetEvet, ama kısa işler için
Tipik işStatik dosyalarİş mantığı, veritabanı erişimiYönlendirme, başlıklar, erişim kontrolü

Edge function bir anlamda serverless modelin özel bir türüdür: sunucu yönetimi yine sağlayıcıdadır, fark çalışma yerinde ve çalışma zamanının kısıtlarındadır.

İzolat modeli ve sınırları

Pek çok edge platformu her fonksiyon için bir container veya sanal makine açmak yerine V8 izolatları kullanır. Cloudflare'in dokümantasyonuna göre bir izolat, container veya sanal makine üzerindeki bir Node sürecinden yaklaşık yüz kat hızlı başlar ve çok daha az bellek tüketir; bu yüzden klasik serverless'taki cold start sorunu büyük ölçüde ortadan kalkar.

Bedeli kısıtlardır. Cloudflare Workers'ta her izolat en fazla 128 MB bellek kullanabilir; işlemci süresi ücretsiz planda istek başına 10 milisaniye, ücretli planda varsayılan olarak 30 saniye (en fazla 5 dakika) ile sınırlıdır. Çalışma zamanı fetch, Request ve Response gibi web standardı API'leri sunar; dosya sistemi ve Node.js'in bütün modülleri yoktur. Yerel Node.js eklentilerine dayanan kütüphaneler bu ortamda çalışmaz.

Örnek: istek kaynak sunucuya gitmeden

Aşağıdaki Cloudflare Workers fonksiyonu eski blog adreslerini kalıcı olarak yönlendirir, diğer isteklere ise bir güvenlik başlığı ekler:

export default {
  async fetch(request) {
    const url = new URL(request.url);

    if (url.pathname.startsWith("/eski-blog/")) {
      url.pathname = url.pathname.replace("/eski-blog/", "/blog/");
      return Response.redirect(url.toString(), 301);
    }

    const response = await fetch(request);       // kaynak sunucuya ilet
    const copy = new Response(response.body, response);
    copy.headers.set("X-Content-Type-Options", "nosniff");
    return copy;
  },
};

Yönlendirme kullanıcıya en yakın lokasyonda yanıtlandığı için kaynak sunucu hiç meşgul edilmez. Benzer biçimde A/B testi gruplarının atanması, ülkeye göre dil yönlendirmesi, basit token doğrulaması ve bot filtreleme de edge'de yapılabilir.

Veriden uzak çalışmanın tuzağı

Edge function kullanıcıya yakındır, ama veritabanı genellikle tek bir bölgededir. Fonksiyon her istekte o veritabanına üç sorgu atıyorsa her sorgu uzun yolu tekrar tekrar katederek kazanılan süreyi fazlasıyla geri alır. Bu yüzden veriye yoğun erişen işler veritabanının yakınında çalıştırılmalı, edge'e yalnızca veriye ihtiyaç duymayan ya da önbellekten beslenen işler bırakılmalıdır. Vercel'in güncel dokümantasyonu da performans ve güvenilirlik gerekçesiyle edge çalışma zamanından Node.js çalışma zamanına geçişi öneriyor; Next.js 16 ile middleware'in yerini alan proxy dosyası da varsayılan olarak Node.js'te çalışıyor. Edge'in kazancı, TTFB gibi metriklerle ölçülerek doğrulanmalıdır.

İlgili terimler

← Sözlüğe dön