LINUX.ORG.RU

Яндекс выложил в опенсорс userver — инструмент для создания высоконагруженных приложений

 , , ,


3

3

Интернет, 29 июля 2022 года. Яндекс опубликовал исходный код и документацию фреймворка userver. Это первый открытый набор инструментов, который позволяет создавать высоконагруженные приложения на языке С++ и протестирован на масштабах уровня Яндекса. Userver используют в Яндекс Go, Лавке, Доставке, Маркете, финтех-проектах и многих других сервисах компании. Фреймворк предоставляется по открытой лицензии Apache 2.0.

Userver лучше всего подходит для разработки приложений с микросервисной архитектурой. Изначально фреймворк разрабатывался в Такси, с его помощью команда перешла с монолитного приложения на архитектуру, которая позволяет разрабатывать отдельные независимые компоненты (микросервисы) и использовать их в разных приложениях.

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

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

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

>>> Подробности

anonymous

Проверено: maxcom ()

было бы очень здорово увидить на этом фреймверке что-нибудь большое в стиле deathstar benchmark.

sartakov ()
Ответ на: комментарий от drfaust

А ещё больше похоже, что таки собираются делить активы и выводят вкусные куски из корпоративной собственности в «типа opensource». Очень удобно.

SkyMaverick ★★★★ ()
Ответ на: комментарий от Clayman

Возможно ТруЪ Янлекса в том, что по ссылкам лучше не ходить?

imul ★★★★★ ()

Когда мы переходили на микросервисы, мы понимали, что новый фреймворк должен быть как можно проще для разработчиков и бизнеса

C++ и как можно проще - это как ?

kto_tama ★★★★★ ()
Ответ на: комментарий от kto_tama

C++ и как можно проще - это как

Делаем на C++ движок для ЛИСП javascript. PROFIT. (Qt подтверждает).

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 1)

Ну терь заживём, чё, всем же нужна микросервисная архитектура, раз в яндехе на гига-проектах крутится.

pon4ik ★★★★★ ()
Ответ на: комментарий от kto_tama

Как можно проще, но оставаясь в рамках приличия - то есть безо всяких жс или пыхов.

firkax ★★ ()
Ответ на: комментарий от SkyMaverick

Тоже такое впечатление. Может еще кодеры собираются сбегать и лоббируют такие решения, дабы свой экспертный опыт по этой штуковине использовать и в другом месте.

vazgen05 ★★★ ()
Ответ на: комментарий от vazgen05

Полухин начал рассказывать, что они его обязательно откроют ещё лет 5 назад, если не больше. Так что это вполне закономерное развитие событий, не стоит строить теории заговора.

А в целом хорошо, что успели выложить до продажи яндекса. Авторам спасибо за труды.

Ivan_qrt ★★★★★ ()
Ответ на: комментарий от theNamelessOne

Да, но.

Чаще таки наоборот. Учитывая флёр и в общем и целом ЧСВ местячковых начяльничков.

pon4ik ★★★★★ ()
Ответ на: комментарий от Aprel

Окажется пук в лужу как в случае с фейсбук folly. Классная либа, но в той же РФ можно по пальцам двух ног посчитать где она будет удобней чем boost.

pon4ik ★★★★★ ()

Clickhouse и YDB шикарные +-.

А этот фреймворк увы мимо меня.

umren ★★★★★ ()
Ответ на: комментарий от pon4ik

Это та либа где есть класс Stroka?

Нет, и уже давно TString.

xpahos ★★★★★ ()
Последнее исправление: xpahos (всего исправлений: 1)

100500 слов в шапке про то что тако микросервис не объясняющие вообще что такое микросервисы на самом деле и ни слова о том что делает фреймворк конкретно, в чём его фича и суть.

И с помощью userver даже новичок может за неделю написать новый микросервис»

Без помощи userver новичок может за день написать новый микросервис

Бегло глянул на исходники что-бы понять что это такое вообще похоже на какой то ESC двигло только для серверов.

А так, молодцы конечно. Успехов и всех благ.

LINUX-ORG-RU ★★★★★ ()
Ответ на: комментарий от pon4ik

Помойму яндекс и подобные вынуждены использовать микросервисы и всё что типа них ибо чем больше контора тем больше железа чем больше железа тем чаще оно кирдыкается, а кирдык не должен положить всё сразу хотя бы что-то должно работать дальше. Вся суть микросервисов.

LINUX-ORG-RU ★★★★★ ()

Лол, внезапно обнаружил, что к Яндексу уже не совсем позитивное отношение в среднем по лорчику. Ну немного сбежали они из России, чтобы избежать рисков ведения бизнеса в России, но это ж не совсем их вина) А так одна из немногих компаний, способных родить такую вундервафлю как поисковик.

goingUp ★★★★★ ()
Ответ на: комментарий от goingUp

Ну, вообще то, с разморозкой. Такое отношение к Яндексу давно, ещё с нулевых, когда Яндекс начал соревноваться с Мейлом своими тулбарами.

Безусловно, как компания - одна из интереснейших, с точки зрения рода занятий и интеллектуальных ресурсов (точнее, почти любой род занятий можно было найти внутри компании). Но отношение к Яндексу давно не любовное на ЛОРе.

