Comments 19
Envoy можно использовать как относительно легковесную обертку для общих задач HTTP: логи, авторизация. Я тут несколько дней назад курил envoy для JWT-авторизации gRPC бекенда, получилось очень даже неплохо. Выбор envoy был обоснован тем что он имеет встроенный фильтр для проксирования gRPC-Web в gRPC, решил заодно и JWT прикрутить.
Впрочем, настраивать его иногда нетривиально, вот например заметка о том как правильно прикручивать TLS к апстримам.
Звучит будто envoy можно настроить как (микро) api gateway в кубернетовском сценарии.
Може ту вас есть опыт или идеи?
JWT поддержка (поверка хотябы, но лучше и сценарий получение его из opaque token)
А то я начал вчера с Spring cloud и security библиотхеками это делать, не покидает желание сравнить с чем-то другим..
Можно, и есть, я как раз черновик на эту тему заканчиваю :-)
Если можно пинганите нам тут, почитаем с удовольствием ;)
https://farcaller.net/simple-jwt-authentication-with-envoy-and-auth0/ держите. будет любопытно получить отзыв насколько это информативно и полезно.
А насколько легко на нём решаются задачи типа: входящий http запрос (для простоты в неизменно виде, в идеале вытащить что-то из json тела) отправить на первый апстрим, ответ (для простоты один из заголовков ответа) добавить к оригинальном запросу и отправить на второй апстрим?
Envoy распространяется в бинарниках только как docker образ.Более того, разработчики прямо говорят: собирать самостоятельно, мол, не советуем, ставьте через докер, а ведь это подходит далеко не всем. Я когда-то хотел заиспользовать Envoy в одном проекте на работе в качестве умного балансера, но оттолкнули его аццкая система сборки (для фрёвого порта я всё это безобразие переписал на обычный make) и жесткая зависимость от BoringSSL (из него вообще уши гугловых методологий разработки торчат довольно сильно). Ну и конфигурируется он действительно нетривиально.
По конфигурированию не соглашусь, дело привычки видимо. Мне кажется всё очень логично и понятно, тем более что всё не плохо задокументировано.
А сборка, да, замудреная, надо с bazel уметь работать. Сечас собирается в докере и базовый образ есть только для linux x86. Для всего остального придется погружаться в их ci скрипты.
Телеграм чат по Envoy: t.me / envoyproxy_ru
Почему? Их через запятую можно указывать x-envoy-retry-on
Если настроить активные хелсчеки и outlier detection, ретраи почти не нужны.
Envoy. 1. Введение