21 poin oleh GN⁺ 2025-02-13 | 8 komentar | Bagikan ke WhatsApp

"WebAssembly adalah Write-Once-Run-Anywhere yang sesungguhnya"
"Pada tahun 2030, tidak akan ada yang mengingat Kubernetes lagi"

Portabilitas

  • Kontainer telah menyelesaikan banyak masalah dalam pengembangan perangkat lunak dan lebih mudah digunakan dibanding VM
  • Namun, saat ini kontainer menjadi merepotkan untuk ditangani karena tool yang kompleks dan keterikatan yang kuat antara program-kontainer-Linux
  • Pengembang ingin fokus menulis kode dan melakukan deployment fitur, dan mempelajari Docker menjadi gangguan
  • WebAssembly (WASM) sudah mulai menggantikan kontainer di beberapa area dan memberikan pengalaman "tulis sekali, jalankan di mana saja"
  • Berbagai bahasa dapat dikompilasi ke WASM, dan kurangnya antarmuka sistem masih menghambat adopsi luas, tetapi hal ini akan segera teratasi
  • Keterbatasan utama WASM saat ini adalah kurangnya antarmuka sistem seperti akses file dan networking, tetapi ini adalah masalah yang akan terpecahkan seiring waktu

Perbandingan dengan JVM

  • WASM menawarkan konsep "tulis sekali, jalankan di mana saja" yang mirip dengan JVM, tetapi JVM tidak berjalan di web browser
  • Web browser adalah target distribusi aplikasi yang penting, dan karena itu banyak pengembang memilih menghindari JVM
  • Belakangan ini, compiler biner statis seperti GraalVM, Kotlin Native, dan Scala Native mulai muncul sebagai alternatif untuk JVM

Microservices

  • Dalam arsitektur microservices, layanan dihubungkan menggunakan HTTP, RPC, atau message broker
  • Biaya komunikasi jaringan dan masalah keandalan adalah kelemahan utama, tetapi sebagian besar perusahaan menilai manfaatnya lebih besar
  • Dengan munculnya platform serverless seperti AWS Lambda, microservices kini dapat di-deploy pada tingkat fungsi individual
  • Cloudflare Workers berjalan di dalam sandbox V8, dan memungkinkan pemanggilan fungsi dalam runtime yang sama tanpa permintaan jaringan
  • Ini memberikan sekaligus keunggulan pengembangan microservices dan performa runtime arsitektur monolitik
  • Perusahaan lain seperti Wasmer juga sedang mengembangkan solusi berbasis WASM

Adopsi WASM

  • WASM masih merupakan teknologi tahap awal, tetapi berkembang cepat dan dukungannya juga terus meningkat
  • Saat ini WASM belum bekerja sempurna di semua lingkungan, tetapi masa depannya sudah bisa dirasakan lebih awal melalui platform seperti Cloudflare
  • Jika Anda adalah pengguna bahasa dinamis seperti Python, Ruby, atau PHP, akan menguntungkan untuk menunggu perkembangan WASM sambil mempelajari bahasa terkompilasi seperti Go atau Rust

8 komentar

 
bus710 2025-02-14

K8s adalah alat untuk mengorkestrasi container; apakah efektivitasnya akan menurun karena wasm? Kalau Docker mungkin akan tergerus sampai tingkat tertentu, tapi....

 
colus001 2025-02-14

WASM itu tampaknya seperti printer 3D baru. Katanya, "dunia baru akan datang," tapi begitu dipakai, ternyata yang benar-benar menggunakannya tidak banyak...

 
halfenif 2025-02-14

https://madewithwebassembly.com/

Ada kumpulan contoh implementasi di sini.

(Secara pribadi) menurut saya, bidang seperti CAD atau pemrosesan gambar tampak paling masuk akal.

Ini jadi mengingatkan saya pada tim pengembang solusi yang dulu sedang memikirkan implementasi gambar medis beresolusi tinggi di web.

 
halfenif 2025-02-14

