TGViewer
Цифровизируй это Цифровизируй это @digitize_it · 1.53K subscribers
Post #1146 530
Как начинался 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
More from @digitize_it
  1. Aug 27, 2025Как собрать и подготовить данные для процессного анализа: пошаговый план Process Mining —…
  2. Aug 19, 2025Domain-Driven Design: как управлять сложными проектами и бизнес-логикой В масштабных ИТ-пр…
  3. Aug 4, 2025Что под капотом у VK Cloud: три подхода к дисковым хранилищам и их ограничения Большинство…
  4. Jul 31, 2025Безопасность HR-системы: на что стоит обратить внимание Когда компания переходит на КЭДО,…
  5. Jul 23, 2025Как перестать беспокоиться и начать внедрять интеграционные тесты Интеграционные автотесты…
  6. Jul 21, 2025Лечим проблемы Kubernetes по мере масштабирования проекта: разбор от VK Cloud Один из клие…
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 →