Решил немного поэкспериментировать с современными технологиями проксирования. Долгое время использовал связку NGINX + Lua для кастомной логики, но настало время двигаться дальше.
Сейчас активно тестирую Envoy в паре с WebAssembly (WASM) и уже вижу несколько серьезных преимуществ:
- Более чистый код — кастомную логику теперь пишу на Go вместо Lua. Типизация, современные инструменты разработки и экосистема делают процесс гораздо приятнее. Писать на Lua в 2025 году — такое себе удовольствие, если честно 😅
- Горячая перезагрузка — это просто космос! Можно обновлять модули без перезапуска всего прокси. С NGINX PRO такое тоже возможно, но с Envoy это работает намного элегантнее.
- Производительность — по тестам выходит примерно на 15-20% лучшие результаты по throughput.
- Тестирование — инфраструктура для тестирования WASM-модулей гораздо более зрелая. Теперь могу нормально покрывать тестами всю проксирующую логику.
Конечно, есть и свои подводные камни. Документация по Envoy далеко не такая дружелюбная как у NGINX, а экосистема WASM-плагинов еще не такая богатая. Приходится немного больше писать с нуля.
В целом, первые впечатления очень позитивные. Думаю со временем полностью мигрировать на эту связку.
А вы пробовали Envoy? Делитесь опытом в комментариях!
#envoy #webassembly #wasm #nginx #rust #golang #проксирование #микросервисы #оптимизация
Post #314
352