Алексей Соин · zencod.ru
19 subscribers
165 photos
16 videos
4 files
1K links
Статьи по разработке

- frontend
- backend
- server

zencod.ru
Download Telegram
Forwarded from Мишка на сервере (Mikhail Savin)
Как OpenAI крутит PostgreSQL на 800M пользователей и миллионы QPS

Привет, %username%! Статья от OpenAI — это довольно любопытный пример того, как не городить зоопарк баз, а выжать максимум из одного PostgreSQL, понимая его сильные и слабые стороны.

Что по сути сделали OpenAI:

- Оставили один primary PostgreSQL без шардинга, но навесили почти 50 read‑реплик по регионам, чтобы разрулить гигантский read‑трафик и держать низкие задержки.
- Все, что можно шардинровать и что много пишет, уехало в Cosmos DB и другие шардированные системы — Postgres перестали использовать как универсальный молоток для любых нагрузок.
- Жёстко оптимизировали запросы: убирали монструозные joins (например, на 12 таблиц), ломали ORM‑магию, разбивали тяжелую логику по слоям, настраивали таймауты и следили за long‑running / idle‑транзакциями.
- Боролись с MVCC‑болью (bloat, dead tuples, write amplification) через снижение лишних записей, lazy writes, аккуратный backfill с rate‑limit'ами и перенос write‑heavy кейсов из PostgreSQL.
- Защитились от "шумных соседей": развели high‑priority и low‑priority трафик по разным инстансам, чтобы новая фича с кривыми запросами не ложила критичные пути.
- Везде, где можно, поставили PgBouncer (statement/transaction pooling), чтобы не умереть от connection storm при лимите в 5000 коннектов на инстанс.
- Снизили риск SEV‑0 от падения primary: HA с hot‑standby, быстрый failover, максимум критичных чтений — с реплик, чтобы при проблемах с записью сервис хотя бы читал.
- Поверх этого — rate limiting и load shedding на всех уровнях: приложение, пулер, прокси, конкретные query digests в ORM, плюс защита от retry storm'ов.
- Сильно ограничили эволюцию схемы: только лёгкие изменения, 5‑секундный timeout на DDL, без full table rewrite; новые таблицы — уже не в этом Postgres, а в шардированных системах.

В результате — миллионы QPS, p99 в низких десятках миллисекунд и около пяти девяток доступности, при этом за год только один SEV‑0 инцидент на Postgres, и тот во время дикого роста (ImageGen, +100M новых юзеров за неделю).

Что можно утащить к себе

- Не пытаться "передумать" базу: принять ограничения PostgreSQL (один writer, MVCC, bloat) и строить архитектуру вокруг этого, а не против этого.
- Относиться к read‑репликам как к основному инструменту масштабирования, а к primary — как к самому дорогому и охраняемому ресурсу.
- Ввести жёсткие правила для схемы и DDL: никакого "ALTER в прайм‑тайм прямо в прод", только безопасные паттерны миграций, троттлинг backfill’ов и чёткие SLO на операции с данными.
- Отдельно думать про защиту от кэш‑штормов: cache locking/lease, чтобы не просадить базу, когда Redis/мемкэш внезапно "забывает" ключи.

Вопросы к размышлению

1. Узнаешь ли ты свои продовые боли в описанных кейсах? Где у тебя узкое место — write‑нагрузка, длинные запросы, connection storm, кэш‑шторма?
2. Что ты сейчас используешь для изоляции "шумных соседей": отдельные БД, dedicated инстансы, resource groups, QoS на уровне запросов?
3. Есть ли у вас формальные правила для миграций схемы и кто их реально стопорит, когда хочется "просто добавить колонку"?
4. Насколько ты доверяешь read‑репликам — используешь ли их агрессивно, как OpenAI, или всё ещё боишься lag'а и читаешь почти всё с primary?

Делись в комментах кейсами и анти‑паттернами — особенно интересно, где вы сознательно не стали шардинговать Postgres, а выжали максимум из одной инстанции.

#PostgreSQL #SRE #DevOps #HighLoad #ChatGPT #Scalability #DatabaseReliability #DistributedSystems #Caching #Replication
Forwarded from CodeCamp
This media is not supported in your browser
VIEW IN TELEGRAM
Реактивный npm-серфинг: новый браузер для главного реестра npm-пакетов, после которого официальный сайт хочется закрыть навсегда 😈

Чистейший UX-буст для тех, кому надоело ждать вечность ради чека зависимостей и веса бандла:

