avatar
Цифровизируй это
@digitize_IT
18.03.2025 11:14
Как начинался VK Teams и что у него под капотом

VK Teams начинался как корпоративный мессенджер для внутреннего использования и за 10 лет превратился в мощное решение для командной работы. Всё это время под капотом системы шли серьезные доработки и эволюция технологий.

В самом начале мы создали для VK Teams собственное хранилище KUST (Customizable Storage). Это встраиваемая key-value-база, оптимизированная под чтение и работу с HDD-дисками. Она обеспечивала надежность и потоковый дамп логов, но при переходе к On-Prem-внедрению мы решили, что клиентам нужно больше контроля над СУБД.

Сейчас большая часть сервисов работает на Tarantool — промежуточном ПО для работы с данными, которое ускоряет цифровые сервисы и снижает нагрузку на core-cистемы. Этот переход увеличил скорость работы, улучшил управляемость и повысил удобство для пользователей On-Prem-решений.

Как сервисы общаются между собой

Для коммуникации сервисов мы используем бинарный протокол IPROTO, дополненный контроллером Ctlr. Он реализует Service Discovery и управляет потоками данных. Так появился IPROS.

Ctlr хранит разряженную карту шардирования, следит за состоянием всех ячеек, управляет их топологией и перемещением. При этом трафик через контроллер не проходит, поэтому сбой не влияет на работу системы — даже в процессе решардинга сервисы автоматически перенаправляют запросы по новым адресам.

Как мы добились отказоустойчивости

Каждая пара «экземпляр сервиса — БД» всегда имеет активную реплику, готовую взять на себя нагрузку. При переносе ячейки между серверами процесс занимает всего несколько сотен миллисекунд. Даже если контроллер временно выйдет из строя, отказоустойчивость сохранится — старые узлы просто перенаправят трафик на новые.

Почему мы работаем с ячейками

Простота управления — работать с одной сущностью легче, а при масштабировании достаточно выполнить шардирование.
Локализованность контекста — всегда понятно, куда поступает запрос и где возникла ошибка.
Минимальное влияние сети — сервис и БД размещены рядом, что снижает задержки.
Безопасность данных — взлом одной ячейки не даст злоумышленнику доступа ко всей системе.

#коммуникации #разработка
@digitize_IT — мнения и управленческий опыт ИТ-лидеров
🔥 4
👍 3
2
9 525

Обсуждение 0

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram