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 yaklaşında AWS üzerindeki Servisleri kullanım tabiki (AWS Lambda ve Serverless yerine) → Klasik EC2 veya ElasticBeanstalk yapı
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.
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…
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
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.
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.
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.
Netlify bunu yaparken birince olarak Edge Handlers kullanıyor
- Personalization
- Authentication
- Routing Authenticated Services
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
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.
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.
Referanslar
Okumaya Devam Et 😃
Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.