Belajar WASM lewat contoh
https://id.news.hada.io/topic?id=11891

Saya mencoba mengikuti langkah-langkahnya.

 
jujumilk3 2025-02-14

Bahkan pada 2030, k8s tampaknya masih akan tetap kuat.

 
yangeok 2025-02-14

Pada akhirnya kita jadi harus paham docker dan wasm ya wkwk. Tapi karena docker juga makin matang sebagai teknologi sehingga jadi lebih mudah diakses, saya rasa wasm kemungkinan akan bergerak ke arah yang mirip dan makin mudah didekati juga.

 
clickin 2025-02-13

Pada akhirnya, ini terlihat seperti bergantung pada performa runtime wasm; bukankah V8 nantinya akan menjadi lapisan yang setara dengan JVM?
Saya khawatir kita akan menghadapi masa depan di mana perilaku WASM berubah tergantung versi V8, dan kita harus men-debug hal itu.

 
GN⁺ 2025-02-13
Opini Hacker News
  • Kurangnya antarmuka sistem adalah faktor utama yang menghambat adopsi yang lebih luas. Akses file, jaringan, dan semacamnya kemungkinan akan terintegrasi seiring waktu
    • Namun, menambahkan akses file, jaringan, dan sebagainya dapat menciptakan kerentanan keamanan. Ini adalah faktor yang meruntuhkan janji Java tentang 'tulis sekali, jalankan di mana saja'
    • WASM memecahkan masalah yang berbeda dari container. WASM efisien untuk menjalankan kode dalam sandbox
    • WASM sangat mungkin menjadi standar dalam implementasi seperti Functions-as-a-Service
    • Container tidak menyelesaikan masalah itu. Container tidak cocok sebagai batas keamanan, lebih berat daripada biner WASM, dan biaya startup-nya lebih besar
    • Container cocok untuk menjalankan banyak proses, thread, dan menggunakan fungsi dasar OS
  • WebAssembly memberikan pengalaman 'tulis sekali, jalankan di mana saja' yang sesungguhnya
    • Namun, ceritanya berubah saat berinteraksi dengan dunia luar. Setiap runtime V8 memiliki antarmuka yang sedikit berbeda
    • Keberhasilan Docker terjadi karena POSIX sudah menjadi standar yang mapan
  • PlatformOps (sebelumnya DevOps, SRE, Ops) mengalami kegagalan memenuhi janjinya karena alat yang kompleks dan keterikatan erat antara program-container-Linux
    • Pengembang ingin menulis kode dan menerapkan fitur
    • PlatformOps berjuang keras untuk menyelesaikan masalah tersebut
  • WASM bukan solusi yang menggantikan container. Container menyelesaikan masalah menjalankan versi PHP yang berbeda tanpa konflik
    • WASM tidak menyelesaikan masalah itu
  • Kapan masa depan WASM akan datang? Sudah 8 tahun berlalu, tetapi belum ada toolchain yang stabil dan mudah digunakan
    • Rust dirilis pada 2012 dan setelah 8 tahun sudah stabil
  • WASM tidak berjalan di perangkat keras nyata. Ini bisa dianggap sebagai mesin virtual
    • Container mengemas aplikasi yang berjalan langsung di perangkat keras nyata
    • WASM memerlukan runtime. Ia berjalan di dalam aplikasi
    • WASM menyelesaikan masalah 'portabilitas' yang juga diselesaikan oleh JVM dan .NET
    • Container membundel aplikasi dan dependensinya
    • Teknologi-teknologi ini bisa saling melengkapi
  • Mempelajari cara menggunakan Docker bukanlah hambatan
    • Cukup butuh Dockerfile
    • Aplikasi WASM tetap membutuhkan Kubernetes
    • WebAssembly tidak akan tumbuh besar dalam 5 tahun ke depan
  • WASM adalah lapisan abstraksi lain. Apakah ia akan menggantikan semuanya bergantung pada trade-off dengan solusi lain