Интернет, 29 июля 2022 года. Яндекс опубликовал исходный код и документацию фреймворка userver. Это первый открытый набор инструментов, который позволяет создавать высоконагруженные приложения на языке С++ и протестирован на масштабах уровня Яндекса. Userver используют в Яндекс Go, Лавке, Доставке, Маркете, финтех-проектах и многих других сервисах компании. Фреймворк предоставляется по открытой лицензии Apache 2.0.
Userver лучше всего подходит для разработки приложений с микросервисной архитектурой. Изначально фреймворк разрабатывался в Такси, с его помощью команда перешла с монолитного приложения на архитектуру, которая позволяет разрабатывать отдельные независимые компоненты (микросервисы) и использовать их в разных приложениях.
Микросервисы автономны, поэтому приложение на подобной архитектуре легко обновлять и добавлять в него новые функции. Так, микросервис поиска водителя на заказы в Такси можно использовать для схожей задачи — например поиска курьера для выполнения заказов Яндекс Доставки. То же самое можно проделать и с расчетом времени прибытия водителя или курьера и многими другими задачами.
«Когда мы переходили на микросервисы, мы понимали, что новый фреймворк должен быть как можно проще для разработчиков и бизнеса. Поэтому userver создавали с акцентом на надёжность и удобство, а внутри него есть всё необходимое для разработки, диагностики, мониторинга, отладки и экспериментов. Например, userver подсказывает как исправить ошибки ещё на этапе компиляции, умеет работать с разными базами данных, менять параметры на лету и так далее. Он хорошо подходит для разработки приложений как в небольших, так и в крупных компаниях. И с помощью userver даже новичок может за неделю написать новый микросервис», — говорит Антон Полухин, один из авторов фреймворка и руководитель группы бэкенд-разработки решений для продуктовых команд RideTech и eCom.
Яндекс выкладывает в опенсорс и другие свои ключевые технологии — например, распределенную систему управления базами данных YDB, способную обрабатывать миллионы запросов в секунду, а также библиотеку машинного обучения CatBoost, которую Яндекс применяет в Поиске и других сервисах.
>>> Подробности