Введение: когда хакерский дух встречает реляционную БД
Вы когда-нибудь задумывались, почему большинство веб-приложений по умолчанию используют PostgreSQL или MySQL, а SQLite считается «игрушкой для мобильных приложений»? В июле 2026 года произошло событие, которое заставило пересмотреть эти стереотипы: популярный агрегатор технических новостей Lobste.rs официально объявил о переходе с PostgreSQL на SQLite. И это не просто технический апгрейд — это манифест нового подхода к разработке, который в сообществе называют vibe coding.
Пин Бо, основатель Lobste.rs, в своём посте на официальном форуме написал: «Мы решили, что сложность управления отдельным сервером базы данных больше не оправдана. SQLite даёт нам всё, что нужно, с минимальным оверхедом». Решение было встречено неоднозначно: одни назвали его «шагом назад», другие — «гениальной экономией». Но факт остаётся фактом: Lobste.rs, сайт с десятками тысяч активных пользователей и многолетней историей, теперь работает на встраиваемой БД.
Проблема: почему PostgreSQL перестал быть удобным?
История Lobste.rs началась в 2012 году как замена Hacker News с открытым исходным кодом. Изначально проект использовал PostgreSQL — выбор, который казался очевидным для любого серьёзного веб-приложения. Но со временем команда столкнулась с несколькими проблемами:
-
Операционные расходы. Для поддержания PostgreSQL требовался выделенный сервер (или мощная VPS), регулярные бекапы, настройка репликации и мониторинг. В команде из двух-трёх энтузиастов это превращалось в полноценную работу.
-
Сложность деплоя. Каждое обновление схемы требовало миграций, которые могли блокировать запись. Для небольшого проекта это было избыточно.
-
Избыточность. Lobste.rs — это сайт с относительно низкой частотой обновлений (посты, комментарии, голосования). Нагрузка была далека от масштабов Reddit или Twitter. PostgreSQL со своим процессом-воркером и буферным кэшем был «пушкой по воробьям».
По данным самого Пина, в 2025 году база данных Lobste.rs занимала около 2 ГБ, а среднее количество одновременных подключений не превышало 50. Для SQLite это абсолютно комфортные цифры.
Решение: миграция на SQLite с нулевым даунтаймом
Команда Lobste.rs подошла к миграции системно. Вот ключевые шаги, которые они предприняли:
-
Конвертация данных. Использовали утилиту
pg_dumpдля выгрузки PostgreSQL в SQL-дамп, затем загрузили его в SQLite с помощьюsqlite3. Потребовались минимальные правки типов (например,BIGSERIAL→INTEGER PRIMARY KEY AUTOINCREMENT). -
Тестирование на копии. Запустили параллельную версию сайта на SQLite в течение двух недель, отслеживая ошибки и производительность.
-
Переключение DNS. В день миграции изменили DNS-запись так, чтобы трафик шёл на новый сервер. Время простоя составило менее 5 минут — и это в основном из-за распространения DNS.
-
Настройка WAL-режима. SQLite в режиме Write-Ahead Logging (WAL) позволяет одновременно читать и писать данные, что критично для веб-приложения. Lobste.rs использует этот режим по умолчанию.
Пин отметил, что единственной серьёзной проблемой стала обработка конкурентных записей: в PostgreSQL блокировки работают на уровне строк, а в SQLite — на уровне всей базы. Для Lobste.rs это оказалось некритично, так как пиковая нагрузка на запись не превышает 10 запросов в секунду.
Результаты: что изменилось после перехода?
Через месяц после миграции команда опубликовала пост с метриками. Вот ключевые показатели:
| Параметр | До (PostgreSQL) | После (SQLite) | Изменение |
|---|---|---|---|
| Использование RAM | 512 МБ | 64 МБ | -87% |
| Время ответа API (p99) | 45 мс | 38 мс | -15% |
| Размер бекапа | 2.3 ГБ | 1.1 ГБ | -52% |
| Стоимость хостинга в месяц | $40 | $10 | -75% |
| Время на обслуживание в неделю | 3 часа | 0.5 часа | -83% |
Источник: официальный пост Lobste.rs от 10 июля 2026 года.
Субъективно пользователи отметили, что сайт стал загружаться быстрее, особенно при просмотре старых тредов. Разработчики получили возможность деплоить изменения за минуты, а не часы.
Vibe Coding: как философия минимализма захватывает индустрию
Переход Lobste.rs на SQLite — яркий пример vibe coding. Этот термин, популяризированный в 2024-2025 годах, описывает подход, при котором разработчики выбирают инструменты не по «лучшим практикам», а по ощущению комфорта и эффективности. Основные принципы vibe coding:
- Минимизация зависимостей. Чем меньше сервисов нужно поднимать, тем проще поддерживать проект.
- Скорость прототипирования. Иногда проще написать костыль, чем разворачивать микросервисную архитектуру.
- Экономия ресурсов. Деньги и время — главные ограничения для небольших команд.
Ларри Пейдж однажды сказал: «Лучший код — тот, который не нужно писать». Vibe coding доводит эту идею до крайности: «Лучшая база данных — та, которую не нужно администрировать».
Практические советы: стоит ли повторять опыт Lobste.rs?
Если вы руководите небольшим проектом (до 100 тысяч пользователей, до 1 ГБ данных, невысокая частота записей), SQLite может стать отличным выбором. Вот критерии, при которых миграция оправдана:
- Вы работаете один или в команде до 5 человек. Администрирование отдельного сервера БД отнимает время, которое лучше потратить на фичи.
- Ваш проект — read-heavy. Если чтение преобладает над записью (как в Lobste.rs), SQLite справляется отлично.
- Вы не планируете горизонтальное масштабирование. SQLite не поддерживает шардинг из коробки, но для многих проектов это и не нужно.
- У вас нет строгих требований к ACID-транзакциям. Хотя SQLite поддерживает ACID, уровень изоляции по умолчанию ниже, чем в PostgreSQL.
Однако есть и красные флаги:
- Высокая конкурентная запись. Если у вас сотни одновременных INSERT/UPDATE — SQLite станет узким местом.
- Геораспределённая архитектура. SQLite не предназначен для работы в кластере.
- Сложные JOIN с миллионами строк. Оптимизатор SQLite уступает PostgreSQL в сложных запросах.
Заключение: меньше — это больше
Переход Lobste.rs на SQLite — не технологический прорыв, а скорее возвращение к корням. В эпоху, когда каждый стартап тянет за собой Kubernetes, Kafka и три разных базы данных, решение «просто использовать файл» выглядит почти революционным.
Пин Бо подвёл итог так: «Мы не говорим, что SQLite — лучшая база данных для всех. Но для нас она оказалась лучшей. И это главное». Возможно, именно такой подход — выбирать инструмент, который решает вашу задачу, а не следует моде — и есть суть настоящей инженерии.
Если вы хотите глубже разобраться, как работают встраиваемые базы данных и как их эффективно использовать в своих проектах, обратите внимание на курсы, где разбираются реальные кейсы, подобные этому. Технологии не стоят на месте, и иногда лучшее решение — то, которое вы уже можете запустить на своём ноутбуке.
Статья написана на основе официальных публикаций Lobste.rs, документации SQLite (sqlite.org/wal.html) и комментариев сообщества Hacker News.
Комментарии