TGViewer
AvitoTech AvitoTech @avitotech · 25.7K subscribers
Post #2372 8.57K
(Авторский пост от Антона Губарева, старшего инженера PaaS и автора телеграм-канала)

Ранее мы уже делились опытом запуска функциональности межсервисной авторизации: рассказали о самом важном и полезном, накопившемся на тот момент.

Но в любых проектах самые интересные результаты проявляются спустя какое-то время эксплуатации, когда уже можно оценить эффективность принятых решений и примененных инструментов. А главное — накопилась обратная связь от пользователей продукта.

Мы активно используем межсервисную авторизацию уже более года. И теперь нам снова есть что рассказать 🙂
Всего этого не вместить в один пост, поэтому их будет несколько.

А начну я с технической части, где возникло две основные проблемы:
Первая. Мы выбрали Open Policy Agent в качестве авторизационного движка. Он себя достаточно неплохо показывал на старте: стабильно работал, имел понятные и читаемые политики на языке rego, хорошо интегрировался в существующие процессы.
Однако на высоких rps увеличилось время обработки авторизационных запросов, и стали появляться даже 500ки, что не отвечало требованиям к проекту.

Вторая. Чтобы решить проблемы, мы использовали кэширование авторизационных запросов на стороне envoy (это прокси-сайдкар в нашем service mesh, который построен на Istio).

Lua лучше всего подходил для этого, а коробочный функционал evnoy не обладал этой возможностью. Но и тут подстерегала засада. Реализация Lua в Envoy буферизует запрос перед тем, как отправить его. Это создало серьёзные трудности у ручек, которые принимают большие body.

В целом, если у вас версия envoy 1.27+, то проблему можно решить реализацией расширения на golang, но у нас на тот момент была версия ниже.


В итоге, я бы не стал использовать OPA, если милисекунды имеют большое значение. Конечно, можно оптимизировать кэшированием, или улучшить, оптимизировать и отпрофилировать rego политики. Но, возможно, написать свою реализацию политик, простую как палка, может оказаться более коротким путем.

#avitoteam
  • 🔥 12
  • ❤ 5
  • 👍 5
  • 👎 1
More from @avitotech
  1. Oct 8, 2026QA-инженеры, вы там как? 🧑‍💻 Коллеги из подкаста «Не воспроизводится» для одного из свои…
  2. Oct 7, 2026Post #3490
  3. Oct 6, 2026Как попасть разрабу в топовый бигтех сегодня? 😱 Вопрос, на который сегодня многие ищут от…
  4. Oct 5, 2026Где лучшие тусовки для продактов и дизайнеров? На «Мосфильме» 😎 16 октября там проведём A…
  5. Oct 2, 2026«Аж снова на нашу конфу захотелось🔥» Так сказала наша команда, когда увидела этот ролик с…
  6. Oct 1, 2026Как говорится, так много вопросов про ИИ, и так мало с кем их обсудить. Особенно, если ты…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →