Яндекс Userver (фреймворк)

Продукт
Разработчики: Яндекс (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 лучше всего подходит для разработки приложений с микросервисной архитектурой. Изначально фреймворк разрабатывался в Такси, с его помощью команда перешла с монолитного приложения на архитектуру, которая позволяет разрабатывать отдельные независимые компоненты (микросервисы) и использовать их в разных приложениях. Как DevOps-сервис помогает «разгрузить» высоконагруженные системы BPMSoft

Микросервисы автономны, поэтому приложение на подобной архитектуре легко обновлять и добавлять в него новые функции. Так, микросервис поиска водителя на заказы в Такси можно использовать для схожей задачи — например поиска курьера для выполнения заказов Яндекс Доставки. То же самое можно проделать и с расчётом времени прибытия водителя или курьера и многими другими задачами.

«
Когда мы переходили на микросервисы, мы понимали, что новый фреймворк должен быть как можно проще для разработчиков и бизнеса. Поэтому userver создавали с акцентом на надёжность и удобство, а внутри него есть всё необходимое для разработки, диагностики, мониторинга, отладки и экспериментов. Например, userver подсказывает как исправить ошибки ещё на этапе компиляции, умеет работать с разными базами данных, менять параметры на лету и так далее. Он хорошо подходит для разработки приложений как в небольших, так и в крупных компаниях. И с помощью userver даже новичок может за неделю написать новый микросервис, — сказал Антон Полухин, один из авторов фреймворка и руководитель группы бэкенд-разработки решений для продуктовых команд RideTech и eCom.
»

Яндекс выкладывает в опенсорс и другие свои ключевые технологии — например, распределённую систему управления базами данных YDB, способную обрабатывать миллионы запросов в секунду, а также библиотеку машинного обучения CatBoost, которую Яндекс применяет в Поиске и других сервисах.



СМ. ТАКЖЕ (1)


Подрядчики-лидеры по количеству проектов

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Солар (ранее Ростелеком-Солар) (46)
  Финансовые Информационные Системы (ФИС, FIS, Финсофт) (15)
  Форсайт (11)
  Бипиум (Bpium) (10)
  Axiom JDK (БеллСофт) ранее Bellsoft (10)
  Другие (388)

  Солар (ранее Ростелеком-Солар) (8)
  Финансовые Информационные Системы (ФИС, FIS, Финсофт) (4)
  Консом групп, Konsom Group (КонсОМ СКС) (2)
  IFellow (АйФэлл) (2)
  ЛАНИТ - Би Пи Эм (Lanit BPM) (2)
  Другие (30)

  Солар (ранее Ростелеком-Солар) (10)
  Форсайт (3)
  Banks Soft Systems, BSS (Бэнкс Софт Системс, БСС) (3)
  КРИТ (KRIT) (2)
  Cloud.ru (Облачные технологии) ранее SberCloud (2)
  Другие (13)

  Солар (ранее Ростелеком-Солар) (6)
  МТС Exolve (Межрегиональный ТранзитТелеком, МТТ) (4)
  Unlimited Production (Анлимитед Продакшен, eXpress) (4)
  РЖД-Технологии (3)
  Robin (Робин) (3)
  Другие (23)

  Солар (ранее Ростелеком-Солар) (3)
  Unlimited Production (Анлимитед Продакшен, eXpress) (3)
  МТС Exolve (Межрегиональный ТранзитТелеком, МТТ) (2)
  Т1 Иннотех (ГК Иннотех) (1)
  Axiom JDK (БеллСофт) ранее Bellsoft (1)
  Другие (8)

Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Солар (ранее Ростелеком-Солар) (2, 48)
  Microsoft (41, 47)
  Oracle (49, 26)
  Hyperledger (Open Ledger Project) (1, 23)
  IBM (33, 18)
  Другие (590, 303)

  Солар (ранее Ростелеком-Солар) (1, 8)
  Финансовые Информационные Системы (ФИС, FIS, Финсофт) (1, 4)
  Microsoft (4, 3)
  Oracle (2, 3)
  SAP SE (2, 2)
  Другие (16, 19)

  Солар (ранее Ростелеком-Солар) (1, 11)
  Форсайт (1, 3)
  Banks Soft Systems, BSS (Бэнкс Софт Системс, БСС) (1, 3)
  Сбербанк (1, 2)
  Cloud.ru (Облачные технологии) ранее SberCloud (1, 2)
  Другие (9, 9)

  Солар (ранее Ростелеком-Солар) (1, 6)
  Unlimited Production (Анлимитед Продакшен, eXpress) (1, 6)
  МТС Exolve (Межрегиональный ТранзитТелеком, МТТ) (1, 4)
  Мобильные ТелеСистемы (МТС) (1, 4)
  SL Soft (СЛ Софт) (1, 3)
  Другие (14, 24)

  Мобильные ТелеСистемы (МТС) (2, 3)
  Unlimited Production (Анлимитед Продакшен, eXpress) (1, 3)
  Солар (ранее Ростелеком-Солар) (1, 3)
  МТС Exolve (Межрегиональный ТранзитТелеком, МТТ) (1, 2)
  Т1 Консалтинг (Т1 Инновации) (1, 1)
  Другие (11, 11)

Распределение систем по количеству проектов, не включая партнерские решения

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Solar appScreener (ранее Solar inCode) - 48
  Hyperledger Fabric - 23
  Windows Azure - 20
  FIS Platform - 15
  Форсайт. Мобильная платформа (ранее HyperHive) - 12
  Другие 323

  Solar appScreener (ранее Solar inCode) - 8
  FIS Platform - 4
  Java - 2
  Турбо X - 2
  Парадокс: MES Builder - 2
  Другие 22

  Solar appScreener (ранее Solar inCode) - 11
  Форсайт. Мобильная платформа (ранее HyperHive) - 3
  BSS Digital2Go - 3
  Cloud ML Space - 2
  Avaya Breeze (Avaya Engagement Development Platform) - 1
  Другие 8

  Solar appScreener (ранее Solar inCode) - 6
  EXpress Защищенный корпоративный мессенджер - 6
  МТС Exolve - 4
  Форсайт. Мобильная платформа (ранее HyperHive) - 3
  РЖД и Робин: Облачная фабрика программных роботов - 3
  Другие 14

  Solar appScreener (ранее Solar inCode) - 3
  EXpress Защищенный корпоративный мессенджер - 3
  МТС Exolve - 2
  МТС: Ocean Облачная платформа - 1
  Т1: Сфера Платформа производства ПО - 1
  Другие 8