23 puan yazan xguru 2022-09-29 | 2 yorum | WhatsApp'ta paylaş
  • Gerçek CloudFlare Workers'ta kullanılan JavaScript/WASM runtime kodu
    • Diğer ortamlara taşınabilmesi için yalnızca bir kısmı değiştirildi
    • Adı, Unix sunucularındaki -d "daemon" seçeneğinden geliyor; "worker dee" diye okunuyor

Kullanım alanları

  • Workers'ı self-host etmek mümkün. Ayrıca basitçe API üzerinden kullanılabilen bir web sunucusu da. Her ortamda kolayca uygulanabilir
  • Yerel geliştirme ve test için kullanılabilir
  • Programlanabilir proxy (forward ve reverse). JavaScript ile istek/yanıtlar araya girilerek işlenebilir

What it is

  • Server-first : Birçok JS/WASM runtime'ı genel amaçlı kullanılabilirken, workerd yalnızca sunucuya odaklanır. Özellikle de HTTP sunucusuna
  • Web standard APIs : Web tarayıcılarında kullanılanlarla aynı standart API'leri sunar (Fetch, URL, WebCrypto vb.). Yani burada geliştirilen kod tarayıcıya da taşınabilir
  • Nanoservices : Artık mikroservislerin ötesinde, nanoservisler!
    • Nanoservisler, bağımsız dağıtımın avantajlarını kütüphane fonksiyonu çağrısı düzeyinde bir ek yükle birleştiren yeni bir modeldir
    • workerd ile çok sayıda Worker aynı süreç içinde yapılandırılabilir; her Worker bağımsız çalışırken birbiriyle iletişim de kurabilir
  • Homogeneous deployment : Eskiden belirli bir container içinde belirli bir servisi çalıştırmak gerekirdi; workerd ile tüm makineler tüm servisleri çalıştırabilir
  • Capability bindings: Temiz yapılandırma ve SSRF güvenliği sağlar
  • Always backwards compatible : Her zaman geriye dönük uyumluluk sağlar

What it's not

  • workerd is not a Secure Sandbox : Kötü amaçlı kod çalıştırılabilir. Bunu önlemek için ayrı bir sandbox katmanı gerekir
  • workerd is not an independent project : Cloudflare Workers'ın çekirdeği ve bir parçasıdır. Dış katkıları kabul etse de bunu garanti etmek zordur
  • workerd is not an off-the-shelf edge compute platform : Workers hizmetinin tamamı değildir

2 yorum

 
fastkoder 2022-09-29

Yayınlandığında yapmayı istediğim bir şeydi, oho

 
galadbran 2022-09-29

Homojen dağıtım: Eskiden belirli bir container'da belirli bir servisi çalıştırmak gerekiyordu, ancak workerd ile tüm makineler tüm servisleri çalıştırabiliyor.

Bunun ne anlama geldiğini merak etmiştim; meğer hemen önce açıklanan nano servisler (functions) yaklaşımıyla geliştirme yapıldığında, tüm nano servisleri tek bir makineye dağıtmak mümkünmüş (overhead düşük olduğu için) ve gerekirse aynı makinelerden sadece daha fazla eklemek yetiyormuş; yani karmaşık bir dağıtım yapılandırmasına gerek kalmıyormuş.