ploskov ()
Последнее исправление: ploskov (всего исправлений: 1)
Ответ на: комментарий от splinter

Насколько круче сказать трудно, но явно шире по функционалу.. Drogon — это просто веб-сервер с синхронным (или асинхронным по желанию) коннектом к базе данных. Ну и коннекторов к базам у него меньше, чем у этого uservver, насколько можно судить по диагональному взгляду на структуру директорий. Микросервисов у Drogona нет, можно, конечно, написать асинхронный колл-бек куда-то, но как это будет работать. если ответ застрянет я не знаю. Если нужна плюшевая трехзвенка или REST-API на коленках за неделю, то Drogon вполне годится. А вот как он под нагрузкой себя ведет мне сказать трудно. Я на нем только действительно плюшевые REST-API на коленках за неделю ваял.

gns ★★★★★ ()
Ответ на: комментарий от drfaust

Походу сам с багами не справляются и надеются на халявную помощь.

+1!

anc ★★★★★ ()
Ответ на: комментарий от LINUX-ORG-RU

Нет. Раньше за железом следили. А сейчас всем стало лень ещё и такой фигней заниматься.

anc ★★★★★ ()
Ответ на: комментарий от goingUp

емнип к нему особо позитивного никогда и не было.

anc ★★★★★ ()
Ответ на: комментарий от anc

Не, так-то норм мнемоника, где-то в 17ом году там товарищ вещал про этот фреймворк, и почему там свой класс строки :)

pon4ik ★★★★★ ()

мы понимали, что новый фреймворк должен быть как можно __проще__ для разработчиков и бизнеса. Поэтому userver создавали с акцентом на __надёжность__

Да хер с ней, с логической связностью текста, давай напихивай ключевые слова.

с помощью userver даже новичок может за неделю написать новый микросервис

Счастье-то какое. Нужно как можно больше микросервисов, написанных новичками.

thesis ★★★★★ ()
Ответ на: комментарий от den73

Вы доверяете Яндексу? Они что-то задумали?

Вот-вот. Я тоже думаю, что это ж-ж-ж - неспроста. Значит, где-то есть пчёлы. А если есть пчёлы, значит - где-то должен быть мёд.
Я так, думаю...

cadaber ★★ ()

Не секрет, что Яндекс специализируется на высоконагруженных приложениях
Некоторые приложения масштабируются и делаются высоконагруженными из коробки - например постгрес, апач аэрфлоу
Некоторые приложения для того, чтобы работать в высоконагруженной среде, требуют предварительно установки
других приложений - я имею ввиду хадуп, на который сверху можно установить hbase, hive, spark и т.д.
Но далеко не все популярные приложения обладают такой магической способностью, как масштабироваться и становиться
высоконагруженными по определению
И сообщество было бы не против получить от яндекса что-то подобное для создания именно высоконагруженных приложений
Userver, как я понимаю, представляет из себя низкоуровневую среду, в которой приложения нужно писать с нуля
А хотелось бы получить инструмент, на который можно было бы ставить готовое приложение, которое можно было бы настраивать
именно под userver и делать его высоконагруженным
Хотя о чем это я ...

kto_tama ★★★★★ ()
Ответ на: комментарий от goingUp

Так негативное отношение началось задолго до «сбегания». Так что это ты тот самый «зоркий глаз». Они же стали просто бизнесом как гугл, фб или вк. Вспомни недавнюю утечку персональных данных из я.еды. Вспомни историю с кинопоиском

cobold ★★★★ ()

25 лет назад все люто радовались появлению вытесняющей многозадачности и возможности сделать всё нормально на тредах. А сейчас буйнопомешанные хомячки с криками про асинхронность толпой ломятся обратно в кооперативную. И естественно каждый «уникальный неповторимый самый лучший» фреймворк в результате притаскивает свои драйверы к другим сервисам и протоколам которые работают не «как обычно» а через уникальный и неповторимый эвентлуп этого фреймворка. Тьфу блин.

no-dashi-v2 ()
Ответ на: комментарий от no-dashi-v2

Никогда не слышал про то, что история двигается по спирали? По спирали, а не по окружности. Я тебе могу предсказать, что ещё через условных 10 лет появится новая итерация вытесняющей многозадачности. Каждая следующая итерация чего-либо отличается от предыдущей и делается совсем в других условиях.

vbr ()

если между компонентами нет контракта (автотесты и валидаторы запросов не считаются), микросервис - это тот же монолит, только с геморным кровавым деплойментом и принуждением к копипасту. Например если у вас сущности таксистов обслуживаются тем же кодом что и курьеры, то вы назовете все суперабстрактно типа DeliverySubject, и встрянете на конкретике и кастоме когда нужно будет противоречивое между этими сущностями поведение, либо будете копипастить реализации и попадете на обобщённом поведении, когда и таксистам и курьерам нужно будет смасштабировать одинаковые доработки и придется делать делать это руками и синхронно, если ими занимаются разные команды добавится неодолимая в условиях ротации кадров преграда коммуникации. Вообщем микросервисы это антипаттерн.

Syncro ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.