Yandex for Backend
8.98K subscribers
675 photos
50 videos
3 files
323 links
Канал для бэкендеров от Яндекса. Рассказываем про события по Python, Go, Java и C++ и не только, делимся экспертизой, обсуждаем технологии и поддерживаем бэкенд-комьюнити.

Другие каналы Яндекса по стекам разработки: https://xn--r1a.website/addlist/Hrq31w2p1vUyOGZi
Download Telegram
💹 Сенат и народ Рима Stateless Postgres Query Router

В мире PostgreSQL всё ещё нет готового коробочного решения для горизонтального масштабирования. Когда один кластер перестаёт тянуть нагрузку, начинается самое интересное: чистка или охлаждение данных, распил одного кластера на несколько и, в конце концов, шардирование.

На практике всё упирается не в сами шарды, а в инфраструктуру вокруг них. Стоит ли реализовывать логику на стороне приложения? Как из одного шарда сделать 2, 4, 8, 32 и так далее? И как перенести туда данные и избежать downtime?

👩‍⚕️ Команда платформы данных в Yandex Cloud разработала опенсорс-решение этих проблем — SPQR. А также открыла доступ к тестированию управляемого облачного сервиса на его основе. В карточках показываем, как работает инструмент и какие подходы лежат у него под капотом.

🧰 А тут расскажем про фичи:

🟢 Горизонтальное масштабирование. В кластере SPQR могут быть сотни роутеров и шардов, потенциально их количество не ограничено

🟢 Умная маршрутизация запросов. Для интеграции с SPQR необязательно модифицировать SQL-запросы, всё просто будет работать как есть

🟢 Отказоустойчивость всех компонент SPQR и шардов. Для каждого можно указать несколько серверов

🟢 Интеграция без кастомных драйверов. Приложения подключаются к SPQR по стандартному PostgreSQL-протоколу, без дополнительных модов или библиотек. То есть подключиться можно обычным psql. Вы можете использовать любимый драйвер вашего любимого языка программирования

🦾 Когда SPQR особенно эффективен

Система заточена на OLTP‑нагрузки, где большинство транзакций можно уложить в один шард. Например:

🟢 Интернет-магазин, разделённый по customer_id или product_category

🟢 Блоги, новостные порталы и CMS-разработки, шардированные по author_id или типу контента (при этом комментарии и связанный контент остаются на одном шарде)

🟢 Хранилища микросервисов, в которых каждый микросервис получает свой логический шард, но физически всеми данными управляет единый роутер

🟢 Пользовательские сервисы, IoT, high‑traffic OLTP и любые сервисы с большим потоком коротких транзакций

🔶 В статье на Хабре ищите подробности и планы развития инструмента.

Подписывайтесь:
💬 @Yandex4Backend
📹 @YandexforBackend
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥82
This media is not supported in your browser
VIEW IN TELEGRAM
🚗 Меняем колёса на ходу: как Авто.ру переезжал с MySQL на Yandex Database

Авто.ру — это сервис, который делает покупку и продажу автомобиля удобной, технологичной и безопасной. Он обрабатывает тысячи запросов в секунду, а внутри у него оркестр из бизнес-логики. Раньше сервис работал поверх шардированного MySQL, но масштабироваться на нём было трудно. Поэтому команда решила переехать на Yandex Database.

А как проходил переезд, с чем столкнулись по пути и как в процессе оптимизировали архитектуру всего сервиса, показывает Андрей Борунов, руководитель группы разработки базовых сервисов в Авто.ру.

В докладе Андрей рассказал:

🟢 Как команда преодолела ограничения по масштабированию для терабайта документов
🟢 Что лежит под катом сердца Авто.ру — системы хранения и процессинга объявлений
🟢 Как ребята разработали движок поверх YDB для распределённой обработки объявлений десятками воркеров с бизнес-логикой

📺 Смотрите полный доклад Андрея с DUMP 2025:

🟢 На ютубе
🟢 В VK Видео

📟 Кому советуем посмотреть: разработчикам и архитекторам высоконагруженных систем, скалистам и всем, кто думает о масштабировании своих сервисов.

Подписывайтесь:
💬 @Yandex4Backend
📹 @YandexforBackend
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍62
🧬 Во сколько раз увеличится RPS на ручку поллинга, если уменьшить интервал поллинга с 5 минут до 2?

В 2,5 раза!

