21 puan yazan GN⁺ 2025-02-13 | 8 yorum | WhatsApp'ta paylaş

"WebAssembly gerçek anlamda Write-Once-Run-Anywhere'dır"
"2030'a gelindiğinde kimse Kubernetes'i hatırlamayacak"

Taşınabilirlik (Portability)

  • Konteynerler yazılım geliştirmedeki birçok sorunu çözdü ve VM'lere göre daha kullanışlıydı
  • Ancak bugün konteynerler, karmaşık araçlar ve program-konteyner-Linux arasındaki sıkı bağ nedeniyle yönetilmesi zahmetli hale geldi
  • Geliştiriciler kod yazmaya ve özellik dağıtımına odaklanmak istiyor; Docker öğrenmek ise bir dikkat dağıtıcısı oluyor
  • WebAssembly (WASM) şimdiden bazı alanlarda konteynerlerin yerini alıyor ve "bir kez yaz, her yerde çalıştır" deneyimi sunuyor
  • Birçok dil WASM'a derlenebiliyor; sistem arayüzlerinin eksikliği yaygın benimsenmeyi engellese de bunun yakında çözüleceği düşünülüyor
  • WASM'ın bugün başlıca sınırlaması dosya erişimi, ağ iletişimi gibi sistem arayüzlerinin eksikliği, ancak bu zamanla çözülecek bir sorun

JVM ile karşılaştırma

  • WASM, JVM'e benzer şekilde "bir kez yaz, her yerde çalıştır" kavramını sunuyor, ancak JVM web tarayıcılarında çalışmıyor
  • Web tarayıcıları uygulama dağıtımı için önemli bir hedef ve bu nedenle birçok geliştirici JVM'den uzak duruyor
  • Son dönemde GraalVM, Kotlin Native, Scala Native gibi statik ikili derleyiciler JVM'e alternatif olarak öne çıkıyor

Mikroservisler (Microservices)

  • Mikroservis mimarisinde servisler HTTP, RPC veya mesaj aracısı kullanılarak birbirine bağlanır
  • Ağ iletişiminin maliyeti ve güvenilirlik sorunları başlıca dezavantajlar olsa da, şirketlerin çoğu avantajların daha büyük olduğuna karar veriyor
  • AWS Lambda gibi serverless platformların ortaya çıkmasıyla mikroservisler artık tek tek fonksiyonlar düzeyinde dağıtılabiliyor
  • Cloudflare Workers, V8 sandbox'ı içinde çalışır ve ağ isteği olmadan aynı runtime içinde fonksiyon çağrısına imkan verir
  • Bu, mikroservislerin geliştirme avantajlarını ve monolitik mimarinin çalışma zamanı performansını aynı anda sunar
  • Wasmer gibi diğer şirketler de WASM tabanlı çözümler geliştiriyor

WASM'ın benimsenmesi (Adoption)

  • WASM hâlâ erken aşama bir teknoloji, ancak hızla gelişiyor ve desteği de artıyor
  • Şu an her ortamda kusursuz çalışmasa da Cloudflare gibi platformlar üzerinden geleceğin nasıl görüneceğini şimdiden deneyimlemek mümkün
  • Python, Ruby, PHP gibi dinamik dilleri kullananlar için, WASM'ın gelişimini beklerken Go veya Rust gibi derlenen dillere de yönelmek faydalı olabilir

8 yorum

 
bus710 2025-02-14

K8s, container’ları orkestre eden bir araç; peki wasm yüzünden etkinliği azalır mı? Docker bir ölçüde pay kaybeder ama....

 
colus001 2025-02-14

WASM yeni bir 3D yazıcı gibi görünüyor. "Yeni bir dünya geliyor" deniyor ama işin aslı, gerçekten kullanan pek yok...

 
halfenif 2025-02-14

https://madewithwebassembly.com/

Burada uygulama örneklerinin bir derlemesi var.

(Bana göre) özellikle CAD ya da görüntü işleme gibi alanlar en mantıklı görünenler.

Bir zamanlar web'de yüksek çözünürlüklü tıbbi görüntüleri hayata geçirme konusunda kafa yoran bir çözüm geliştirme ekibini birden hatırladım.

 
halfenif 2025-02-14

