Разработчики: | Яндекс (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 лучше всего подходит для разработки приложений с микросервисной архитектурой. Изначально фреймворк разрабатывался в Такси, с его помощью команда перешла с монолитного приложения на архитектуру, которая позволяет разрабатывать отдельные независимые компоненты (микросервисы) и использовать их в разных приложениях. Российский рынок облачных ИБ-сервисов только формируется
Микросервисы автономны, поэтому приложение на подобной архитектуре легко обновлять и добавлять в него новые функции. Так, микросервис поиска водителя на заказы в Такси можно использовать для схожей задачи — например поиска курьера для выполнения заказов Яндекс Доставки. То же самое можно проделать и с расчётом времени прибытия водителя или курьера и многими другими задачами.
Когда мы переходили на микросервисы, мы понимали, что новый фреймворк должен быть как можно проще для разработчиков и бизнеса. Поэтому userver создавали с акцентом на надёжность и удобство, а внутри него есть всё необходимое для разработки, диагностики, мониторинга, отладки и экспериментов. Например, userver подсказывает как исправить ошибки ещё на этапе компиляции, умеет работать с разными базами данных, менять параметры на лету и так далее. Он хорошо подходит для разработки приложений как в небольших, так и в крупных компаниях. И с помощью userver даже новичок может за неделю написать новый микросервис, — сказал Антон Полухин, один из авторов фреймворка и руководитель группы бэкенд-разработки решений для продуктовых команд RideTech и eCom. |
Яндекс выкладывает в опенсорс и другие свои ключевые технологии — например, распределённую систему управления базами данных YDB, способную обрабатывать миллионы запросов в секунду, а также библиотеку машинного обучения CatBoost, которую Яндекс применяет в Поиске и других сервисах.
Подрядчики-лидеры по количеству проектов
Солар (ранее Ростелеком-Солар) (46)
Финансовые Информационные Системы (ФИС, FIS, Финсофт) (15)
Форсайт (11)
Бипиум (Bpium) (10)
Axiom JDK (БеллСофт) ранее Bellsoft (10)
Другие (392)
Солар (ранее Ростелеком-Солар) (8)
Финансовые Информационные Системы (ФИС, FIS, Финсофт) (4)
Консом групп, Konsom Group (КонсОМ СКС) (2)
ЛАНИТ - Би Пи Эм (Lanit BPM) (2)
IFellow (АйФэлл) (2)
Другие (30)
Солар (ранее Ростелеком-Солар) (10)
Форсайт (3)
Banks Soft Systems, BSS (Бэнкс Софт Системс, БСС) (3)
Cloud.ru (Облачные технологии) ранее SberCloud (2)
КРИТ (KRIT) (2)
Другие (13)
Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров
Солар (ранее Ростелеком-Солар) (2, 48)
Microsoft (41, 47)
Oracle (49, 26)
Hyperledger (Open Ledger Project) (1, 23)
IBM (33, 18)
Другие (599, 307)
Солар (ранее Ростелеком-Солар) (1, 8)
Финансовые Информационные Системы (ФИС, FIS, Финсофт) (1, 4)
Microsoft (4, 3)
Oracle (2, 3)
SAP SE (2, 2)
Другие (16, 19)
Солар (ранее Ростелеком-Солар) (1, 11)
Banks Soft Systems, BSS (Бэнкс Софт Системс, БСС) (1, 3)
Форсайт (1, 3)
Cloud.ru (Облачные технологии) ранее SberCloud (1, 2)
Сбербанк (1, 2)
Другие (9, 9)
Солар (ранее Ростелеком-Солар) (1, 6)
Unlimited Production (Анлимитед Продакшен, eXpress) (1, 6)
МТС Exolve (Межрегиональный ТранзитТелеком, МТТ) (1, 4)
Мобильные ТелеСистемы (МТС) (1, 4)
РЖД-Технологии (1, 3)
Другие (14, 24)
Unlimited Production (Анлимитед Продакшен, eXpress) (1, 4)
Мобильные ТелеСистемы (МТС) (2, 3)
Солар (ранее Ростелеком-Солар) (1, 3)
МТС Exolve (Межрегиональный ТранзитТелеком, МТТ) (1, 2)
Сбербанк-Технологии (СберТех) (1, 1)
Другие (14, 14)
Распределение систем по количеству проектов, не включая партнерские решения
Solar appScreener (ранее Solar inCode) - 48
Hyperledger Fabric - 23
Windows Azure - 20
FIS Platform - 15
EXpress Защищенный корпоративный мессенджер - 12
Другие 327
Solar appScreener (ранее Solar inCode) - 8
FIS Platform - 4
Турбо X - 2
Siemens Xcelerator - 2
Java - 2
Другие 22
Solar appScreener (ранее Solar inCode) - 11
Форсайт. Мобильная платформа (ранее HyperHive) - 3
BSS Digital2Go - 3
Cloud ML Space - 2
Kubernetes - 1
Другие 8