Разработчики: | Яндекс (Yandex) |
Дата последнего релиза: | 2023/09/21 |
Технологии: | Средства разработки приложений |
Основная статья: Открытое программное обеспечение (Open Source)
2023: Выпуск userver 1.0 на GitHub
21 сентября 2023 года Яндекс опубликовал фреймворк для разработки высоконагруженных приложений userver 1.0 на GitHub. Данная версия создана с учётом обратной связи и пожеланий опенсорс-сообщества и направлена на ускорение процесса разработки — например, добавлена поддержка популярных баз данных и метрик, переписана документация.
Фреймворк userver — набор инструментов, который позволяет создавать надёжные высоконагруженные приложения на C++. Уже больше года открытая версия фреймворка развивается при поддержке сообщества.
В первую очередь userver предназначен для разработки приложений с микросервисной архитектурой — она позволяет создавать отдельные независимые компоненты (микросервисы) и переиспользовать их в различных решениях. Например, для поиска водителя в Яндекс Такси и для поиска курьера в Яндекс Доставке используется один и тот же микросервис, написанный с помощью userver.
Среди основных изменений в userver 1.0 — поддержка баз данных MySQL, расширенная документация с примерами и инструкциями, чтобы упростить использование фреймворка, а также переработанные механизмы работы с метриками, системы сборки и тестирования проекта. Ещё данная версия userver лучше оптимизирована и меньше нагружает процессор.
![]() | Изначально мы создавали userver под нужды Яндекса, но хорошо понимали, что наши решения не универсальны и могут кому-то не подойти. После выхода в опенсорс мы получали багрепорты, вносили дополнения и слушали пожелания. Например, пользователи спрашивали, как добавить собственный механизм авторизации, — и мы добавили отдельный пример и документацию для этой функции. Многие используют другой стек технологий для фронтенд-разработки. Чтобы облегчить им жизнь, мы добавили поддержку протокола передачи данных WebSockets. В результате вышла версия userver, которая эффективно решает задачи сообщества. Конечно, мы продолжаем собирать отзывы и пожелания, чтобы и дальше давать пользователям лучший продукт, — сказал Антон Полухин, один из авторов фреймворка и руководитель группы разработки общих компонент Технологической платформы бизнес-группы Екома и Райдтеха. | ![]() |
Фреймворк развивается по модели green trunk — это означает, что разработчики могут получать доступ ко всем последним улучшениям и изменениям userver сразу после их появления.
2022: Публикация исходного кода
29 июля 2022 года Яндекс опубликовал исходный код и документацию фреймворка userver. Это первый открытый набор инструментов, который позволяет создавать высоконагруженные приложения на языке С++ и протестирован на масштабах уровня Яндекса. Userver используют в Яндекс Go, Лавке, Доставке, Маркете, финтех-проектах и многих других сервисах компании. Фреймворк предоставляется по открытой лицензии Apache 2.0.
Userver лучше всего подходит для разработки приложений с микросервисной архитектурой. Изначально фреймворк разрабатывался в Такси, с его помощью команда перешла с монолитного приложения на архитектуру, которая позволяет разрабатывать отдельные независимые компоненты (микросервисы) и использовать их в разных приложениях. CIO девелопера Tekta Group Антон Солорев — о переходе с ERP Microsoft на «1С» и особенностях цифровизации в строительстве
Микросервисы автономны, поэтому приложение на подобной архитектуре легко обновлять и добавлять в него новые функции. Так, микросервис поиска водителя на заказы в Такси можно использовать для схожей задачи — например поиска курьера для выполнения заказов Яндекс Доставки. То же самое можно проделать и с расчётом времени прибытия водителя или курьера и многими другими задачами.
![]() | Когда мы переходили на микросервисы, мы понимали, что новый фреймворк должен быть как можно проще для разработчиков и бизнеса. Поэтому userver создавали с акцентом на надёжность и удобство, а внутри него есть всё необходимое для разработки, диагностики, мониторинга, отладки и экспериментов. Например, userver подсказывает как исправить ошибки ещё на этапе компиляции, умеет работать с разными базами данных, менять параметры на лету и так далее. Он хорошо подходит для разработки приложений как в небольших, так и в крупных компаниях. И с помощью userver даже новичок может за неделю написать новый микросервис, — сказал Антон Полухин, один из авторов фреймворка и руководитель группы бэкенд-разработки решений для продуктовых команд RideTech и eCom. | ![]() |
Яндекс выкладывает в опенсорс и другие свои ключевые технологии — например, распределённую систему управления базами данных YDB, способную обрабатывать миллионы запросов в секунду, а также библиотеку машинного обучения CatBoost, которую Яндекс применяет в Поиске и других сервисах.
Подрядчики-лидеры по количеству проектов
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Данные не найдены
Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Данные не найдены
Распределение систем по количеству проектов, не включая партнерские решения
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)