— Встроенный просмотрщик кода с подсветкой и детекция уязвимостей на лету;
— Поиск хоткеями, индикаторы ESM/CJS и статистика загрузок в одно касание;
— Бесшовная интеграция: просто добавь «x» перед названием домена в URL, чтобы сменить интерфейс на человеческий.

Наслаждайтесь 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Веб-стандарты (Vadim Makeev)
Декларативное меню на <dialog> с invoker commands. Дэвид Бушелл показывает гамбургерное меню на нативном <dialog> с новым Invoker Command API и небольшим JS-фолбэком для старых браузеров. Плюс заметки про :focus-visible в WebKit, closedby="any" и view transitions. #webdev #css

https://dbushell.com/2026/02/12/declarative-dialog-menu-invoker-commands/
Vize — Vue.js тулчейн на Rust ⚡️

Знаешь тренд на переписывание JS-инфраструктуры на Rust? Вот тебе свежий пример — Vize. Это неофициальный тулчейн для Vue, который заменяет сразу кучу инструментов одним нативным бинарником.

Что умеет?

Компиляция. Собирает Vue SFC файлы. 15 000 компонентов (36.9 МБ) за ~500мс благодаря многопоточности через Rayon и arena allocation. Заявляют 8.3x быстрее текущих решений.

Линтинг и форматирование. vize fmt и vize lint --fix — прямо из коробки, без отдельных пакетов.

Тайп-чекинг. vize check --strict — встроенная проверка типов для Vue шаблонов.

Vite плагин. Drop-in замена @vitejs/plugin-vue — просто меняешь импорт и получаешь нативную скорость компиляции.

Vapor Mode. Поддержка Vue 3.6 Vapor — компиляция без виртуального DOM.

Musea. Встроенная альтернатива Storybook — компонентная галерея с playground для пропсов, дизайн-токенами и a11y аудитом.

WASM. Компилятор работает прямо в браузере — для плейграундов и документации.

MCP сервер. AI-ассистенты могут читать и понимать твои Vue компоненты через Musea. Тот самый Model Context Protocol.

Автор — ubugeeei, участник Vue.js Japan User Group и организатор Vue Fes Japan.

Проект пока в альфе (v0.0.1-alpha), но развивается активно.

Следить 👇
🔗 https://vizejs.dev
🐙 https://github.com/ubugeeei/vize
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Vite 8.0: долгожданный Rolldown

Переход на новый бандлер Rolldown, который значительно ускоряет сборку в 10–30 раз и унифицирует процесс разработки. Также релиз приносит встроенные devtools, улучшенную поддержку TypeScript и новые возможности для SSR.

https://habr.com/p/1009646/
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Как Яндекс, Avito, Ozon ИИ-агентов используют для разработки

посмотрел доклады AI Dev Day трехдневной давности, делюсь выжимкой

🟡Эффект внедрения

Начну с, кажется, главного — эффект внедрения разработки с ИИ-агентами.

Яндекс говорит об экономии 2% времени разработчиков. Да, всего 2%. Амбиция — улучшить до 10% в рамках года. По самоощущениям разработчиков причём они ускорились аж на 30%, что в 15 раз (!) выше реальной цифры. Кажется, это многое говорит о состоянии дел.

Avito — заявляет ускорение в командах с хорошей адаптацией использования агентов порядка 4-5%.

Ozon бизнес-метрики внедрения агентной разработки ещё не измеряют.

🟡Какие агенты и модели используют?

Яндекс использует Yandex Code Assistant судя по всему на GLM, связка демонстрирует лучшую эффективность на их собственном бенчмарке.

Avito топят за использование SOTA-моделей (то есть самых передовых существующих на сегодня моделей) и отошли от попыток заниматься fine tuning опенсорсных моделей. Используют разные агенты (continue, cline, opencode, claude code), и модели (qwen3-coder, GLM, openai, claude). В то же время похоже что лучшей связкой сейчас тестируют Claude Code и Claude Sonnet.

Ozon делают свой инференс, используют опенсорсные модели MiniMax+Cline/OpenCode. Внешние модели широко разработчикам не дают.

🟡Доля сгенерированного агентами закоммиченного кода

Яндекс — 23% кода, сгенерированного агентами. Сами говорят, что цифра неточная, но что-то около.

Avito — 20% пул-реквестов с использованием AI.

Ozon цифр не раскрывает.

🟡К какому ускорению теоретически может привести ИИ?

