Edge Computing ve CDN: Kullanıcıya En Yakın Noktada İşlem

z

zafer ak

Yazar

31 October 2025 11 dakika okuma 388 görüntülenme
Edge Computing ve CDN: Kullanıcıya En Yakın Noktada İşlem
Cloudflare Workers, Vercel Edge Functions ve AWS Lambda@Edge ile düşük latency uygulamalar.

Edge Computing Nedir?

Edge computing, işlemleri kullanıcıya en yakın sunucularda gerçekleştirme yaklaşımıdır. Bu sayede latency dramatik şekilde düşer ve kullanıcı deneyimi iyileşir.

Edge vs Origin

  • Origin Server: Merkezi sunucu, yüksek latency
  • Edge Server: Kullanıcıya yakın, düşük latency
  • Fark: 200ms vs 20ms response time

Cloudflare Workers

// worker.js
export default {
  async fetch(request, env) {
    const url = new URL(request.url);

    // Geolocation bazlı routing
    const country = request.cf?.country || "US";

    // A/B Testing
    const variant = Math.random() < 0.5 ? "A" : "B";

    // Edge caching
    const cacheKey = new Request(url.toString(), request);
    const cache = caches.default;

    let response = await cache.match(cacheKey);

    if (!response) {
      response = await fetch(request);

      // Cache for 1 hour
      response = new Response(response.body, response);
      response.headers.set("Cache-Control", "s-maxage=3600");

      await cache.put(cacheKey, response.clone());
    }

    return response;
  },
};

Vercel Edge Functions

// middleware.ts
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";

export function middleware(request: NextRequest) {
  // Geo-based redirect
  const country = request.geo?.country || "US";

  if (country === "TR" && !request.nextUrl.pathname.startsWith("/tr")) {
    return NextResponse.redirect(new URL("/tr", request.url));
  }

  // Bot protection
  const userAgent = request.headers.get("user-agent") || "";
  if (isBot(userAgent)) {
    return new NextResponse("Blocked", { status: 403 });
  }

  // Add security headers
  const response = NextResponse.next();
  response.headers.set("X-Frame-Options", "DENY");
  response.headers.set("X-Content-Type-Options", "nosniff");

  return response;
}

export const config = {
  matcher: ["/((?!api|_next/static|favicon.ico).*)"],
};

AWS Lambda@Edge

// Origin Request Handler
exports.handler = async (event) => {
  const request = event.Records[0].cf.request;
  const headers = request.headers;

  // Dynamic origin selection
  const country = headers["cloudfront-viewer-country"]?.[0]?.value;

  if (country === "TR") {
    request.origin = {
      custom: {
        domainName: "api-eu.example.com",
        port: 443,
        protocol: "https",
      },
    };
  }

  // Add custom headers
  headers["x-custom-header"] = [{ value: "edge-processed" }];

  return request;
};

Edge Use Cases

  • A/B Testing: Variant seçimini edge'de yap
  • Authentication: JWT doğrulamayı edge'de yap
  • Personalization: Geo-based içerik
  • Image Optimization: Resim işleme edge'de
  • API Gateway: Rate limiting, caching

CDN Optimizasyonu

# Cache-Control Headers
Cache-Control: public, max-age=31536000, immutable

# Vary Header
Vary: Accept-Encoding, Accept-Language

# Stale-While-Revalidate
Cache-Control: max-age=60, stale-while-revalidate=86400

Sonuç

Edge computing, global uygulamalar için olmazsa olmazdır. Cloudflare Workers veya Vercel Edge ile başlayın, sonuç şaşırtıcı olacak.

İlgili Yazılar