улица Льва Толстого 16
Яндекс 360 — это цифровое пространство, которое помогает организовать рабочие процессы. В него входят Почта, Диск, Календарь, Телемост и другие продукты (всего более 10), которые упрощают жизнь миллионам людей и позволяют работать из любой точки мира.
Каждый из продуктов в Яндекс 360 имеет свою историю и особенности, но все они объединены в единую экосистему платформенными сервисами Яндекс 360. Сервисы безопасности — подмножество этих сервисов, они призваны обеспечить единообразное управление безопасностью каждого из продуктов в отдельности и всей экосистемы в целом.
Сервисы безопасности Яндекс 360 включают в себя три крупных компонента с единообразным стеком и принципами разработки.
Авторизатор 360 — основной компонент авторизации Яндекс 360. Если главное функциональное требование сервиса легко угадывается из его названия, то основное нефункциональное требование — выдерживать высокие нагрузки в сотни тысяч RPS на чтение от всех продуктов экосистемы при любых обстоятельствах. Стратегические вызовы, связанные с этим компонентом, обусловлены необходимостью поддерживать транзитивное назначение и вычислять роли на произвольные группы пользователей с поддержкой глубокой вложенности, а также разнородностью требований к авторизации от каждого из продуктов Яндекс 360.
Конфигуратор 360 — компонент асинхронного управления настройками внутри Яндекс 360. Принимает и обрабатывает разнородные настройки из сервисов-источников и распространяет их в настраиваемые системы-получатели. Позволяет задавать гибкие правила агрегации и обработки входящих настроек, гарантирует доставку результирующих настроек до сервисов-получателей. Спроектирован, чтобы выдерживать назначение сотен настроек на миллионы пользователей и групповое управление настройками в организациях с сотнями тысяч сотрудников.
Аудит-логи 360 — компонент централизованного управления событиями безопасности Яндекс 360, обеспечивающий сбор, обогащение, краткосрочное и долгосрочное хранение, поиск и выдачу событий. Поскольку события безопасности могут генерироваться как пишущими, так и читающими операциями, в том числе неудачными, этот компонент должен справляться с десятками тысяч RPS на запись.
Основной стек:
- Код на Java
- Spring Boot в качестве основного фреймворка
- PostgreSQL в качестве основной базы данных
- YDB Topics в качестве шины данных
Какие задачи вас ждут
Масштабирование сервисов безопасности
Так как Яндекс 360 — молодая экосистема с разнородными продуктами, не все из них ещё полноценно используют платформенные сервисы. Но у нас есть долгосрочные планы по интеграции каждого из этих продуктов со всеми сервисами безопасности. Это означает, что в ближайшем будущем нагрузки и сложность моделей взаимодействия будут лишь расти, поэтому мы ищем коллег, готовых вместе с нами воплощать эти планы в жизнь.
Функциональное развитие сервисов безопасности
У каждого из трёх компонентов безопасности свой бэклог. В Яндекс 360 предусмотрено квартальное планирование, в рамках которого мы перераспределяем ресурсы команды между компонентами в соответствии с актуальными задачами и техническими инициативами. Это даёт возможность сфокусироваться на развитии одного компонента с возможностью брать задачи по двум другим.
Влияние на архитектуру всего Яндекс 360 через управление архитектурой сервисов безопасности
Большинство проектов команды сервисов безопасности так или иначе влияют не только на отдельные компоненты, но и на весь Яндекс 360 и на каждый из входящих в экосистему продуктов. Работа над такими проектами предполагает не столько написание кода, сколько архитектурное проектирование и обоснование изменений. Все архитектурные решения проходят процедуру архитектурной защиты и документируются.
Мы ждем, что вы
- Умеете и хотите писать чистый оптимизированный код на Java
- Стремитесь декомпозировать и эффективно решать задачи
- Обладаете развитыми коммуникативными навыками и умеете договариваться со смежными командами
- Готовы погружаться в домены безопасности: авторизацию, управление настройками, аудит-логи
Будет плюсом, если вы
- Разрабатывали высоконагруженные системы со сложными структурами данных
- Умеете проектировать масштабируемую отказоустойчивую архитектуру
- Работали со сложными графовыми структурами данных
- Писали и поддерживали рекурсивные SQL-запросы
- Проектировали или разрабатывали системы авторизации, сбора логов или гарантированной доставки сообщений
- Стремитесь развиваться в контексте лидерства внутри команды разработки и за её пределами