WASM sẽ thay thế container
(creston.blog)"WebAssembly thực sự là Write-Once-Run-Anywhere"
"Đến năm 2030, sẽ không còn ai nhớ đến Kubernetes nữa"
Tính di động (Portability)
- Container đã լուծ quyết nhiều vấn đề của phát triển phần mềm và dễ dùng hơn VM
- Nhưng hiện nay container trở nên khó xử lý do bộ công cụ phức tạp và sự gắn kết chặt chẽ giữa chương trình-container-Linux
- Nhà phát triển muốn tập trung vào việc viết mã và triển khai tính năng, còn việc học Docker lại trở thành yếu tố gây cản trở
- WebAssembly (WASM) đã thay thế container trong một số lĩnh vực và mang lại trải nghiệm "viết một lần, chạy mọi nơi"
- Nhiều ngôn ngữ có thể được biên dịch sang WASM, và việc thiếu giao diện hệ thống đang ngăn cản việc được chấp nhận rộng rãi, nhưng điều này sẽ sớm được giải quyết
- Hạn chế lớn nhất hiện nay của WASM là thiếu các giao diện hệ thống như truy cập tệp và mạng, nhưng đây là vấn đề sẽ được giải quyết theo thời gian
So sánh với JVM
- WASM cung cấp khái niệm "viết một lần, chạy mọi nơi" tương tự JVM, nhưng JVM không chạy trong trình duyệt web
- Trình duyệt web là đích triển khai ứng dụng quan trọng, và vì điều này mà nhiều nhà phát triển tránh dùng JVM
- Gần đây, các trình biên dịch tạo nhị phân tĩnh như GraalVM, Kotlin Native và Scala Native đang nổi lên như lựa chọn thay thế cho JVM
Microservices
- Trong kiến trúc microservices, các dịch vụ được kết nối bằng HTTP, RPC hoặc message broker
- Chi phí và vấn đề độ tin cậy của giao tiếp mạng là nhược điểm chính, nhưng phần lớn doanh nghiệp cho rằng lợi ích lớn hơn
- Khi các nền tảng serverless như AWS Lambda xuất hiện, microservices có thể được triển khai ở cấp độ từng hàm riêng lẻ
- Cloudflare Workers chạy trong sandbox V8, cho phép gọi hàm trong cùng runtime mà không cần yêu cầu mạng
- Điều này đồng thời mang lại lợi thế phát triển của microservices và hiệu năng runtime của kiến trúc nguyên khối
- Các công ty khác như Wasmer cũng đang phát triển các giải pháp dựa trên WASM
Việc áp dụng WASM (Adoption)
- WASM vẫn là công nghệ ở giai đoạn đầu nhưng đang phát triển rất nhanh và mức độ hỗ trợ cũng đang tăng lên
- Hiện tại nó chưa hoạt động hoàn hảo trong mọi môi trường, nhưng có thể trải nghiệm trước tương lai thông qua các nền tảng như Cloudflare
- Nếu bạn là người dùng các ngôn ngữ động như Python, Ruby hoặc PHP, sẽ có lợi nếu trong lúc chờ WASM phát triển thêm, bạn học thêm các ngôn ngữ biên dịch như Go hoặc Rust
8 bình luận
K8s là công cụ điều phối container, vậy liệu vì wasm mà tính hiệu quả của nó sẽ giảm đi không? Nếu là Docker thì chắc chắn sẽ bị lấn sân ở một mức độ nào đó...
WASM giống như một chiếc máy in 3D mới vậy. Người ta nói rằng "một thế giới mới đang đến", nhưng thực tế thì chẳng có mấy người dùng...
Ở đây có một bộ sưu tập các trường hợp triển khai.
(Cá nhân tôi thấy) chủ yếu những lĩnh vực như CAD hay xử lý ảnh trông có vẻ thuyết phục nhất.
Điều này lại khiến tôi nhớ đến đội phát triển giải pháp trước đây từng trăn trở về việc triển khai hình ảnh y tế độ phân giải cao trên web.
Tôi thử làm theo.
Có vẻ như ngay cả đến năm 2030, k8s vẫn sẽ tiếp tục vững vàng.
Cuối cùng thì có phải cũng sẽ cần biết cả Docker lẫn WASM không nhỉ haha. Dù vậy, Docker cũng đã trở nên dễ tiếp cận hơn khi công nghệ dần chín muồi, nên mình nghĩ WASM có lẽ cũng sẽ đi theo hướng tương tự và ngày càng dễ tiếp cận hơn.
Rốt cuộc thì có vẻ sẽ là dựa vào hiệu năng của runtime wasm, vậy chẳng phải V8 sẽ trở thành tầng tương đương với JVM sao.
Tôi lo rằng rồi sẽ đến một tương lai mà WASM hoạt động khác nhau tùy theo phiên bản V8, và chúng ta phải gỡ lỗi cho chuyện đó.
Ý kiến Hacker News