WASM'ı örneklerle öğrenmek
https://tr.news.hada.io/topic?id=11891

Bakıp ben de aynısını deniyorum.

 
jujumilk3 2025-02-14

2030'da da k8s'in gücünü koruyacağı anlaşılıyor

 
yangeok 2025-02-14

Sonunda hem Docker’ı hem de wasm’i bilmek gerekecek galiba haha. Yine de Docker da teknoloji olgunlaştıkça erişimi kolaylaşmıştı; wasm’in de benzer şekilde yaklaşımı daha kolay bir yöne gideceğini düşünüyorum.

 
clickin 2025-02-13

Sonunda iş, wasm runtime performansının sırtından geçiniyormuş gibi bir görünüme bürünüyor; bu durumda V8, JVM ile aynı katmana yerleşmiş olmuyor mu?
V8 sürümüne göre WASM davranışının değiştiği ve bunun debug edilmek zorunda kalındığı bir geleceğin bizi bekliyor olmasından endişe ediyorum.

 
GN⁺ 2025-02-13
Hacker News görüşleri
  • Daha geniş benimsenmeyi engelleyen başlıca etken, sistem arayüzlerinin yetersizliği. Dosya erişimi, ağ iletişimi vb. zamanla entegre olacaktır
    • Ancak dosya erişimi, ağ iletişimi vb. eklendiğinde güvenlik açıkları ortaya çıkabilir. Bu, Java'nın 'bir kez yaz, her yerde çalıştır' vaadini zayıflatan etkendi
    • WASM, container'ların çözdüğünden farklı bir problemi çözer. WASM, sandbox içinde kod çalıştırmada etkilidir
    • WASM'ın Functions-as-a-Service uygulamaları gibi alanlarda standart olma ihtimali yüksektir
    • Container'lar bu problemi çözmez. Güvenlik sınırı olarak uygun değildirler, WASM binary'lerinden daha ağırdırlar ve başlangıç maliyetleri daha yüksektir
    • Container'lar birden fazla process ve thread çalıştırmak ve OS'nin temel işlevlerini kullanmak için uygundur
  • WebAssembly, gerçek bir 'bir kez yaz, her yerde çalıştır' deneyimi sunar
    • Ancak dış dünyayla etkileşime girdiğinde durum değişir. Her V8 runtime'ı kendine özgü, ince farklar içeren arayüzlere sahiptir
    • Docker'ın başarısı, POSIX'in zaten yerleşik bir standart olmasından kaynaklandı
  • PlatformOps (eski adıyla DevOps, SRE, Ops), karmaşık araçlar ve program-container-Linux arasındaki sıkı bağ nedeniyle vaatlerini yerine getiremedi
    • Geliştiriciler kod yazmak ve özellik dağıtmak ister
    • PlatformOps, sorunları çözmek için mücadele eder
  • WASM, container'ların yerini alacak bir çözüm değildir. Container'lar, PHP'nin farklı sürümlerini çakışma olmadan çalıştırma sorununu çözer
    • WASM bu sorunu çözmez
  • WASM'ın geleceği ne zaman gelecek? 8 yıl geçti ama hâlâ kararlı ve kullanımı kolay bir toolchain yok
    • Rust 2012'de çıktı ve 8 yıl sonra kararlı durumdaydı
  • WASM gerçek donanım üzerinde çalışmaz. Bir sanal makine olarak görülebilir
    • Container'lar, gerçek donanım üzerinde doğrudan çalışan uygulamaları paketler
    • WASM bir runtime gerektirir. Uygulamanın içinde çalışır
    • WASM, JVM ve .NET'in çözdüğü 'taşınabilirlik' sorununu çözer
    • Container'lar uygulamayı ve bağımlılıklarını tek pakette toplar
    • Bu teknolojiler birbirini tamamlayabilir
  • Docker kullanmayı öğrenmek bir engel değildir
    • Sadece bir Dockerfile yeterlidir
    • WASM uygulamaları yine de Kubernetes gerektirir
    • WebAssembly önümüzdeki 5 yılda büyük ölçüde büyümeyecek
  • WASM başka bir soyutlama katmanıdır. Her şeyin yerini alıp almayacağı, diğer çözümlerle olan ödünleşimlere bağlıdır