По исследованиям Яндекс разработчики тратят 35% на написание кода, 30% времени на коммуникации, 15% на планирование и поиск информации, и по 5% на DevOps, работу с данными и кодревью.

Цифры Avito схожие, 32% времени на кодинг, 28% на исследования и тд.

Таким образом, если сократить те самые 35% времени написания кода даже до нуля, то сие буйство ускорит разработчиков лишь на треть. Сопоставимого эффекта можно добиться, убрав излишние коммуникации (30% времени, то есть полтора целых дня из пятидневной недели на потрындеть). Возможно ли это для бигтеха, драматично снизить коммуникацию? Не знаю.

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

🟡Общие тренды

Яндекс, Avito, Ozon — все пытаются увеличить использование агентной разработки с ИИ, например, предоставляя разработчикам установку всего пакета необходимых тулзов одной командой, проводя воркшопы, делая общие чатики, где можно получить ответы на то, как использовать ИИ в своей разработке и тд.

Конечно, все пилят свои RAG-и, строчат свои MCP-сервера, скиллы и прочее. Кто-то делает общие репозитории со скиллами и промптами.

В то же время все компании отмечают, что один из вызовов на ближайший год это оптимизация использования токенов, потому что это (оупс) дорогователько как-то оно всё выходит. И это к ним ещё бизнес не пришёл спросить за те самые 2% эффекта от этих трат:)
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from FrontEndDev
Temporal: как JavaScript за 9 лет починил работу с датами и временем

Temporal приходит на смену проблемному Date: неизменяемые типы, поддержка часовых поясов и календарей, а также высокая точность до наносекунд. Путь стандарта показывает, как TC39 доводит сложную задачу до Stage 4 и реального внедрения.

https://bloomberg.github.io/js-blog/post/temporal/
Forwarded from CodeCamp
Прогеры, сегодня празднуем День Гита! 🥳

В 2005 году 7 апреля Линус Торвальдс сделал самый первый коммит. Разработал он, кстати, систему контроля версий всего за 10 дней.

В честь праздника откопал для вас красивую шпаргалку с основными командами 💗.
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Forwarded from FrontEndDev
Прекратите войну с валидацией форм: JSON Schema как единый источник правды

Дублирование проверок между фронтендом и бэкендом ломает UX и порождает регрессии. Подход schema-driven переносит правила, сообщения и условия показа полей в одну JSON-схему: форма рендерится, валидирует и согласованно проверяется на сервере.

https://blog.logrocket.com/stop-fighting-schema-driven-form-validation/
Forwarded from FrontEndDev
Нативные JSON-модули наконец-то заработали по-настоящему

Теперь JSON можно импортировать как полноценные ES-модули:
import config from "./config.json" with { type: "json" }.

Разбор происходит в runtime, включается стандартный кэш ESM и исчезают лишние трансформации/loader’ы — а сборщики становятся опциональными.

https://allthingssmitty.com/2026/03/16/native-json-modules-are-finally-real/
Forwarded from FrontEndDev
Моя коллекция полезных HTML-фич

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

https://habr.com/ru/companies/ruvds/articles/1021090
Forwarded from FrontEndDev
Палитра команд для UI: как победить хаос в много модульных интерфейсах

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

https://habr.com/ru/articles/1021812/
Forwarded from FrontEndDev
Baseline март 2026: 12 браузерных фич, которые уже можно брать в прод

В марте 2026 появилось много Widely available возможностей, включая Clear-Site-Data для управляемого сброса кэша и хранилищ, а также новые CSS и WebAPI.

https://habr.com/ru/articles/1018200/
Forwarded from mefody.dev
История ffmpeg

Видео невыходного дня. Интересный ресёрч на тему того, как небольшая опенсорс библиотека стала основой для огромного числа других проектов. И какие люди за этим стоят. Если что, вы пользуетесь ffmpeg каждый день, даже если не знаете про это.

https://youtu.be/Ww8MzcBJUd4
Forwarded from Веб-стандарты (Vadim Makeev)
Соглашения именования дизайн-токенов: практическое руководство. Стюарт Робсон рассказывает, как называть токены, которые масштабируются между командами и продуктами. Он разбирает три уровня токенов (примитивы, семантические и компонентные) и пять подходов к именованию, от категория-свойство-модификатор до многоуровневых структур. Ключевые принципы: единообразие важнее идеала, ясность важнее краткости, смысл важнее визуального описания. #design #component

https://www.alwaystwisted.com/articles/design-token-naming-conventions