Buckyball — система Service Mesh
Язык буткемпа: Go
Технологии: Kubernetes, Envoy
Buckyball — ключевой компонент единой инфраструктурной платформы (PaaS) Яндекса, отвечающий за управление сетевым взаимодействием между сервисами. Система позволяет разработчикам управлять маршрутизацией трафика, балансировкой нагрузки, шифрованием и авторизацией между сервисами без изменения кода приложений. Тесная интеграция с другими компонентами платформы (контейнеры, CI/CD, мониторинг, логирование) обеспечивает комплексное решение для запуска и эксплуатации сервисов в облаке Яндекса.
Основной фокус команды — создание унифицированного и легкого в управлении service mesh слоя, обеспечивающего высокую надежность и производительность при взаимодействии сотен микросервисов компании.
Стек
Go | Основной язык разработки, все ключевые компоненты |
---|---|
Kubernetes | Базовая платформа для оркестрации и развертывания |
Envoy | Прокси-сервер для управления трафиком |
Команда
Команда базируется в московском офисе Яндекса — три бэкенд-разработчика, менеджер и команда поддержки. Мы придерживаемся принципа «You build it — you own it», а значит разработчики самостоятельно решают задачи проектирования, разработки и эксплуатации.
Особенности
- Критическая инфраструктура — система обслуживает межсервисное взаимодействие практически для всех продуктов компании.
- Сложная распределенная архитектура с высокими требованиями к производительности и надежности.
- Работа с передовыми технологиями в области сетевой инфраструктуры и распределенных систем.
- Возможность значительно повлиять на архитектуру всей компании.
- Тесное взаимодействие с другими командами платформы при развитии экосистемы.
Что нужно принять во внимание
- Высокая ответственность — сбои в работе системы затрагивают множество сервисов компании.
- Необходимость глубокого понимания сетевых протоколов и принципов работы распределенных систем.
- Дежурства в рабочее время для поддержания работоспособности системы и оперативного реагирования на инциденты.
Вызовы
- Обеспечение высокой производительности при масштабировании до тысяч сервисов.
- Создание интуитивно понятных инструментов управления для разработчиков.
- Балансирование между безопасностью, производительностью и простотой использования.
- Интеграция с существующими системами мониторинга и трассировки.
- Развитие платформенных возможностей совместно с другими командами.