Cloudflare Workers ile Sunucusuz Uygulama Geliştirme
Günümüzde uygulama geliştirme dünyası, yüksek performanslı ve ölçeklenebilir çözümlere ihtiyaç duyuyor. Sunucusuz (serverless) mimariler, bu ihtiyaçları karşılamak için ideal bir yol sunar. Cloudflare Workers, geliştiricilere dünya çapında dağıtılmış bir ağ üzerinde sunucusuz uygulamalar oluşturma imkanı tanır. Bu makalede, Cloudflare Workers kullanarak nasıl sunucusuz bir uygulama geliştirebileceğinizi adım adım ele alacağız.
Cloudflare Workers Nedir?
Cloudflare Workers, JavaScript ile yazılabilen ve Cloudflare’ın global ağı üzerinde çalışan sunucusuz fonksiyonlardır. Bu fonksiyonlar, kullanıcı isteklerini en yakın veri merkezinde işleyerek düşük gecikme ve yüksek performans sağlar. Böylece uygulamalarınız daha hızlı ve daha güvenilir hale gelir.
Neden Cloudflare Workers Kullanmalısınız?
– Küresel Erişim: Cloudflare’ın dünya çapındaki veri merkezleri sayesinde uygulamanız küresel ölçekte erişilebilir olur.
– Düşük Gecikme: Kullanıcı istekleri en yakın sunucuda işlenir, bu da yanıt sürelerini azaltır.
– Kolay Ölçeklenebilirlik: Trafik dalgalanmalarıyla otomatik olarak başa çıkar.
– Maliyet Verimliliği: Yalnızca kullandığınız kaynaklar için ödeme yaparsınız.
Başlarken
Gereksinimler
– Node.js ve npm yüklü bir geliştirme ortamı.
– Bir Cloudflare hesabı.
– Wrangler CLI aracının kurulumu.
Adım 1: Wrangler Kurulumu
Wrangler, Cloudflare Workers için resmi komut satırı aracıdır. Kurmak için terminale aşağıdaki komutu girin:
“`bash
npm install -g wrangler
“`
Adım 2: Cloudflare Hesabına Giriş
Wrangler aracılığıyla Cloudflare hesabınıza giriş yapın:
“`bash
wrangler login
“`
Bu komut tarayıcınızı açarak giriş yapmanızı sağlar.
Adım 3: Yeni Bir Proje Oluşturma
Yeni bir Cloudflare Workers projesi oluşturmak için:
“`bash
wrangler generate my-first-worker
cd my-first-worker
“`
Bu komut, örnek bir proje oluşturur ve dizine girer.
Adım 4: Projeyi İnceleme
Oluşturulan proje dizininde index.js
dosyasını açın. İçerik aşağıdaki gibi olacaktır:
addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) }) async function handleRequest(request) { return new Response('Hello world') }
Bu kod, gelen her isteğe ‘Hello world’ yanıtını döndüren basit bir fonksiyondur.
Adım 5: Yerel Geliştirme
Worker’ınızı yerel olarak test etmek için:
“`bash
wrangler dev
“`
Bu komut, worker’ınızı http://localhost:8787
adresinde çalıştırır.
Adım 6: İşlevselliği Geliştirme
Şimdi, uygulamamızı biraz daha geliştirelim. Örneğin, isteğin başlıklarını döndüren bir worker yazalım:
addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) }) async function handleRequest(request) { let headers = JSON.stringify([...request.headers], null, 2) return new Response(headers, { headers: { 'Content-Type': 'application/json' }}) }
Bu kod, gelen isteğin tüm başlıklarını JSON formatında yanıt olarak döndürür.
Adım 7: Çevre Değişkenleri Kullanma
Gizli anahtarlar veya API anahtarları gibi bilgileri güvenli bir şekilde saklamak için çevre değişkenlerini kullanabilirsiniz:
“`bash
wrangler secret put MY_API_KEY
“`
Kodunuzda bu değere aşağıdaki gibi erişebilirsiniz:
const apiKey = MY_API_KEY
Adım 8: KV Storage Entegrasyonu
Cloudflare Workers KV, küresel olarak dağıtılmış bir anahtar-değer veritabanıdır. KV Storage kullanarak veri depolamak ve almak için:
– KV namespace oluşturun:
“`bash
wrangler kv:namespace create “MY_KV_NAMESPACE”
“`
– wrangler.toml
dosyasına namespace bilgisini ekleyin:
“`
kv_namespaces = [
{ binding = “MY_KV”, id = “namespace-id” }
]
“`
– Veri yazma ve okuma:
// Veri yazma await MY_KV.put('key', 'value') // Veri okuma const value = await MY_KV.get('key')
Adım 9: Uygulamayı Yayınlama
Worker’ınızı Cloudflare ağına dağıtmak için:
“`bash
wrangler publish
“`
Bu komut, uygulamanızı dünya çapında kullanılabilir hale getirir.
İleri Düzey Konular
Durable Objects
Durable Objects, durum bilgisi gerektiren uygulamalar için tasarlanmıştır. Örneğin, sohbet uygulamaları veya oyunlar için idealdir.
WebAssembly Desteği
Cloudflare Workers, WebAssembly (WASM) modüllerini destekler. Performans kritik işlemler için Rust gibi dillerde kod yazıp WASM olarak kullanabilirsiniz.
Planlama ve Zamanlayıcılar
Cron tabanlı görevler için Workers Cron Triggers özelliğini kullanabilirsiniz.
Sonuç
Cloudflare Workers ile sunucusuz uygulama geliştirmek, yüksek performanslı ve ölçeklenebilir çözümler sunar. Bu makalede, temel adımlardan başlayarak ileri düzey konulara kadar geniş bir perspektif sunduk. Artık siz de kendi sunucusuz uygulamalarınızı geliştirerek modern web uygulamaları dünyasında yerinizi alabilirsiniz.