Buckyball — система Service Mesh

Язык буткемпа: Go
Технологии: Kubernetes, Envoy

Buckyball — ключевой компонент единой инфраструктурной платформы (PaaS) Яндекса, отвечающий за управление сетевым взаимодействием между сервисами. Система позволяет разработчикам управлять маршрутизацией трафика, балансировкой нагрузки, шифрованием и авторизацией между сервисами без изменения кода приложений. Тесная интеграция с другими компонентами платформы (контейнеры, CI/CD, мониторинг, логирование) обеспечивает комплексное решение для запуска и эксплуатации сервисов в облаке Яндекса.

Основной фокус команды — создание унифицированного и легкого в управлении service mesh слоя, обеспечивающего высокую надежность и производительность при взаимодействии сотен микросервисов компании.

Стек

Go Основной язык разработки, все ключевые компоненты
Kubernetes Базовая платформа для оркестрации и развертывания
Envoy Прокси-сервер для управления трафиком

Команда

Команда базируется в московском офисе Яндекса — три бэкенд-разработчика, менеджер и команда поддержки. Мы придерживаемся принципа «You build it — you own it», а значит разработчики самостоятельно решают задачи проектирования, разработки и эксплуатации.

Особенности

  • Критическая инфраструктура — система обслуживает межсервисное взаимодействие практически для всех продуктов компании.
  • Сложная распределенная архитектура с высокими требованиями к производительности и надежности.
  • Работа с передовыми технологиями в области сетевой инфраструктуры и распределенных систем.
  • Возможность значительно повлиять на архитектуру всей компании.
  • Тесное взаимодействие с другими командами платформы при развитии экосистемы.

Что нужно принять во внимание

  • Высокая ответственность — сбои в работе системы затрагивают множество сервисов компании.
  • Необходимость глубокого понимания сетевых протоколов и принципов работы распределенных систем.
  • Дежурства в рабочее время для поддержания работоспособности системы и оперативного реагирования на инциденты.

Вызовы

  • Обеспечение высокой производительности при масштабировании до тысяч сервисов.
  • Создание интуитивно понятных инструментов управления для разработчиков.
  • Балансирование между безопасностью, производительностью и простотой использования.
  • Интеграция с существующими системами мониторинга и трассировки.
  • Развитие платформенных возможностей совместно с другими командами.
Следующая