Розширюваність
WebAssembly є технологією ізоляції, яку можна використовувати для розширення проксі Istio (Envoy). API для пісочниці Proxy-Wasm замінює Mixer як основний механізм розширення в Istio.
Цілі використання пісочниці WebAssembly:
- Ефективність — розширення додає мінімальні затримки, навантаження на ЦП і використання пам’яті.
- Функціональність — розширення може забезпечувати виконання політики, збір телеметрії та виконання мутацій корисного навантаження.
- Ізоляція — помилка програмування або збій одного втулка не впливає на інші втулки.
- Конфігурація — втулки налаштовуються за допомогою API, яке узгоджується з іншими API Istio. Розширення можна налаштувати динамічно.
- Оператор — розширення можна випробувати в тестовому режимі, а також розгорнути з конфігурацією log-only, fail-open або fail-close.
- Розробник розширень — втулок можна написати кількома мовами програмування.
Ця відеопрезентація є вступом до архітектури інтеграції WebAssembly.
Високорівнева архітектура
Розширення Istio (втулки Proxy-Wasm) мають кілька компонентів:
- Інтерфейс постачальника фільтрів (SPI) для створення втулків Proxy-Wasm для фільтрів.
- Пісочниця з V8 Wasm Runtime, вбудована в Envoy.
- Host API для роботи з заголовками, трейлерами та метаданими.
- API викликів для gRPC і HTTP запитів.
- API статистики та ведення журналів для збору метрик і моніторингу.
Приклад
Приклад втулка Proxy-Wasm на C++ для фільтра можна знайти тут. Ви можете слідувати цьому посібнику для реалізації розширення Wasm за допомогою C++.