WEB EKOSISTEM

Netlify Nasıl Çalışıyor ?

Birinci bölümde Netlify nedir ? konusuna değinmiştik. Bu yazıda Netlify klasik web app mimarisinden farklı nasıl bir ortam sağladığı üzerinde duracağız.

--

Netlify Web uygulama mimarisi ve işleyişi klasik Web App geliştirme yapısından bir takım farklılıklar içeriyor. Bu farklılıklar;

  • Serverless
  • Edge üzerinde çalışıyor
  • Sürelerine ve amacına göre farklılaşmış ve özelleşmiş işlemci fonksiyonlar bulunması (Edge Handler, Functions, Background Functions)
  • JAMStack yapısının üzerine kurulu framework ile çok iyi örtüşmesi
  • ve Git Repoları (GitHub, GitLab …) otomatik CI/CD yapısını kolay bir şekilde oluşturması

Klasik Web Uygulaması Mimarisi (Wordpress , eTicaret vb..)

Klasik Web uygulamasında tüm yapı request/response üzerinden merkezi WebApp Servers üzerinden işletilir.

Kullanıcı DNS üzerinden tarayıcı ile Web Kullanıcı Arayüzlerine ulaşır. WebApp Server kullanıcının bu isteğine(request) cevap verebilmek için

  • Veritabanı (RDS, DynamoDB vb..)
  • Caching Service (Redis, MemCache …)
  • Job Servers (Queue üzerinden çalıştırılan Process)
  • Full Text Search Service (Elastic Search)
  • Data Warehouse ve Object Storage

iletişime geçip bir takım cevaplar oluşturması veya mevcut veriler ve servisler üzerinde güncelleme işlemi yaparken bütün yapılar WebApp Servers üzerinden akıyor.

Klasik Web Uygulama Mimarisi (State of the Jamstack Oct 2020 Keynote, Matt Biilmann of Netlify)

Klasik Web Uygulama yaklaşında AWS üzerindeki Servisleri kullanım tabiki (AWS Lambda ve Serverless yerine) → Klasik EC2 veya ElasticBeanstalk yapı

Klasik Web Uygulama Mimarisi (State of the Jamstack Oct 2020 Keynote, Matt Biilmann of Netlify)

Klasik Web Uygulama bütün işlemleri sizin yaptığınız General Compute (Genel İşleme) ve General Storage (Genel Veri Saklama) tüm işlemler ve veriler monolitik bir yapıda gerçekleştirilir.

Klasik Web Uygulama Mimarisi (State of the Jamstack Oct 2020 Keynote, Matt Biilmann of Netlify)

Netlify Mimari Yaklaşımı

Öncelikle artık yazılım geliştirmede bir çok SaaS servis kullanıyoruz ve bunların yaptıkları işler için özelleşmiş Compute ve Store yapıları bulunuyor. Örneğin

  • Contentful içerik konusunda uzmanlaşmış ve bu konuda logic ve veri tabloları tutarken
  • Algolia site içerisinde aramalarda uzmanlaşmış Arama Algoritmaları ve arama indesklerinin tutulmasıyla ilgilenir.
  • Auth0, kullanıcı üyelik ve doğrulaması konusundaki logicler ve kullanıcı verisi ile ilgilenir
  • Shopify ise ödeme sistemleri ve satın alma tabloları ile
  • MailGun, SendGrid mail…
(State of the Jamstack Oct 2020 Keynote, Matt Biilmann of Netlify)

Bu kadar SaaS sistemi var iken tüm bu yapılar ile merkezi bir WebApp Sunucu’sundan erişmek yerine Netlify bu işlemi olabildiğince Edge locasyonda kullanıcıyı yakın yerde karşılamaya çalışarak request/response aşamasındaki

  • bir çok maliyeti azaltmaya
  • ve hızı arttırmaya odaklanmıştır
(State of the Jamstack Oct 2020 Keynote, Matt Biilmann of Netlify)

Burda SaaS hizmetlerinin sunduğu servis kalitesi artınca bizim bunu çağıran kısımlardaki iş mantıklarını olabildiğince basit tutmamız ve basit halledebilmemiz gerekiyor. Örneğin aşağıdaki basit bir ApiCall bize bir Billing Linki dönüyor.

(State of the Jamstack Oct 2020 Keynote, Matt Biilmann of Netlify)

Edge üzerinde ufak fonksiyonları yazabileceğimiz ve diğer SaaS hizmetlere erişebileceğimiz dağıtık yapılar kurmamız sağlayacak bir altyapı gerekiyor. Netlify bunu Edge üzerinde Handler, Functions ve Bg Functions sunarak sizin bu işlemleri edge üzerinde gerçekleştirmenizi sağlayacak altyapıyı sunuyor.

(State of the Jamstack Oct 2020 Keynote, Matt Biilmann of Netlify)

Netlify Kod Yapısı Nasıl

Netlify kod yapısı JAMStack ile birlikte Edge üzerinde çalışacak yapılarıda ayrıştırmıyor. Bir takım klasör isimleri ve dosyalar ile sizin Edge yönetmenizi sağlıyor.

Örneğin Mevcut klasik yöntem ve Netlify Yöntemi arasında, Netlify build sırasında precompute edilmiş dosyaları Edge üzerinde çalıştıracak şekilde özelleşmiş ve bir takım özel yönlendirme(routing) yapılarına sahip.

Legacy vs Netlify (State of the Jamstack Oct 2020 Keynote, Matt Biilmann of Netlify)

Netlify bunu yaparken birince olarak Edge Handlers kullanıyor

  • Personalization
  • Authentication
  • Routing Authenticated Services
Edge Handlers (State of the Jamstack Oct 2020 Keynote, Matt Biilmann of Netlify)

Veritabanı, diğer servisler ve işlemler için size yazabileceğiniz bir takım fonksiyon altyapıları sunuyor

  • Precomputed (Static oluşturulmuş HTML sayfaları..)
  • Edge Layers (routing / transformation). — ms
  • Functions (API / Microservices / glue) — sec
  • Background Functions — min
Edge Handlers (State of the Jamstack Oct 2020 Keynote, Matt Biilmann of Netlify)

Netlify tüm bu yapıları belli özel dosya isimleri ve klasörler altında yazacağınız dosyalar ile mono repo içerisinden kontrol edilebilecek hale getiriyor. Buda büyük bir kolaylık.

Edge Handlers (State of the Jamstack Oct 2020 Keynote, Matt Biilmann of Netlify)

Sonuç olarak Netlify JAMStack, precomputed, edge compute, serverless function ve background functions web geliştiricilerine çok hızlı ve kolay uygulama geliştirme altyapısı sunuyor.

Edge Handlers (State of the Jamstack Oct 2020 Keynote, Matt Biilmann of Netlify)

Referanslar

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--