Hotel WD Cloudflare Önbellek Sistemine Geçti Misafirlerinize Milisaniyelerle Ulaşıyoruz

Hotel WD, tüm müşteri sitelerini Cloudflare for SaaS edge ağına taşıdı. Sayfalar artık ortalama 800ms yerine 50ms'de açılıyor. Cloudflare maliyeti tüm Hotel WD paketlerinde dahil — ekstra ücret yok.

Hotel WD Cloudflare Önbellek Sistemine Geçti: Misafirlerinize Milisaniyelerle Ulaşıyoruz

Bugün, Hotel WD altyapısında bizi haftalardır heyecanlandıran bir mühendislik kilometre taşını duyuruyoruz. Tüm müşteri otel sitelerimiz artık Cloudflare'in küresel edge önbellek ağı üzerinden yayınlanıyor. Bu, otel web sitenizin misafirlerinize ortalama 800 milisaniye yerine 50 milisaniyede ulaşması demek. On yedi kat hızlanma. Üstelik müşterilerimizin ödediği paket ücretinin içinde, ekstra Cloudflare faturası yok.

Cloudflare edge cache mimarisi: Origin sunucusu, dünya çapında edge ağı ve misafir tarayıcısı arasında cache HIT akışı; 800ms'den 47ms'ye düşen cevap süresi.

Milisaniye Sanatı

Otelcilik dijitalde küçük rakamların oyunudur. Bir misafir, Google'da "London Mayfair boutique hotel" yazıp arama sonuçlarına baktığında, ilk üç sonuca tıklamadan önce her birini sadece birkaç saniye inceler. Sayfanız iki saniyenin üzerinde açılıyorsa, o misafir genellikle siteyi terk eder ve bir sonrakine geçer. Google, bu davranışı izler ve yavaş açılan siteleri arama sıralamasında geriye atar. Yani yavaşlık yalnızca o anki rezervasyonu kaybettirmez; gelecek aydaki organik ziyaretçi akışınızı da kemirir.

Bizim için sayfa hızı bir konfor değil, doğrudan ciroya etki eden bir mühendislik disiplinidir. Bu yüzden bu işe Milisaniye Sanatı diyoruz. Sanatçı bir saatçi gibi her milisaniyeyi optimize ediyoruz — çünkü 200ms, üç bin misafir başına bir rezervasyon farkı yaratır.

Neden Next.js? Sayfa Hızının Kritik Önemi

