Как устроен Cursor: технические детали от создателей 🔧
Вчера прочитал очень интересное интервью с основателем Cursor. Интервью содержит множество деталей внутреннего устройства самого популярного AI-кодера, и с моей точки зрения будет интересно практически каждому.
Ниже мой краткий конспект.
Полная оригинальная версия здесь.
Перевод на русский язык: часть 1 | часть 2
Cursor — AI-редактор кода, который за год вырос в 100 раз по нагрузке и обрабатывает более 1 млн запросов в секунду. Сооснователь Суалех Асиф рассказал об используемых технических решениях.
Цифры проекта 📊
• 50 инженеров в команде
• 1M+ транзакций в секунду в пике
• 100x рост пользователей за 12 месяцев
• $500M+ годовая выручка
• Миллиард строк кода пишется ежедневно
Технический стек 💻
Клиент:
• TypeScript — основная логика
• Electron — форк VS Code
• Rust — производительные компоненты
Бэкенд:
• TypeScript + Rust
• Монолитная архитектура
• Node API для связи с Rust
Базы данных:
• Turbopuffer — хранение зашифрованных файлов
• Pinecone — векторная БД для документации
Инфраструктура:
• AWS + Azure для вычислений
• Десятки тысяч NVIDIA H100 GPU
• Terraform для управления инфраструктурой
Как работает автодополнение ⚡️
1️⃣ Клиент собирает контекст кода локально 2️⃣ Код шифруется и отправляется на сервер 3️⃣ Сервер расшифровывает и генерирует предложение 4️⃣ Предложение возвращается в IDE 5️⃣ Пользователь принимает через Tab
Ключевая задача — минимизировать задержки при максимальном качестве предложений.
Чат без хранения кода 🔒
Cursor не хранит исходный код на серверах, используя умную систему индексации:
Создание индексов:
• Код разбивается на чанки
• Создаются эмбеддинги без сохранения имен файлов
• Используются обфусцированные названия
Поиск по коду:
• Векторный поиск по эмбеддингам
• Запрос нужных файлов с клиента
• Анализ и ответ на основе контекста
Синхронизация через Merkle Trees:
• Каждые 3 минуты сравнение деревьев клиент-сервер
• Переиндексация только измененных файлов
• Эффективное использование ресурсов
Anyrun: оркестратор агентов 🤖
Написанный на Rust сервис для запуска AI-агентов в облаке:
• AWS EC2 — для корпоративных клиентов
• AWS Firecracker — микро-ВМ с запуском за 125мс
• Изоляция процессов — безопасность на уровне ВМ
• Снапшоты — сохранение состояния для быстрого восстановления
Инженерные вызовы 🚧
Проблемы масштабирования:
• Рост использования в 100 раз за год
• Миллиарды эмбеддингов ежедневно
• Один из крупнейших клиентов OpenAI
Проблема холодного старта:
• При падении всех нодов перезапуск критичен
• Нужно контролировать трафик при восстановлении
• Приоритизация пользователей во время инцидентов
Шардинг и его сложности:
• Ручное разделение индексов в Pinecone
• Недоиспользование ресурсов (30% простоя)
• Сложные миграции между шардами
Миграции баз данных 🔄
От Yugabyte к PostgreSQL:
• Yugabyte не справлялся с нагрузкой
• Долгие транзакции в распределенной системе
• PostgreSQL на AWS RDS решил проблемы
От PostgreSQL к Turbopuffer:
• 22TB данных в RDS достигли лимитов
• Особенности VACUUM в PostgreSQL
• Экстренная миграция за 10 часов во время инцидента
Культура разработки 👥
Релизы:
• Каждые 2-4 недели (десктопное приложение)
• Консервативные feature flags
• Тщательное тестирование перед выпуском
Команда:
• 15 инженеров в инфраструктурной команде
• Культура экспериментов
• Использование собственного продукта
Будущие вызовы:
• Масштабирование reinforcement learning
• Тысячи GPU для обучения
• Сложная архитектура с множеством компонентов
Выводы 💡
• Небольшие команды могут превосходить гигантов при правильном подходе
• Облачные провайдеры критичны для быстрого масштабирования
• Надо быть очень осторожными с использованием стартап-продуктов в инфраструктуре - лучше доверять гиперскейлерам
• Создание продукта для собственной аудитории упрощает разработку
Cursor своим примером показывает, как 50 инженеров могут конкурировать с Microsoft и GitHub, фокусируясь на потребностях разработчиков.
@llm_notes
#cursor #vibecoding #tech_architecture #startup_scaling
Вчера прочитал очень интересное интервью с основателем Cursor. Интервью содержит множество деталей внутреннего устройства самого популярного AI-кодера, и с моей точки зрения будет интересно практически каждому.
Ниже мой краткий конспект.
Полная оригинальная версия здесь.
Перевод на русский язык: часть 1 | часть 2
Cursor — AI-редактор кода, который за год вырос в 100 раз по нагрузке и обрабатывает более 1 млн запросов в секунду. Сооснователь Суалех Асиф рассказал об используемых технических решениях.
Цифры проекта 📊
• 50 инженеров в команде
• 1M+ транзакций в секунду в пике
• 100x рост пользователей за 12 месяцев
• $500M+ годовая выручка
• Миллиард строк кода пишется ежедневно
Технический стек 💻
Клиент:
• TypeScript — основная логика
• Electron — форк VS Code
• Rust — производительные компоненты
Бэкенд:
• TypeScript + Rust
• Монолитная архитектура
• Node API для связи с Rust
Базы данных:
• Turbopuffer — хранение зашифрованных файлов
• Pinecone — векторная БД для документации
Инфраструктура:
• AWS + Azure для вычислений
• Десятки тысяч NVIDIA H100 GPU
• Terraform для управления инфраструктурой
Как работает автодополнение ⚡️
1️⃣ Клиент собирает контекст кода локально 2️⃣ Код шифруется и отправляется на сервер 3️⃣ Сервер расшифровывает и генерирует предложение 4️⃣ Предложение возвращается в IDE 5️⃣ Пользователь принимает через Tab
Ключевая задача — минимизировать задержки при максимальном качестве предложений.
Чат без хранения кода 🔒
Cursor не хранит исходный код на серверах, используя умную систему индексации:
Создание индексов:
• Код разбивается на чанки
• Создаются эмбеддинги без сохранения имен файлов
• Используются обфусцированные названия
Поиск по коду:
• Векторный поиск по эмбеддингам
• Запрос нужных файлов с клиента
• Анализ и ответ на основе контекста
Синхронизация через Merkle Trees:
• Каждые 3 минуты сравнение деревьев клиент-сервер
• Переиндексация только измененных файлов
• Эффективное использование ресурсов
Anyrun: оркестратор агентов 🤖
Написанный на Rust сервис для запуска AI-агентов в облаке:
• AWS EC2 — для корпоративных клиентов
• AWS Firecracker — микро-ВМ с запуском за 125мс
• Изоляция процессов — безопасность на уровне ВМ
• Снапшоты — сохранение состояния для быстрого восстановления
Инженерные вызовы 🚧
Проблемы масштабирования:
• Рост использования в 100 раз за год
• Миллиарды эмбеддингов ежедневно
• Один из крупнейших клиентов OpenAI
Проблема холодного старта:
• При падении всех нодов перезапуск критичен
• Нужно контролировать трафик при восстановлении
• Приоритизация пользователей во время инцидентов
Шардинг и его сложности:
• Ручное разделение индексов в Pinecone
• Недоиспользование ресурсов (30% простоя)
• Сложные миграции между шардами
Миграции баз данных 🔄
От Yugabyte к PostgreSQL:
• Yugabyte не справлялся с нагрузкой
• Долгие транзакции в распределенной системе
• PostgreSQL на AWS RDS решил проблемы
От PostgreSQL к Turbopuffer:
• 22TB данных в RDS достигли лимитов
• Особенности VACUUM в PostgreSQL
• Экстренная миграция за 10 часов во время инцидента
Культура разработки 👥
Релизы:
• Каждые 2-4 недели (десктопное приложение)
• Консервативные feature flags
• Тщательное тестирование перед выпуском
Команда:
• 15 инженеров в инфраструктурной команде
• Культура экспериментов
• Использование собственного продукта
Будущие вызовы:
• Масштабирование reinforcement learning
• Тысячи GPU для обучения
• Сложная архитектура с множеством компонентов
Выводы 💡
• Небольшие команды могут превосходить гигантов при правильном подходе
• Облачные провайдеры критичны для быстрого масштабирования
• Надо быть очень осторожными с использованием стартап-продуктов в инфраструктуре - лучше доверять гиперскейлерам
• Создание продукта для собственной аудитории упрощает разработку
Cursor своим примером показывает, как 50 инженеров могут конкурировать с Microsoft и GitHub, фокусируясь на потребностях разработчиков.
@llm_notes
#cursor #vibecoding #tech_architecture #startup_scaling