Грядет WebAssembly
Один из дайджестов в прошлом месяце практически целиком был посвящен WebAssembly. И на то есть свои причины. Михаил Петров, руководитель проекта «Платформа» в VK, подготовил небольшую сводку — что это такое и почему про этот язык так много говорят в последнее время.
Что такое WebAssembly?
В первую очередь это W3C-стандарт для реализации переносимых программ. Изначально его разрабатывали для запуска программ в браузере, но потом люди поняли, что их можно запускать далеко не только в браузере — и понеслось!
По факту wasm-контейнеры могут запускаться где угодно. Один раз собранные, они могут запуститься в том числе на linux/windows/arm. При этом они выдают производительность, сопоставимую с нативными программами. А еще WebAssembly-программа может быть написана почти на любом языке — это не принципиально.
По словам сооснователя Docker, если бы в 2008 году существовал WebAssembly, технология Docker была бы просто не нужна.
docker vs WebAssembly
🌀 docker
• более зрелая технология;
• поддержка лучше и охватывает больше аспектов поддержки;
• запуск за секунды;
• размер образа — десятки мегабайт.
🌀 wasm
• более мобильный, Edge Computing как раз про него;
• меньше бинари;
• потребляет меньше памяти;
• запускается очень быстро. Как вам, например, запуск в 100 раз быстрее обычного контейнера?
• по умолчанию более безопасный;
• ограниченные сетевые доступы;
• размер образа — мегабайты;
• однотредный;
• проблемы с использованием некоторых библиотек. Часто приходится разбираться самому;
• хорошо подходит для Serverless, Oneshot-задач.
А еще, судя по документации, wasm поддерживается в Kubernetes и может быть next Big Thing в Cloud Native Landscape.
Вот еще несколько полезных ссылок для самостоятельного изучения вопроса:
➡️ Про WebAssembly и контейнеры
➡️ Про WebAssembly в K8s
➡️ Технический обзор WebAssembly в Docker Hub
➡️ Про запуск WasmEdge
#за_минуту
Один из дайджестов в прошлом месяце практически целиком был посвящен WebAssembly. И на то есть свои причины. Михаил Петров, руководитель проекта «Платформа» в VK, подготовил небольшую сводку — что это такое и почему про этот язык так много говорят в последнее время.
Что такое WebAssembly?
В первую очередь это W3C-стандарт для реализации переносимых программ. Изначально его разрабатывали для запуска программ в браузере, но потом люди поняли, что их можно запускать далеко не только в браузере — и понеслось!
По факту wasm-контейнеры могут запускаться где угодно. Один раз собранные, они могут запуститься в том числе на linux/windows/arm. При этом они выдают производительность, сопоставимую с нативными программами. А еще WebAssembly-программа может быть написана почти на любом языке — это не принципиально.
По словам сооснователя Docker, если бы в 2008 году существовал WebAssembly, технология Docker была бы просто не нужна.
docker vs WebAssembly
🌀 docker
• более зрелая технология;
• поддержка лучше и охватывает больше аспектов поддержки;
• запуск за секунды;
• размер образа — десятки мегабайт.
🌀 wasm
• более мобильный, Edge Computing как раз про него;
• меньше бинари;
• потребляет меньше памяти;
• запускается очень быстро. Как вам, например, запуск в 100 раз быстрее обычного контейнера?
• по умолчанию более безопасный;
• ограниченные сетевые доступы;
• размер образа — мегабайты;
• однотредный;
• проблемы с использованием некоторых библиотек. Часто приходится разбираться самому;
• хорошо подходит для Serverless, Oneshot-задач.
А еще, судя по документации, wasm поддерживается в Kubernetes и может быть next Big Thing в Cloud Native Landscape.
Вот еще несколько полезных ссылок для самостоятельного изучения вопроса:
➡️ Про WebAssembly и контейнеры
➡️ Про WebAssembly в K8s
➡️ Технический обзор WebAssembly в Docker Hub
➡️ Про запуск WasmEdge
#за_минуту