Hotel WD'yi inşa ederken seçtiğimiz altyapı sıradan bir tercih değildi. Modern web framework'leri arasında dünyanın en hızlı ve SEO dostu seçeneklerinden biri olan Next.js App Router mimarisini, otelcilik için özel olarak optimize ettik. Bunun sebebi basit:

  • Google, sıralama algoritmasında Core Web Vitals denilen üç metriği (LCP, INP, CLS) ödüllendiriyor. Üçü de doğrudan sayfa hızıyla ilgili.
  • Misafiriniz, sayfayı bekliyorsa rezervasyon yapmıyor. Bekleyen misafir, kararsız misafirdir; kararsız misafir ise rakibinize giden misafirdir.
  • Yavaş bir sayfa, Google Ads kampanyalarınızda "Quality Score"u düşürür ve aynı tıklamayı daha pahalıya satın almanıza neden olur.
  • Next.js, sayfaları sunucuda hazırlayıp misafire hazır HTML olarak gönderir. Tarayıcının ağır JavaScript yüklemesi beklemesini ortadan kaldırır. Bu sayede Hotel WD ile yayında olan otel siteleri, Lighthouse skorunda 95+ değerlere kolayca ulaşır.

    Ancak Next.js tek başına yeterli değildi. Origin sunucumuz tek bir veri merkezinde; sitenizi açan misafir New York, Londra ya da Singapur'da olabilir. Aradaki coğrafi mesafe bile başlı başına gecikme demek. İşte Cloudflare bu noktada devreye giriyor.

    Cloudflare for SaaS: Hotel WD'nin Yeni Edge Katmanı

    Cloudflare for SaaS, dünyanın en büyük içerik dağıtım ağı olan Cloudflare'in, bizim gibi çok-müşterili (multi-tenant) SaaS platformlarına özel olarak sunduğu kurumsal bir hizmettir. Hotel WD, bu altyapının bir parçası olarak kayıtlıdır. Müşterilerimizin custom domain'leri otomatik olarak Cloudflare'in 330'dan fazla şehirdeki edge sunucularına dağıtılır.

    Pratikte ne anlama geliyor? Sitenizin bir kopyası, misafirinize en yakın Cloudflare veri merkezinde tutulur. New York'tan gelen misafir New York edge'inden, Londra'dan gelen misafir Londra edge'inden, Tokyo'dan gelen misafir Tokyo edge'inden hizmet alır. Origin sunucumuz nerede olursa olsun, misafiriniz coğrafi olarak en yakın noktaya bağlanır.

    Yeni mimaride veri akışı şöyle çalışıyor:

  • 1
    Bir misafir, otel sitenizin URL'sine tıklar.
  • 2
    İstek, en yakın Cloudflare edge'ine gider.
  • 3
    Edge, bu sayfanın taze bir kopyasını cache'inde saklıyor mu? Evet. Cache HIT.
  • 4
    Misafire sayfa 47-80 milisaniye içinde teslim edilir. Origin sunucumuza istek bile gitmez.
  • Eski mimaride her istek sunucuya kadar gelirdi: veritabanı sorgulanır, sayfa render edilir, HTML üretilirdi. Bu işlem ortalama 800 milisaniye sürerdi. Yeni mimaride bu hesaplama sayfa cache'lendiğinde bir kez yapılır; sonraki binlerce ziyaretçi anında cache'den servis edilir.

    Sunucumuzdaki Yük Azaldı, Yoğun Trafik Artık Sorun Değil

    Bu mimariyi tasarlarken yalnızca hızı düşünmedik. Sunucu mühendisliği açısından kritik başka bir kazanım var: origin sunucumuz nefes alıyor.

    Önceki kurulumda, popüler bir otel sitesine günde on bin ziyaretçi geldiğinde her birinin isteği origin'e ulaşır, veritabanı sorgulanır, sayfa render edilirdi. Yoğun bir kampanya dönemi, bir sosyal medya viral'i ya da bir Google Hotel Ads kampanyası ani trafik artışı yaratırsa sunucumuz zorlanır, yanıt süreleri uzar, en kötü ihtimalle bazı misafirler hata sayfası görürdü.

    Yeni Cloudflare edge mimarisinde durum tamamen farklı:

  • Trafiğin %99'undan fazlası edge'den karşılanıyor. Origin'e isteğin sadece çok küçük bir kısmı geliyor — o da cache süresi dolduğunda yapılan tek bir tazeleme isteği.
  • Bir otelin sitesi viral olsa, on bin yerine yüz bin ziyaretçi gelse bile sunucumuz aynı sakinlikte çalışır. Çünkü Cloudflare'in 330+ edge'i yükü emer.
  • Aynı sunucuda yüzlerce farklı otelin sitesi yan yana duruyor; bir otelin trafik sıçraması artık diğerlerini etkilemiyor. Komşunuzun başarısı sizin sayfanızın yavaşlamasına yol açmıyor.
  • Veritabanı, gereksiz sorgu yükünden kurtuldu. Asıl iş için — gerçek zamanlı rezervasyon, fiyat ve müsaitlik için — kaynak ayrılıyor.
  • Bu, kapsamlı bir ziyaretçi akışının oluşturduğu kurumsal rahatlık demektir. İşletmenizin başarısı altyapımızın kapasitesine takılmaz.

    Bugünkü İyileştirmeler: Mimari Değişiklikten Sonra Ne Kazandık?

    Migrasyonun teknik tarafı bizim sorunumuz, ama sonuçlarını birlikte göreceğiz. Bugün canlıya aldığımız iyileştirmelerin somut etkileri şöyle:

    Sayfa Açılış Süresi. Custom domain'i bağlı tüm müşteri sitelerinde, ilk byte'a kadar geçen süre (TTFB) ortalama 800ms'den 50-80ms aralığına düştü. Bu, mobil 4G üzerinden bağlanan bir misafirin sayfayı fark edilebilir biçimde anında açıldığını hissetmesi demektir.

    Akıllı Cache Geçersiz Kılma. Otel paneli üzerinden bir değişiklik kaydettiğinizde — açıklama düzeltmesi, yeni oda eklemesi, fiyat güncellemesi — sistemimiz arka planda Cloudflare'e bir "purge" sinyali gönderir. Bu sinyal, edge'deki eski kopyayı anında siler. Bir sonraki ziyaretçi taze içerikle karşılaşır. Yani hızdan ödün vermeden gerçek zamanlı içerik kontrolü.

    Sahip-Cache Çakışmaları Çözüldü. Cache mimarimiz kullanıcı oturumunu fark eder. Otel sahibi kendi sitesini açtığında "düzenle" gibi yönetici öğelerini görür; aynı sayfayı aynı anda gezen anonim bir misafir cache'lenmiş halini görür. Owner'ın gördüğü hiçbir özel öğe yanlışlıkla halka cache'lenmez. Çift güvenlik.

    Manuel "Önbellek Temizle" Butonu. Yönetim panelinde, sayfanın üst başlığında küçük bir buton ekledik. Acil bir durumda — diyelim sitenizde göstermek istemediğiniz eski bir fiyat görüyorsanız — tek tıkla edge cache'i temizleyebilirsiniz. Müşteri destek ekibimizi aramanıza gerek yok.

    SSL/TLS Sertifika Yönetimi Otomatikleşti. Cloudflare for SaaS, custom domain ekleyen müşteriler için SSL sertifikalarını arka planda otomatik üretip yenilenir. Müşterimizin yapması gereken tek şey DNS panelinde tek bir CNAME kaydı eklemek. Sertifika işlerini hiç düşünmüyor.

    Cloudflare Maliyeti Tüm Paketlerde Dahil

    Bu son nokta, müşterilerimiz için ekonomik açıdan en önemli olabilir. Hotel WD'de Cloudflare for SaaS hizmeti tüm paketlere dahildir. Ek bir ücret yok, başka bir abonelik yok, kullanım bazlı bir ekstra fatura yok.

    Diğer SaaS sağlayıcıları çoğunlukla edge cache'i ya da CDN hizmetini ya tamamen size bırakır (kendi Cloudflare hesabınızı açıp ücretini ödersiniz) ya da "Pro" / "Enterprise" gibi üst paketlerde sunar. Biz, müşteri sitelerimizin her birinin kurumsal düzeyde altyapı hak ettiğine inanıyoruz. Küçük bir butik otel ile büyük bir resort zincirini, milisaniyeler söz konusu olduğunda, eşit ve hızlı bir altyapıyla buluşturmak istiyoruz.

    Hotel WD ile sözleşmeniz olduğu sürece otel siteniz dünyanın en gelişmiş edge ağı olan Cloudflare'in 330+ şehrindeki sunucuları üzerinden yayınlanır. Bu hesabı, sertifika yenilemeyi, edge cache yapılandırmasını, DDoS korumasını ve trafik yönetimini biz arka planda hallederiz.

    Perde Arkası: Bugünkü Mimari Değişikliğin Teknik Tarafı

    Mühendislik ekibimizden meraklı okurlar için kısa bir teknik özet. Bu projede uyguladığımız cache stratejisi tek katmanlı değil, üç katmanlı bir sistem:

  • 1
    Next.js unstable_cache (uygulama içi DB cache). Bir otel sayfasının veritabanı sorgu sonucu, hotel kimliği ve domain ile etiketlenir. TTL 7 gün, ama tag-based invalidation ile herhangi bir save action'ında anında geçersiz olur. revalidateTag('hotel:id:abc123', 'max') çağrısı, tüm ilgili önbellek girişlerini siler.
  • 2
    Cloudflare edge cache (coğrafi dağıtım). 330+ POP'ta saklanır. Edge TTL 1 gün — Origin'in Cache-Control header'ı ezilir, çünkü Next.js dynamic sayfalar için varsayılan olarak no-store üretir; biz bunu Cloudflare Cache Rule ile override ediyoruz.
  • 3
    Browser cache (her ziyaretçinin tarayıcısı). max-age=0 gönderiyoruz; tarayıcı her seferinde re-validate eder. Bu sayede save action'ından sonra müşteri sayfayı yenilediğinde anında taze içeriği görür — eski sürüm tarayıcıda kilitli kalmaz.
  • Mimaride çözdüğümüz bazı incelikler vardı. Next.js, RSC streaming için response'a şu Vary header'ını ekliyor: vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding. Cloudflare'in cache politikası ise yalnızca Accept-Encoding'li Vary header'larını cache'ler — diğer değerler MISS'e sebep olur. Çözüm: bir Cloudflare Response Header Transform Rule ile bu header'ı sadeleştirip sadece Accept-Encoding bıraktık.

    İkinci incelik: otel sahibi kendi sitesini açtığında "Düzenle" gibi sahip-spesifik UI görür. Bu kullanıcıya cache'lenmiş genel sürümü dönmek olmaz. Cookie-aware bypass kuralı yazdık: session-token cookie'si içeren her istek edge cache'i atlar ve doğrudan origin'e gider. Sahip her zaman taze içerik görür, anonim ziyaretçi cache'lenmiş hızlı sürümü.

    Save action'larında üç katman birden invalidate olur. Otel paneli üzerinden bir alan kaydedildiğinde, sunucu tarafında revalidateHotel(hotelId, customDomain) fonksiyonu çağrılır. Bu fonksiyon hem Next.js cache tag'lerini bust eder hem de Cloudflare API'sine purge_cache isteği gönderir. CF tarafı best-effort olarak kurgulandı — purge başarısız olsa bile save akışı kırılmaz, en kötü ihtimalle TTL süresince bayat içerik kalır.

    Doğal Sıralamada Hızlı Yükseliş

    Daha önce belirttiğimiz gibi Google'ın Core Web Vitals sinyali, sıralama faktörlerinden biridir. Edge cache'lenmiş, sub-100ms TTFB ile açılan bir site, organik aramada doğal olarak yükselir. Bu yükselişin ne kadar olacağı sektörünüze, rekabetin yoğunluğuna ve içerik stratejinize bağlıdır — ama hız tarafında yapabileceğiniz hiçbir şey kalmamış olur.

    Bonus: Azure Coastal — Yeni Tema Ailemize Katıldı

    Bu hafta yalnızca altyapı değil, görsel tarafa da yatırım yaptık. Azure Coastal, sahil otelleri ve butik resort'lar için tasarladığımız yeni premium temamız. Whitewash Akdeniz estetiği, ince siyah üst bar, ortalanmış logo tacı, sinematik deniz manzaralı hero ve güven veren rating çipi — hepsi bir arada. Aylar süren bir tasarım emeğinin ürünü ve ilk müşteri sitelerinde harika sonuçlar verdi.

    Yeni temayı görmek isteyen müşterilerimiz için: Azure Coastal showcase sayfası

    Kapanış: Misafiriniz Bir Saniye Bile Beklemesin

    Otelinizin web sitesi misafirinizin dijital lobi'sidir. Lobi'nizin kapısını açtığınızda misafirin bir saniye bile beklemesini istemezsiniz; aynı şey dijital tarafta da geçerli. Sayfanızın anında açılması, misafirinize "biz işimizi ciddiye alıyoruz" mesajını ilk saniyede verir.

    Hotel WD olarak Cloudflare for SaaS edge ağına geçişimizi tamamladık. Tüm müşterilerimiz — yeni kayıt yapanlar dahil — bu altyapının bir parçası. Tek yapmanız gereken, otel sitenizi kullanmaya devam etmek. Hız ve kurumsal rahatlık zaten otomatik olarak elinizde.

    Sayfa hızı bir konfor değil, rezervasyondur. Hotel WD ile her milisaniyeyi sayıyor.

    Tahir Dinç
    YAZAR

    Tahir Dinç

    Turkey27+ YIL DENEYİM

    I have been working in the digital field since 1999. I still hold the position of Digital Marketing Manager at Türk SEM. I have also been involved in tourism-related activities since 2005.

    Hotel WD·Strategy Team
    Hotel WD Cloudflare Önbellek Sistemine Geçti: Misafirlerinize Milisaniyelerle Ulaşıyoruz | Hotel WD - Hotel WD