19 puan yazan xguru 2022-05-10 | 2 yorum | WhatsApp'ta paylaş
  • Docker, Linux container'larını yaygınlaştırdı: OS düzeyinde sanallaştırma ile yazılım dağıtımını kolaylaştırdı
  • Cloudflare Workers ve Deno Deploy, JS Container kavramını (farklı ortamlarda) hayata geçiren örnekler
  • JS container'ları önümüzdeki birkaç yılda nasıl ilerleyecek?

Evrensel Betik Dili

  • Gittikçe daha fazla şey web tabanlı olarak birbirine bağlanıyor: The web is eating the world
  • Web, insanlığın bilgisinin temel ortamıdır ve JS, web altyapısına derinlemesine entegre olduğu için diğer dillerden farklıdır
  • Betik dilleri, sunucu tarafındaki birçok sorunu çözer ve iş mantığının daha hızlı ve daha düşük maliyetle yazılmasını sağlar
  • Betik dilleri faydalıdır, birbirlerine büyük ölçüde benzerler; JavaScript ise en yaygın kullanılanıdır ve gelecekte de kullanılabilir
  • Yani JavaScript'i evrensel betik dili olarak düşünebiliriz

Shell : Executables :: JavaScript : WebAssembly

  • Sunucular için yeni bir üst seviye container olan JavaScript Sandbox ortaya çıkıyor

  • Bu, Linux container'larının hedeflediği sorunları çözmek için ortaya çıkmış bir şey değil

  • Basitleştirmenin bir sonucu olarak ortaya çıktı
    → web hizmeti iş mantığındaki boilerplate'i en aza indirmek
    → tarayıcıyla kavramsal ortaklık kurmak ve programcının bilmesi gereken kavramları en aza indirmek

  • Tüm web mühendisleri JavaScript tarayıcı API'lerini zaten biliyor
    → JS container soyutlaması da aynı tarayıcı API'leri temelinde kurulduğu için öğrenilmesi gereken şeyler azalıyor
    → JS'nin evrenselliği karmaşıklığı azaltıyor

  • Shell, Unix programlarını çalıştırmak için yorumlanan bir betik dilidir
    → koşullar, döngüler ve değişkenler vardır ama sınırlıdır; bu yüzden programlama yapmak zordur. Asıl işi yürütülebilir dosyalar yapar

  • Bu yeni sunucu soyutlama katmanında JS, Shell'in yerini alıyor
    → Bash/Zsh'ye göre betik yazmaya daha uygundur; ancak Shell'in yürütülebilir dosyaları çağırması gibi, JS Sandbox da WASM'i çağırır
    → görüntü yeniden boyutlandırma gibi karmaşık işler gerekiyorsa, bunu JS ile yazmak yerine WASM kullanmak daha iyidir
    → tıpkı bash'te görüntü yeniden boyutlandırma yapmayıp Imagemagick çağırmak gibi

Kuzey Yıldızı

  • Betiklerin geleceği tarayıcı JavaScript'idir
  • Node.js'in en temel hatası, yeni API'ler standartlaşırken tarayıcıdan uzaklaşıp çok fazla şeyi icat etmiş olmasıdır
    → 2010'da elimizde ES modülleri bile yoktu, ama standartlaştıktan sonra bunları Node'a taşımamız gerekti
    → Promise, Async/Await, Fetch, Streams ve daha birçok şey böyle oldu
    → standart dışı CommonJS require, package.json, node_modules, npm ve global process nesnesi sonunda ya standartlaşıp tarayıcıya eklenecek ya da web tabanlı başka şeylerle değiştirilecek
  • Yüksek seviyeli container'lar henüz standartlaşmış değil ve tüm bunların nasıl gelişeceğini hâlâ pek bilmiyoruz
  • Şu anda Cloudflare Workers ve Deno Deploy, FetchEvent API'yi kullanıyor; ancak daha iyi bir arayüz bulunabilir

Sonuç

  • JavaScript genel amaçlı bir betik dilidir
  • JavaScript'in yaygınlığı sayesinde, sunucuyu basitleştiren yeni container benzeri soyutlamalar ortaya çıkıyor
  • Bu, Linux container'larının ortadan kalkacağı anlamına gelmiyor. O soyutlama düzeyi yararlı olmaya devam edecek
    → insanların yazdığı birçok "iş mantığı" için biraz daha düşük seviyeli bir soyutlama olduğu anlamına geliyor
    → bir web sitesi kurarken systemd ayarları gibi şeyler boilerplate'tir
  • Muhtemelen birçok "web hizmeti", Linux container'ları yerine JavaScript container'ları perspektifinden düşünülürse basitleştirilebilir
  • Biz de Deno'da bu fikri araştırıyoruz
    → sunucu soyutlamasını kökten basitleştirmeye çalışıyoruz

2 yorum

 
xguru 2022-05-20

Çeviri yazısı çıkmış.

https://medium.com/@yujso66/…

 
xguru 2022-05-10

Kendi açımdan özetlemeye çalışırsam

  1. Son zamanlarda WASM kullanan birçok sandbox teknolojisi ortaya çıkıyor.
  2. JavaScript, WASM’i çalıştıran bir script gibi kullanılıyor.
  3. WASM sandbox’larında, OS’ten container ve framework’lere kadar her şeyin üzerine çıkması mümkün.
  4. O zaman, bu tür JS Container yaklaşımıyla yalnızca iş mantığına odaklanan yeni bir yüksek seviyeli container standardı da ortaya çıkabilir.
    diye özetlenebilir sanırım.

Anlamayı kolaylaştıracak diğer bağlantılar