Cloudflare Workers ile Sunucu Taraflı İşlevsellik Geliştirme
Günümüzde web uygulamalarının performansı ve ölçeklenebilirliği, kullanıcı deneyimini doğrudan etkileyen kritik faktörlerdir. Sunucu taraflı işlevsellik geliştirme sürecinde, hızlı yanıt veren ve global ölçekte erişilebilir çözümler tercih edilmektedir. Cloudflare Workers, bu ihtiyacı karşılayan ve geliştiricilere sunucu taraflı kod çalıştırma imkanı sunan güçlü bir platformdur.
Cloudflare Workers Nedir?
Cloudflare Workers, Cloudflare’ın global edge ağında JavaScript ve WebAssembly tabanlı kodlarınızı çalıştırmanızı sağlayan sunucusuz bir platformdur. Bu sayede, gelen istekleri en yakın veri merkezinde işleyerek gecikmeleri minimize eder ve yüksek performanslı uygulamalar oluşturmanıza olanak tanır.
Neden Cloudflare Workers Kullanmalısınız?
– Düşük Gecikme Süreleri: Cloudflare’ın dünya genelindeki 200’den fazla veri merkezinde kodunuzu çalıştırarak kullanıcılara en yakın noktadan yanıt verirsiniz.
– Kolay Ölçeklenebilirlik: Trafik yoğunluğundan bağımsız olarak otomatik ölçeklenir, ek sunucu yönetimi gerekmez.
– Maliyet Etkinliği: Kaynakları etkin kullanarak sunucu maliyetlerini düşürür.
– Güvenlik: DDoS koruması ve güvenlik duvarı özellikleriyle entegre çalışır.
Cloudflare Workers ile Adım Adım Sunucu Taraflı İşlevsellik Geliştirme
Aşağıda, Cloudflare Workers kullanarak sunucu taraflı bir uygulamanın nasıl geliştirileceğini adım adım anlatacağız.
Adım 1: Cloudflare Hesabı Oluşturma ve Alan Adı Ekleme
Öncelikle, Cloudflare üzerinde bir hesap oluşturmanız gerekiyor. Hesabınızı oluşturduktan sonra, sahip olduğunuz alan adını ekleyin ve DNS ayarlarınızı Cloudflare’a yönlendirin.
Adım 2: Worker Oluşturma
1. Dashboard üzerinden Workers sekmesine gidin.
- Create a Worker butonuna tıklayın.
Adım 3: Temel Worker Kodunu Yazma
Oluşturduğunuz Worker, varsayılan olarak aşağıdaki kodla gelecektir:
addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) }) async function handleRequest(request) { return new Response('Hello world') }
Bu kod, gelen tüm istekleri yakalar ve “Hello world” yanıtını döndürür.
Adım 4: İstekleri Yönlendirme ve İşleme
Örneğin, belirli bir URL yoluna gelen isteklere farklı yanıtlar vermek isteyebilirsiniz:
addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) }) async function handleRequest(request) { const url = new URL(request.url) if (url.pathname === '/api') { return new Response(JSON.stringify({ message: 'API yanıtı' }), { headers: { 'Content-Type': 'application/json' }, }) } return new Response('Ana sayfa içeriği') }
Adım 5: Üçüncü Taraf API’lerle Entegrasyon
Cloudflare Workers ile üçüncü taraf API’lere istek gönderip sonuçları işleyebilirsiniz:
async function handleRequest(request) { const apiResponse = await fetch('https://api.example.com/data') const data = await apiResponse.json() return new Response(JSON.stringify(data), { headers: { 'Content-Type': 'application/json' }, }) }
Adım 6: KV Storage ile Veri Depolama
Workers KV, global ölçekte dağıtılmış bir key-value depolama çözümüdür. Bunu kullanarak verileri depolayabilirsiniz.
KV Namespace Oluşturma:
1. Workers sekmesinden KV altına gidin.
- Create Namespace diyerek bir isim verin.
Kodda KV Kullanımı:
const MY_KV = 'KV_NAMESPACE_NAME'
async function handleRequest(request) {
await MY_KV.put('anahtar', 'değer')
const value = await MY_KV.get('anahtar')
return new Response(Değer: ${value}
)
}
Adım 7: Yayınlama ve DNS Ayarları
Worker’ınızı yayınlamak için Deploy butonuna tıklayın. Uygulamanızı özel alan adınızla kullanmak isterseniz:
1. Workers > Triggers sekmesinden Custom Domains ekleyin.
- DNS ayarlarınızda ilgili kaydı oluşturun.
Adım 8: Gerçek Zamanlı Uygulamalar İçin WebSockets Kullanımı
Cloudflare Workers, WebSockets desteği ile gerçek zamanlı uygulamalar geliştirmenize olanak tanır.
addEventListener('fetch', event => {
const { request } = event
if (request.headers.get('Upgrade') === 'websocket') {
event.respondWith(handleWebSocket(request))
} else {
event.respondWith(new Response('Sadece WebSocket istekleri kabul edilir.'))
}
})
async function handleWebSocket(request) {
const { 0: client, 1: server } = new WebSocketPair()
server.accept()
server.addEventListener('message', msgEvent => {
// Mesajları işleyin
server.send(Echo: ${msgEvent.data}
)
})
return new Response(null, { status: 101, webSocket: client })
}
Adım 9: Performans ve Güvenlik Ayarları
– Cache Kontrolü: Statik içerikleri önbelleğe alarak yanıt sürelerini iyileştirin.
– Firewall Kuralları: Zararlı istekleri engellemek için güvenlik kuralları oluşturun.
– Rate Limiting: Yoğun istekleri kontrol altına alın.
Adım 10: Loglama ve İzleme
Cloudflare Workers, özel loglama mekanizmaları sunar. Hataları ve istekleri izlemek için Workers Insites veya üçüncü taraf araçları entegre edebilirsiniz.
En İyi Uygulamalar ve İpuçları
– Küçük ve Modüler Kod Yazın: Performansı artırmak için fonksiyonları küçük tutun.
– Edge’de İşlem Yapın: Mümkün olduğunca çok işlemi edge’de gerçekleştirin.
– Bulut Sunucu Entegrasyonu: Bulut Sunucu hizmetleriyle entegre çalışarak kaynakları etkin kullanın.
Sonuç
Cloudflare Workers, sunucu taraflı işlevselliği global dağıtık bir ağ üzerinde hızlı ve ölçeklenebilir bir şekilde uygulamanıza olanak tanır. Bu rehberi takip ederek kendi sunucu taraflı uygulamalarınızı geliştirebilir ve kullanıcılarınıza üstün bir deneyim sunabilirsiniz.
—