👨‍💻 На связи Степан Карпов, бэкенд-разработчик в Яндекс Go. Делюсь кейсом, который научил нас внимательнее подходить к планированию ресурсов под поллинговые ручки.

Мы хотели ускорить сетевую диагностику в приложении, а для этого уменьшили интервал запросов с 5 минут до 30 секунд. Логично предположить: раз клиенты стали ходить в 10 раз чаще, то и нагрузка вырастет в 10 раз. Мы подготовили инфраструктуру под 50 000 RPS, но после релиза увидели лишь 25 000.

Оказалось, что наша модель была слишком простой. На масштабе миллионов пользователей поведение системы описывается не линейной, а более сложной зависимостью. А чтобы понять её, мы построили вероятностную модель, основанную на времени жизни сессии пользователя.

❇️ Что мы вынесли из этой ситуации:

🟢 На больших масштабах простые умножения могут давать ошибку в несколько раз

🟢 Чтобы планировать ресурсы, нужно учитывать паттерны использования приложения

🟢 Даже базовая вероятностная модель помогает избежать серьёзных просчётов

🔶 В статье на Хабре я подробно рассказываю, как мы пришли к формуле прогноза RPS и как проверили её в экспериментах.

Подписывайтесь:
💬 @Yandex4Backend
📹 @YandexforBackend
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥4🥰1🤯1
🔶 5 тезисов про AI в сетях

Сеть помогает строить агентов, а агенты помогают строить сети!

👩‍⚕️ Об изменениях, которые приносит AI, тезисно рассказывает Александр Азимов, руководитель группы Yandex Network Design в Yandex Infrastructure. Собрали его наблюдения в карточках.

Подписывайтесь:
💬 @Yandex4Backend
📹 @YandexforBackend
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🥴2👏1
🐚 Почему бэкендеру важно уметь в коммуникацию, а не только писать код

В блоге о работе в Яндексе вышла статья разработчика каталога Лавки. За четыре года он вырос до тимлида, понял, что это не его, и снова стал бэкендером. Но софт-скилы нужны не только руководителям.

Делимся инсайтами о том, как и зачем бэкендеру уметь в софты:

🟢 Переводить идеи продактов на технический язык. Здесь всегда нужно обсуждение: выяснить все детали, договориться, как лучше их воплотить, и отмести часть из них, чтобы ускорить разработку

🟢 Распределять задачи с командой фронтенда и в процессе диалога находить границы зон ответственности

🟢 Собирать фидбэк от тестировщиков начиная с самых ранних этапов разработки. Ребята хорошо знают все сложные места и самые актуальные проблемы. Общение с ними сильно экономит ресурсы разработки

🟢 Строить экосистемное взаимодействие. У сервиса может быть несколько точек входа — например, в Лавке это Еда, Маркет и даже Go. Так что с ребятами из этих сервисов нужно общаться

🟢 Техлидить проекты, которыми занимаются несколько команд. А это значит, что придётся всё со всеми обсудить, свести людей и ничего не потерять… А потом ещё пойти и написать код. Для этого тоже нужно уметь и любить коммуницировать с коллегами

🟢 Питчить идеи и доносить их ценность до команды. Обычно это технические фичи, но иногда бэкендеры предлагают что-то продуктовое. Например, один разработчик Лавки придумал «Персональные цели», которые сейчас стали важным инструментом промо

🔶 Читайте полную статью в блоге

Подписывайтесь:
💬 @Yandex4Backend
📹 @YandexforBackend
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱10🔥52❤‍🔥1🤷‍♂1
😈 Как мы запустили 50 тысяч фейковых водителей в прод

На связи Андрей Матвеев, разработчик в команде платформы надёжности Яндекс Такси. А ещё я техлид проекта virtual-orders — нашей системы нагрузочных учений. С ней мы выявляем узкие места в архитектуре, определяем границы работоспособности и прогнозируем поведение сервиса в разных сценариях.

👩‍⚕️ В карточках я показываю, как мы проводим интеграционные нагрузочные тесты прямо в продакшене

📖 А в статье на Хабре рассказываю:

🟢 Как мы распределяли нагрузку во время учений с учётом географии и пиковых сценариев

🟢 Почему выбрали эмуляторы для тестирования

🟢 Как оценивали результаты тестов на дашбордах

Подписывайтесь:
💬 @Yandex4Backend
📹 @YandexforBackend
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍104🔥3🗿1