27 puan yazan xguru 2022-10-11 | 3 yorum | WhatsApp'ta paylaş
  • Web tek bir bilgisayarda başladı
  • 32 yıl geçti ama hâlâ tek bir bilgisayarmış gibi geliştiriyoruz
  • Son birkaç yılda statik siteler, CDN üzerinden kullanıcılara yakın noktalardan sunuldu
  • Şimdi aynı şey dinamik web uygulamalarında da yaşanıyor. Artık her yere dağıtım mümkün

Edge nedir

  • İnsanlar "The Edge" dediğinde, sitenizin veya uygulamanızın dünyanın dört bir yanındaki her kullanıcıya yakın birçok sunucuya dağıtılması kastedilir
  • Biri sitenizi/uygulamanızı istediğinde en yakın sunucuya yönlendirilir
  • Bu dağıtık sunucular, yalnızca statik site varlıklarını değil, dinamik web uygulamalarını destekleyen özel kodları da çalıştırabilir
  • Yakındaki sunuculara taşınmak, gecikmeyi optimize etmeye yönelik bir girişimdir
  • Sayfa yüklenmesi uzadıkça kullanıcının ayrılma olasılığı artar
  • Heroku gibi bir yere dağıtırsanız uygulama Kuzey Amerika’daki AWS veri merkezine gider ve Avrupa ya da diğer şehirlerde TTFB (Time to First Byte) yavaşlar
  • Ancak Edge Network’ümüz olan Deno Deploy üzerinde çalışan Deno.com’u test ederseniz TTFB çok daha hızlıdır
  • “Server” kavramı ilk kez 1969 tarihli RFC’de tanıtıldı
  • Tim Berners-Lee’nin ofisindeki NeXT makinesi ilk web sunucusuydu. Ancak internet o noktada zaten 20 yılı aşkın süredir çalışıyordu

İçeriği kullanıcıya yakın yerlerde önbelleğe almak

  • Sunucu mimarisi uzun süre iyi çalıştı ama 90’ların sonlarından itibaren web büyüdükçe sorunlar ortaya çıkmaya başladı
  • Akamai, 1998’de ilk CDN’i tanıttı
  • Akamai’nin CDN’i, içeriği dağıtık bir sunucu sistemi üzerinde önbelleğe alıyordu
  • CDN, modern web’in önemli parçalarından biri hâline geldi

Daha az sunucu, daha fazla serverless

  • Sunucular, "aşırı yüklenme"nin ters tarafında da sorun yaşar: yetersiz kullanım
  • Sunucular kapatılamaz; zamanın %100’ünde açık kalmaları gerekir ve bunun maliyeti vardır
  • Serverless bu sorunu hafifletir. Gerektiğinde başlar, sonra tekrar kapanır
  • Ancak "serverless" kötü bir isimdir. Sunucular ortadan kalkmaz, hâlâ işin içindedir
  • Sadece her zaman çalışan dedicated sunucular yoktur
  • Yaygın olarak kullanılan ilk serverless framework, AWS Lambda’ydı
  • Serverless’ın iki avantajı vardır
    • Yalnızca kullandığınız kadar ödersiniz
    • Sunucuların yönetimiyle uğraşmanız gerekmez. Planlama, yönetim, bakım yoktur
  • Dezavantajı ise çoğunlukla performanstır
    • "Cold Start" problemi
    • Ve sunucular hâlâ merkezî olduğu için uzun bir round-trip vardır
  • Böylece bugünkü noktaya geldik

Livin' on the edge

  • Edge’in güzelliği, CDN’in avantajlarını (kullanıcıya yakın olmak) ve Serverless’ın avantajlarını (fonksiyon çalıştırmak) bir araya getirip birleştirmesidir
  • Yani Edge ile kullanıcıya yakın yerlerde özel kod çalıştırabilirsiniz. Bunun birçok avantajı vardır

Daha iyi performans

  • Kullanıcının önemsediği tek şey budur
  • Siteniz veya uygulamanız kullanıcıya yakın bir Edge sunucusunda çalışırsa merkezî sunucudan daha hızlı olur
  • Ama performans avantajı bununla sınırlı değildir
  • Compute, kullanıcının tarayıcısında değil Edge’de çalışır
    • Uygulama, kullanıcının makinesinde daha az kaynak gerektirir
    • Kullanıcıya daha az payload iletildiği için daha az bant genişliği kullanılır
    • Fonksiyonlar kontrollü bir ortamda çalıştığı için, fonksiyonlar ve API’ler tutarlı biçimde çalışır

Daha iyi güvenlik

  • Hesaplamayı istemciden/cihazdan serverless Edge’e taşımak, uygulamanın saldırı yüzeyini azaltır
  • DDoS saldırısı gerçekleştirmek daha zordur

Daha iyi geliştirici deneyimi

  • Bugün Edge için kod yazmak gerekenden fazla zahmetlidir
  • Sorunların çoğu, Edge geliştirmenin hibrit doğasından kaynaklanır
  • Birçok framework Edge-First olarak geliştirilmediği için geliştiricinin her fonksiyonun ya da sayfanın Edge’de mi yoksa tarayıcıda mı çalışacağını seçmesi gerekir
  • Ancak Fresh gibi yeni framework’ler, SSR ve Islands mimarisiyle bunu basitleştirir
  • Fresh’i Deno Deploy ile birlikte kullanırsanız, gecikme optimizasyonu sayesinde tam Lighthouse skoru almak mümkündür
  • Edge, internetin bir sonraki iterasyonudur.
    Web’i hızlandırmadaki bir sonraki adımdır ve kullanıcılar ile geliştiriciler için daha güvenli bir yerdir

3 yorum

 
cometkim 2022-10-17

Fastly blogunda, mevcut veri merkezi bilişim altyapısının yaklaşık %70’inin edge’e taşınacağının öngörüldüğünü söylüyorlar haha